Darmowe Forum
Grudzieñ 30, 2024, 18:41:59 *
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 5927 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

zlotasiodemka proskills polski-serwer-rpg blackmoon shaggydogss