Упростить код, если возможно - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

На вход программы подаются фамилии и имена учеников. Известно, что общее количество учеников не превосходит 100. В первой строке вводится количество учеников, принимавших участие в соревнованиях, N. Далее следуют N строк, имеющих следующий формат: <Фамилия> <Имя> Здесь <Фамилия> – строка, состоящая не более чем из 20 символов; <Имя> – строка, состоящая не более чем из 15 символов. При этом <Фамилия> и <Имя> разделены одним пробелом. Примеры входных строк:

Иванова Мария Петров Сергей

Требуется написать программу, которая формирует и печатает уникальный логин для каждого ученика по следующему правилу: если фамилия встречается первый раз, то логин – это данная фамилия, если фамилия встречается второй раз, то логин – это фамилия, в конец которой приписывается число 2 и т.д. Например, для входной последовательности

Иванова Мария Петров Сергей Бойцова Екатерина Петров Иван Иванова Наташа

будут сформированы следующие логины:

Иванова Петров Бойцова Петров2 Иванова2

------------
Упростить: чтобы не было a.Length - 1, IntToStr, s.Split. Так как не проходили.

Решение задачи: «Упростить код, если возможно»

textual
Листинг программы
    a[i].Fam := readlnstring;
    a[i].Fam := Copy(a[i].Fam, 1, Pos(' ', a[i].Fam) - 1);

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

  1. Вводится строка с фамилией в формате Иванов Иван Иванович
  2. Используя функцию Pos, мы определяем позицию пробела в строке (в данном случае это будет 5)
  3. Используя функцию Copy, мы создаем новую строку, которая будет содержать только фамилию без пробелов (в данном случае это будет Иванов)
  4. Присваиваем новое значение переменной Fam, которая теперь будет содержать только фамилию без пробелов

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

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