Darmowe Forum
Grudzieñ 22, 2024, 09:13: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: Klasy i obiekty w Turbo Pascalu  (Przeczytany 10482 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : Marzec 19, 2012, 08:06:53 »

Zacznijmy jednak od rekordów. Proszê napisaæ program który pozwoli wprowadziæ imiê i nazwisko do typu rekordowego. Wprowadzanie i wy¶wietlanie danych zrealizowaæ korzystaj±c z procedury wczytaj.

program bazurai;
uses crt,dos;

type
uczen = record
imie: string;
nazwisko: string;
end;
var x,y: integer;
dane : array[1..5] of uczen;
procedure wczytaj;
var a:integer;
begin
 for a:=1 to 5 do begin
 write('Podaj imie nr ',a,' : ');readln(dane[a].imie);
 write('Podaj nazwisko nr ',a,' : ');readln(dane[a].nazwisko);
 end;
end;

begin

end.
======== wersja z wprowadzaniem i wyszukiwaniem najd³u¿szego wprowadzonego nazwiska ======

program bazurai;
uses crt,dos;

type
uczen = record
imie: string;
nazwisko: string;
end;
var x,y: integer;
dane : array[1..5] of uczen;
procedure wczytaj;
var a:integer;
begin
 for a:=1 to 5 do begin
 write('Podaj imie nr ',a,' : ');readln(dane[a].imie);
 write('Podaj nazwisko nr ',a,' : ');readln(dane[a].nazwisko);
 end;
end;
procedure wyszukaj;
var a,b,c:integer;
begin  c:=1;
for a:=1 to 5 do begin
 if (length(dane[a].nazwisko)>length(dane[c].nazwisko)) then c:=a; end;
 writeln;
 writeln(' osoba o najdlu¿szym nazwisku to: ',dane[c].imie,' ', dane[c].nazwisko);
end;

begin
 wczytaj;
 wyszukaj;
 readkey;
end.

++++++++++++++++++ krótkie imiê ++++++++++++++++++++++++++++++++++++++++

program bazurai;
uses crt,dos;

type
uczen = record
imie: string;
nazwisko: string;
end;
var x,y: integer;
dane : array[1..5] of uczen;
procedure wczytaj;
var z:integer;
begin
 for z:=1 to 5 do begin
 write('Podaj imie nr ',z,' : ');readln(dane[z].imie);
 write('Podaj nazwisko nr ',z,' : ');readln(dane[z].nazwisko);
 end;
end;
procedure wyszukaj;
var a,b1,c:integer;
begin  b1:=1;
for a:=1 to 5 do begin
 if (length(dane[a].nazwisko)>length(dane[b1].nazwisko)) then b1:=a; end;
 writeln;
 writeln(' osoba o najdlu¿szym nazwisku to: ',dane[b1].imie,' ', dane[b1].nazwisko);
end;
procedure wysz_krotkie;
var c,d,e: integer;
begin
c:=1;
for d:=1 to 5 do begin
 if (length(dane[d].imie)<length(dane[c].imie)) then c:=d; end;
 writeln;
 writeln(' osoba o najkrotszym imieniu to: ',dane[c].imie,' ', dane[c].nazwisko);

end;

begin clrscr;
 wczytaj;
 wyszukaj;
 wysz_krotkie;
 readkey;
end.

Zadanie na zaliczenie
Napisaæ program w którym zadeklarowano typ rekordowy ankieta sk³adaj±cy siê z pól: imie i wiek.
Nastêpnie zadeklarowano zmienn± viola bêd±cy tablic± rekordów ankieta (tablica o 6 polach).
W programie napisaæ procedurê umo¿liwiaj±ca wpisywanie danych do rekordów oraz procedurê wyszukiwania najm³odszej osoby która zosta³ wprowadzona. Wyniki wyszukiwania powinny zostaæ wy¶wietlone na ekranie.
« Ostatnia zmiana: Marzec 19, 2012, 11:59:21 wys³ane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #1 : Marzec 19, 2012, 09:22:42 »


Dziedziczenie

type
  TDane1 = object(TDane)
    x : real;
    procedure SetX(const r : real);
    function GetX : real;
  end;

  TDane2 = object(TDane)
    x : longint;
    procedure SetX(const r : real); {!!!}
    function GetX : longint;
  end;

procedure TDane1.SetX; {nie musisz powtarzaæ nag³ówka z deklaracj± parametrów}
begin
  x := r
end;

function TDane1.GetX;
begin
  GetX := x
end;

procedure TDane2.SetX;
begin
  x := round®
end;

function TDane2.GetX;
begin
  GetX := x
end;
Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #2 : Marzec 19, 2012, 09:23:46 »

Tworzenie klasy

type
  TDane = object
    a : string;
    b : integer;

    procedure SetA(const s : string);
    procedure SetB(const i : integer);
    function GetA : string;
    function GetB : integer;
  end;

procedure TDane.SetA(const s : string);
begin
  a := s
end;

procedure TDane.SetB(const i : integer);
begin
  b := i
end;

function TDane.GetA : string;
begin
  GetA := a
end;

function TDane.GetB : integer;
begin
  GetB := b
end;
Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #3 : Kwiecieñ 02, 2012, 08:55:44 »

Zadanie na ¶niadanie

program Adam;
uses
  Crt,dos;

type

  Komputer = object
    x, y, masa : integer;
    constructor Inicjuj;
    destructor Usun; virtual;
    procedure Szybkosc(bios, pamiec: integer);
  end;

  komp1=object(Komputer)
  end;

constructor komputer.Inicjuj;
begin
end;

destructor komputer.Usun;
begin
end;


procedure komputer.szybkosc(bios,pamiec: integer);
var a:integer;
begin
  a:=bios+2*pamiec;
end;


begin


  ClrScr;

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

zlotasiodemka articz shaggydogss proskills moikrewni