В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы - 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.

Объяснение кода листинга программы

В данном коде:

  1. Создаются три переменные типа string: s, s1, s2.
  2. В первой строке ввода запрашивается список студентов в формате Фамилия Имя Отчество,:.
  3. В цикле while с помощью функции Pos(',',s) осуществляется разбиение введенной строки на фамилии, имена и отчества.
  4. В каждой итерации цикла в переменную s1 копируется фамилия студента.
  5. В переменную s2 добавляются инициалы имени и отчества, образованные из фамилии и имени студента.
  6. Вторая строка инициалов добавляется в переменную s2 после удаления пробелов в начале и конце строки.
  7. В конце цикла в переменную s2 добавляются последние инициалы имени и отчества.
  8. Выводится полученный список.

Оцени полезность:

11   голосов , оценка 3.545 из 5
Похожие ответы