В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы - Free Pascal
Формулировка задачи:
В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы. Напечатать полученный список. (В исходном списке после фамилии и имени стоит пробел, после отчества - запятая, в конце списка - точка.)
Решение задачи: «В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы»
textual
Листинг программы
Var s,s1,s2:string; Begin write('Введите список студентов (Фамилия Имя Отчество,): ');readln(s); While Pos(',',s)<>0 do Begin s1:=Copy(s,1,Pos(',',s)-1); s2:=s2+Copy(s1,1,Pos(' ',s1)-1)+' '+s1[Pos(' ',s1)+1]+'.'; Delete(s1,1,Pos(' ',s1));Delete(s1,1,Pos(' ',s1)); s2:=s2+s1[1]+','; Delete(s,1,Pos(',',s)); End; s2:=s2+Copy(s,1,Pos(' ',s)-1)+' '+s[Pos(' ',s)+1]+'.'; Delete(s,1,Pos(' ',s));Delete(s,1,Pos(' ',s)); s2:=s2+s[1]+'.'; writeln('Полученный список: ',s2); readln; End.
Объяснение кода листинга программы
В данном коде:
- Создаются три переменные типа string: s, s1, s2.
- В первой строке ввода запрашивается список студентов в формате Фамилия Имя Отчество,:.
- В цикле while с помощью функции Pos(',',s) осуществляется разбиение введенной строки на фамилии, имена и отчества.
- В каждой итерации цикла в переменную s1 копируется фамилия студента.
- В переменную s2 добавляются инициалы имени и отчества, образованные из фамилии и имени студента.
- Вторая строка инициалов добавляется в переменную s2 после удаления пробелов в начале и конце строки.
- В конце цикла в переменную s2 добавляются последние инициалы имени и отчества.
- Выводится полученный список.