asmodeus94

rekordy (n)

Mar 6th, 2012
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 = 10;
  14. ileWklasie = 40;
  15. var osoba : array [1..n] of dziennik;
  16. x,wybor,nrOsoby,iloscPrzedmiotow,a,b,ktoreMenu,coSkopiuj : byte;
  17. procedure menu(ktoreMenu : byte);
  18. begin
  19. case ktoreMenu of
  20. 1:begin
  21. writeln('1 - wypelnij danej jednej osoby');
  22. writeln('2 - wyswietl dane jednej osoby');
  23. writeln('3 - wyswietl dane wszystkich osob');
  24. writeln('4 - wyswielt dane osoby o najwiekszej sredniej');
  25. writeln('5 - wyswietl dane osoby o najmniejszej sredniej');
  26. writeln('6 - usun rekord');
  27. writeln('7 - Wyswietl od do...');
  28. writeln('8 - sortuj');
  29. writeln('9 - wyjscie');
  30. write('Twoj wybor: ');read(wybor);end;
  31. 2:begin  end;
  32. end;
  33. end;
  34. procedure wypelnijLosowo;
  35. var y,rNr,jest : byte;
  36. begin randomize;
  37. for x:=1 to n do begin
  38. REPEAT jest:=1;
  39. rNr:=random(ileWklasie)+1;
  40.     for y:=1 to x do begin
  41.         if rNr=osoba[y].nr then begin jest:=0;break;end;
  42.     end;
  43. UNTIL jest=1;
  44. osoba[x].Nr:=rNr;osoba[x].nazwisko:=chr(random(25)+61);
  45. osoba[x].ocena_polski:=random(6)+1;osoba[x].ocena_matematyka:=random(6)+1;
  46. osoba[x].ocena_mepr:=random(6)+1;
  47. osoba[x].srednia:=(osoba[x].ocena_polski+osoba[x].ocena_matematyka+osoba[x].ocena_mepr)/3;
  48. end;
  49. end;
  50. procedure jednaOsobaWpr;
  51. var y,schowek,jest,enda : byte;
  52. begin jest:=0;
  53.       for x:=1 to n do begin
  54.           if osoba[x].nr=0 then begin jest:=1;break;end;end;
  55.           if jest=1 then begin
  56.           write('Podaj numer osoby: ');
  57.           readln(schowek);
  58.           enda:=1;
  59.               for y:=1 to n do begin
  60.                   if osoba[y].nr=schowek then begin
  61.                   write('Uczen o takim numerze juz istnieje (',osoba[y].nazwisko,')');
  62.                   readkey;enda:=0;break;end;
  63.               end;
  64.           if enda = 1 then begin
  65.           osoba[x].nr:=schowek;
  66.           write('Wpisz nazwisko: ');readln(osoba[x].nazwisko);
  67.           write('Wpisz ocene z polskiego: ');readln(osoba[x].ocena_polski);
  68.           write('Wpisz ocene z matematyki: ');readln(osoba[x].ocena_matematyka);
  69.           write('Wpisz ocene z mepr-u: ');readln(osoba[x].ocena_mepr);
  70.           osoba[x].srednia:=(osoba[x].ocena_polski+osoba[x].ocena_matematyka+osoba[x].ocena_mepr)/iloscPrzedmiotow;
  71.           write('Dodano.');delay(1500);end;
  72.           end ELSE begin write('Dziennik zapelniony (maks: ',n,' osob)');readkey;end;
  73. end;
  74. procedure jednaOsobaZcz;
  75. var jest : byte;
  76. begin jest:=0;
  77. write('Podaj nr osoby: ');read(nrOsoby);
  78. for x:=1 to n do begin
  79.     if osoba[x].nr = nrOsoby then begin
  80.     write('Nr ',nrOsoby,' to ',osoba[x].nazwisko);
  81.     write(' ocena z polskiego: ',osoba[x].ocena_polski);
  82.     write(' ocena z matematyki: ',osoba[x].ocena_matematyka);
  83.     writeln(' ocena z mepr-u: ',osoba[x].ocena_mepr);write('srednia: ',osoba[x].srednia:2:2);
  84.     jest:=1;break;
  85.     end;
  86. end;if jest=0 then write('Nie ma ucznia o takim numerze.');
  87. end; {schowek do 3(2), 7(2), 8(1)}
  88. procedure bigSchowek(coSkopiuj : byte);
  89. begin
  90. case coSkopiuj of
  91. 1:begin
  92. end;
  93. 2:begin
  94.     write('Nr ',osoba[x].nr,' to ',osoba[x].nazwisko);
  95.     write(' ocena z polskiego: ',osoba[x].ocena_polski);
  96.     write(' ocena z matematyki: ',osoba[x].ocena_matematyka);
  97.     writeln(' ocena z mepr-u: ',osoba[x].ocena_mepr);write('srednia: ',osoba[x].srednia:2:2);writeln;
  98. end; {wypisywanie}
  99. end;
  100. end;
  101. procedure wysWszystkich;
  102. var jest : byte;
  103. begin jest:=0;
  104. for x:=1 to n do begin
  105.     if osoba[x].nr<>0 then begin
  106.     coSkopiuj:=2;bigSchowek(coSkopiuj);
  107.     jest:=1;
  108.     end;
  109. end;if jest=0 then write('Pusto...');
  110. end;
  111. procedure najwiekszaSr;
  112. var poz,jest : byte;
  113. max : real;
  114. begin jest:=0;max:=0;
  115. for x:=1 to n do begin
  116.     if (osoba[x].srednia>max)AND(osoba[x].srednia<>0) then begin max:=osoba[x].srednia;poz:=x;jest:=1;end;
  117. end;
  118. if jest = 1 then begin write('Najwieksza srednia ma nr ',osoba[poz].nr,'. (',osoba[poz].nazwisko);
  119. write(') i wynosi ona: ',osoba[poz].srednia:2:2);end
  120. ELSE write('Pusto...');
  121. end;
  122. procedure najmniejszaSr;
  123. var poz,jest : byte;
  124. min : real;
  125. begin jest:=0;min:=255;
  126. for x:=1 to n do begin
  127.     if (osoba[x].srednia<min)AND(osoba[x].srednia<>0) then begin min:=osoba[x].srednia;poz:=x;jest:=1;end;
  128. end;
  129. if jest = 1 then begin write('Najmniejsza srednia ma nr ',osoba[poz].nr,'. (',osoba[poz].nazwisko);
  130. write(') i wynosi ona: ',osoba[poz].srednia:2:2);end
  131. ELSE write('Pusto...');
  132. end;
  133. procedure usunRekord;
  134. var jest,schowekNumer : byte;
  135. schowekNazwisko : string[20];
  136. begin jest:=0;write('Podaj nr osoby: ');read(nrOsoby);
  137. for x:=1 to n do begin
  138.     if osoba[x].nr=nrOsoby then begin
  139.        schowekNumer:=osoba[x].nr;osoba[x].nr:=0;schowekNazwisko:=osoba[x].nazwisko;
  140.        osoba[x].nazwisko:='';osoba[x].ocena_polski:=0;
  141.        osoba[x].ocena_matematyka:=0;osoba[x].ocena_mepr:=0;osoba[x].srednia:=0;jest:=1;
  142.        break;
  143.     end;
  144. end;
  145. if jest=0 then write('Nie ma osoby o tym numerze') ELSE begin write('Numer ',schowekNumer);
  146. write('. (',schowekNazwisko,') zostal usuniety z dziennika');end;
  147. end;
  148. procedure wyswietlOdDo(a,b : byte);
  149. begin
  150. for x:=a to b do begin
  151.     if osoba[x].nr<>0 then begin coSkopiuj:=2;bigSchowek(coSkopiuj);end;
  152. end;
  153. end;
  154. procedure sortowanie;
  155. begin
  156.  
  157. end;
  158. procedure all;
  159. begin wypelnijLosowo;
  160. iloscPrzedmiotow:=3;
  161. REPEAT
  162. ktoreMenu:=1;menu(ktoreMenu);
  163. case wybor of
  164. 1:begin jednaOsobaWpr;end;
  165. 2:begin jednaOsobaZcz;readkey;end;
  166. 3:begin wysWszystkich;readkey;end;
  167. 4:begin najwiekszaSr;readkey;end;
  168. 5:begin najmniejszaSr;readkey;end;
  169. 6:begin usunRekord;readkey;end;
  170. 7:begin
  171. REPEAT
  172. write('Podaj od ktorego nr indeksu: ');read(a);write('Do ktorego numeru indeksu: ');read(b);clrscr;wyswietlOdDo(a,b);
  173. UNTIL (a<=b)AND(a>0)AND(b<=n);readkey;end;
  174. 8:begin end;
  175. end;
  176. clrscr;
  177. UNTIL wybor=9;
  178. end;{eng...}
  179. begin clrscr;
  180. all;
  181. end.
Advertisement
Add Comment
Please, Sign In to add comment