Przygotowanie do matury z informatyki


(Xorgx3) #1

Witam,

Wybieram się na Politechnikę Warszawską na informatykę (najlepiej na EiTi) no i musiałem zdecydować się do zdawania informatyki/fizyki na poziomie rozszerzonym. Wybór padł na informatykę.

O ile można powiedzieć, że z programowania, algorytmów i wszelkich "okołoinformatycznych" tematów jestem dość dobry i patrząc na poprzednie matury z pewnością dam sobie radę, o tyle problem jest z zadaniami, które są do rozwiązania w Excelu lub Accessie.

Zadania z matury 2011 rozwiązałem i wydawały mi się dość łatwe, ale np w roku 2010 były o wiele trudniejsze zadania. No i właśnie potrzebuję jakiegoś kursu/czegokolwiek, który omówi pokrótce podstawowe sprawy i przyda się w zadaniach maturalnych.

Być może ktoś zdawał informatykę i powie z czego się przygotowywał lub po prostu ktoś zna materiały, które są mi potrzebne.

Z góry dziękuję :slight_smile:


(Kpc21) #2

Próbowałeś rozwiązywać te zadania wspomagając się wyszukiwarką internetową? Excel czy Access są bardzo dobrze udokumentowane, nawet na stronach Microsoftu.


(Xorgx3) #3

Tak, trochę próbowałem, szczególnie Excela, ale np w zadaniu z numerem pesel z roku 2010 bez internetu naprawdę nie wiem jak sobie poradzić. Znalazłem jakąś funkcję, która działała, ale napisanie jej na maturze graniczyłoby z cudem. No nic, widzę, że chyba nikt matury z informatyki nie zdawał, więc i za dużo informacji nie otrzymałem.


(adpawl) #4

Zdawał, zdawał.

Znaczy Twoim problemem jest nieznajomość ww. programów :stuck_out_tongue:

To szukaj kursów, przerabiaj zadania, korzystaj z F1 - akurat Excel ma świetną dokumentację.

...innej rady nie widzę.


(Kpc21) #5

Przecież to zadanie jest banalne. Wystarczy zaimportować te PESEL-e tak, aby każda cyfra była w jednej komórce. Nie jestem pewien, czy tak się da, ale jeśli nie, to jest funkcja zwracająca n-ty znak wyrażania z komórki (szukaj w tekstowych). Dalej to już nic prostszego nie mogli wymyślić (na maturę rozszerzoną...) - zwykłe filtrowanie, sortowanie, funkcja JEŻELI i LICZ.JEŻELI.


(Xorgx3) #6

No z peselem to ok, tylko pytanie czy starczy czasu na myślenie + wykonanie.

Ja chciałbym robić wszystko jak najbardziej optymalnym sposobem, bo czuję, że na pewno można niektóre rzeczy zrobić sto razy szybciej. Robię właśnie zadanie z accessa z 2010 r i czuję, że na maturze po prostu bym nie zdążył bo brak mi wiedzy i po prostu kombinuję :wink:

Pytanie jest też takie : czy na maturze patrzą czy np zrobiono wszystko w jednej kwerendzie czy w 20? :stuck_out_tongue: Czy liczy się po prostu poprawność rozwiązania a nie jego optymalność?


(system) #7

Trochę cieżko wyobrażam sobie w jednej kwerendzie odpowiedz na więcej niż jedno pytanie. Wracając do tematu, moim zdaniem video-kursy są dobrym wyjściem o ile są dobre. A po za tym to ćwiczenia i powinno wystarczyć.


(Xorgx3) #8

Nie, nie, chodziło mi o to czy jedno zadanie == jedna kwerenda, czy np mogę sobie do jednego zadania zrobić 20 kwerend i tyle samo tabel :smiley:

Powoli zaczynam chyba to ogarniać, a szczerze mówiąc na video-kursy po polsku się nie natknąłem na youtubie, a tych angielskich nie chce mi się oglądać, bo po prostu nawet nie zrozumiem wszystkiego, no chyba, że bym wszystko wnioskował tylko po obrazie, bez dźwięku :slight_smile:


(system) #9

Można znaleźć jednak nie na YouTube tylko za $ :slight_smile:


(Xorgx3) #10

Zamiast wydawać $ na kursy to wolę pokombinować i sam się nauczyć, nawet nie do końca optymalnie, ale poprawnie :wink: Do matury jeszcze troche ponad 2 miesiące, dam rade :slight_smile:


(system) #11

