Распечатать список учеников, фамилии которых начинаются на букву В - 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.
Объяснение кода листинга программы
Вот что происходит в коде:
- Объявляются переменные и типы данных:
- Ch - символ, используемый для обозначения текущего статуса ввода.
- L - список объектов типа tStudent, который будет содержать информацию об учениках.
- tStudent - запись, представляющая одного ученика. Содержит поля для фамилии, имени, отчества и даты рождения.
- В цикле repeat происходит ввод информации об ученике:
- В начале каждого ученика запрашивается фамилия.
- Если фамилия пустая, то цикл прерывается.
- Запрашиваются имя и отчество.
- В цикле repeat запрашивается дата рождения. Если ввод неверный, выводится сообщение об ошибке и цикл прерывается.
- Информация об ученике добавляется в список L.
- После ввода информации о каждом ученике запрашивается желание продолжить ввод (Д/Н). Если введено Н, то выводится сообщение и процесс ввода завершается.
- После окончания ввода информации о всех учениках выводится сообщение
Список учеников, фамилии которых начинаются на букву «В»:
. - Переменная count инициализируется нулем и используется для подсчета количества учеников с фамилией на букву
В
. - В цикле foreach перебираются все ученики в списке L.
- Если фамилия ученика не пустая и первая буква фамилии -
В
, то выводится информация об ученике в форматеФамилия Имя Отчество - Дата рождения
и увеличивается счетчик count. - Если после перебора всех учеников счетчик count равен нулю, выводится сообщение
Нет таких учеников.
. - В конце программы выводится символ новой строки для завершения текущего сообщения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д