Определить длину строки и количество букв "а" в ней - Free Pascal
Формулировка задачи:
Помогите пожалуйста найти ошибку. Не выводятся инициалы.
Задача: Ввести ф.и.о. Определить длину строки и кол-во букв "а" в ней. Вывести три буквы (инициалы) с точками.
Вот что есть:
var s,s1,a,b:string;
n,i,k:byte;
begin
writeln('Введите фамилию, имя и отчество');
readln(s);
n:=length(s);
writeln('Длина строки=',n);
k:=0;
for i:=1 to n do
if s[i] in ['a','а'] then k:=k+1;
writeln('Количество букв а=',k);
s1:='';
i:=pos(' ',s)+1;
while s[i]<>' ' do
begin
s1:=s1+s[i];
i:=i+1;
end;
b:=a[1]+'.';
b:=b+a[pos(' ',a)+1]+'.';
delete(a,1,pos(' ',a));
delete(a,1,pos(' ',a)-1);
b:=b+a[pos(' ',a)+1]+'.';
writeln(b);
readln;
end.Решение задачи: «Определить длину строки и количество букв "а" в ней»
textual
Листинг программы
{ Ввести ф.и.о. Определить длину строки и кол-во букв "а" в ней.
Вывести три буквы (инициалы) с точками.}
var
s,s1:string;
n,i,k:byte;
begin
writeln('Введите фамилию, имя и отчество');
readln(s);
n:=length(s);
writeln('Длина строки=',n);
k:=0;
for i:=1 to n do
if s[i] in ['а','А'] then
k:=k+1;
writeln('Количество букв а=',k);
s1:=s[1]+'.';
s1:=s1+s[pos(' ',s)+1]+'.';
delete(s,1,pos(' ',s));
delete(s,1,pos(' ',s)-1);
s1:=s1+s[pos(' ',s)+1]+'.';
writeln(s1);
readln;
end.
Объяснение кода листинга программы
- Вводится строка с фамилией, именем и отчеством.
- Определяется длина строки с помощью функции LENGTH.
- Считается количество букв
ав строке с помощью цикла и оператора IN. - Выводится длина строки и количество букв
а. - Создается новая строка S1, которая содержит три первые буквы (инициалы) с точками.
- Удаляются первые две буквы и пробел после первой буквы из исходной строки.
- Выводится новая строка S1.
- Программа завершается.