Advertisement
Guest User

Untitled

a guest
May 19th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.87 KB | None | 0 0
  1. program konzum:
  2. type radnici=record
  3. ime,prezime,mjesto:string;
  4.              datum_rodenja:record
  5.                       dan,mjesec,godina:integer;
  6.                            end;
  7.              end;
  8. type NIZ= array[1..20] of radnici
  9. var r:radnici; x:NIZ; n:integer;
  10.  
  11. procedure UPIS1(var r:radnici);
  12. begin
  13.  writeln('ucitaj ime');
  14.   readln(r.ime);
  15.  writeln('ucitaj prezime');
  16.   readln(r.prezime);
  17.  writeln('ucitaj mjesto');
  18.   readln(r.mjesto);
  19.  writeln('dan rodenja');
  20.   readln(r.datum_rodenja.dan);
  21.  writeln('mjesec rodenja');
  22.   readln(r.datum_rodenja.mjesec);
  23.  writeln('godina rodenja');
  24.   readln(r.datum_rodenja.godina);
  25. end;
  26.  
  27. procedure UPISSVI(var x:NIZ);
  28. var i:integer;
  29. begin
  30. writeln('ucitaj broj radnika');
  31.  readln(n);
  32.     for i:= 1 to n do UPIS1(x[i]);
  33. end;
  34.  
  35. procedure BLAGAJNICI(var y:NIZ;var j:integer);
  36. var i,k:integer;
  37. begin
  38. j:=0;
  39. for i:=1 to n do if x[i].mjesto='blagajnik' then
  40.            begin
  41.             j:=j+1;
  42.             y[j]:=x[i];
  43.            end;
  44. end;
  45.  
  46. procedure ISPIS_BLAGAJNICI;
  47. var i:integer;
  48. begin
  49. BLAGAJNICI(y,j);
  50. for i:=1 to j do writeln(y[i].ime,' ',y[i].prezime);
  51. end;
  52.  
  53. procedure zamjena(var x,y: radnici);
  54. var f:radnici;
  55. begin
  56. f:=x;
  57. x:=y;
  58. y:=f;
  59. end;
  60.  
  61. procedure sort(var x:NIZ);
  62. var i:integer; s:boolean;
  63. begin
  64.   j:=0;
  65. repeat
  66. s:=false; j:=j+1;
  67.  for i:= 1 to n-j do begin if x[i].prezime>x[i+1].prezime then begin zamjena(x[i],x[i+1]);
  68.    s:=true;
  69.                                                                end;
  70.                      end;
  71. until s=false;
  72. j:=0;
  73. repeat
  74. s:=false; j:=j+1;
  75.  for i:= 1 to n-j do begin if ((x[i].prezime=x[i+1].prezime) and (x[i].ime>x[i+1].ime)) then begin zamjena(x[i],x[i+1]);
  76.    s:=true;
  77.                                                                                              end;
  78.                      end;
  79. until s=false;
  80. end;
  81.  
  82. procedure zaglavlje;
  83. begin
  84. writeln('ime':10,'prezime':10,'mjesto':10,'dan':10,'mjesec':10,'godina':10);
  85. end;
  86.  
  87. procedure tablica(x:NIZ);
  88. var i:integer;
  89. begin
  90. zaglavlje;
  91. for i:= 1 to n do writeln(x[i].ime:10,x[i].prezime:10,x[i].mjesto:10,x[i].datum_rodenja.dan:10,x[i].datum_rodenja.mjesec:10,x[i].datum_rodenja.godina:10);
  92. end;
  93.  
  94. procedure najstariji(x:NIZ);
  95. var r:radnici;
  96. begin
  97. r.datum_rodenja.godina:=x[1].datum_rodenja.godina
  98. for i:= 1  to n do
  99. if r.datum_rodenja.godina>x[i].datum_rodenja.godina then r:=x[i];
  100. for i:= 1  to n do
  101. if ((r.datum_rodenja.godina=x[i].datum_rodenja.godina) and (r.datum_rodenja.mjesec>x[i].datum_rodenja.mjesec))then r:=x[i];
  102. for i:= 1  to n do
  103. if (((r.datum_rodenja.godina=x[i].datum_rodenja.godina) and (r.datum_rodenja.dan>x[i].datum_rodenja.dan)) and
  104.     ((r.datum_rodenja.mjesec=x[i].datum_rodenja.mjesec) and (r.datum_rodenja.dan>x[i].datum_rodenja.dan))) then r:=x[i];
  105. writeln('najstariji',r.ime,' ',r.prezime);
  106. end;
  107.  
  108. begin
  109. UPISSVI(x);
  110. ISPIS_BLAGAJNICI;
  111. sort(x);
  112. tablica(x);
  113. najstariji(x);
  114. end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement