Matura z informatyki rozszerzonej
Patryk: Jest ktoś tutaj mocno obeznany w temacie informatyki rozszerzonej z informatyki? najlepiej
jakiś egzaminator
17 kwi 19:21
PW: Konkurs piękności? Masz problem, to go przedstaw.
17 kwi 20:33
Patryk: W części II egzaminu jest jedno zadanie, w którym trzeba napisać program w wybranym przez
siebie języku programowania. Załączone są pliki w txt, z których musimy pobrać dane do
programu i wykonać polecenia.
Na końcu tego pliku zawsze jest wolna linijka, która czasami może przeszkodzić w pisaniu
programu, moje pytanie, czy można ją sobie usunąć? Nie ingeruję w odpowiedź do zadania.
Dodatkowo czytałem, że jak są średniki, czy tabulacje, które rozdzielają dane w danym wersie
(od matury '10 w góre nie zauważyłem czegoś takiego) to można sobie w notatniku zamienić na
odstępy, bo w C++ jest gotowa funkcja na to, więc chyba usunięcie jednej linijki w niczym nie
potrzebnej jest dozwolone?
17 kwi 20:50
PW: Raczej nie usuwać. Skoro masz podgląd tego pliku i wiesz, że kończy się wolną linią, to
tak pisać program, żeby ją pominął (nie traktował jako element zestawu danych).
17 kwi 20:58
Patryk: Hmm... No dobra, ale skoro można zamieniać tabulatory i średniki na spacje, to ciekawe jak jest
z tą ostatnią linijką...
Dzięki za odpowiedź
17 kwi 21:09
Patryk: Tak sobie patrzę, to jest kwestia jednej komendy (robiłem od najstarszych arkuszy, do
najaktualniejszych i w odpowiedziach po 2012 roku autor odpowiedzi zaczął pisać inaczej). Więc
chyba nie warto ryzykować utratą cennych punktów.
17 kwi 21:13
PW: Dla mnie ingerencja w plik z danymi jest niedopuszczalna. To sytuacja, w której zamiast napisać
odpowiednio program − upraszczamy sobie zadanie (bo np. nie umiemy sobie z tym poradzić).
17 kwi 21:18
Patryk: Jak dla mnie to powinny być wszystkie chwyty dozwolone, byleby wynik był dobry
Ukazywało by to zaradność zdającego w sytuacjach, w których nie potrafi rozwiązać problemu lub
więcej czasu mu to zabierze. Ale to sprawa dyskusyjna
17 kwi 21:30
PW: A powiedz tak naprawdę − dlaczego przeszkadza Ci ta ostatnia "wolna linijka", jak ją nazwałeś.
Nie jest to przypadkiem wskaźnik końca zbioru? [EOF]
17 kwi 21:37
Patryk: Właśnie jak używałem czegoś takiego:
while (!plik.good()==false)
cout << "Błąd odczytu";
else
{
while(!plik.eof())
RESZTA KODU
}
To brało pustą linijkę do obliczeń i jak było trzeba np obliczyć ilość liczb parzystych, to
wychodziła 1 za dużo (po usunięciu tej linijki było dobrze)
Ale jak pisałem o 21:13 znalazłem inny sposób. Wystarczy napisać tak:
while (plik>>zmienna) {
RESZTA KODU
}
Czyli póki pobiera dane do zmiennej, to wykonuje pętle
17 kwi 21:47