Jasne, tyle że ja nie chce Ciebie naciągnąć. Tylko piszę, co zauważyłem.

Teoretycznie nauczyciel z informatyki, powinien Tobie pomóc.


(Dizzyx) #12

ale nie rozumiem... 20 takich samych tabel? po co? masz tabelę, to na niej działasz...


(Xorgx3) #13

No bo zadanie jest takie :

I ja dla każdego przedmiotu robiłem osobną kwerendę, potem tabelę i znowu kwerendę liczącą średnią. Wiem, pewnie wyśmiejecie mnie za taki sposób, ale po prostu inaczej nie umiem :stuck_out_tongue:

No i jeszcze w ogóle nie wiem jak zrobić to :


(Kpc21) #14

Ja bym to zrobił w Excelu. Głównie dlatego, że go bardziej znam. Ty pewnie też.


(Xorgx3) #15

Może wypowie się ktoś jeszcze? W internecie niezbyt dużo informacji na ten temat (w porównaniu do innych przedmiotów) :slight_smile:


(Drobok) #16

To akurat wg mnie również bardziej nadaje się na excela :slight_smile:


(Awicepsik) #17

4. a,b

#include 

#include 

#include 



using namespace std;


string sortuj(string slowo){ 

    string wyj;

    for(int i=97;i<123;i++){

        for(int v=0;v
            if(slowo[v]==char(i)){

                wyj = wyj + char(i); }

        }

    }

    return wyj;

}


int main()

{

    fstream plik("anagram.txt");

    ofstream odp1("odp_4a.txt");

    ofstream odp2("odp_4b.txt");

    string q,w,e,r,t;

    while(!plik.eof()){

        plik >> q >> w >> e >> r >> t;

        if(q.length() == w.length() && q.length() == e.length() && q.length() == r.length() && q.length() == t.length()){

            odp1 << (q+" "+w+" "+e+" "+r+" "+t+"\r\n");

            int l = q.length();

            if(sortuj(q) == sortuj(w) && sortuj(q) == sortuj(e) && sortuj(q) == sortuj(r) && sortuj(q) == sortuj(t)){

                odp2 << (q+" "+w+" "+e+" "+r+" "+t+"\r\n");

            }

        }

    }

    return 0;

}

5. Dodałem z pliku tekstowego pesele, gdzie każdy numer to nowe pole oraz identyfikator**** a)

SELECT Count(Pesel.Identyfikator) AS Osoby_urodzone_w_grudniu

FROM Pesel

GROUP BY [Pole3] & [Pole4]

HAVING ((([Pole3] & [Pole4])=12));

b)

SELECT Count(Pesel.Identyfikator) AS PoliczOfIdentyfikator

FROM Pesel

GROUP BY [Pole10] Mod 2

HAVING ((([Pole10] Mod 2)=0));

c)

SELECT TOP 1 Count(Pesel.Identyfikator) AS Najwiecej_urodzonych, [Pole1] & [Pole2] AS Wyr1

FROM Pesel

GROUP BY [Pole1] & [Pole2]

ORDER BY Count(Pesel.Identyfikator) DESC;

d)

SELECT [Pole1] & [Pole2] & [Pole3] & [Pole4] & [Pole5] & [Pole6] & [Pole7] & [Pole8] & [Pole9] & [Pole10] & [Pole11] AS Bledne_cyfry_kontrolne

FROM Pesel

GROUP BY [Pole1] & [Pole2] & [Pole3] & [Pole4] & [Pole5] & [Pole6] & [Pole7] & [Pole8] & [Pole9] & [Pole10] & [Pole11], Pesel.Identyfikator, IIf(IIf((([Pesel].[Pole1]+[Pesel].[Pole2]*3+[Pesel].[Pole3]*7+[Pesel].[Pole4]*9+[Pesel].[Pole5]+[Pesel].[Pole6]*3+[Pesel].[Pole7]*7+[Pesel].[Pole8]*9+[Pesel].[Pole9]+[Pesel].[Pole10]*3) Mod 10)=0,0,10-(([Pesel].[Pole1]+[Pesel].[Pole2]*3+[Pesel].[Pole3]*7+[Pesel].[Pole4]*9+[Pesel].[Pole5]+[Pesel].[Pole6]*3+[Pesel].[Pole7]*7+[Pesel].[Pole8]*9+[Pesel].[Pole9]+[Pesel].[Pole10]*3) Mod 10))=[Pesel].[Pole11],1,0)

