Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type student = record
- name,surname:string;
- inf,phys,math:integer;
- end;
- const N = 15;
- var stud:student;
- i,j,k,menu,iii,ppp,mmm:integer;
- p:string;
- students: array [1..N] of student;
- found:boolean;
- procedure readstudent(var stud:student);
- begin
- read(stud.name);
- read(stud.surname);
- read(stud.inf,stud.phys,stud.math);
- end;
- procedure sortstudent(var stud1,stud2:student);
- var k:student;
- begin
- k:=stud1;
- stud1:=stud2;
- stud2:=k;
- end;
- procedure writestudent(var stud:student);
- begin
- writeln(stud.name,' ',stud.surname,' ',stud.inf,' ',stud.phys,' ',stud.math);
- end;
- begin
- found:=false;
- iii:=0; ppp:=0; mmm:=0;
- writeln('Выберите действие: ');
- writeln('1. Ввести массив студентов',#13,'2. Отсортировать по информатике',#13,'3. Отсортировать по имени',#13,'4. Отсортировать по среднему баллу',#13,'5. Вывести первого двоечника',#13,'6. Вывести последнего троечника',#13,'7. Вывести всех отличников',#13,'8. Вывести средние баллы по предметам',#13,'9. Выход');
- repeat
- read(menu);
- case menu of
- 1: for i:=1 to N do readstudent(students[i]);
- 2: begin
- for i:=1 to N-1 do
- for j:=1 to N-i do
- if students[j].inf > students[j+1].inf then sortstudent(students[j],students[j+1]);
- for i:=1 to N do
- writestudent(students[i]);
- end;
- 3: begin
- for i:=1 to N-1 do
- for j:=1 to N-i-1 do
- if students[j].surname > students[j+1].surname then sortstudent(students[j],students[j+1]);
- for i:=1 to N do writestudent(students[i]);
- end;
- 4:begin
- for i:=1 to N-1 do
- for j:=1 to N-i-1 do
- if (students[j].inf + students[j].phys + students[j].math)/3 > (students[j+1].inf + students[j+1].phys + students[j+1].math)/3 then sortstudent(students[j],students[j+1]);
- for i:=1 to N do writestudent(students[i]);
- end;
- 5: begin
- for i:=1 to N do
- if not (found) then
- if (students[i].inf = 2) or (students[i].phys = 2) or (students[i].math = 2) then begin
- writestudent(students[i]); found:=true;
- end;
- end;
- 6: begin
- for i:=N downto 1 do
- if not (found) then
- with students[i] do
- if (inf = 3) or (phys = 3) or (math = 3) then begin
- writestudent(students[i]); found:=true;
- end;
- end;
- 7: begin
- for i:=1 to N do
- with students[i] do
- if (inf = 5) and (phys = 5) and (math = 5) then writestudent(students[i]);
- end;
- 8: begin
- for i:=1 to N do begin
- iii:=iii+students[i].inf;
- ppp:=ppp+students[i].phys;
- mmm:=mmm+students[i].math;
- end;
- writeln(iii/N,#13,ppp/N,#13,mmm/N);
- end;
- end;
- until (menu = 9);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement