Предмет: Информатика,
автор: Golfstr
"Дана последовательность, содержащая от 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.
Ответы
Автор ответа:
0
Так как написана программа, в лучшем случае будет найдено только одно слово, должны быть вложенные циклы.
Решение (немного исправленное) в прикрепленном файле.
Ввод - вывод программы:
vvedite text:
it's a text for check programm abcdefgh hgfe pqrstu srqp.
word = for
word = abcdefgh
word = hgfe
word = pqrstu
word = srqp
Решение (немного исправленное) в прикрепленном файле.
Ввод - вывод программы:
vvedite text:
it's a text for check programm abcdefgh hgfe pqrstu srqp.
word = for
word = abcdefgh
word = hgfe
word = pqrstu
word = srqp
Приложения:
Автор ответа:
0
Спасибо!
Похожие вопросы
Предмет: Математика,
автор: Аноним
Предмет: Геометрия,
автор: vejsorit
Предмет: Математика,
автор: tic45545
Предмет: Математика,
автор: arinashirinkin1