Распечатать список учеников, фамилии которых начинаются на букву В - PascalABC.NET

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

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

Распечатать список учеников, фамилии которых начинаются на букву В, с указанием даты их рождения.

Решение задачи: «Распечатать список учеников, фамилии которых начинаются на букву В»

textual
Листинг программы
uses
  System, Crt;
  
type
  tStudent = record
    F, I, O : String[20];
    D : DateTime;
  end;
 
var
  Ch : Char;  
begin
  Randomize;
  var L := New List<tStudent>;
  repeat
    var S : tStudent;
    S.F := ReadLnString('Фамилия ученика:');
    S.I := ReadLnString('            имя:');
    S.O := ReadLnString('       отчество:');
    repeat
      Ch := '+';
      try
        var sD := ReadLnString('Дата рождения вида ДД.ММ.ГГГГ =');
        S.D := System.DateTime.Parse(sD);
      except
        WriteLn('Неверный ввод даты!');
        Ch := '-';
      end;
    until Ch = '+';
    L.Add(S);
    
    Write(NewLine, 'Желаете продолжить ввод учеников (Д/Н) : ');
    repeat
      Ch := ReadKey;
    until Ch in ['Д', 'д', 'Н', 'н'];
    WriteLn(Ch, NewLine);
  until Ch in ['Н', 'н'];
  
  WriteLn(NewLine, 'Список учеников, фамилии которых начинаются на букву «В»:');
  var count := 0;
  foreach var S in L do
    if (S.F.Length > 0) and (UpperCase(S.F[1]) = 'В') then
      begin
        count += 1;
        WriteLnFormat('{4}) {0} {1} {2} - {3}', S.F, S.I, S.O, S.D.ToLongDateString, count);
      end;
  if count = 0 then WriteLn('Нет таких учеников.');
  WriteLn;
end.

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

Вот что происходит в коде:

  1. Объявляются переменные и типы данных:
    • Ch - символ, используемый для обозначения текущего статуса ввода.
    • L - список объектов типа tStudent, который будет содержать информацию об учениках.
    • tStudent - запись, представляющая одного ученика. Содержит поля для фамилии, имени, отчества и даты рождения.
  2. В цикле repeat происходит ввод информации об ученике:
    • В начале каждого ученика запрашивается фамилия.
    • Если фамилия пустая, то цикл прерывается.
    • Запрашиваются имя и отчество.
    • В цикле repeat запрашивается дата рождения. Если ввод неверный, выводится сообщение об ошибке и цикл прерывается.
    • Информация об ученике добавляется в список L.
  3. После ввода информации о каждом ученике запрашивается желание продолжить ввод (Д/Н). Если введено Н, то выводится сообщение и процесс ввода завершается.
  4. После окончания ввода информации о всех учениках выводится сообщение Список учеников, фамилии которых начинаются на букву «В»:.
  5. Переменная count инициализируется нулем и используется для подсчета количества учеников с фамилией на букву В.
  6. В цикле foreach перебираются все ученики в списке L.
  7. Если фамилия ученика не пустая и первая буква фамилии - В, то выводится информация об ученике в формате Фамилия Имя Отчество - Дата рождения и увеличивается счетчик count.
  8. Если после перебора всех учеников счетчик count равен нулю, выводится сообщение Нет таких учеников..
  9. В конце программы выводится символ новой строки для завершения текущего сообщения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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