Составить программу, которая находит самого молодого научного сотрудника и выдает все сведения о нем - Pascal ABC

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

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

Будьте добры!Никак не могу написать программу. Нужно написать с помощью записей. Составить программу, которая находит самого молодого научного сотрудника и выдает все сведения о нем. Если таких сотрудников несколько, то сообщить обо всех. Подсчитать в этом случае их количество. Ввод данных задаются с клавиатуры. Вывести исходные данные в виде таблицы и вывод данных в виде таблицы тоже.

ФИО

Учёная

степень

Год рождения

Количество

статей

Петров Г. В.
Доцент
1975
7
...      

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

textual
Листинг программы
uses crt;
type sotr=record
          fio:string[15];
          stp:string[10];
          grz:integer;
          kst:integer;
          end;
const nmax=20;
var a:array[1..nmax] of sotr;
    n,i,k,min:integer;
begin
repeat
write('Количество сотрудников от 2 до ',nmax,' n=');
readln(n);
until n in [2..nmax];
writeln('Введите данные о сотрудниках');
min:=0;
k:=1;
for i:=1 to n do
 begin
  writeln('Сотрудник ',i);
  with a[i] do
   begin
    write('Фамилия И.О.: ');readln(fio);
    write('Ученая степень: ');readln(stp);
    write('Год рождения: ');readln(grz);
    if grz=min then inc(k)
    else if grz>min then
     begin
      min:=grz;
      k:=1
     end;
    write('Количество статей: ');readln(kst)
   end;
 end;
clrscr;
writeln('Полный список сотрудников');
writeln('--------------------------------------------------------');
writeln('|                 |   Ученая   |            |Количество|');
writeln('|      Ф.И.О      |            |Год рождения|          |');
writeln('|                 |   степень  |            |  статей  |');
writeln('--------------------------------------------------------');
for i:=1 to n do
with a[i] do
 begin
  gotoXY(1,whereY);write('| ',fio);
  gotoXY(19,whereY);write('| ',stp);
  gotoXY(32,whereY);write('|',grz:7);
  gotoXY(45,whereY);write('|',kst:6);
  gotoXY(56,whereY);writeln('|');
 end;
writeln('--------------------------------------------------------');
write('Press Enter');
readln;
if k=1 then writeln('Самый молодой сотрудник')
else writeln('Самые молодые сотрудники');
writeln('--------------------------------------------------------');
writeln('|                 |   Ученая   |            |Количество|');
writeln('|      Ф.И.О      |            |Год рождения|          |');
writeln('|                 |   степень  |            |  статей  |');
writeln('--------------------------------------------------------');
for i:=1 to n do
with a[i] do
if grz=min then
 begin
  gotoXY(1,whereY);write('| ',fio);
  gotoXY(19,whereY);write('| ',stp);
  gotoXY(32,whereY);write('|',grz:7);
  gotoXY(45,whereY);write('|',kst:6);
  gotoXY(56,whereY);writeln('|');
 end;
writeln('--------------------------------------------------------');
if k>1 then write('Их количество=',k)
end.

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

  1. Создается тип данных sotr, который представляет запись о научном сотруднике.
  2. Создается переменная nmax, которая определяет максимальное количество сотрудников, которое можно хранить в массиве a.
  3. Создается переменная a, которая представляет массив для хранения данных о сотрудниках.
  4. Задаются начальные значения переменной n, i, k, min.
  5. В цикле повторяется запрос количества сотрудников и ввод их данных до тех пор, пока n не будет равно максимальному количеству сотрудников.
  6. Внутри цикла выводится информация о каждом сотруднике, включая его фамилию, имя, ученую степень, год рождения и количество статей.
  7. После завершения цикла выводится полный список сотрудников.
  8. Выводится информация о самом молодом сотруднике или о нескольких самых молодых сотрудниках, если есть несколько сотрудников с одинаковым годом рождения.
  9. Завершается программа.

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


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

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

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