М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Свєтлана1
Свєтлана1
19.02.2021 19:28 •  Информатика

Нужно составить описание к программе( - составить список, содержащий сведения об n студентах. для каждого студента должно быть указано: - фамилия; - инн; - дата рождения; - год поступления в университет; - курс; - группа; - оценки текущей сессии по трем предметам. информацию о каждом студенте оформить в виде записи. совокупность записей объединить в массив. составить программу, которая обеспечивает ввод исходных данных, обработку и вывод на экран информации в соответствии с вариантом . вывести на экран фамилии трех самых молодых студентов) program pr5; const n = 5; type student = record fam: string; inn: string; year: integer; god_p: integer; kurs: 1..5; gruppa: string; b1, b2, b3: 1..5; end; var spisok: array [1..n] of student; ff: text; b, a: string; i, j, k1: integer; begin for i : = 1 to n do with spisok[i] do begin writeln('введите фамилию'); readln(fam); writeln('введите инн'); readln(inn); writeln('введите три оценки'); readln(b1, b2, b3); writeln('год поступления'); readln(god_p); writeln('курс'); readln(kurs); writeln('группа'); readln(gruppa); writeln('введите дату рождения(mmdd)без пробелов и точек всё пишем слитно(19971231)'); readln(year); end; for i : = 1 to n - 1 do for j : = 1 to n - i do if spisok[j].year > spisok[j + 1].year then begin k1 : = spisok[j].year; a : = spisok[j].fam; spisok[j].year : = spisok[j + 1].year; spisok[j].fam : = spisok[j + 1].fam; spisok[j + 1].year : = k1; spisok[j + 1].fam : = a end; writeln; for i : = 1 to 3 do begin write(spisok[i].fam); writeln; end; end.

👇
Ответ:
kristinabuslae
kristinabuslae
19.02.2021
Описывается список с полями согласно заданию
type
     student = Record
     fam: String;
     inn: string;
     Year: integer;
     god_p: integer;
     kurs: 1..5;
     gruppa: string;
b1, b2, b3: 1..5;
End;

Объявляются необходимые переменные и массив с типом записи
var
     spisok: Array [1..N] Of student;
     b, a: string;
     i, j, k1: Integer;
И заполняется от 1 до N (N=5 установлена константа)
for i := 1 To N Do // идем от 1 до N  и заполняем список
    with spisok[i] Do
        begin
            Writeln('Введите фамилию');Readln(fam);
            {}
end;
Потом обрабатывается согласно заданию по вариантам
Скорее всего, что-то типо сортировки по году рождения, самых молодых пихают в начало.(глупо. можно было не городить такой кусок кода, а уместить все в один цикл с проверкой и выводом ИМХО)
Затем выводится 3 фамилии самых молодых

for i := 1 to 3 do
begin
write(spisok[i].fam);
writeln;
end;
4,4(92 оценок)
Открыть все ответы
Ответ:
Cyndyma
Cyndyma
19.02.2021
Программу надо сформатировать и тогда её структура будет видна лучше.
А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".

var
  s, k: integer;
label
  met;
begin
  s:=-12;
  k:=90;
  Writeln('s=',s,', k=',k);
  s:=s+10;
  Writeln('s=',s);
met:
  Writeln('Метка met:');
  k:=k+10; Write('k=',k);
  if k<200 then s:=50 else s:=s+k;
  Writeln(', s=',s);
  if k<200 then goto met;
  Writeln('Результат: s=',s)
end.

Результат выполнения программы:
s=-12, k=90
s=-2
Метка met:
k=100, s=50
Метка met:
k=110, s=50
Метка met:
k=120, s=50
Метка met:
k=130, s=50
Метка met:
k=140, s=50
Метка met:
k=150, s=50
Метка met:
k=160, s=50
Метка met:
k=170, s=50
Метка met:
k=180, s=50
Метка met:
k=190, s=50
Метка met:
k=200, s=250
Результат: s=250
4,4(22 оценок)
Ответ:
bilainфом
bilainфом
19.02.2021
//Pascal
  var a,b, I, maxsumm, max : integer;
 
  function summdel(x:integer):integer; //результат - сумма делителей х
  var k,sum:integer;
  begin
    sum:=0;
    for k := 1 to x div 2 + 1 do
      if x mod k = 0 then sum:= sum+k;
    summdel:=sum;
  end;
 
  begin
   writeln('Введите границы a,b ');
   readln(a,b);
    maxsumm := 1;
    max := 1;
    for i := a to b do
     begin
        if summdel(i) > maxsumm then
          begin maxsumm:= summdel(i);
            max := i;
          end;
     end;
     writeLn('Максимальная сумма делителей - ', maxsumm, ' число - ',max)
  end.
4,4(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