Вывести на экран фамилии студентов рекомендованных к отчислению - Pascal

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

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

[QUOTE=albert12;9050894]Составить список, содержащий сведения об N студентах. Для каждого учащегося указать: - фамилия; - ИНН (идентификационный номер налогоплательщика); - дата рождения; - год поступления в университет; - курс; - группа; - оценки текущей сессии по трем предметам. Информацию о каждом студенте оформить в виде записи. Совокупность записей объединить в массив. Составить программу, которая обеспечивает ввод исходных данных, об-работку и вывод на экран информации в соответствии с вариантом задания, приведенного в таблице Вывести на экран фамилии студентов рекомендованных к отчислению Критерий средний балл студента должен быть ниже значения заданного с клавиатуры

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

textual
Листинг программы
{$MODE TP}
const
    m_max = 3;
type
    TMarks = Array[0..m_max - 1] Of Byte;
    TStudent = record
        surname: String[50];
        vatId: String;
        birthDate: String[10];
        admissionYear: Word;
        studyCourse: Byte;
        group: String[20];
        marks: TMarks;
    end;
function GetAvr(const marks: TMarks): Single;
var
    Result: Single;
    j: 0..m_max;
begin
    Result := 0;
    for j := 0 to m_max - 1 do
        Result := Result + marks[j];
    GetAvr := Result / m_max;
end;
var
    ar: Array[Byte] Of TStudent;
    i, j, n: Byte;
    avr: Single;
begin
    repeat
        Write('How much students add? '); ReadLn(n);
    until (n > 0);
    for i := 0 to n - 1 do
        with ar[i] do
        begin
            Write('Input surname: '); ReadLn(surname);
            Write('Input VAT identification number: '); ReadLn(vatId);
            Write('Input date of birth: '); ReadLn(birthDate);
            Write('Input admission year: '); ReadLn(admissionYear);
            Write('Input course: '); ReadLn(studyCourse);
            Write('Input group: '); ReadLn(group);
            for j := 0 to m_max - 1 do
            begin
                Write('Input ', j + 1, ' mark: '); ReadLn(marks[j]);
            end;
        end;
    WriteLn; WriteLn;
    Write('Input critical avr: '); ReadLn(avr);
    for i := 0 to n - 1 do
        with ar[i] do
            if (GetAvr(marks) < avr)
            then
                WriteLn(surname);
end.

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

  1. Объявляются константа m_max (максимальное количество оценок у студента) и тип TMarks (массив оценок), а также тип TStudent (структура для описания студента).
  2. Создается функция GetAvr для расчета среднего балла по оценкам.
  3. Объявляются переменные ar (массив студентов), i, j (счетчики), n (количество студентов), avr (критический средний балл).
  4. Запрашивается количество студентов вводимых в систему.
  5. Вводится информация о каждом студенте (фамилия, идентификационный номер, дата рождения, год поступления, курс, группа, оценки).
  6. Запрашивается критический средний балл.
  7. Происходит проверка среднего балла каждого студента, и если он ниже заданного критического значения, выводится фамилия этого студента.

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


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

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

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