Консультация № 150202
11.11.2008, 12:04
0.00 руб.
0 4 1
Даны натуральное число n, символы s1, ... , sn. Группы символов, разделённые пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами.

Подсчитать количество букв a в последнем слове данной последовательности.

Обсуждение

давно
Старший Модератор
31795
6196
11.11.2008, 13:09
общий
это ответ
Здравствуйте, Иванов Виктор Олегович!

Программа в приложении.
Считается , что последовательность S оканчивается словом.
В программе поиск последнего слова организован при вводе последовательности и когда встречается пробел, то сбрасывается ранее введенное слово.
Удачи!

Приложение:
var
s:string;
c:char;
i,n:integer;
begin
{вводим натруральное число}
repeat
write('Enter N:');
readln(n);
until n>0;
{формируем строку последнего слова}
s:='';
for i:=1 to n do
begin
write('S',i,':=');
readln(c);
if c<>' 'then s:=s+c{добавляем букву в слово}
else s:='';{пробел сбрасываем слово}
end;
{выводим последнее слово}
writeln('Last Word:',s);
{счетчик букв "а"}
i:=0;
{подсчет букв "а" в слове}
while pos('a',s)>0 do
begin
inc(i);
delete(s,1,pos('a',s));
end;
{выводим результат}
writeln('Result:',i);
readln;
end.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
11.11.2008, 18:46
общий
Уважаемый Константин, подскажите пожалуйста я что то не пойму эту задачу....

вот вводим мы n например 2
потом s1= sdghjjaaaa
s2= trjllaaaa haa
last word: st
result: 0

почему она не считает сколько символов а, и как считается последнее слово... не пойму....
или может быть я не те данные ввожу... не знаю... выручайте Константин, на вас одна надежда...
давно
Старший Модератор
31795
6196
11.11.2008, 18:59
общий
Цитата: из вопроса
Даны натуральное число n, символы s1, ... , sn.

Символы, это не строки, в программе вводится определенное пользователем количество символов.
Код:
for i:=1 to n do[color=redвводится н символов не больше][/color]
begin
write('S',i,':=');
readln(c);тут вводится только один символ
if c<>' 'then s:=s+c{добавляем символ в слово}
else s:='';{пробел сбрасываем слово}
end;

Если нужно со строками, то могу переделать.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Неизвестный
11.11.2008, 19:09
общий
Благодарю! Я понял свои ошибки... теперь все работает, я понял задачу =)
Спасибо огромное!
Форма ответа