Нахождение палиндромов строки и запись в файл - 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');
— запись строки на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д