MWPZ - Mistrzostwa Wielkopolski w Programowaniu Zespolowym

Tutorial

Czytanie danych i wypisywanie wyników

Wasze programy powinny czytaæ dane ze standardowego wej¶cia i wypisywaæ wyniki na standardowe wyj¶cie (mówi±c w sporym uproszczeniu: z klawiatury i na ekran). W praktyce dane dla Waszego programu bêd± podawane z pliku i zbierane do pliku przy u¿yciu tzw. przekierowañ. Z linii komend (polecenie cmd pod Windowsem) mo¿na wykonaæ to nastêpuj±co: program <plik_wej >plik_wyj. W ten sposób mo¿ecie równie¿ testowaæ programy na swoich stanowiskach (przekierowania dzia³aj± zarówno pod Windowsem, jak i Linuxem). Dziêki temu nie bêdziecie musieli za ka¿dym razem wpisywaæ danych z klawiatury.

Ze wzglêdu na to, ¿e program jest sprawdzany na Sprawdzarce automatycznie, a nie przez cz³owieka, nie nale¿y wypisywaæ nic wiêcej ponad to co opisano w specyfikacji zadania, ani oczekiwaæ na ¿adn± reakcjê u¿ytkownika. W szczególno¶ci nie nale¿y czekaæ na wci¶niêcie klawisza na koñcu programu, ani wypisywaæ komunikatów zachêty typu "Podaj liczbê:", czy ozdobników typu "Wynikiem jest:".

Do wiêkszo¶ci zadañ plik wej¶ciowy ma postaæ ci±gu liczb ca³kowitych oddzielonych spacjami lub/i znakami nowej linii. Czêstym b³êdem nowicjuszy (a raczej zbêdn± robot±) jest czytanie znaków do ³añcucha, by pó¼niej rêcznie z nich wydobyæ liczby. To jest niepotrzebne, bo podstawowe procedury (read, readln) potrafi± czytaæ liczby i pomijaæ odstêpy miêdzy nimi, jakiekolwiek by one nie by³y (z readln trzeba uwa¿aæ je¶li w¶ród odstêpów s± spacje, ale read powinno wystarczyæ w prawie ka¿dym przypadku). Zreszt± zachêcamy do obejrzenia przyk³adowych programów na kolejnych stronach tutorialu. W razie gdyby¶cie chcieli czytaæ znak po znaku, to wiedzcie, ¿e Linux i Windows inaczej reprezentuj± znak koñca linii. Jako ¿e Sprawdzarka bêdzie staæ na Linuxie nale¿y przyj±æ, ¿e jest to pojedynczy znak o kodzie 10. Nie zalecamy jednak pisaæ programów, których poprawno¶æ opiera³aby siê na tej wiedzy.

Wypisywanie danych raczej nie jest problemem. Nale¿y jednak pamiêtaæ by liczby oddzielaæ odstêpami (np. 1 2 3 zamiast 123) i ¿e je¶li w zadaniu trzeba wypisaæ co¶ innego ni¿ liczby to ka¿dy znak siê liczy, tak¿e wielko¶æ liter. Rodzaj oraz wielko¶æ odstêpów (szczególnie spacje na koñcu linii) zazwyczaj nie maj± znaczenia i mog± byæ dowolne (chyba, ¿e zadanie wymaga sformatowania wyników), ale najlepiej trzymaæ siê jak najbli¿ej specyfikacji wyj¶cia z tre¶ci zadania, dla bezpieczeñstwa.

Nale¿y przyj±æ, ¿e dane wej¶ciowe s± zgodne ze specyfikacj± wej¶cia podan± w tre¶ci zadania i Wasze programy nie musz± sprawdzaæ ich poprawno¶ci.



Sponsor Główny Sponsorzy Partnerzy
Grupa Allegro Sp. z o.o. NORCOM Rule Financial wikia Cognifide
Politechnika Poznańska Uniwersytet im. Adama Mickiewicza Wydawnictwo Naukowe PWN SA Beyond