KWALIFIKACJA INF2 + INF3 - STYCZEŃ 2013

PYTANIE NR 18.
Przypisanie zmiennej plikowej pliku o nazwie 'Nazwa', w języku Pascal dokonujemy za pomocą instrukcji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Assign służy w Pascalu do powiązania (przypisania) zmiennej plikowej z konkretną nazwą pliku, np. 'Nazwa'.
Pozostałe instrukcje wykonują inne działania: Readln odczytuje dane, Rewrite otwiera/zakłada plik do zapisu, a Append otwiera go do dopisywania.

Pełne wyjaśnienie:

W Pascalu praca z plikami jest zwykle dwuetapowa: najpierw wskazuje się, z jakim plikiem ma być skojarzona zmienna plikowa (uchwyt), a dopiero potem wykonuje się operację otwarcia pliku w odpowiednim trybie.

Procedura Assign (ZmiennaPlikowa, 'Nazwa'); realizuje właśnie pierwszy etap: wiąże zmienną plikową z nazwą pliku. Sama w sobie nie oznacza jeszcze odczytu ani zapisu — przygotowuje tylko uchwyt, aby kolejne instrukcje wiedziały, do jakiego pliku mają się odwołać.

Dlaczego pozostałe odpowiedzi nie pasują do pytania o przypisanie nazwy?

  • Readln (ZmiennaPlikowa, Element); to operacja odczytu z już otwartego pliku (lub standardowego wejścia). Nie służy do wskazywania nazwy pliku, tylko do pobrania kolejnych danych.
  • Rewrite (ZmiennaPlikowa); dotyczy otwarcia pliku do zapisu (zwykle utworzenia nowego lub wyczyszczenia istniejącego). To inny etap niż przypisanie nazwy: zakłada, że zmienna plikowa została już skojarzona z nazwą przez Assign.
  • Append (ZmiennaPlikowa); służy do otwarcia istniejącego pliku do dopisywania na końcu. Podobnie jak Rewrite, nie przypisuje nazwy, tylko ustawia tryb pracy z plikiem.

Wskazówka egzaminacyjna: jeśli w treści pojawia się "przypisanie zmiennej plikowej pliku o nazwie…", chodzi o skojarzenie uchwytu z nazwą, czyli krok wykonywany przed Reset/Rewrite/Append oraz przed odczytem/zapisem.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Assign wiąże zmienną plikową (uchwyt) z nazwą pliku, np. 'dane.txt'. To krok przygotowawczy: po nim dopiero otwierasz plik do odczytu lub zapisu (np. przez Reset, Rewrite lub Append).
Assign tylko wskazuje, z jakim plikiem ma pracować zmienna plikowa. Otwarcie i wybór trybu (odczyt/zapis/dopisanie) wykonują inne procedury. Dzięki temu ten sam uchwyt można przypisać do różnych nazw przed właściwą operacją.
Rewrite stosuje się, gdy chcesz otworzyć plik do zapisu "od początku" (często tworząc nowy lub nadpisując istniejący). Zwykle wykonuje się to po Assign, bo najpierw trzeba wskazać nazwę pliku, a potem dopiero go otworzyć.
Append wybierasz wtedy, gdy plik już istnieje i chcesz dopisać nowe dane na końcu, bez kasowania wcześniejszej zawartości. Rewrite może nadpisać dane, więc do logów i dopisywania rekordów zwykle lepszy jest Append.
Readln wykonuje odczyt danych (np. wiersza tekstu lub wartości) z podanego źródła. Gdy pierwszym argumentem jest zmienna plikowa, odczyt idzie z pliku, ale tylko wtedy, gdy plik został wcześniej poprawnie przypisany (Assign) i otwarty w trybie odczytu.
Najczęstszy schemat to: Assign (wskazanie nazwy), potem Rewrite (otwarcie do zapisu), następnie instrukcje zapisu (np. Write/Writeln), a na końcu zamknięcie pliku (Close). Na egzaminie ważne jest rozróżnienie tych etapów.
W dopisywaniu zwykle używa się sekwencji: Assign (nazwa pliku), Append (otwarcie na końcu), potem zapisy (Write/Writeln) i zamknięcie (Close). Kluczowe: Append nie zastępuje Assign, tylko korzysta z przypisanej nazwy.
Najczęściej myli się etap "przypisania nazwy" z etapem "otwarcia pliku". Wiele osób wybiera Rewrite lub Append, bo kojarzą się z plikiem, ale pytanie o nazwę pliku wskazuje na Assign. Drugi błąd to traktowanie Readln jako operacji otwierania.
Ogólna idea jest taka sama: Assign kojarzy zmienną plikową z nazwą pliku. Różnić się mogą dalsze operacje (np. typ pliku i sposób odczytu/zapisu), ale sam mechanizm "ustawienia nazwy" pozostaje etapem przygotowawczym przed właściwym użyciem pliku.
Jeśli w treści jest mowa o "pliku o nazwie …" i "przypisaniu zmiennej plikowej", to zwykle chodzi o powiązanie uchwytu z nazwą, czyli Assign. Gdy pojawia się "utworzenie", "nadpisanie" lub "dopisanie", wtedy szukaj raczej Rewrite lub Append.
info

Około 68% zdających odpowiada poprawnie na to pytanie. średnie

Źródła:

  • Free Pascal RTL – System unit: Assign (procedure) – https://www.freepascal.org/docs-html/rtl/system/assign.html (dostęp: 2026-03-01)
  • Free Pascal RTL – System unit: Rewrite (procedure) – https://www.freepascal.org/docs-html/rtl/system/rewrite.html (dostęp: 2026-03-01)
  • Free Pascal RTL – System unit: Append (procedure) – https://www.freepascal.org/docs-html/rtl/system/append.html (dostęp: 2026-03-01)

Materiały:

  • Dokumentacja Free Pascal: dział RTL/System (Assign, Rewrite, Append, Readln)
  • Podręcznik szkolny do podstaw Pascala (rozdział: pliki tekstowe i operacje wejścia/wyjścia)
  • Zestawy zadań maturalnych/egzaminacyjnych z programowania strukturalnego obejmujące pliki

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego