Programowanie w C.pdf
(
441 KB
)
Pobierz
W
YKŁAD
:
P
ROGRAMOWANIE W
C
E
LEMENTARNE ALGORYTMY I STRUKTURY
DANYCH
Paweł Ogniewski
pogniewski@mini.pw.edu.pl
http://www.mini.pw.edu.pl/~pogniewski/
Warszawa 2002
S
PIS TREŚCI
1
W
PROWADZENIE DO WYKŁADU
3
1.1
Programowanie i programy..............................................................................................3
1.2
Języki programowania.....................................................................................................3
1.3
Kompilatory i środowiska programistyczne......................................................................3
1.4
Język C...........................................................................................................................4
1.5
Algorytmy i struktury danych............................................................................................4
1.6
Literatura.........................................................................................................................5
2
O
GÓLNE ZAPOZNANIE Z JĘZYKIEM
C
6
2.1
Pierwszy program. Wypisywanie tekstu na ekranie.........................................................6
2.2
Zmienne i operacje arytmetyczne....................................................................................7
2.3
Pętla
for
i stała..............................................................................................................8
2.4
Formatowanie kodu.........................................................................................................9
3
P
ODSTAWOWE ELEMENTY STRUKTURY JĘZYKA
C
11
3.1
Identyfikatory.................................................................................................................11
3.2
Wyrażenia.....................................................................................................................12
3.3
Instrukcje.......................................................................................................................12
3.4
Zmienne i typy proste danych........................................................................................13
3.5
Stałe..............................................................................................................................15
3.6
Operatory i ich priorytety................................................................................................18
3.7
Przekształcenia typów...................................................................................................21
4
P
RZEPŁYW STEROWANIA
23
4.1
Instrukcja
if
-
else if
-
else
...................................................................................23
4.2
Instrukcja
switch
.........................................................................................................24
4.3
Pętle
while
,
do
-
while
i
for
.....................................................................................26
4.4
Etykiety i skoki...............................................................................................................27
5
S
TRUKTURA PROGRAMU
29
5.1
Funkcje..........................................................................................................................29
5.2
Zasięg nazw..................................................................................................................31
5.3
Rekurencja.....................................................................................................................32
5.4
Preprocesor języka C: makra i kompilacja warunkowa...................................................33
5.5
Pliki nagłówkowe i projekty.............................................................................................36
5.6
Zmienne statyczne, stałe i rejestrowe.............................................................................38
6
W
SKAŹNIKI I TABLICE
39
6.1
Wskaźniki i adresy.........................................................................................................39
6.2
Tablice...........................................................................................................................40
6.3
Tablice znaków - napisy.................................................................................................42
6.4
Allokacja pamięci...........................................................................................................44
6.5
Wskaźnikowe parametry funkcji.....................................................................................44
7
O
PERACJE WEJŚCIA
-
WYJŚCIA
44
7.1
Formatowane wyjście i funkcja
printf()
.....................................................................44
7.2
Formatowane wejście i funkcja
scanf()
.......................................................................44
7.3
Obsługa plików...............................................................................................................44
7.4
Pochodne funkcji
printf()
i
scanf()
........................................................................44
8
Z
ŁOŻONE STRUKTURY DANYCH
44
8.1
Struktury........................................................................................................................44
8.2
Deklaracja
typedef
......................................................................................................45
8.3
Listy...............................................................................................................................45
8.4
Drzewa...........................................................................................................................45
8.5
Unie i pola bitowe...........................................................................................................45
9
W
YBRANE FUNKCJE STANDARDOWEJ BIBLIOTEKI
45
9.1
Funkcje matematyczne: nagłówek
<math.h>
...............................................................45
9.2
Wykrywanie błędów: nagłówek
<assert.h>
...............................................................45
9.3
Operacje na tekstach: nagłówek
<string.h>
.............................................................45
9.4
Czas systemowy: nagłówek
<time.h>
........................................................................45
1. W
PROWADZENIE DO WYKŁADU
- P
ROGRAMOWANIE I PROGRAMY
1 W
PROWADZENIE DO WYKŁADU
Wykład obejmuje swą treścią przede wszystkim naukę programowania w języku C dla początkujących.
Zawiera jednak opis kilku elementarnych algorytmów i struktur danych, bez których nie sposób chyba
zdobyte umiejętności programistyczne wykorzystywać w praktyce. Integralną częścią tego wykładu są
zajęcia laboratoryjne, do których nie rzadko będę nawiązywał, nie tracąc, jak myślę, ogólności tego
tekstu, gdyż jedynym sposobem na nauczenie się programowania są samodzielnie wykonywane
ćwiczenia – pisanie programów.
1.1 Programowanie i programy
Przed przystąpieniem do nauki warto jednak przyswoić sobie kilka podstawowych pojęć z zakresu
programowania w ogóle.
Programowanie
, jak sama nazwa wskazuje, jest czynnością mającą na celu
zestawienie kolejnych operacji, jakie ma wykonać pewna maszyna matematyczna, np. komputer.
Stworzony w wyniku programowania zestaw instrukcji zrozumiałych dla danej maszyny i podany jej
w takiej postaci, aby mogła rozpocząć ich wykonywanie, nazywamy
programem
. Uogólniając więc nieco
pojęcie programowania, możemy w skrócie powiedzieć, że programowanie – to tworzenie programów,
a programy – to zapisane w „języku maszyny” ciągi instrukcji, które ma ona wykonać.
1.2 Języki programowania
Skoro pojawiło się już pojęcie
języka maszyny
, wypada, aby zostało ono skomentowane, tym bardziej, że
bezpośrednio wiąże się z pojęciem
języka programowania
. Maszyny, które dziś są programowalne, to tak
zwane maszyny cyfrowe, albo mówiąc precyzyjniej zero-jedynkowe. Oznacza to tyle, że podczas
swojego działania, są w stanie rozróżniać jedynie dwa stany, którym zostały nadane nazwy:
zero
i
jeden
.
Maszyna cyfrowa, kiedy przetwarza przechodzące przez nią sygnały (które mogą być instrukcjami,
danymi, ...) posługuje się systemem binarnym. Dzięki temu wszystkie możliwe do wykonania przez taką
maszynę instrukcje mogły zostać ponumerowane i w ten sposób stworzyły cyfrowy język maszyny. (Aby
formalnie zdefiniować pojęcie języka maszyny należałoby wspomnieć o zasadach przekazywania
instrukcji, pomijam jednak tę część aby nie zaciemniać idei, którą pragnę przekazać.) Różne języki
maszynowe, szczególnie w odniesieniu do komputerów, zwykło nazywać się
asemblerami
danej
maszyny.
Jak łatwo domyśleć się nawet bardzo początkującemu programiście, tworzenie programów w asemblerze
jest czynnością dość nie wygodną i wymagającą od programisty dodatkowych umiejętności, a szczególnie
większej wyobraźni. W tym celu zostały stworzone tzw.
języki wyższego poziomu
. Spośród najbardziej
znanych języków programowania możemy wyróżnić w tej kategorii języki jak: Pascal, Fortran, C czy
C++. Są to języki, które w swojej składni zawierają dużo bogatszy zestaw instrukcji niż języki typu
asembler. Ponadto oferują wiele predefiniowanych wyrażeń czy nawet całych procedur znakomicie
ułatwiających pracę programiście. Nie wspominając już o samej składni języka – przede wszystkim dużo
przejrzystszej. Wszystko to powoduje, że programowanie w językach wyższego poziomu staje się
szybsze i wygodniejsze.
1.3 Kompilatory i środowiska programistyczne
Nie chciałbym jednak spowodować wrażenia zdecydowanej wyższości języków wysokiego poziomu nad
asemblerami, jest bowiem ogrom zastosowań, do których właśnie asemblery nadają się najlepiej.
Przydatne są one chociażby wszędzie tam, gdzie konieczna jest wysoka optymalizacja pisanych
programów. Każdy bowiem program napisany w dowolnym języku wysokiego poziomu, musi zostać
przetłumaczony na język maszyny, na której ma on być wykonany. Proces tłumaczenia kodu programu na
3
W
YKŁAD
: P
ROGRAMOWANIE W
C. E
LEMENTARNE ALGORYTMY I STRUKTURY DANYCH
Plik z chomika:
FatAgnes
Inne pliki z tego folderu:
tondo - jezyk ansi c - cwiczenia i rozwiązania.pdf
(15460 KB)
C.pdf
(1483 KB)
Programowanie w C.pdf
(441 KB)
Inne foldery tego chomika:
C++
Elektronika
Informatyka
Zgłoś jeśli
naruszono regulamin