Динамические структуры данных, работа с файлами (TurboPascal)

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Динамические структуры данных, работа с файлами (TurboPascal)

Re: Динамические структуры данных, работа с файлами (TurboPascal)

Хыиуду » 17 фев 2007, 22:49

Oleg_Rus, а если в программе, например, такой кусок текста:
if i=0
then begin

Тогда же ведь этот бегин окажется пропущенным
Дело в том, что когда Паскаль считывает из файла строку, он читает ее полностью. Это только числа в строке он может читать по очереди.
Кстати, если уходить в усложнение, можно вспомнить, что end завершает не только begin, но и except, record, case, asm, finally.

Re: Динамические структуры данных, работа с файлами (TurboPascal)

Oleg_Rus » 17 фев 2007, 05:55

в принципе вторая задача решается довольно просто - из файла читаешь по словам, сравниваешь с заданными константами и если совпадает, то увеличивай счетчик

const
RazeBegin='begin';
RazeEnd='end';
begin
assign(f, '*.pas'); Reset(f);
while not eof do
begin
read(s);
if s=RazeBegin then Inc(CountBegin);
if s=RazeEnd then Inc(CountEnd);
end;
if CountBegin<>CountEnd then Writeln('Error!!!') Else Writeln('All Right');
end;

немного доработаешь по теме заглавные буквы и усе - ЧТД(Что и Требовалось Доказать)

Re: Динамические структуры данных, работа с файлами (TurboPascal)

Хыиуду » 16 фев 2007, 10:51

A-3E:
for i:=1 to n do A[i,i]:=A[i,i]-3.
А вот как ее в квадрат возводить, писать не буду, ибо перемножение матриц есть мозгоедство :)
По второй - идешь, считываешь файл по строке, разбиваешь каждую строку на слова (см. раздел Алгоритмы), проверяшь, не является ли слово begin или end. Если begin - увеличиваешь счетчик на 1, если end - уменьшаешь. Если счетчик стал меньше 0 - выводишь ошибку (лишний end). Если в конце программы счетчик больше 0 -выводишь ошибку (лишний begin)

Re: Динамические структуры данных, работа с файлами (TurboPascal)

Игорь Акопян » 15 фев 2007, 17:45

стараемся размещать темы в правильном разделе. ;)

Динамические структуры данных, работа с файлами (TurboPascal)

Raze » 15 фев 2007, 16:57

Помогите пожалуйста решить 2 задачи, кто может и у кого есть время. Или выложите похожие задачи, чтобы мне разобраться в алгоритме. Просто я только начал изучать Turbo Pascal и многих вещей ещё не знаю. Помогите, если не сложно. Заранее всем спасибо!

1. Дана квадратная матрица А порядка n. Получить матрицу (A-3*E)^2, где Е – единичная матрица порядка n. (Динамические структуры данных)
2. Дан файл на языке Паскаль. Проверить правильность расстановки операторов begin и end. Если ли есть лишние, вывести в какой строке. (Работа с файлами)

Вернуться к началу