Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.

Podobne prezentacje


Prezentacja na temat: "Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi."— Zapis prezentacji:

1 Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka

2 Prowadzący dr Danuta Szeliga mgr inż. Łukasz Sztangret Budynek B4 pokój 207A home.agh.edu.pl/~szt Konsultacje:poniedziałek – piątek – 14.00

3 Zasady zaliczenia Wykład: Wykłady są nieobowiązkowe. Wykłady będą udostępniane na stronie na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0 Egzamin: Do egzaminu może przystąpić wyłącznie osoba, która otrzymała zaliczenie z przedmiotu. Student ma prawo do trzykrotnego przystąpienia do egzaminu w zaplanowanych terminach, w tym jeden raz w terminie podstawowym i dwa razy w terminie poprawkowym. Nieusprawiedliwiona nieobecność na egzaminie w danym terminie powoduje utratę tego terminu (brak zaliczenia nie jest usprawiedliwieniem nieobecności). Usprawiedliwienie nieobecności na egzaminie jest możliwe tylko w terminie do dwóch tygodni od daty egzaminu, ale przed kolejnym terminem. Termin zerowy – do ustalenia. Ocena końcowa: Ocena końcowa jest średnią ważoną oceny z zaliczenia z wagą 0.4 i oceny z egzaminu z wagą 0.6, przy czym oceny niedostateczne z zaliczenia i egzaminu są uwzględniane z wagami odpowiednio 0.1 i 0.15.

4 Literatura 1. Jerzy Grębosz Symfonia C++ standard Rozdziały: 1.Startujemy 2.Instrukcje sterujące 3.Typy 4.Operatory 5.Funkcje 6.Preprocesor 7.Tablice 8.Wskaźniki 9.Przeładowanie nazwy funkcji 11.Biblioteczna klasa std::string do operacji z tekstami 13.Struktury, unie, pola bitowe 22.Operacje wejścia/wyjścia (fragmenty)

5 Literatura 2. Jerzy Grębosz Pasja C++ Rozdziały: 2.Szablony funkcji – wiadomości wstępne 3.Szablon funkcji – oglądany z zewnątrz 4.Zaglądamy do ciała szablonu - specjalizacja 5.Krótki, ale za to nudny rozdział kończący 19.Obsługa sytuacji wyjątkowych 20.Odwikłanie stosu 22.Gdy nikt nie złapie wyjątku 23.O wyjątkach uwagi ogólniejsza 3. Bruce Eckel Thinking in C++ 4. Bjarne Stroustrup Język C++ 5. Dawid Harel Rzecz o istocie informatyki

6 INFORMATYKA Informatyka (ang. computer science, computing science, information technology, informatics) - ogół dyscyplin naukowych i technicznych zajmujących się informacją, a w szczególności jej komputerowym przetwarzaniem. Obejmuje: –teorie informatyczne –budowanie systemów informacyjnych, w tym programowanie –budowanie i działanie sprzętu informatycznego –zastosowanie metod informatycznych w różnych dziedzinach działalności ludzkiej Termin informatyka został zaproponowany przez Romualda Marczyńskiego (1968, Zakopane, ogólnopolska konferencja poświęconej maszynom matematycznym) na wzór fr. informatique i niem. informatik.

7 ALGORYTM Algorytm (intuicyjnie) jest to sposób postępowania, przepis, proces, metoda, technika, procedura. Algorytm (precyzyjnie) jest to skończony zbiór reguł wskazujący kolejność operacji dla rozwiązania problemu danego typu. Algorytmika – dział wiedzy zajmujący się badaniem algorytmów

8 Istotne cechy algorytmu Definicja zadania = co algorytm ma zrobić Opis ciągu czynności, które po kolei mają być wykonane Czynności te muszą być na tyle proste (i możliwe do wykonania), aby wykonawca algorytmu mógł je bez dodatkowego tłumaczenia, wykonać (operacje elementarne, odpowiednio dobrany poziom szczegółowości) Skończona liczba operacji elementarnych (skończony czas działania) Algorytm dostaje pewne informacje (dane wejściowe) i zwraca pewne (oczekiwane) wyniki dane wyjściowe Może istnieć kilka algorytmów, które dają w wyniku te same wyniki

