logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zapisać i odczytać tablice z plików w Turbo Pascal?

dj_modo 14 Cze 2010 22:47 1728 7
REKLAMA
  • #1 8191220
    dj_modo
    Poziom 2  
    Posty: 3
    Witam. Dostałem w szkole takie zadanie:
    " Napisz program przechowujący w dwóch tablicach jednowymiarowych imiona, nazwiska (jedna tablica dla imion, druga dla nazwisk), max 10 elementów. Tablice mają być przechowane w plikach elementowych.
    Napisz drugi program, który pobierze z pliku pierwszego i drugiego dane i stworzy trzecią tablicę 10-elementową zawierającą imiona i nazwiska. "

    Ma to wyglądać mniej więcej w taki sposób:
    • 1 program:
    Tablica 1
    imie1 imie2 imie3 itd... {tutaj imiona wyświetlone w linii}
    Tablica 2
    nazwisko1 nazwisko2 nazwisko3 itd... {tutaj nazwiska również w linii}
    • 2 program:
    Tablica 3
    imie1 nazwisko1 {tutaj imię i nazwisko tworzy jeden element.}
    imie2 nazwisko2 {elementy zapisane są w kolumnie}
    imie3 nazwisko3...

    I o ile wiem jak zabrać się za tablice, o tyle mam problem z zapisaniem danych do plików i później odczytaniem ich. Proszę o pomoc i z góry dziękuję.
  • REKLAMA
  • #2 8191490
    lanky
    Poziom 17  
    Posty: 149
    Pomógł: 27
    Ocena: 7
    Więc czekamy niecierpliwie na twój kod który dotychczas zrobiłeś.
  • REKLAMA
  • #3 8192406
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    Przyłączam się do grupy niecierpliwie oczekujących !
    Proszę nie nadużywać mojej cierpliwości !
  • #4 8192971
    wrych
    Poziom 20  
    Posty: 279
    Pomógł: 37
    Ocena: 22
    A koniec roku tuż, tuż... Chciałbym Ci pomóc, ale musisz coś zacząć sam!
    Przyłączam się do kolegów niecierpliwie oczekujących na Twój kod.
    A to mała podpowiedź
    Czytaj(imię);
    Czytaj(nazwisko);
    Zapisz(nazwisko + '  ' + imię);

    i tak 10 razy :D
  • REKLAMA
  • #5 8193242
    dj_modo
    Poziom 2  
    Posty: 3
    Tak mniej więcej wygląda pierwszy program:

    program qaser;
    uses crt;
    
    var
       a,b:integer;
       tim: array [1..10] of string;
       tna: array [1..10] of string;
       imi:file of string;
       naz:file of string;
    begin
         clrscr;
         writeln('Program zapisuje do pliku 10 imion i 10 nazwisk');
         writeln;
                 assign(imi,'d:\imiona.dat');
                 rewrite(imi);
         for a:=1 to 10 do
             begin
                  writeln('Podaj ',a,'. imie:');
                  readln(tim[a]);
             end;
         write('Imiona: ');
         for a:=1 to 10 do
             write(' ',tim[a]);
         readln;
                close(imi);
         readln;
         writeln;
         readln;
                assign(naz,'d:\nazwiska.dat');
                rewrite(naz);
         for b:=1 to 10 do
             begin
                  writeln('Podaj ',b,'. nazwisko:');
                  readln(tna[b]);
             end;
         write('Nazwiska: ');
         for b:=1 to 10 do
             write(' ',tna[b]);
         readln;
                close(naz);
         readln;
         writeln;
         readln;
    end.


    • tim - tabela-imiona
    • tna - tabela-nazwiska

    PS. Programowanie nie jest moją najmocniejszą stroną, więc proszę o wyrozumiałość ;)
  • REKLAMA
  • #6 8193326
    lanky
    Poziom 17  
    Posty: 149
    Pomógł: 27
    Ocena: 7
    
    var
       a,b:integer;
       tim: array [1..10] of string;
       tna: array [1..10] of string;
       imi: TextFile;
       naz: TextFile;
    begin
         clrscr;
         writeln('Program zapisuje do pliku 10 imion i 10 nazwisk');
         writeln;
    
         for a:=1 to 10 do
             begin
                  writeln('Podaj ',a,'. imie:');
                  readln(tim[a]);
             end;
         write('Imiona: ');
    
         AssignFile(imi, 'c:\imie.txt');
         Rewrite(imi);  //jesli nie istnieje to utwoz
         for a:=1 to 10 do
             begin
                write(' ',tim[a]);
                Writeln(imi, tim[a]);  // przy okazji jak pokazujesz to zapisuj
             end;
         CloseFile(imi);
         readln;
    
         for b:=1 to 10 do
             begin
                  writeln('Podaj ',b,'. nazwisko:');
                  readln(tna[b]);
             end;
         write('Nazwiska: ');
    
         AssignFile(naz, 'c:\nazw.txt');
         Rewrite(naz);     //jesli nie istnieje to utwoz
         for b:=1 to 10 do
             begin
               write(' ',tna[b]);
               Writeln(naz, tna[b]);  // przy okazji jak pokazujesz to zapisuj
             end;
         CloseFile(naz);   // zamykamy
         readln;
    end.
    


    To pierwsze mamy za sobą teraz prosimy o drugi program.
  • Pomocny post
    #7 8193353
    wrych
    Poziom 20  
    Posty: 279
    Pomógł: 37
    Ocena: 22
    Ten fragment Twojego kodu
    assign(imi,'d:\imiona.dat'); 
    rewrite(imi); 
    for a:=1 to 10 do 
       begin 
          writeln('Podaj ',a,'. imie:'); 
          readln(tim[a]); 
       end; 
    write('Imiona: '); 
    for a:=1 to 10 do 
        write(' ',tim[a]); 
    readln; 
    close(imi); 

    pobiera dane (imiona) z klawiatury do tablicy, ale nie zapisuje ich do pliku, bo brakuje w pętli polecenia:
    write(imi, tim[a]);

    Podobnie jest z nazwiskami.
  • #8 8197106
    dj_modo
    Poziom 2  
    Posty: 3
    Dzięki Wam bardzo za pomoc ;)
    Z drugim programem sam sobie poradziłem.
    Pozdrawiam/ dj_modo

Podsumowanie tematu

✨ Użytkownik zadał pytanie dotyczące zapisywania i odczytywania tablic jednowymiarowych imion i nazwisk w Turbo Pascal. W odpowiedziach uczestnicy dyskusji zachęcali do podzielenia się kodem oraz oferowali pomoc w jego poprawie. Użytkownik przedstawił fragment swojego programu, który zapisuje imiona i nazwiska do plików, jednak napotkał trudności z poprawnym zapisywaniem danych. Otrzymał wskazówki dotyczące użycia polecenia `write` do zapisu danych do pliku oraz poprawnego zamykania plików. Na koniec użytkownik podziękował za pomoc i poinformował, że poradził sobie z drugim programem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA