09.02.2009, 01:10
общий
это ответ
Здравствуйте, Korniychug Petro Dmytrovich!
"слово совпадает с начальным отрезком латинского алфавита (a, ab, abc и т. д.)" - это равносильно тому что оно содержится в строке 'abcdefgh' (если слово не больше 8 символов), причём его позиция в этой строке равна единице.
Остальные комментарии - в приложении вместе с кодом.
С уважением, Дмитрий.
Приложение:
program z159704;
uses crt;{модуль, содержащий необходимые нам функции}
const
N = 50;{max кол-во слов}
type
elem = String[8];{8 - max длинна слов}
tmas = array[1..N] of elem;
Procedure zapolnit(var slova:tmas;var kol:byte);
var c:char;
begin
c:=Readkey;
Write(c);
kol:=0;
While c <> '.' do{пока не ввели точку}
begin
inc(kol);{увеличиваем счётчик кол-ва слов}
While (c <> ' ')and(c <> '.') do{пока слово не закончилось}
begin
insert(c,slova[kol],length(slova[kol])+1);{считываем следующий символ}
c:=ReadKey;
Write(c);{выводим его на экран, чтобы отображалось что мы нажали}
end;
While (c = ' ')or(c = #13) do{пока не началось очередное слово - просто показываем что нажали}
begin
c:=ReadKey;
Write(c);
IF c = #13 then{Если нажали Enter - переведём курсор на следующую строку}
WriteLn;
end;
end;
end;
var slova:tmas;
kol,i:byte;
begin
zapolnit(slova,kol);{ввод слов}
WriteLn;
WriteLn('Result:');
For i:= 1 to kol do{распечатываем слова, удовлетворяющие условиям}
IF (slova[i] <> slova[kol])and(pos(slova[i],'abcdefgh')=1) then
Write(slova[i],' ');
ReadLn;
end.