Darmowe Forum
Maj 03, 2024, 04:34:55 *
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: Nowe typy zmiennych i rekordy  (Przeczytany 5368 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : Kwiecień 04, 2011, 11:07:38 »

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

program r7;
uses crt,dos;
type marek= array[1..1000] of real;
var x,y,z:real;
a:marek;
begin
  a[1]:=1;
   readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #1 : Kwiecień 11, 2011, 07:25:22 »

Przykład 2. Full wypas, wykorzystanie definicji typu

program rurka;
uses crt,dos;
type marta=array[1..10,1..10] of integer;
malwina= array[1..10,1..10,1..10] of byte;
miecio= array[1..10] of malwina;
var a:integer;
b:marta;
begin
       clrscr;
  b[1,1]:=5;
  readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #2 : Kwiecień 11, 2011, 07:39:25 »

Przykład 3. Zadeklarować typ tablicowy 10x10 o nazwie marta i wpisać do zmiennej b typu marta naprzemienne liczby 0 i 1.
program rurka;

uses crt,dos;
type marta=array[1..10,1..10] of integer;
malwina= array[1..10,1..10,1..10] of byte;
miecio= array[1..10] of malwina;
var a,c,d:integer;
b:marta;
begin
       clrscr;d:=0;
 for a:=1 to 10 do
 begin
 for c:=1 to 10 do begin d:=d+1;d:=d mod 2;b[a,c]:=d;end;
 end;

  for a:=1 to 10 do begin writeln;
  for c:=1 to 10 do begin write(b[a,c]:3);end;
  end;



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


Email
« Odpowiedz #3 : Kwiecień 11, 2011, 10:03:19 »

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


program rurka;
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.



« Ostatnia zmiana: Kwiecień 11, 2011, 10:58:31 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : Kwiecień 11, 2011, 11:58:33 »

program rurka;
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(a,' 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;
procedure pokaz1;
var a:integer;
begin
clrscr;
write('Podaj ktory rekord wyswietlic(1-4): ');readln(a);
 writeln('Imie: ',imie[a]);
 writeln('nazwisko: ',nazwisko[a]);
 writeln('wiek: ',wiek[a]);
 writeln('ocena: ',ocena[a]);
 writeln;
end;

begin
       clrscr;
      ktory; clrscr;delay(1000);pokaz1;
  readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #5 : Kwiecień 18, 2011, 07:24:09 »

Zadanie 5. Program zbudowany jeszcze na tablicach, tworzy prosta bazę danych. W bazie danych zmienną porządkująca jest zmienna ktory (pełni funkcję ID). Do bazy mamy możliwość wpisywania danych i wyświetlania dowolnego rekordu.


program baza1;
Uses crt,dos;

Var
  Imie,nazwisko,telefon:array[1..50] of string;
  c,c2:char;
  ktory:byte;
  t:byte;

PROCEDURE Wprowadz;
Begin
  ClrScr;
  ktory:=ktory+1;
  Write('Imie : ');
  ReadLn( imie[ktory] );
  Write('Nazwisko : ');
  ReadLn( nazwisko[ktory] );
  Write('Telefon : ');
  ReadLn( telefon[ktory] );
End;

PROCEDURE Wyswietl;
Begin
  ClrScr;
  Write('Numer wpisu ? (1..', ktory ,') :');
  ReadLn(t);
  WriteLn('Imie     : ',imie[t] );
  WriteLn('Nazwisko : ',nazwisko[t] );
  WriteLn('Telefon  : ',telefon[t] );
  WriteLn;
  Write('Wcisnij jakis klawisz...');
  c2:=readkey;
End;
 procedure poczatek;
Begin
  ktory:=0;
  Repeat
  ClrScr;
  Write('1. Nowy wpis    2. Wyswietlenie wpisu     3.Koniec programu    : ');
    Repeat
      c:=readkey;
    Until (c='1') OR (c='2') OR (c='3');
  If c='1' Then Wprowadz;
  If c='2' Then Wyswietl;
  Until c='3';
  end;
  begin
  poczatek;
End.
« Ostatnia zmiana: Kwiecień 18, 2011, 09:35:16 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #6 : Kwiecień 18, 2011, 08:06:47 »

Rekordy: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 zastosowania
program a2;
uses dos,crt;
type student =record
nazwisko: string[25];
imie:string[20];
ocena: integer;
grupa:string[3];
end;
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #7 : Kwiecień 18, 2011, 08:23:23 »

Przykład 6. Baza studentów wykorzystująca rekordy.

program a2;
uses dos,crt;
type student =record
nazwisko: string[25];
imie:string[20];
ocena: integer;
grupa:string[3];
end;
var
dane: array[1..5] of student;
v:integer;
procedure odczytaj;
begin
for v:=1 to 5 do
begin
writeln('wiersz nr: ',v);
writeln('podaj nazwisko /25/'); readln(dane[v].nazwisko);
writeln('podaj imie /20/'); readln(dane[v].imie);
writeln('podaj ocene /int/'); readln(dane[v].ocena);
writeln('podaj grupe /3/'); readln(dane[v].grupa);
end;
    end;
procedure wyswietl;
var v:integer;
begin
for v:=1 to 5 do
begin
with dane[v] do
begin
writeln('Nazwisko: ',nazwisko);
writeln('Imie: ',imie);
writeln('Grupa: ',grupa);
writeln('Ocena: ',ocena);
end;
end;
end;
begin
clrscr;
odczytaj;
  clrscr;
wyswietl;
readkey;
end.

« Ostatnia zmiana: Kwiecień 18, 2011, 08:25:20 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #8 : Kwiecień 18, 2011, 12:16:12 »

Program Leniak;

program zyzio;
uses crt,dos;
type pies=record
imie: string;
wiek:integer;
masa:byte;
dlugosc:byte;
end;
var
dziamdziak: array[1..5] of pies;
x:integer;

begin  x:=0;
 repeat
 x:=x+1;
 write(x,' Rekord zwany rowniez krotka, to pozioma struktura danych okreslajaca jedn obiekt');
 writeln( 'Rekord sklada sie z pol opisujece dokladnie cech obiektu    ');
 delay(100);

 until keypressed;



end.
« Ostatnia zmiana: Kwiecień 18, 2011, 12:19:34 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #9 : Maj 23, 2011, 07:57:10 »

Zadanie XXL. Proszę napisać program w którym zostaną zadeklarowane dwa różne typy rekordowe.
Pierwszy o nazwie miasto składający się z pól: nazwa,imie_burmistrza, nazwisko_burmistrza, wiek, liczba_mieszkancow, kod_pocztowy
Drugi o nazwie mieszkaniec, składający się z pól: imie, nazwisko, miasto, ulica, nr_domu, plec.
W programie umieścić zmienne :
miasto1 tablica 10 elementowa typu miasto ;
obywatel tablica 5 elementowa typu mieszkaniec.
(2)

Napisać procedurę wprowadzająca dane do zmiennych miasto1, obywatel. W procedura powinna zadawać pytanie o kontynuację dalszego wprowadzania danych.
(3)
Napisać procedurę wyświetlania dowolnego rekordu z zmiennej miasto1 lub obywatel.
(4)
Napisać procedurę wyszukiwania rekordów o tych samych polach. Np. szukamy wszystkich osób którzy noszą imie np. Zenon.
(5)



program sprawdzian;
uses crt,dos;
type miasto=record
imie_b:string;
nazwisko_b:string;
nazwa:string;
wiek:byte;
liczba_mieszkancow:longint;
kod_pocztowy:string;

end;
mieszkaniec=record
imie:string;
nazwisko:string;
miasto:string;
ulica:string;
nr: string;
plec:char;
end;
 var
 miasto1 :array[1..10] of miasto;
 obywatel : array[1..5] of mieszkaniec;
  z:byte;
  y:char;

procedure wprowadz1;
begin
z:=1;clrscr; repeat
write('podaj nazwe miasta: ');readln(miasto1[z].nazwa);
write('podaj imie burmistrza: ');readln(miasto1[z].imie_b);
write('podaj nazwisko burmistrza: ');readln(miasto1[z].nazwisko_b);
write('podaj liczbe mieszkancow miasta: ');readln(miasto1[z].liczba_mieszkancow);
write('podaj kod pocztowy miasta: ');readln(miasto1[z].kod_pocztowy);
writeln('Czy chcesz dalej wprowadzac:');
y:=readkey;  z:=z+1;
until ((y='N') or (y='n') or (z=11) );
end;

begin
clrscr; wprowadz1;
end.
« Ostatnia zmiana: Maj 23, 2011, 10:17:14 wysłane przez admin » 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

blackspider manunited dnie-noce catzland polskierpg