Опишите, используя структуру записи, вступительные экзамены на которых абитуриенты сдавали три экзамена, а для поступления надо было набрать 12 балов. Составьте программу, считывающую с файла результаты всех вступительных экзаменов и выводящую на экран следующую информацию:1.список абитуриентов, сдавших все три экзамена на 5;2.список абитуриентов, потерпевших неудачу на экзаменах;3.список абитуриентов, зачисленных в институт — Pascal(Паскаль)

Пример 1 записи входного файла «db.txt»:
Sergeeva
4
4
4

Program PascalGuru;

uses crt;

type
  all = record
    fio: string;
    oc1: real;
    oc2: real;
    oc3: real;
  end;

var
  f: text;
  db: array [1 .. 26] of all;
  i: integer;
  n: integer;

procedure menu; forward;

procedure vyvod;
var
  i: integer;
begin
  clrscr;
  for i := 1 to n do
    writeln(db[i].fio:15, '- ', ': ', db[i].oc1:0:2, '; ', db[i].oc2:0:2, '; ',
      db[i].oc3:0:2);

  readln;
  menu;
end;

{ }
procedure menu1;
var
  i: integer;
begin
  clrscr;
  for i := 1 to n do
  begin
    if (db[i].oc1 = 5) and (db[i].oc2 = 5) and (db[i].oc3 = 5) then
      writeln(db[i].fio:15, '- ', ': ', db[i].oc1:0:2, '; ', db[i].oc2:0:2,
        '; ', db[i].oc3:0:2);
  end;
  readln;
  menu;
end;

{ }
procedure menu2;
var
  i: integer;
begin
  clrscr;
  for i := 1 to n do
  begin
    if (db[i].oc1 + db[i].oc2 + db[i].oc3) < 12 then
      writeln(db[i].fio:15, '- ', ': ', db[i].oc1:0:2, '; ', db[i].oc2:0:2,
        '; ', db[i].oc3:0:2);
  end;
  readln;
  menu;
end;

{ }
procedure menu3;
var
  i: integer;
begin
  clrscr;
  for i := 1 to n do
  begin
    if (db[i].oc1 + db[i].oc2 + db[i].oc3) >= 12 then
      writeln(db[i].fio:15, '- ', ': ', db[i].oc1:0:2, '; ', db[i].oc2:0:2,
        '; ', db[i].oc3:0:2);
  end;
  readln;
  menu;
end;

{ 0000000000000000000 }
procedure menu;
var
  i: integer;
begin
  clrscr;
  writeln('Rabota s "db.txt"');
  writeln;
  writeln('1. spisok abiturientov, sdavshih vse tri ekzamena na 5;');
  writeln;
  writeln('2. spisok abiturientov, poterpevshih neudachu na ekzamenah;');
  writeln;
  writeln('3. spisok abiturientov, zachislennyh v institut.');
  writeln;
  writeln;
  writeln;
  writeln('4. Vyvesti spisok VSEX uchenikov iz bazy!!!');
  readln(i);
  if i = 1 then
    menu1;
  if i = 2 then
    menu2;
  if i = 3 then
    menu3;
  if i = 4 then
    vyvod;
end;

{ -----------------begin---------------------- }
begin
  assign(f, 'db.txt');
  reset(f);
  i := 0;
  while not eof(f) do
  begin
    inc(i);
    readln(f, db[i].fio);
    readln(f, db[i].oc1);
    readln(f, db[i].oc2);
    readln(f, db[i].oc3);
  end;
  n := i;
  { ----------------------- }
  menu;

  close(f);

end.

Leave a Comment

71 + = 81