Tytu³: Sortowanie Wiadomo¶æ wys³ana przez: admin Marzec 26, 2012, 08:56:09 Napisaæ program który prosi o podanie nazwiska i oceny ucznia. Imie i nazwisko umieszczone ma zostaæ w rekordzie. Zadeklarowaæ tablicê rekordów sk³adaj±ca siê z 10 pól. Nastêpnie wprowadziæ zmienne (nazwisko, ocena). Wykorzystuj±c sortowanie uporz±dkowaæ uczniów w kolejno¶ci otrzymanych ocen.Wykorzystaæ sortowanie b±belkowe.
program as; uses crt, dos; type uczen = record nazwisko: string; ocena: Byte; end; procedure Sort(var X: array of uczen); var Temp: uczen; r: Integer; zmiana: Boolean; begin repeat zmiana:= False; for r:= 0 to High(X) - 1 do if X[r].ocena < X[r + 1].ocena then begin Temp:= X[r]; X[r]:= X[r + 1]; X[r + 1]:= Temp; zmiana:= True; end; until not zmiana; end; var uczniowie: array [0 .. 9] of uczen; r: Integer; begin Writeln('Prosze podac nazwiska i oceny 10 uczniow'); for r:= 0 to High(uczniowie) do begin Write('Uczen #', r + 1, ' nazwisko : '); Readln(uczniowie[r].nazwisko); Write('uczen #', r + 1, ' ocena : '); Readln(uczniowie[r].ocena); Writeln; end; Sort(uczniowie); Writeln; Writeln('Oceny po sortowaniu: '); Writeln('----------------------'); for r:= 0 to High(uczniowie) do begin Writeln('# ', r + 1, ' ', uczniowie[r].nazwisko, ' otrzymal ocene (', uczniowie[r].ocena, ')'); end; Write('Nacisnij dowolny klawisz by wyjsc'); Readln; end. Tytu³: Odp: Sortowanie Wiadomo¶æ wys³ana przez: admin Marzec 26, 2012, 10:18:34 Sortowanie przez wybieranie jest podobne do sortowania b±belkowego lecz algorytm jest du¿o szybszy.
program wybieranie; uses crt,dos; procedure wyb(var X: array of Integer); var r: Integer; j: Integer; mala: Integer; mniejsza: Integer; begin for r:= 0 to High(X) -1 do begin mala:= r; mniejsza:= X[mala]; for j:= r + 1 to High(X) do if X[j] < mniejsza then begin mala:= j; mniejsza:= X[mala]; end; X[mala]:= X[r]; X[r]:= mniejsza; end; end; var liczby: array [0 .. 9] of Integer; r: Integer; begin Writeln('Prosze podac 10 liczb'); for r:= 0 to High(liczby) do begin Write('#', r + 1, ': '); Readln(liczby[r]); end; wyb(liczby); Writeln; Writeln('Liczby po sortowaniu: '); for r:= 0 to High(liczby) do begin Writeln(liczby[r]); end; Write('Nacisnij dowolny klawisz aby zamknac'); readln; end. |