Darmowe Forum
Maj 07, 2024, 21:26:25 *
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Forum zostało uruchomione!
 
   Strona główna   Pomoc Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: Rekordy  (Przeczytany 5989 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : Luty 13, 2012, 10:20:53 »

W Pascalu istnieje możliwość deklarowania własnych typów zmiennych.
Przykład deklaracji nowego typu zmiennych o nazwie wycior będącego tablicą 1000 elementową.


program aa;
uses crt,dos;
type wycior= array[1..1000] of real;
var x,y,z:real;
a:wycior;
begin
  a[1]:=1;
   readkey;
end.
« Ostatnia zmiana: Luty 13, 2012, 10:54:30 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #1 : Luty 13, 2012, 10:57:50 »

Przykład 1. Zadeklarować trzy typy zmiennych , będące typu tablicowego (tablice dwu i trój wymiarowe).

program ramzes;
uses crt,dos;
type bobo=array['A'..'F',1..10] of integer;
aska=array[1..30] of byte;
lobo= array['A'..'H',1..10,1..10] of byte;
robo= array[1..10] of bobo;
var x:integer;
y:robo;
begin
       clrscr;
  {y[1,1,1]:=6;}
  readkey;
end.
« Ostatnia zmiana: Luty 20, 2012, 12:59:19 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #2 : Luty 13, 2012, 10:59:48 »

Przykład 2. Proszę napisać program który do tablic: imie, nazwisko, wiek, ocena wczyta dane wpisywane z klawiatury. Program wykonać korzystając z procedur.


program ramzes2;
uses crt,dos;
var
imie: array[1..10] of string;
nazwisko:array[1..10] of string;
wiek:array[1..10] of byte;
ocena:array[1..10] of byte;
 a,c,d:integer;

 procedure wpisz( var a:integer);
 begin
 write('Podaj imie: ');readln(imie[a]);
 write('Podaj nazwisko: ');readln(nazwisko[a]);
 write('Podaj wiek: ');readln(wiek[a]);
 write('Podaj ocene: ');readln(ocena[a]);
 end;

procedure ktory;
var x:integer;
begin x:=0;
repeat
 x:=x+1;
 wpisz(x);
until x=4;
end;
procedure pokaz;
var a,b:integer;
begin
for a:=1 to 4 do begin
writeln('Imie: ',imie[a]);
 writeln('nazwisko: ',nazwisko[a]);
 writeln('wiek: ',wiek[a]);
 writeln('ocena: ',ocena[a]);
 writeln;
end;
end;

begin
       clrscr;
      ktory; clrscr;delay(1000);pokaz;
  readkey;
end.

Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #3 : Marzec 05, 2012, 08:20:42 »

Rekord -Typ rekordowy jest połączeniem kilku tabel pod wspólna nazwą.
Deklaracja zmiennej rekordowej ma postać:

Nazwa zmiennej:record;
Nazwa-pola:typ-pola;
Nazwa pola :typ-pola;
end;

Przykład deklaracji rekordu

Program rekord1;
uses crt,dos;
type
dane=record
imie:string[15];
nazwisko:string[20];
plec:char;
wiek:byte;
dochody: single;
miasto :string;
end;
var pracownik:dane;
begin end.
« Ostatnia zmiana: Marzec 05, 2012, 09:20:11 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : Marzec 05, 2012, 09:25:04 »

Przykład 1. Napisać program deklarujący typ rekordowy i zmienną pracownik typu rekordowego. Nastepnie wczytać do rekordu dane pracownika.

Program rekord1;
uses crt,dos;
type
dane=record
imie:string[15];
nazwisko:string[20];
plec:char;
wiek:byte;
dochody: single;
miasto :string;
end;
var pracownik: dane;
begin
write('Podaj nazwisko pracownika:');readln(pracownik.nazwisko);


end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #5 : Marzec 05, 2012, 10:04:55 »

Przykład 1A. Podobne do poprzedniego tylko z wszystkimi pytaniami.

Program rekord1;
uses crt,dos;
type
dane=record
imie:string[15];
nazwisko:string[20];
plec:char;
wiek:byte;
dochody: real;
miasto :string;
end;
var pracownik: dane;
begin  clrscr;
 write('Podaj imie pracownika:');readln(pracownik.imie);
write('Podaj nazwisko pracownika:');readln(pracownik.nazwisko);
write('Podaj nazwisko plec:');readln(pracownik.plec);
 write('Podaj nazwisko plec:');readln(pracownik.wiek);
 write('Podaj nazwisko plec:');readln(pracownik.dochody);
 write('Podaj nazwisko plec:');readln(pracownik.miasto);

  readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #6 : Marzec 05, 2012, 10:25:36 »

Przykład 2. Rekordy gdy mamy kilku pracowników

Program rekord1;
uses crt,dos;
type
dane=record
imie:string[15];
nazwisko:string[20];
plec:char;
wiek:byte;
dochody: real;
miasto :string;
end;
var pracownik: array[1..5] of dane;
begin  clrscr;
 write('Podaj imie pracownika:');readln(pracownik[1].imie);
write('Podaj nazwisko pracownika:');readln(pracownik[1].nazwisko);
write('Podaj nazwisko plec:');readln(pracownik[1].plec);
 write('Podaj nazwisko plec:');readln(pracownik[1].wiek);
 write('Podaj nazwisko plec:');readln(pracownik[1].dochody);
 write('Podaj nazwisko plec:');readln(pracownik[1].miasto);
end.
« Ostatnia zmiana: Marzec 05, 2012, 10:34:35 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #7 : Marzec 05, 2012, 10:29:00 »

Przykład 3. Zmodyfikować przykład 2, tak aby można było wprowadzić dane 5 pracowników. Ograniczyć wprowadzanie do 3 pierwszych pól.

Program rekord1;
uses crt,dos;
type
dane=record
imie:string[15];
nazwisko:string[20];
plec:char;
wiek:byte;
dochody: real;
miasto :string;
end;
var pracownik: array[1..5] of dane;
a:byte;
begin  clrscr;
 for a:=1 to 5 do begin
 write('Podaj imie ',a,' pracownika:');readln(pracownik[a].imie);
write('Podaj nazwisko ',a,' pracownika:');readln(pracownik[a].nazwisko);
write('Podaj nazwisko plec:');readln(pracownik[a].plec);
write('Podaj wiek:');readln(pracownik[a].wiek);
 write('Podaj dochody:');readln(pracownik[a].dochody);
 write('Podaj miasto:');readln(pracownik[a].miasto);
  end;
  readkey;
end.
« Ostatnia zmiana: Marzec 05, 2012, 11:07:12 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #8 : Marzec 12, 2012, 08:39:12 »

Zadanie 4. Zadeklarować rekord o nazwie uczen zawierający pola : imie, nazwisko, data_urodzenia, miasto, ulica. Następnie zadeklarować zmienną  o nazwie baza będącą tablicą ( dowolnej wielkości) będącej typu uczen.

program a;
uses crt,dos;
type uczen=record
imie: string;
nazwisko:string;
dat_ur: word;
miasto: string;
ulica: string;
end;

var baza:array[1..10] of uczen;
begin

end.
« Ostatnia zmiana: Marzec 12, 2012, 08:41:50 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #9 : Marzec 12, 2012, 10:23:28 »

Zadanie ze sprawdzianu, poniedziałek

program a;
uses crt,dos;
type dane=record
imie: string;
nazwisko:string;
wiek:integer;
plec:char;
dochody:word;
miasto: string;

end;

var pracownik:array[1..6] of dane;
var a:integer;
begin
  clrscr;
  for a:=1 to 6 do begin

  write('Podaj imie: ');readln(pracownik[a].imie);
  write('Podaj nazwisko: ');readln(pracownik[a].nazwisko);
  write('Podaj wiek: ');readln(pracownik[a].wiek);
  write('Podaj plec: ');readln(pracownik[a].plec);
  write('Podaj dochody: ');readln(pracownik[a].dochody);
  write('Podaj miasto: ');readln(pracownik[a].miasto);
 end;
« Ostatnia zmiana: Marzec 12, 2012, 10:30:00 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #10 : Marzec 12, 2012, 11:07:29 »

Zadanie 6. Napisać program który deklaruje zmienną człowiek, będącą typu rekordowego. W rekordzie proszę zadeklarować dwa pola: imiemasa_ciala. Zadeklarować zmienną rank będącą typu czlowiek. W programie głównym napisać:
1. pętlę wprowadzającą dane do pól zmiennej rank.
2. Algorytm wyszukujący osobę o najmniejszej masie ciała i wyświetlający jego imię i masę ciała.



program a6;
uses crt,dos;
             type czlowiek=record
                                 imie: string;
                                 masa:real;
                                 end;


var rank : array[1..4] of czlowiek;
a,d:integer;
c:real;
begin   clrscr;
for a:=1 to 4 do
            begin
            write(a,'Podaj imie: ');readln(rank[a].imie);
            write('  Podaj mase ciala: ');readln(rank[a].masa);
            end;
             c:=rank[1].masa;

for a:=1 to 4 do begin
              if (rank[a].masa<c) then begin c:=rank[a].masa; d:=a;end;

                 end;
writeln('Osoba o najmniejszej masie ciala to...',rank[d].imie,' o masie: ',rank[d].masa:0:1);

 readkey;
end.

---------tak samo jak wyżej, tylko obliczenia w procedurze misio ---------------------------
program a6;
uses crt,dos;
             type czlowiek=record
                                 imie: string;
                                 masa:real;
                                 end;


var rank : array[1..4] of czlowiek;
a,d:integer;
c:real;
procedure misio;begin  clrscr;
for a:=1 to 4 do
            begin
            write(a,'Podaj imie: ');readln(rank[a].imie);
            write('  Podaj mase ciala: ');readln(rank[a].masa);
            end;
             c:=rank[1].masa;

for a:=1 to 4 do begin
              if (rank[a].masa<c) then begin c:=rank[a].masa; b:=a;end;

                 end;
writeln('Osoba o najmniejszej masie ciala to...',rank[d].imie,' o masie: ',rank[d].masa:0:1);

 readkey;     end;
 begin
 misio;
end.
« Ostatnia zmiana: Marzec 12, 2012, 12:28:24 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #11 : Marzec 26, 2012, 08:53:59 »

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.

program as;
uses crt, dos;
type
uczen = record
nazwisko: string;
ocena: Byte;
end;
procedure Sort(var X: array of uczen);
var
Temp: uczen;
i: Integer;
zmiana: Boolean;
begin
repeat
zmiana:= False;
for i:= 0 to High(X) - 1 do
if X.ocena < X[i + 1].ocena then
begin
Temp:= X;
X:= X[i + 1];
X[i + 1]:= Temp;
zmiana:= True;
end;
until not zmiana;
end;
var
uczniowie: array [0 .. 9] of uczen;
i: Integer;
begin
Writeln('Prosze podac nazwiska i oceny 10 uczniow');
for i:= 0 to High(uczniowie) do
begin
Write('Uczen #', i + 1, ' nazwisko : ');
Readln(uczniowie.nazwisko);
Write('uczen #', i + 1, ' ocena : ');
Readln(uczniowie.ocena);
Writeln;
end;
Sort(uczniowie);
Writeln;
Writeln('Oceny po sortowaniu: ');
Writeln('----------------------');
for i:= 0 to High(uczniowie) do
begin
Writeln('# ', i + 1, ' ', uczniowie.nazwisko,
' otrzymal ocene (', uczniowie.ocena, ')');
end;
Write('Nacisnij dowolny klawisz by wyjsc');
Readln;
end.
Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

nighmare vocaloid-world insei trzywahaty calbana