Darmowe Forum
Marzec 28, 2024, 13:00:13 *
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 9990 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

mogilenskieklasyki volkoria pokemonissho weganizm forum-olimpijczykow