Rekordy pascal_2
Jak napisać program w Turbo Pascalu?Gotowa baza danych, gotowy program, gotowiec w Turbo Pascalu
Jak zrobić bazę danych na rekordach w Turbo Pascalu?
Jak napisać bazę z tabelą rekordów z danymi o samochodach(model, silnik, cena)?
Kod:
program baza;
uses crt;
type
{ jak zadeklarować, zrobić rekord w Turbo Pascalu }
{ Jak utworzyć rekord, typ rekordowy w Pascalu? }
{ Co to jest jak wygląda record w Pascalu? }
samochod = record
marka, model, silnik, wyposazenie:string[20];
cena: Real;
ilosc:Byte;
end;
var Klaw, { deklaracja zmiennych globalnych }
Klawisz2:char;
Licznik:byte; { liczba rekordów w tabeli }
t1,p1:byte;
plik:text;
p2:single;
r:array[1..100] of samochod;
Jak zapisywać dane do rekordu?
Kod:
{ procedura służąca do wprowadzania danych do rekordu o numerze Licznik }
procedure wprowadz;
begin
clrscr; { czyszczenie ekranu }
Licznik:=Licznik+1; { licznik rekordów }
write('Marka : ');
readln(r[Licznik].marka); { readln - odczyt danej z klawyatury }
write('Model : ');
readln(r[Licznik].model);
write('Wersja silnika : '); { write - wyświetlanie napisu }
readln(r[Licznik].silnik);
write('Wersja wyposazenia: ');
readln(r[Licznik].wyposazenie);
write('Cena : ');
readln(r[Licznik].cena);
write('Ilosc : ');
readln(r[Licznik].ilosc);
end;
Jak wyświetlić informację na ekranie, że baza danych jest pusta?
Kod:
{ procedura wyświetla napisy, które mówią ze baza jest pusta }
procedure pusta;
begin
writeln('Baza jest aktualnie pusta. Dodaj nowe wpisy lub wczytaj juz istniejace z pliku');
writeln;
writeln('Nacisnij jakis klawisz...');
Klawisz2:=readkey; { program czeka na wcisnięcie dowolneko klawisza }
end;
Jak wyświetlać zawartość rekordu?
Kod:
{ procedura wyświetla zawartosć rekordu o numerze t1 }
procedure wyswietl;
begin
if Licznik=0
then { jeśli nie ma danych w tablicy to komunikat że baza jest pusta }
pusta
else
begin { jesli są dane to wyświetlamy zawartosć rekordu o numerze t1 }
writeln('Marka : ', r[t1].marka);
writeln('Model : ', r[t1].model);
writeln('Silnik : ', r[t1].silnik);
writeln('Wersja wyposazenia: ', r[t1].wyposazenie);
writeln('Cena : ', r[t1].cena:4:2);
writeln('Ilosc : ', r[t1].ilosc);
writeln('Wartosc : ', (r[t1].ilosc*r[t1].cena):4:2);
writeln;
end
end;
Jak edytować rekord?
Kod:
procedure edytuj;
begin
clrscr;
if Licznik=0
then { jeśli nie ma danych w tablicy to komunikat że baza jest pusta }
pusta
else
begin { edycja, zapisanie nowych danych, z klawiatury do rekordu }
writeln('Ktory wpis chcesz edytować (1..', Licznik, ')');
readln(t1);
write('Nowa marka : ');
readln(r[t1].marka);
write('Noey model : ');
readln(r[t1].model);
write('Nowa wersja silnika : ');
readln(r[t1].silnik);
write('Nowa wersja wyposazenia: ');
readln(r[t1].wyposazenie);
write('Nowa cena : ');
readln(r[t1].cena);
write('Nowa ilosc : ');
readln(r[t1].ilosc);
end
end;
Jak wyświetlić zawartość tabeli rekordowej?
Kod:
{ procedura wyświetla całą listę danych z tabeli }
procedure wszystko;
begin
clrscr;
if (Licznik<>0) then
begin
t1:=0;
repeat
t1:=t1+1;
wyswietl;
until t1=Licznik;
end
end;
Jak zapisać rekordy do pliku w Turbo Pascalu?
Kod:
{ Procedura zapisuje dane z tablicy rekordów do pliku }
procedure zapisz;
begin
if Licznik=0 then
begin
clrscr;
pusta;
end
else
begin
assign(plik, 'BAZA.DAN'); { przypisanie nazwy pliku do uchwytu }
rewrite(plik); { otwarcie pliku do zapisu, jesli był taki plik }
{ to zostanie wyczyszczony }
writeln(plik, Licznik); { zapisanie ilości rekordów w tablicy }
t1:=0;
repeat { początek petli }
t1:=t1+1; { zwiekszenie numeru przegladanego rekordu }
writeln(plik, r[t1].marka); { zapis kolejnych danych do pliku }
writeln(plik, r[t1].model);
writeln(plik, r[t1].silnik);
writeln(plik, r[t1].wyposazenie);
writeln(plik, r[t1].cena);
writeln(plik, r[t1].ilosc);
until t1=Licznik; { koniec petli }
close(plik); { zamkniecie pliku po zapisie }
end
end;
Jak odczytać rekordy z pliku rekordowego w Turbo Pascalu?
Kod:
{ wczytanie danych z pliku do tablicy rekordowej }
procedure czytaj;
begin
assign(plik, 'BAZA.DAN'); { przypisanie nazwy pliku do uchwytu }
reset(plik); { otwarcie pliku do odczytu }
readln(plik, Licznik); { odczytanie ilości rekordów do wczytania do tablicy }
t1:=0;
repeat { początek petli }
t1:=t1+1; { zwiekszenie numeru przegladanego rekordu }
readln(plik, r[t1].marka); { danych kolejnych danych z pliku }
readln(plik, r[t1].model);
readln(plik, r[t1].silnik);
readln(plik, r[t1].wyposazenie);
readln(plik, r[t1].cena);
readln(plik, r[t1].ilosc);
until t1=Licznik; { koniec petli }
close(plik); { zamkniecie pliku po zapisie }
end;
Jak usunąć, skasować rekord z tabeli rekordów?
Kod:
{ kasowanie rekordu z tabeli }
procedure usun;
begin
clrscr;
if Licznik=0 then pusta
else
begin
writeln('Podaj numer wpisu do usuniecia (1..', Licznik, ')');
readln(t1);
repeat
r[t1].marka:= r[t1+1].marka; { Jak pobierać dane z rekordu? }
r[t1].model:= r[t1+1].model;
r[t1].silnik:= r[t1+1].silnik;
r[t1].wyposazenie:= r[t1+1].wyposazenie;
r[t1].cena:= r[t1+1].cena;
r[t1].ilosc:= r[t1+1].ilosc;
t1:=t1+1;
until t1=Licznik;
Licznik:=Licznik-1;
end
end;
Kod:
procedure info;
begin
if Licznik=0 then pusta
else
begin
t1:=0;
p1:=0;
p2:=0;
repeat
t1:=t1+1;
p1:=p1+r[t1].ilosc;
p2:=p2+(r[t1].ilosc*r[t1].cena);
until t1=Licznik;
if p1=1
then writeln('Posiadasz ', p1, ' samochod o wartosci ', p2:4:2, ' zl.');
if (p1=2) or (p1=3) or (p1=4)
then writeln('Posiadasz ', p1, ' samochody o lacznej wartosci ', p2:4:2, ' zl.');
if p1>=5
then writeln('Posiadasz ', p1, ' samochodow o lacznej wartosci ', p2:4:2, ' zl.');
writeln('Nacisnij jakis klawisz...');
Klawisz2:=readkey; { program czeka na wcisnięcie dowolneko klawisza }
end
end;
Jak zrobić proste menu tekstowe w Turbo Pascalu?
Kod:
begin
textbackground(lightgray); { kolor tła rekstu }
textcolor(black); { kolor tekstu }
Licznik:= 0; { zerowanie licznika rekordów }
{ pętla główna programu czekająca na wybór opcji z menu }
repeat
clrscr;
writeln('1. Nowy wpis');
writeln('2. Usun wpis');
writeln('3. Wy˜wietlanie wpisu');
writeln('4. Wy˜wietlanie wszystkich wpis˘w');
writeln('5. Odczyt z pliku');
writeln('6. Zapis do pliku');
writeln('7. Informacje o salonie');
writeln('8. Koniec programu');
repeat Klaw:= readkey; until (Klaw>='1') and (Klaw<='8'); // petla czekająca na klawisz
{wzależności jaki klawisz został wcisnięty takie procedury zostaną uruchomione}
if Klaw='1' then wprowadz;
if Klaw='2' then usun;
if Klaw='3' then
begin
clrscr;
write('Podaj numer wpisu (1..', Licznik, '): ');
readln(t1);
wyswietl;
writeln;
writeln('Wcisnij jakis klawisz...');
Klawisz2:=readkey; { program czeka na wcisnięcie dowolneko klawisza }
end;
if Klaw='4' then begin wszystko; info; end;
if Klaw='5' then czytaj;
if Klaw='6' then zapisz;
if Klaw='7' then begin clrscr; info; end;
until Klaw='8'; { koniec petli głównej programu}
end.