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