В заданной строке слова разделены пробелами. Нужно записать программу которая бы подсчитала количество слов, начинающихся с буквы А, и напечатала их. Часть с подсчетом слов я сделал. :shubizsetisforuma:
function kslov(s:string):integer; var i,k,l:integer; s2:string; begin s2:=' '; s:=copy(s2,1,1); l:=length(s); k:=0; for i:=1 to l do if s[i]=' ' then if s[i+1]='a' then k:=k+1; kslov:=k+1; end;
:shubizsetisforuma:
Сообщение отредактировал resister - Суббота, 13.12.2008, 21:58
resister, Эм.. А что если: 1) Проверить первое слово на s[1]='A', если так, то inc(счетчик) 2) Искать фрагменты строки: ' a' или ' A'. Если нашли - то inc(счетчик) и стерли этот фрагмент... Пробегаем While-ом, с Pos-ом. Поддерживаю также проект сообщество молодых сисадминов
Тут нужно с использованием функции Pos. Т.е. 1) k:=Pos('A',s); 2) если s[k-1]=' ' или k=0, то i:=i+1 и {N:=Pos(' ',s), если N<>0 то WriteLn(Copy(s,k,N-k)); иначе WriteLn(Copy(s,k,Length(s)-k)); 3) повторять с пункта 1 пока Pos не вернёт нуль. Скажем дружно- нафиг нужно!