"Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8...

0 голосов
245 просмотров

"Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных латинских букв; между соседними словами – пробел, за последним словом – точка. Вывести те слова последовательности, у которых буквы упорядочены по алфавиту."
Есть код,но он не работает.Прошу объяснить что я делаю не так.Язык-Паскаль.

uses crt;
var
c,i,j:integer;
text,st:string;
begin
c:=0;
clrscr;
writeln('vvedite text:');
readln(text);
for i:=0 to length(text) do
if (text[i]=' ') or (text[i]='.') then
begin
st:=copy(text,0,i);
delete(text,0,i+1);
writeln('text=',text);
end;
for j:=0 to length(st) do
begin
if pos(st[j],st) c:=c+1;
if c=length(st) then
writeln(st);
st:='';
end;
readln;
end.
readln;
end.


Информатика (15 баллов) | 245 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Так как написана программа, в лучшем случае будет найдено только одно слово, должны быть вложенные циклы.
Решение (немного исправленное) в прикрепленном файле.

Ввод - вывод программы:
 vvedite text:  
it's a text for check programm abcdefgh hgfe pqrstu srqp.
word = for
word = abcdefgh
word = hgfe
word = pqrstu
word = srqp




Скачать вложение Текст (TXT)
(9.7k баллов)
0

Спасибо!