Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача о строках
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Юра
Помагите сделать последний штрих, вроде бы все уже сделано
Задача:Определить, сколько слов в последовательности А начинается с буквы N и сколько слов в последовательности В начинается с буквы Y.
Для подсчета в произвольной последовательности числа слов, начинающихся с заданного символа, использовать самостоятельно разработанную процедуру.
Вот что я написал:
program Project5;

{$APPTYPE CONSOLE}

uses
SysUtils;

var s:string;s1:string;
i,n,m,k,l:integer;
d,p:char;
procedure Bukv(s:string;d:char;var k:integer);
var i:integer;
begin
for i:=1 to n do
if(i<n) and (s[i]=d) and (s[i-1]=' ') then
k:=k+1;
end;
Begin

writeln ('Input S');
readln(s);
writeln ('Input S1');
readln(s1);
n:=length(s);

writeln ('Input d');
readln(d);
writeln ('Input p');
readln(p);
begin
Bukv(s,d, k);
writeln(k);
Bukv(s1,p, l);
writeln(l);
end;
readln;
end.

Так вот, программа работает, и ошибок нет, но если в последовательности первое слово начинается на заданную букву, то программа его не учитывает, подскажите, что исправить в IF.
volvo
Юра,
процедуру Bukv перепиши:
procedure  Bukv(s:string; d:char; var k:integer);
var i:integer;
begin
k := 0;
for i:=1 to length(s) do
if (
(i = 1) or ((i > 1) and (s[i - 1] = ' '))
) and (s[i] = d) then k := k + 1;
end;
и все будет работать...
Юра
Спасибо, я все понял, все работает.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.