Cześć.
W tym roku zdaję maturę z informatyki, a im bliżej do maja, tym więcej nasuwa mi się pytań. Więc może po kolei:
1.1 Na początek część teoretyczna, a dokładniej mówiąc pisanie algorytmów na kartce. Załóżmy, że będę je pisał w Javie (ten język zadeklarowałem), i teraz najprościej mówiąc, czy taki program na kartce musiałby dać się skompilować? To znaczy, jak np. zapomnę średnika, albo nie napiszę importów to niesie to jakieś konsekwencje w postaci utraty punktów za zadanie? Moim zdaniem coś takiego byłoby skrajnie bezsensowne, ale obawiam się że tak właśnie może być.
1.2 Albo inna sprawa. Załóżmy, że celem algorytmu jest zamiana systemu dziesiętnego na binarny. W Javie jest dostępna wbudowana funkcja, która praktycznie robi to za nas (Integer.toBinaryString). Czy mogę po prostu z niej skorzystać? A ogólniej mówiąc, czy z tego typu funkcji wbudowanych na maturze można korzystać? (nie mówię tu o części praktycznej, na której z tego co mi wiadomo liczy się tylko wynik, a nie rozwiązanie, ale o tym później).
1.3 Idziemy dalej. Załóżmy, że w zadaniu dana jest tablica oznaczona jako bin[1...d], w której zapisane są kolejne bity liczby binarnej. Pisząc w języku programowania, jaki należałoby dać jej typ? int[], boolean[] ? Pomijając już fakt, że elementy tablicy w Javie numeruje się od zera. Być może to trochę głupie pytanie, ale ja lubię takie głupie pytania, musicie mi wybaczyć :D.
1.4 Dobra, skoro ten język programowania sprawia tyle problemów, to może lepiej byłoby zapisywać algorytmy za pomocą listy kroków? I tu kolejne pytanie. Czy istnieją jakieś sztywne reguły, co do konstruowania takiej listy? Na przykład, odpowiedziach do arkuszy maturalnych, operacja przypisania wartości do zmiennej wygląda tak: x <-- 15. Wątpię, by trzeba było tak to zapisywać, ale zapytać nie zaszkodzi. Co więcej, tego co mi wiadomo, trywialne operacje można zastąpić poleceniem tekstowym. Tak na przykład hasło: "Jako wynik podaj wartość zmiennej x" raczej nie powinno budzić zastrzeżeń co do swej trywialności, ale już np. "Odwróć łańcuch tekstowy", albo "Posortuj dane" niekoniecznie.
1.5 I na koniec, co wy byście polecili na część teoretyczną? Język programowania czy listę kroków?
2. Na początku każdego arkusza jest miejsce na wpisanie kompilatora. Co trzeba tam wpisać w przypadku wybrania Javy? Po prostu Java SE 8 ? A środowisko, to domyślam się, że chodzi o system operacyjny a nie o środowisko programistyczne?
3.1 To teraz część praktyczna i to czy liczy się tylko się tylko i wyłącznie wynik. Skoro tak jest, to zastanawia mnie, po co do wyniku każą dołączać plik z "komputerową realizacją problemu", np. plik excela albo *.java. Czy oni do nich zaglądają? Załóżmy np. że muszę wyciągnąć kilka danych z tabeli w excelu. Zakładam filtr na tabelę, kopiuję rekordy do notatnika i usuwam filtr. Kończy się na tym, że w pliku z rozwiązaniem nie ma żadnego śladu po tym jak dotarłem do tych danych. Więc, jak to z tym jest?
3.2 Kolejny problem. Robiłem niedawno takie zadanie z excela, w którym było podane każdego dnia ile kilometrów przebyto autem i trzeba było obliczyć roczny koszt użytkowania samochodu (w dużym uproszczeniu). Ja to zrobiłem tak, że obliczyłem koszt dla każdego dnia (przemnożyłem kilometry przez zużycie na kilometr i przez cenę jednego litra), a później zsumowałem te koszty. Natomiast rozwiązanie z odpowiedzi wyglądało tak, że najpierw zsumowano wszystkie długości tras, a potem przemnożono je przez zużycie i cenę. Mój wynik od wyniku wzorcowego różniły się o 2 grosze. Być może to moja wina, np. poprzez błędne zaokrąglanie, ale mimo wszystko wydaje mi się, że wszystko zrobiłem poprawnie. Załóżmy, że się nie pomyliłem, czy takie rozwiązanie zostało by uznane?
3.3 Gdzieś słyszałem, że można sobie wyedytować plik z danymi (np. zastąpić średniki spacjami). Czy to prawda?
3.4 Czy kiedy tworzymy plik *.txt z odpowiedziami, muszą one być w jakiś sposób sformatowane? Np. jeśli zwyczajnie skopiuję parę rekordów z excela, to w notatniku wygląda to paskudnie i nieczytelnie. Z drugiej strony ręczne formatowanie tych danych przez wciskanie spacji trochę czasu zajmuje, a z tego co słyszałem to na maturze zazwyczaj go brakuje. Lepiej jest pod tym aspektem w accessie, bo można elegancko wyeksportować dane do pliku tekstowego, ale jak wiadomo, zadanie z baz danych jest tylko jedno na trzy. Szukałem w internecie podobnej funkcji do excela, ale nic takiego nie znalazłem. Tak więc, jaki jest na to sposób?
4. I już zupełnie na koniec - bo nie byłbym sobą gdybym o to nie zapytał - jakie byście polecili materiały do nauki? Mam książkę "Informatyka Europejczyka" z helionu, ale jest raczej bezużyteczna. Może jakiś kurs SQL?
Jeśli doczytałeś aż dotąd, to szczerze Cię podziwiam. Nie ukrywam, że trochę mi się tych pytań nazbierało, ale mam nadzieję chociaż na niektóre z nich uzyskam odpowiedzi. Pozdrawiam!