Politechnika Wrocławska, Wydział Elektroniki, 1 rok studiów, sem. zimowy 2010/2011

Wykład:  INEW001  "PODSTAWY PROGRAMOWANIA"
dla kierunku Informatyka 

Proponowane terminy sprawdzianów kontrolnych z wykładu:

I.   26 listopada 2010

- przykładowe zadania na 1 sprawdzian,
   Wyniki 1 sprawdzianu 

II.  21 styczenia 2011

- przykładowe zadania na 2 sprawdzian,
   Wyniki 2 sprawdzianu 

II.   3 luty 2011

- kolokwium poprawkowe odbędzie  się
   w godz. 13:00-14:00 w sali wykładowej 23/C3
 
   Wyniki poprawki

Aktualne informacje (np. wyniki zaliczeń) będą podawane na  TABLICY OGŁOSZEŃ
Proponowany program laboratorium i ćwiczeń do wykładu.


Zakres wykładu: Podstawy programowania w języku C++   (prow. dr Marek Piasecki)

Informacje o prowadzącym, zasady zaliczenia wykładu (PDF).

  1. Wprowadzenie: Algorytmiczne języki programowania. Program komputerowy i proces jego opracowywania.
    Struktura programu źródłowego w C/C++. Przykłady prostych programów.
    Podstawowe typy całkowite i rzeczywiste . Definiowanie i inicjacja zmiennych prostych.
    Operatory i wyrażenia: Operator przypisania. Operatory i wyrażenia arytmetyczne.
    Operatory przypisania arytmetycznego, inkrementacji i dekrementacji. Operatory relacji, wyrażenia logiczne.
    slajdy do wykładu: (PDF 154KB

  2. Podstawowe operacje wejścia i wyjścia:  Podejście proceduralne - funkcje standardowe scanf i printf.
    Podejście obiektowe - strumienie standardowe cin, cout, operatory pobierania i wstawiania do strumienia.
    Sterowanie wykonaniem programu. Instrukcje warunkowe if, if-else, konstrukcja else-if.
    Zagniezdżanie instrukcji if. Instrukcja switch.
    slajdy do wykładu: (PDF 71KB)
                                (Dodatkowe przykłady ilustrujące if/else)

  3. Instrukcje iteracyjne:while, do-while, for. Badanie warunku zakończenia pętli.
    Pętle zagnieżdżone. Instrukcje break i continue.
    Przykłady programów z wykorzystaniem w/w instrukcji.
    slajdy do wykładu: (PDF 142KB)

  4. Tablice w języku C - deklaracja i inicjacja - dostęp do elementów za pomocą operatora indeksu.
    Operacje na tablicach z wykorzystaniem pętli for. Tablice wielowymiarowe.
    slajdy do wykładu: (PDF 105KB)

  5. Wskaźniki: Wskaźniki zmiennych i ich adresy, arytmetyka wskaźników.
    Związek pomiędzy wskaźnikami a tablicami. Praca z tablicami w zapisie wskaźnikowym.
    slajdy do wykładu: (PDF 78KB)

  6. Funkcje: pojęcie funkcji. Deklaracja i definicja funkcji. Prototyp funkcji.
    Zwracanie wartości funkcji. Przekazywanie parametrów przez wartość.
    Parametry funkcji: przekazywanie parametrów funkcji przez wartość, adres, referencję.
    Zwracanie jednej i wielu wartości. Przekazywanie zmiennych prostych, tablic, łańcuchów.
    Funkcje operujące na pamięci: <mem.h> (memset, memcpy, memcmp, memmove, itp.)
    slajdy do wykładu: (PDF 100KB)
                                (Dodatkowe przykłady tworzenia funkcji z argumentami)

  7. Teksty - tablice znakowe w języku C.
    Standardowe funkcje łańcuchowe z biblioteki <string.h> (strcpy, strcmp, strcat, strlen, itd.)
    Przykłady przetwarzania danych tekstowych (operacje na łańcuchach znaków).
    slajdy do wykładu: (PDF 76KB)
                                (Dodatkowe przykłady funkcji przetwarzających teksty)

  8. Dynamiczne przydzielanie pamięci. Tworzenie tablic i łańcuchów o zadawanej wielkości.
    slajdy do wykładu: (PDF 52KB)

  9. Typ strukturalny i jego definicja. Deklaracja i inicjacja zmiennych strukturalnych.
    Zagnieżdżanie struktur.Rozszerzenie struktury o metody składowe. Atrybuty dostępu.
    slajdy do wykładu: (PDF 66KB)
                                (Dodatkowe przykłady przetwarzania tablic struktur)

  10. Obsługa plików zewnętrznych. Pliki binarne i tekstowe.
    Podejście proceduralne: Standardowe funkcje do obsługi plików z biblioteki <stdio.h>.
    Wejście i wyjście dla znaków, łańcuchów i danych formatowanych. Wejście i wyjście blokowe (binarne).
    slajdy do wykładu: (PDF 57KB)
                                (Dodatkowe przykłady przetwarzania plików)

    Podejście obiektowe: Klasa fstream. Podstawowe metody i operatory.
    slajdy do wykładu: (PDF 57KB)

  11. Wskaźniki a tablice wielowymiarowe. Tablice wskaźników, wskaźniki na tablice.
    Wskaźniki na funkcje. Funkcja qsort.
    Różne kombinacje wskaźników.
    slajdy do wykładu: (PDF 83KB)

  12. Złożone struktury danych:
    a) dynamiczna tablica tablic,
    b) tablica wskaźników na dynamiczne tablice / łańcuchy,
    c) dynamiczna tablica wskaźników na dynamiczne tablice / łańcuchy.
    slajdy do wykładu: (PDF 44KB)

  13. Strukturalizacja danych i kodu, abstrakcja, szablony (template)
    slajdy do wykładu: (PDF 65KB)



Literatura:

Jerzy Grębosz          “Symfonia C++”
Kent Reisdorph        “C++ Builder 6 - dla każdego”  (dla środowiska C++Builder)

Robert Lafore              “Programowanie w języku C przy użyciu Turbo C++”

Andrzej Zalewski         “Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++”
Kris Jamsa                 “Wygraj z C++”
----------------------------------------------
Bjarne Stroustrup     “Język C++ “
Robert Sedgewick    “Algorytmy w C ++ “
----------------------------------------------
Brian Kernigham, Dennis Ritchie   “Język ANSI C“

 


Zagadnienia do opracowania na laboratorium:

- Poznanie środowiska Borland C++ Builder (ver. 6.0) lub MS Visual Studio
- Pisanie i uruchamianie programów konsolowych z użyciem:
       a) zmiennych prostych oraz instrukcji warunkowych
       b) pętli i tablic (zapis indeksowy)
       c) definiowanie funkcji oraz przekazywanie parametrów,
       d) przetwarzanie łańcuchów (zapis indeksowy i wskaźnikowy),
       e) tablice struktur - wczytywanie, wyświetlanie, wyszukiwanie, obliczenia
       g) składowanie danych w pliku dyskowym (tekst oraz binarnie)
       h) dynamiczna alokacja pamięci, dynamiczne struktury danych


Szczegółowy program laboratorium 2010/2011