9 Sposoby zapisu algorytmu –słowami –za pomocą schematu blokowego –w pseudokodzie – połączenie opisu słownego z implementacją –w jednym z języków programowania

10 Schemat blokowy Schemat blokowy (block diagram, flowchart) to diagram, na którym algorytm jest reprezentowany przez opisane figury geometryczne, połączone liniami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania. Pozwala dostrzec istotne etapy algorytmu i logiczne zależności między nimi.

11 Schemat blokowy strzałka wskazuje kierunek przebiegu sterowania programem, łączy inne bloki operand (prostokąt) wszystkie operacje z wyjątkiem instrukcji wyboru predykat (romb) instrukcja wyboru etykieta (owal) początek lub koniec sekwencji schematu wejście/wyjście (równoległobok) y=x+1 x>5 START Wprowadź x oraz y TAKNIE

12 Algorytm Euklidesa Algorytm Euklidesa chronologicznie pierwszy nietrywialny algorytm Problem: mając dane dwie liczby naturalne a i b znaleźć ich największy wspólny dzielnik Pierwotnie problem ten sprowadzał się do czysto geometrycznego problemu znalezienia wspólnej miary dla dwóch odcinków Zadanie algorytmiczne: Dane: a; b N, Wynik: NWD(a,b).

13 Algorytm Euklidesa 1.Dane są dwie liczby a i b. 2.Jeśli a jest równe b, to NWD jest równy a, w przeciwnym wypadku, jeśli a jest większe od b, weź a = a - b, a jeżeli a jest mniejsze od b weź b = b – a. 3.Zacznij od początku. Opis słowny: Schemat blokowy:

14 Paradygmat programowania Paradygmat programowania jest to: zbiór koncepcji reprezentujących podejście do implementacji algorytmów, zbiór mechanizmów, jakich programista używa, pisząc program i o to, jak ów program jest następnie wykonywany przez komputer.

15 Programowanie proceduralne Programowanie proceduralne to paradygmat programowania zalecający dzielenie kodu na procedury (funkcje), czyli fragmenty wykonujące ściśle określone operacje. Kładziony jest nacisk na: –modularność: wejścia procedur są opisywane syntaktycznie jako argumenty, a wyjścia jako wartości zwracane –ograniczanie kontekstu: procedury nie powinny korzystać ze zmiennych globalnych (w miarę możliwości), lecz wykorzystywać zmienne lokalne

16 Jak powstaje program komputerowy? Gdybym miał problem, od którego zależało by moje życie i tylko jedną godzinę na jego rozwiązanie, spędziłbym 40 minut na jego analizie, 15 minut na ponownym badaniu i 5 minut na rozwiązaniu go. Albert Einstein Pisanie programu to nie tylko pisanie kodu źródłowego w komputerze! Cykl wytwarzania oprogramowania: sformułowanie problemu – analiza (25%), skonstruowanie algorytmu (25%), pisanie programu (20%), uruchamianie i testowanie programu (30%).

17 Styl programowania Programy mają być czytane przez ludzi. Stosuj komentarze wstępne i wyjaśniające. Komentarz – to nie parafraza instrukcji. Stosuj odstępy do poprawienia czytelności. Używaj dobrych nazw mnemonicznych (funkcje, typy, zmienne). Pisz jedną instrukcję w wierszu. Stosuj wcięcia do uwidocznienia struktury programu.

