asmodeus94

rekordy

Mar 5th, 2012
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.08 KB | None | 0 0
  1. program rekordy;
  2. uses crt;
  3. type
  4. dziennik=record
  5. nr : byte;
  6. nazwisko : string[20];
  7. ocena_polski : byte;
  8. ocena_matematyka : byte;
  9. ocena_mepr : byte;
  10. srednia : real;
  11. end;
  12. const
  13. n = 3;
  14. var osoba : array [1..n] of dziennik;
  15. wybor,nrOsoby,iloscPrzedmiotow : byte;
  16. procedure menu;
  17. begin
  18. writeln('1 - wypelnij danej jednej osoby');
  19. writeln('2 - wyswietl dane jednej osoby');
  20. writeln('3 - wyswietl dane wszystkich osob');
  21. writeln('4 - wyswielt dane osoby o najwiekszej sredniej');
  22. writeln('5 - wyswietl dane osoby o najmniejszej sredniej');
  23. writeln('6 - usun rekord');
  24. writeln('7 - wyjscie');
  25. write('Twoj wybor: ');read(wybor);
  26. end;
  27. procedure jednaOsobaWpr;
  28. var x,jest : byte;
  29. begin jest:=0;
  30.       for x:=1 to n do begin
  31.           if osoba[x].nr=0 then begin jest:=1;break;end;end;
  32.           if jest=1 then begin
  33.           write('Podaj numer osoby: ');readln(osoba[x].nr);
  34.           write('Wpisz nazwisko: ');readln(osoba[x].nazwisko);
  35.           write('Wpisz ocene z polskiego: ');readln(osoba[x].ocena_polski);
  36.           write('Wpisz ocene z matematyki: ');readln(osoba[x].ocena_matematyka);
  37.           write('Wpisz ocene z mepr-u: ');readln(osoba[x].ocena_mepr);
  38.           osoba[x].srednia:=(osoba[x].ocena_polski+osoba[x].ocena_matematyka+osoba[x].ocena_mepr)/iloscPrzedmiotow;
  39.           write('Dodano.')
  40.           end ELSE write('Dziennik zapelniony (liczba osob)');
  41. end;
  42. procedure jednaOsobaZcz;
  43. var x,jest : byte;
  44. begin jest:=0;
  45. write('Podaj nr osoby: ');read(nrOsoby);
  46. for x:=1 to n do begin
  47.     if osoba[x].nr = nrOsoby then begin
  48.     write('Nr ',nrOsoby,' to ',osoba[x].nazwisko);
  49.     write(' ocena z polskiego: ',osoba[x].ocena_polski);
  50.     write(' ocena z matematyki: ',osoba[x].ocena_matematyka);
  51.     writeln(' ocena z mepr-u: ',osoba[x].ocena_mepr);write('srednia: ',osoba[x].srednia:2:2);
  52.     jest:=1;break;
  53.     end;
  54. end;if jest=0 then write('Nie ma ucznia o takim numerze.');
  55. end;
  56. procedure wysWszystkich;
  57. var x,jest : byte;
  58. begin jest:=0;
  59. for x:=1 to n do begin
  60.     if osoba[x].nr<>0 then begin
  61.     write('Nr ',osoba[x].nr,' to ',osoba[x].nazwisko);
  62.     write(' ocena z polskiego: ',osoba[x].ocena_polski);
  63.     write(' ocena z matematyki: ',osoba[x].ocena_matematyka);
  64.     writeln(' ocena z mepr-u: ',osoba[x].ocena_mepr);write('srednia: ',osoba[x].srednia:2:2);writeln;
  65.     jest:=1;
  66.     end;
  67. end;if jest=0 then write('Pusto...');
  68. end;
  69. procedure najwiekszaSr;
  70. var x,poz,jest : byte;
  71. max : real;
  72. begin jest:=0;max:=0;
  73. for x:=1 to n do begin
  74.     if (osoba[x].srednia>max)AND(osoba[x].srednia<>0) then begin max:=osoba[x].srednia;poz:=x;jest:=1;end;
  75. end;
  76. if jest = 1 then begin write('Najwieksza srednia ma nr ',osoba[poz].nr,'. (',osoba[poz].nazwisko);
  77. write(') i wynosi ona: ',osoba[poz].srednia:2:2);end
  78. ELSE write('Pusto...');
  79. end;
  80. procedure najmniejszaSr;
  81. var x,poz,jest : byte;
  82. min : real;
  83. begin jest:=0;min:=255;
  84. for x:=1 to n do begin
  85.     if (osoba[x].srednia<min)AND(osoba[x].srednia<>0) then begin min:=osoba[x].srednia;poz:=x;jest:=1;end;
  86. end;
  87. if jest = 1 then begin write('Najmniejsza srednia ma nr ',osoba[poz].nr,'. (',osoba[poz].nazwisko);
  88. write(') i wynosi ona: ',osoba[poz].srednia:2:2);end
  89. ELSE write('Pusto...');
  90. end;
  91. procedure usunRekord;
  92. var x,jest,schowekNumer : byte;
  93. schowekNazwisko : string[20];
  94. begin jest:=0;write('Podaj nr osoby: ');read(nrOsoby);
  95. for x:=1 to n do begin
  96.     if osoba[x].nr=nrOsoby then begin
  97.        schowekNumer:=osoba[x].nr;osoba[x].nr:=0;schowekNazwisko:=osoba[x].nazwisko;
  98.        osoba[x].nazwisko:='';osoba[x].ocena_polski:=0;
  99.        osoba[x].ocena_matematyka:=0;osoba[x].ocena_mepr:=0;osoba[x].srednia:=0;jest:=1;
  100.        break;
  101.     end;
  102. end;
  103. if jest=0 then write('Nie ma osoby o tym numerze') ELSE begin write('Numer ',schowekNumer);
  104. write('. (',schowekNazwisko,') zostal usuniety z dziennika');end;
  105. end;
  106. procedure all;
  107. begin
  108. iloscPrzedmiotow:=3;
  109. REPEAT
  110. menu;
  111. case wybor of
  112. 1:begin jednaOsobaWpr;end;
  113. 2:begin jednaOsobaZcz;end;
  114. 3:begin wysWszystkich;end;
  115. 4:begin najwiekszaSr;end;
  116. 5:begin najmniejszaSr;end;
  117. 6:begin usunRekord;end;
  118. end;
  119. readkey;clrscr;
  120. UNTIL wybor=7;
  121. end;{eng...}
  122. begin clrscr;
  123. all;
  124. end.
Advertisement
Add Comment
Please, Sign In to add comment