Нахождение палиндромов строки и запись в файл - Turbo Pascal
Формулировка задачи:
Вот как говорится человек практик, теории в голове ноль. это задача по нахождению палиндромов и записи в файл. вот до включительно цикла while знаю что программа делает, а вот после объяснить не могу. помогите плиз. вот программа -
да ещё блок схема нужна
Решение задачи: «Нахождение палиндромов строки и запись в файл»
textual
Листинг программы
while not eof(f) do //пока не конец файла begin readln(f,s);//читаем строки b:=true;//считаем что палиндром d:=length(s); //длина строки l:=d div 2;//середина строки for i:=1 to l do //смотрим символы первой половины if s[i]<>s[d+1-i] then b:=false;//если не совпадают с символом //симметричным от конца, меняем флаг if b=true then//если все совпадают begin writeln (s,' palindrom'); //выводим да на экран writeln(f1,s,' palindrom'); //и в файл end else //если нет, выводим нет begin writeln(f1,s,' ne palindrom'); writeln(s,' ne palindrom'); end; end;
Объяснение кода листинга программы
В данном коде используется язык программирования Turbo Pascal. Он читает строки из файла и проверяет их на палиндромность.
while not eof(f)— цикл, который выполняется до конца файла.begin— блок кода, который выполняется при успешном чтении строки из файла.readln(f,s)— функция, которая считывает строку из файла и сохраняет ее в переменнойs.b := true;— установка флагаbв значениеtrue, предполагая, что строка является палиндромом.d := length(s);— определение переменнойdкак длины строки.l := d div 2;— определение переменнойlкак половины длины строки.for i := 1 to l do— цикл, который проверяет символы первой половины строки.if s[i] <> s[d+1-i]then b := false;— проверка символов на равенство. Если символы не совпадают, флагbустанавливается в значениеfalse`.if b = true then— проверка, является ли строка палиндромом.begin— блок кода, который выполняется при условии, что строка является палиндромом.writeln (s, ' palindrom');— запись строки в файл и на экран.writeln(f1,s,' palindrom');— запись строки в файлf1.else— блок кода, который выполется при условии, что строка не является палиндромом.begin— блок кода, который выполняется при условии, что строка не является палиндромом.writeln(f1,s,' ne palindrom');— запись строки в файлf1.writeln(s,' ne palindrom');— запись строки на экран.