Определить длину строки и количество букв "а" в ней - 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.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д