HAVING (((IIf(IIf((([Pesel].[Pole1]+[Pesel].[Pole2]*3+[Pesel].[Pole3]*7+[Pesel].[Pole4]*9+[Pesel].[Pole5]+[Pesel].[Pole6]*3+[Pesel].[Pole7]*7+[Pesel].[Pole8]*9+[Pesel].[Pole9]+[Pesel].[Pole10]*3) Mod 10)=0,0,10-(([Pesel].[Pole1]+[Pesel].[Pole2]*3+[Pesel].[Pole3]*7+[Pesel].[Pole4]*9+[Pesel].[Pole5]+[Pesel].[Pole6]*3+[Pesel].[Pole7]*7+[Pesel].[Pole8]*9+[Pesel].[Pole9]+[Pesel].[Pole10]*3) Mod 10))=[Pesel].[Pole11],1,0))=0))

ORDER BY [Pole1] & [Pole2] & [Pole3] & [Pole4] & [Pole5] & [Pole6] & [Pole7] & [Pole8] & [Pole9] & [Pole10] & [Pole11];

6.**** a)

SELECT Count(Uczniowie.IDucznia) AS UczniowiePozaStrefa

FROM Uczniowie

WHERE Uczniowie.ulica = 'Sportowa' or Uczniowie.ulica = 'Worcella';

b)

SELECT Oceny.Ocena AS Oceny_z_polskiego

FROM Uczniowie INNER JOIN (Oceny INNER JOIN Przedmioty ON Oceny.IDprzedmiotu = Przedmioty.IDprzedmiotu) ON Uczniowie.IDucznia = Oceny.IDucznia

WHERE (((Uczniowie.nazwisko)='Augustyniak') AND ((Uczniowie.imie)='Jan') AND ((Przedmioty.NazwaPrzedmiotu)='polski'));

c) pomocnicze kwerendy chlopcy i dziewczeta

SELECT Uczniowie.IDklasy, Count(Uczniowie.IDucznia) AS chlopcy

FROM Uczniowie

WHERE (((Right([Uczniowie]![imie],1))<>'a'))

GROUP BY Uczniowie.IDklasy;

SELECT Uczniowie.IDklasy, Count(Uczniowie.IDucznia) AS dziewczeta

FROM Uczniowie

WHERE (((Right([Uczniowie]![imie],1))='a'))

GROUP BY Uczniowie.IDklasy;

oraz punkt c

SELECT chlopcy.IDklasy, dziewczeta.dziewczeta, chlopcy.chlopcy

FROM chlopcy INNER JOIN dziewczeta ON chlopcy.IDklasy = dziewczeta.IDklasy;

d)

SELECT Round(Avg([Ocena]),2) AS srednia, Przedmioty.NazwaPrzedmiotu

FROM Uczniowie INNER JOIN (Oceny INNER JOIN Przedmioty ON Oceny.IDprzedmiotu = Przedmioty.IDprzedmiotu) ON Uczniowie.IDucznia = Oceny.IDucznia

WHERE (((Uczniowie.IDklasy)='2a'))

GROUP BY Przedmioty.NazwaPrzedmiotu

ORDER BY Avg(Round([Ocena],2)) DESC;

e)

SELECT Uczniowie.imie, Uczniowie.nazwisko, Przedmioty.NazwaPrzedmiotu

FROM Uczniowie INNER JOIN (Oceny INNER JOIN Przedmioty ON Oceny.IDprzedmiotu = Przedmioty.IDprzedmiotu) ON Uczniowie.IDucznia = Oceny.IDucznia

WHERE (((Oceny.Ocena)=1) AND ((Month([Oceny]![Data]))=4) AND ((Year([Oceny]![Data]))=2009) AND ((Uczniowie.IDklasy)='2c'))

ORDER BY Uczniowie.nazwisko;

f)

SELECT TOP 1 Uczniowie.nazwisko, Uczniowie.imie, Uczniowie.IDklasy, Avg(Oceny.Ocena) AS ŚredniaOfOcena

FROM Uczniowie INNER JOIN Oceny ON Uczniowie.IDucznia = Oceny.IDucznia

GROUP BY Uczniowie.nazwisko, Uczniowie.imie, Uczniowie.IDklasy

ORDER BY Avg(Oceny.Ocena) DESC;

Dodam, że znam w podstawowym stopniu język sql, zatem łatwiej mi się w accesie robi, bo wiele komend jest podobnych. Jak coś nie działa to przełączam na widok SQL. Na maturze na tą cześć jest 2,5h i po wykonaniu nie jest to takie trudne. Ale robiłem o wiele dłużej.