Programowanie Proceduralne
Termin zajęć w semestrze zimowym 2013/2014:
Wykład: poniedziałek g. 14-16, aula COK sala 20, WFAiIS
Laboratorium: (od 6 listopada)
grupa 1, wtorek, godz. 1215-1430, PK6, WFAiIS
grupa 2, wtorek, godz. 1435-1650 godz. 1500-1715, PK6, WFAiIS
Wykład
Wykład w całości - plik będzie aktualizowany na bieżąco w trakcie postępów wykładu.
-
Trochę historii komputerów i programowania.
Podstawowe pojęcia,
Języki programowania - historia, klasyfikacja.
Środowiska programistyczne.
-
-
Algorytmy i ich cechy.
Zadanie algorytmiczne, specyfikacja.
Formy zapisu algorytmów - np. schematy blokowe.
Przykłady algorytmów: alg. Euclidesa
Pliki źródłowe:
-
-
Struktura kodu.
Zmienne - deklaracja i inicjalizacja.
Najważniejsze operatory.
Funkcje: printf()
, scanf()
.
Instrukcje sterujące: if, else, do, while
Przykłady programów: pole koła, silnia, pierwiastek kwadratowy (alg. Herona)
Pliki źródłowe:
-
-
Anatomia funkcji.
Deklaracje i definicje funkcji.
Parametry formalne i aktualne.
Zmienne na stosie.
Zmienne globalne i lokalne.
Funkcje i procedury.
Biblioteki standardowe.
Biblioteka math.h
Przykłady programów: alg. Euklidesa (NWD), liczby pierwsze, wzór Herona (pole trójkąta)
Pliki źródłowe:
euclid3.c - wyznaczanie pierwiastka kwadratowego
-
heron2.c - pole trójkąta o bokach
a
,
b
,
c
globalne.c - demonstracja różnic pomiędzy zm. globalnymi i lokalnymi
-
-
Tablice - deklaracja, indeksowanie, operator []
.
Tablice jako argumenty funkcji.
Typowe przykłady użycia tablic: wczytywanie wartości, kopiowanie
Struktury - deklaracja, operator dostępu .
Typ struct
jako argument funkcji
Struktura jako wartość zwracana z funkcji
Przykłady algorytmów:
Pliki źródłowe:
-
-
Adresy, wskaźniki, zmienne wskaźnikowe, typ wskaźnikowy.
Deklaracje zmiennych wskaźnikowych.
Operator referencji &
i dereferencji *
Wskaźniki jako argumenty funkcji.
Wskaźniki jako wartość zwracana z funkcji.
Co wspólnego mają wskaźniki i tablice?
Przykłady algorytmów:
Pliki źródłowe:
-
-
Bit, bajt i kody bitowe
Pozycyjne systemy liczbowe
Reprezentacja liczby całkowitej i rzeczywistej w komputerze
Niedokładności przy obliczeniach zmiennopozycyjnych
Przykłady algorytmów:
Pliki źródłowe:
dec2all.c zamiana do innego systemu liczbowego
-
-
-
-
-
Co było a co nie było omówione na wykładzie?
Wstęp do inżynierii oprogramowania.
Kilka dobrych rad
O stylu i standardach kodowania
Obsługa błędów w C
Laboratorium
Literatura
Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C
Maciej M. Sysło, „Algorytmy”, WSiP, Warszawa, 2002.
David Griffiths, Dawn Griffiths, „Rusz głową! C”, Helion, Gliwice, 2013.
(prawie) wszystkie książki na temat języka C
-
-
Kilka przydatnych odnośników
C reference
Programming C (wikibook) (wersja polska)
Alfabetyczny spis funkcji biblioteki standardowej ANSI C (tzw. libc) w wersji C89
ANSI C for Programmers on UNIX Systems
The International Obfuscated C Code Contest
Notatki do wykładu z języka C (dr N. Jankowski)
Zintegrowane środowiska programistyczne (IDE)
Visual Studio Express (MS Windows)
Eclipse z wtyczką CDT (GNU Linux, MS Windows)
NetBeans IDE C and C++ Development
Bloodshed Software - Dev-C++ (MS Windows) Nie rozwijany od 2005 !!
Rozwijana nieoficjalna wersja DevC++ Orvel DevC++
Code::Blocks (GNU Linux, MS Windows, Mac OS X)
Kdevelop KDE Development Environment (GNU Linux)
Anjuta DevStudio IDE for C and C++, written for GTK/GNOME (GNU Linux)
Relo (MS Windows)
Turbo C version 2.01 (MS Windows)
Borland C++ Builder 6 Personal
Inne
Ideone - Kompilator online