PDA

Zobacz pe┼én─ů wersj─Ö : Baza danych w Pascalu



Jaco_Q
13-12-07, 09:26
Witam jestem nowy.

Mam taki problem jak z tego:


program rekordy;
type
osoba = record
Imie:String[20];
Nazwisko:String[30];
wiek:byte;
end;
var student:osoba;
studenci:array[1..10] of osoba;
begin
for 1 to 10 do
writeln('podaj imiŕ:');
readln(studenci[1].imie);
writeln('podaj nazwisko:');
readln(studenci[1].nazwisko);
writeln('podaj wiek:');
readln(studenci[1].wiek);
for 1 to 3 do
writeln(studenci[1].imie,' ',studenci[1].nazwisko,' ',studenci[1].wiek);
readln;
end;
end.

mam zrobiŠ bazŕ danych w pascalu zrobiona z funkcji rekord?
emat: anime
2. Pola rekordu: Nazwa anime,rok powstania,autor anime,rok ukazania siŕ w TV w Polsce, kana│ na jakim anime siŕ ukaza│.

Mog│by mi kto pomˇc?

doderic
14-12-07, 09:29
mam zrobi─ç baz─Ö danych w pascalu zrobiona z funkcji rekord?
Pola rekordu: Nazwa anime,rok powstania,autor anime,rok ukazania się w TV w Polsce, kanał na jakim anime się ukazał.


┼╗eby stworzy─ç baz─Ö w TP musisz przej┼Ť─ç przez kilka krok├│w:

Stwórz definicję swojego rekordu anime - to ten kawałek: "osoba = record ..."
Zdecyduj, jak chcesz przechowywa─ç baz─Ö w programie - przy pomocy tablicy (array) czy wska┼║nik├│w (pointers)? Tablice s─ů zdecydowanie prostsze, jednak taka baza ma jedno ograniczenie: z g├│ry zak┼éadasz, ┼╝e nie b─Ödziesz mia┼é wi─Öcej ni┼╝ x wpis├│w. Np. studenci:array[1..10] of osoba; - czyli tablica 10 elementowa przechowuj─ůca rekordy typu osoba.
Wreszcie przychodzi pora na zrealizowanie funkcjonalno┼Ťci bazy. Ka┼╝dy taki kawa┼éek powinien by─ç napisany jako osobna funkcja.

Dodawanie nowego rekordu - w przyk┼éadzie ju┼╝ masz jakie┼Ť zacz─ůtki - ma┼éa podpowied┼║: dobrze jest stworzy─ç sobie zmienn─ů, w kt├│rej b─Ödziesz przechowywa┼é informacj─Ö o tym, ile ju┼╝ rekord├│w jest wpisanych do bazy i jak dodajesz, to nowy rekord ma numer ile+1.
Usuwanie wybranego rekordu - pami─Ötaj, aby po usuni─Öciu rekordu przesun─ů─ç dalsze o jedno miejsce w d├│┼é i zaktualizowa─ç zmienn─ů ile, tzn. je┼╝eli masz 5 rekord├│w i usuwasz 3., to ┼╝eby po operacji rekordy mia┼éy numery 1,2,3,4, a nie 1,2,,4,5 oraz ┼╝eby ile=4.
Wy┼Ťwietlanie wybranego rekordu - i zn├│w w przyk┼éadzie co┼Ť takiego si─Ö ju┼╝ pojawia pod sam koniec.

Powy┼╝sze to by┼éo minimum funkcjonalno┼Ťci. Dodatkowo mo┼╝na te┼╝ doda─ç:

Wyszukiwanie rekord├│w spe┼éniaj─ůcych zadane kryterium - czyli przejrzyj w p─Ötli for ca┼é─ů tablic─Ö i wy┼Ťwietl rekordy, kt├│re w wybrany polu maj─ů wybran─ů warto┼Ť─ç.
Zapisywanie i odczytywanie bazy z dysku - jak ju┼╝ uruchomisz program do test├│w po raz 10. i od pocz─ůtku b─Ödziesz musia┼é wprowadzi─ç wszystkie dane... ;)



Przysz┼éo mi jeszcze do g┼éowy alternatywne rozwi─ůzanie. Zamiast u┼╝ywa─ç zmiennej ile mo┼╝na do rekordu doda─ç pole wUzyciu. Na pocz─ůtek ustawiasz dla wszystkich rekord├│w wUzyciu:=false. Jak dodajesz rekord, to wyszukujesz pierwszy numer rekordu, gdzie wUzyciu=false, dodajesz dane i zmieniasz wUzyciu:=true. Je┼╝eli kasujesz rekord, to tylko zmieniasz wUzyciu:=false. No i przy wy┼Ťwietlaniu, szukaniu i zapisie na dysk interesuj─ů Ciebie tylko rekordy z wUzyciu=true.

Teraz spr├│buj napisa─ç samemu funkcje, a w razie dalszych problem├│w, wal ┼Ťmia┼éo.