Вывод сообщения если строка пустая после выполнения алгоритма - Pascal ABC
Формулировка задачи:
Добрый день.
Просьба помочь с вопросом: как можно вывести 1 раз сообщение при условии что не будут найдены слова в строке, в которых буквы упорядочены по алфавиту.
Поиск есть, но для данного алгоритма не могу придумать корректный вывод если слов в строке не окажется после выполнения поиска.
Решение задачи: «Вывод сообщения если строка пустая после выполнения алгоритма»
textual
Листинг программы
var k:byte;
.........................
writeln('Слова, в которых буквы упорядочены по алфавиту: ');
k:=0;
temp1:=temp1+' ';
While Pos(' ',temp1)>0 do
Begin
s1:=Copy(temp1,1,Pos(' ',temp1)-1);
Delete(temp1,1,Pos(' ',temp1));
flag:=true;
For i:=1 to Length(s1)-1 do
if s1[i]>s1[i+1] then flag:=false;
if flag then
begin
k:=1;
write(s1,' ');
end;
End;
if k=0 then write('Таких слов нет')
Объяснение кода листинга программы
- Переменная k инициализируется значением byte.
- Выводится сообщение «Слова, в которых буквы упорядочены по алфавиту: ».
- Переменная k инициализируется значением 0.
- Строка temp1 инициализируется пустым значением.
- Запускается цикл While, условием которого является наличие пробелов в строке temp1.
- Внутри цикла происходит следующее:
- Строка temp1 копируется в переменную s1 с первого символа до символа, находящегося на позиции Pos(' ',temp1) - 1.
- Символ в позиции Pos(' ',temp1) удаляется из строки temp1.
- Переменная flag инициализируется значением true.
- Запускается цикл For, условием которого является длина строки s1 от 1 до Length(s1)-1.
- Если символ в позиции i в строке s1 больше следующего символа, то переменная flag инициализируется значением false.
- Если значение переменной flag равно true, то:
- Инициализируется переменная k значением 1.
- Выводится символ из строки s1, разделенный пробелами.
- Если значение переменной flag равно false, то переменная flag инициализируется значением true.
- Если значение переменной k равно 0, то выводится сообщение «Таких слов нет».