Prosta baza danych uczniów

0

Witam chce napisać prostą baze danych do ktorej bede mógł wprowadzić osoby zdefiniowane jako rekordy. Bazą ma być tablica jednowymiarowa typu rekordowego.

Napisałem procedure która będzie odpowiedzialna za dodawanie rekordu do tablicy rekordów. Analogicznie zrobiłem procedure odpowiedzialną za wyświetlanie pojedynczego rekordu oraz całej tablicy rekordów.

Utknąłem bo nie wiem jak wypełniać tablicę bez pętli for. Zaznaczyłem pytajnikami miejsca gdzie nie wiem co wpisać. Chciałbym prosić jeszcze o ocenę kodu i sugestie co powinienem poprawić byle bez wychodzenia poza zakres dotychczasowej wiedzy.

program baza_uczniowie;

type

	uczen = record
		imie:string;
		nazwisko:string;
		kurs:string;
	end;

	tab = array[0..4] of uczen;

var
	tab_uczniowie:tab;
	opcja, indeks:integer;


// Procedury do obslugi bazy uczniow

procedure dodaj_uczen(osoba:uczen);
begin
	write('Podaj imie: ');
	readln(osoba.imie);	
	write('Podaj nazwisko: ');
	readln(osoba.nazwisko);
	write('Podaj kurs: ');
	readln(osoba.kurs);
end;

procedure wyswietl_uczen(osoba:uczen);
begin
	writeln(osoba.imie, ' ', osoba.nazwisko, ' (kurs: ', osoba.kurs, ')');
end;

procedure wyswietl_wszystkich(var tab_uczniowie:tab);
var i:integer;
begin
  for i:=0 to ??? do
  begin
    writeln(i+1, '. ', tab_uczniowie[i].imie, ' ', tab_uczniowie[i].nazwisko, ' (kurs: ', tab_uczniowie[i].kurs, ')');
  end;
end;

// Program glowny

begin
	repeat
		writeln('Wybierz opcje:');
		writeln('1 - dodaj ucznia');
		writeln('2 - pokaz ucznia o indeksie');
		writeln('3 - pokaz wszystkich uczniow');
		writeln('4 - zakoncz program');

		case opcja of
			1:
			begin
				dodaj_uczen(tab_uczniowie[???]);
			end;
			2:
			begin
				write('Podaj indeks: ');
				readln(indeks);
				wyswietl_uczen(tab_uczniowie[indeks]);
			end;
			3:
			begin
				write('Wszyscy uczniowie:');
				wyswietl_wszystkich(tab_uczniowie[i]);
			end;
		end;
	until opcja = 4;
end.
2

Zrób z tego tablicę dynamiczną i indeksuj do High(tablica).
Btw, poczytaj o konwencji nazewnictwa w Pascalu.

0

Ponadto, nie używaj zmiennych globalnych, jeśli masz zamiar przekazywać je w parametrach procedur/funkcji; Już nie pisząc o tym, że używasz dokładnie tego samego identyfikatora tab_uczniowie dla zmiennej oraz dla parametru procedury wyswietl_wszystkich; Jak wspomniał poprzednik - naucz się sensownie i prawidłowo nazywać elementy programu, a będzie mniej bałaganu i błędów; Znajomość przyjętej konwencji nazewnictwa mocno upraszcza analizę i zrozumienie kodu.

2

I obuduj to w klasę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1