18 Wcięcia w strukturze programu int main() { int i; for(i=0; i<10; i=i+1) { cout<

19 Komentarze // tylko jedna linia komentarza /* komentarz, który ma wiele linijek*/ Komentarze typu /*…*/ nie mogą się zagnieżdżać, czyli: /* jakiś tam komentarz /* i jeszcze jeden*/ */ - BŁĄD

20 Kompilacja programu Kompilator – program tłumaczący instrukcje języka C++ na język maszyny. Linker – program łączący skompilowane części programu z bibliotekami. plik źródłowy *.cpp z napisanym w języku C++ kodem plik tekstowy plik wynikowy *.exe skompilowany zrozumiały dla komputera kompilacja + linkowanie

21 Wypisywanie tekstu na ekranie #include using namespace std; int main() { cout<<"AGH"<

22 Zmienne Zmienne służą do przechowywania wartości, znaków, słów, … Deklaracja – informuje kompilator że dana nazwa reprezentuje obiekt jakiegoś typu, np.: extern int a; Definicja – dodatkowo rezerwuje miejsce w pamięci, np.: int a; Inicjalizacja – definicja + przypisanie wartości, np.: int a = 5;

23 Nazwy zmiennych Nazwa zmiennej może być dowolnie długim ciągiem liter, cyfr oraz znaków podkreślenia, przy czym: nie może zaczynać się od cyfry, rozróżniane są duże i małe litery, nie może być słowem kluczowym.

24 Słowa kluczowe asmautoboolbreakcasecatch charclassconstconst_castcontinuedefault deletedodoubledynamic_castelseenum explicitexportexternfalsefloatfor friendgotoifinlineintlong mutablenamespacenewoperatorprivateprotected publicregister reinterpret_c ast returnshortsigned sizeofstaticstatic_caststructswitchtemplate thisthrowtruetrytypedeftypeid typenameunionunsignedusingvirtualvoid volatilewchar_twhile andand_eqbitandbitorcomplnot not_eqoror_eqxorxor_eq

25 cin #include using namespace std; int main() { int a; cout<<"Podaj liczbe"<>a; cout<<"Podales liczbe "<

26 Stałe Stałe będące liczbami całkowitymi –Zapis dziesiętny: 1105… –Zapis ósemkowy: … 09 – BŁĄD –Zapis szesnastkowy: 0x10x100x50xf…

27 Stałe Stałe będące liczbami zmiennoprzecinkowymi: … 2e43.2e-2-5.2e2…

28 Stałe Stałe znakowe: ax…ax… Znaki specjalne \bcofacz \fnowa strona \nnowa linia \rpowrót karetki \ttabulator poziomy \vtabulator pionowy \asygnał dźwiękowy

29 Stałe Stałe tekstowe: HelloHi… a to nie to samo co a

30 Instrukcje sterujące Instrukcje sterujące są to polecenia służące do sterowania przebiegiem programu. W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności od spełnienia lub niespełnienia jakiegoś warunku (czyli od prawdziwości lub fałszywości jakiegoś wyrażenia).

31 PRAWDA i FAŁSZ C++ istnieje specjalny wbudowany typ danych określający zmienne logiczne (przyjmujące wartości prawda lub fałsz): bool Zdefiniowane są dwie stałe: true i false Wartość PRAWDA lub FAŁSZ ma każde, dowolnie skomplikowane wyrażenie. wartość zero = FAŁSZ każda inna = PRAWDA

32 Instrukcja warunkowa if (1) Wyrażenie to coś, co ma jakąś wartość: –obiekt lub –wyrażenie. Zamiast jednej instrukcji może wystąpić blok instrukcji. if( wyr ) instr; if( wyr ) instr1; else instr2; wyr instr Tak Nie wyr instr1 Tak Nie instr2

33 Instrukcja if…else #include using namespace std; int main() { int a; cout << "Podaj liczbe" << endl; cin >> a; if (a>0) cout << "Podales liczbe dodatnia" << endl; else cout << Podales liczbe niedodatnia" << endl; } Wyrażenie

34 Blok instrukcji Często się zdarza, że chcemy wykonać warunkowo nie jedną, lecz kilka instrukcji. Stosujemy wówczas instrukcję składaną zwaną blokiem: { instr1; instr2;... } Po klamrze nie trzeba stawiać średnika! Zróżnicowane wcięcia nie mają znaczenia dla kompilatora, ale ogromnie zwiększają czytelność kodu.

35 Wybór wielowariantowy Instrukcje warunkowe if...else możemy ze sobą łączyć – uzyskamy wtedy możliwość wyboru wielowariantowego. if (wyr1) instr1; else if (wyr2) instr2; else if (wyr3) instr3;

36 Wybór wielowariantowy #include using namespace std; int main() { int a; cin>>a; if(a>0) cout<<"a jest dodatnie"<

37 Pętla while Najpierw obliczana jest wartość wyrażenia wyr. Jeśli wynik jest zerowy, wy- chodzimy z pętli. Jeśli wartość wyrażenia jest niezerowa, wykonujemy instrukcję instr. Instrukcję wykonujemy do- póki (while) wyrażenie ma wartość niezerową. Uwaga: pętla może w ogóle nie wykonać się ani razu! while ( wyr ) instr ; Wartość wyrażenia obliczana przed wykonaniem instrukcji! wyr instr Tak Nie

38 Pętla while #include using namespace std; int main() { int i=0; while (i<10) { cout << i << endl; i=i+2; } Wyrażenie Ciało pętli w nawiasach

39 Pętla do...while Najpierw wykonywana jest instrukcja instr. Następnie obliczana jest wartość wyrażenia wyr. Jeżeli jest ono niezerowe, to zostanie powtórzone wy- konanie tej instrukcji. Jeśli wynik jest zerowy, wy- chodzimy z pętli. Uwaga: pętla wykona się co najmniej jeden raz! do instr; while ( wyr ); Wartość wyrażenia obliczana po wykonaniu instrukcji! wyr instr TakNie

40 Pętla do…while #include using namespace std; int main() { int i=0; do { cout << i << endl; i=i+1; } while (i<10); } Wyrażenie Średnik!!! Początek pętli

41 Pętla for Na początku, jednorazowo, zawsze, wykonywana jest i_ini. Następnie obliczana jest wartość wyrażenia wyr. Jeśli wynik jest zerowy, wychodzimy z pętli. Jeśli wartość wyrażenia jest nie- zerowa, wykonujemy instr, a potem i_krok. Instrukcję wykonujemy dopóki wyrażenie wyr ma wartość niezerową. Uwaga: pętla może w ogóle nie wykonać się ani razu, choć wykona się wtedy 1 raz i_ini. wyr i_ini TakNie tresc_petli i_krok for(i_ini ; wyr ; i_krok) instr ; Wartość obliczana przed wykonaniem treści pętli!

42 Pętla for i_ini nie musi być jedną instrukcją – może być ich kilka, wtedy oddzielone są przecinkami. Podobnie w wypadku i_krok. W i_ini może pojawić się definicja obiektu. i_ini, wyr lub i_krok można opuścić Zapis: for ( ; ; ) {... } oznacza pętlę nieskończoną.

43 Pętla for #include using namespace std; int main() { for (int i=0; i<10; i=i+1) cout << i << endl; } III III IV

44 Pętla for #include using namespace std; int main() { for (int i=0; i<3; i=i+1) for (int j=0; j<2; j=j+1) cout << "i=" << i << "\t" << "j=" << j << endl; }

45 Te same nazwy zmiennych int main() { int a; … int a; } int main() { int a; { int a; } BŁĄD - redefinicja

46 Te same nazwy liczników pętli int main() { for(int i=0; i<3; i=i+1) cout<

47 Te same liczniki pętli int main() { for(int i=0; i<3; i=i+1) for(i=0; i<3; i=i+1) cout<

48 Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie:


Pobierz ppt "Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi."

Podobne prezentacje


Reklamy Google