ďťż

Ładny brzuch

Mam program taką mini baze która:
1.Dodaje nowu samochód,
2.Wyświetla wszystkie samochody,
3.Wyświetla dane wybranego samochodu,
4.Wyjście z bazy.

i musze dodać 2 rekordy, które:
-usunięcie wybranego elementu,
-zmieni zawartoś wybranego elementu

Jak będzie wyglądał taki kod tych dwóch rekordów i gdzie je wstawić.
Jeżeli potrzeba to mige wkleić kod całego obecnego programu.




i musze dodać 2 rekordy, które:
-usunięcie wybranego elementu,
-zmieni zawartoś wybranego elementu

chyba chodzi Ci o dwie procedury / funkcje a nie rekordy


Jak będzie wyglądał taki kod tych dwóch rekordów i gdzie je wstawić.
Jeżeli potrzeba to mige wkleić kod całego obecnego programu.

było by wskazane, albo chocziaż napisz jak przechowujesz bazę w pamięci podczas pracy programu i jak (jeśli zapisujesz) zapisujesz / odczytujesz z pliku

chyba czegos nie rozumiem. Jak rekord moze dodawac, usuwac czy cos tam robic?
nie wiem czy o to chodzi, ale:
stwórz tablice o ten swój rekord:
type TSamochody = record  nazwa, poj_silnika, waga: string; //tu wstawiasz jakie dane maja byc o samochodzie; end; var TBaza: array of Tsamochody;

wwyswietlenie wszytskich samochodów:
var i: integer; begin for i := 0 to High(TBaza) do writeln('Samochod ', i, ' to ', TBaza[i].nazwa);

dodanie nowego:
SetLength(TBaza, High(TBaza)+1); TBaza[High(TBaza)].Nawa := 'Mercedes'; TBaza[High(TBaza)].poj_silnika := '3.0 litry'; TBaza[High(TBaza)].waga := '1200 kg';
edycja:
TBaza[numer_rekordu].Nawa := 'Mercedes'; TBaza[numer_rekordu].poj_silnika := '3.0 litry'; TBaza[numer_rekordu].waga := '1200 kg';
możesz też wyszukac to co chcesz edytowac:
var i: integer begin for i := 0 to High(TBaza) do begin  if TBaza[i].Nazwa = 'Mercedes' then //wyszukanie mercedesa  begin //i zamiana go na inny samochod   TBaza[High(TBaza)].Nawa := 'jakis samochod';   TBaza[High(TBaza)].poj_silnika := 'jakas pojemnosc';   TBaza[High(TBaza)].waga := 'jakas waga';   Break; end; end;

naturalnie musisz ustawic wilekosc tablicy na poczatku.

ma nadzieje, że o to chodziło.

Oto program:

PROGRAM PiotrSala; USES CRT; CONST        PLIK='C:\ja\ta.txt'; TYPE        MODEL = RECORD          MARKA:STRING;          MODEL:STRING;          ROK:STRING;          POJEMNOSC:STRING;        END; VAR   B:STRING;   D:TEXT;   A:CHAR;   R:MODEL;   PL:FILE OF MODEL; BEGIN     CLRSCR;     ASSIGN(PL, PLIK);     REPEAT           CLRSCR; WRITELN('BAZA SAMOCHODOW: WYSWIETLA INFORMACJE O SAMOCHODACH NASZEJ FIRMY');           WRITELN('1-DODAJ NOWY SAMOCHOD');           WRITELN('2-WYSWIETL WSZYSTKIE SAMOCHODY');           WRITELN('3-WYSWIETL KONKRETNY SAMOCHOD');           WRITELN('4-WYJSCIE Z BAZY');           A:=(READKEY);           IF A='1' THEN              BEGIN              {$I-}reset(pl);{$I+}              IF ioresult=0 then                 BEGIN                    SEEK(PL,FILESIZE(PL) - 1);                    WRITELN('WPISZ DANE DOT. SAMOCHODOW');                    WRITELN('PODAJ NAZWE MARKI');                    READLN(R.MARKA);                    IF R.MARKA<>'' THEN                    BEGIN                         WRITELN('PODAJ MODEL');                         READLN(R.MODEL);                         WRITELN('PODAJ ROK PRODUKCJI');                         READLN(R.ROK);                         WRITELN('PODAJ POJEMNOSC');                         READLN(R.POJEMNOSC);                         WRITE(PL,R);                         WRITELN('DANE ZAPISANE');                         READLN;                    END {END OF IF}                    ELSE                    BEGIN                         WRITELN('BRAK DANYCH DO ZAPISANIA,POWROT DO MENU');                         READLN;                    END {END OF ELSE}                 END              ELSE                 BEGIN                 WRITELN('BRAK PLIKU BAZY PRZYSTEPUJE DO TWORZENIA');                 REWRITE(PL);                  WRITELN('PODAJ DANE DO WPISANIA');                    WRITELN('PODAJ NAZWE');                    READLN(R.MARKA);                    WRITELN('PODAJ MODEL');                    READLN(R.MODEL);                    WRITELN('PODAJ ROK');                    WRITELN('PODAJ POJEMNOSC');                    READLN(R.POJEMNOSC);                    READLN(R.ROK);                    WRITE(PL,R);                    WRITELN('DANE ZAPISANE');                    READLN;                 END              END;  {END OF WYBOR 1}           IF A='2' THEN              BEGIN              WRITELN('WYSWIETLANIE WSZYSTKICH REKORDOW');              {$I-}reset(pl);{$I+}              IF ioresult=0 then                 BEGIN                 WHILE NOT EOF(PL) do                       BEGIN                                 READ(PL,R);                                 WRITELN('MARKA : ',R.MARKA);                                 WRITELN('MODEL: ',R.MODEL);                                 WRITELN('ROK PRODUKCJI : ',R.ROK);                                 WRITELN('POJEMNOSC :', R.POJEMNOSC);                       END;                 END              ELSE                  BEGIN                  WRITELN('BRAK PLIKU BAZY');                  READLN;                  END;              READLN;              END; {END OF WYBOR 2}           IF A='3' THEN              BEGIN                   {$I-}reset(pl);{$I+}                   IF ioresult=0 then                   BEGIN                        WRITELN('WPISZ MARKE SAMOCHODU');                        READLN(B);                        RESET(PL);                        WHILE NOT EOF(PL) DO                        BEGIN                                 READ(PL,R);                                 IF B=R.MARKA THEN                                 BEGIN                                 WRITELN('NAZWA  ',R.MARKA);                                 WRITELN('MODEL ',R.MODEL);                                 WRITELN('ROK PRODUKCJI ',R.ROK);                                 WRITELN('POJEMNOSC ',R.POJEMNOSC);                                 END                        END {end of while}                    END; {end of ioresult}              WRITELN('NACISNIJ ENTER');              READLN;              END; {END OF WYBOR 3}           IF A='4' THEN              BEGIN              WRITELN('ZAKONCZENIE PROGRAMU');              END; UNTIL A='4'; wRITE('KONIEC PRORAMU'); READLN; END.



programista1101, wiesz w Pascalu nie ma czegoś takiego jak SetLength i tablic dynamicznych tworzonych w ten sposób

Tonik spróbuj trochę zmienić ten program - rozbij go na funkcje i procedury, np:

procedure Dodaj(Modell: Model);
procedure WyswietlKonkretny(Nr: Integer);
procedure WyswietlAll;
function Menu: Integer;
itp, bo w ten sposób to się zajedziesz, a jeśli nikt nie udzieli Ci odpowiedzi co dalej, to za jakąś godzinke postaram się to zrobić

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •