Wyklady PP, Wykłady, C - programowanie proceduralne

[ Pobierz całość w formacie PDF ]
Wykład#1
3 marca 2010

PrzemysławGawrooki
D-10 p. 234

5 z laboratorium zwalnia z egzaminu.

ocena koocowa-redniaarytmetycnalabiegaminu

Egzamin:
-
I termin - 29.06 10
00
-12
00
, D-10, sala A.
-
II termin - 1.09 10
00

Literatura:
-
Stephen Prata: "JykCkołaprogramowania
-
Herbert Schildt: "Programowanie C" - tłum4wydania
-
Steve Oualline: "JykCProgramowanie
-
Kenneth A. Reek: "JykCwkanikivademecumproejonality
-
Kyle Loudon: "Algorytmy w C"
-
Brian W. Kernighan, Dennis Ritchie: "JykNIC

Teoria rozwiąywaniaproblemówGeorgeaPolya
-
zrozumienie problemu,
-
wymylenieplanupotpowania
-
wykonanie planu,
-
weryfikacja

Programowanie:
-
projektowanie,
-
tworzenie,
-
testowanie

Fajne statystyki: tiobe.com

C - jyknikopoiomowywiłynieretrykcyjny

W C w dużejmierejetnapianejądroLinuka

- strona konkursu na najbardziej nieczytelny kod ródłowy

Skompilowany program w C tworzy 4 osobne obszary pamici
-
kod wykonywalny programu
-
zmienne globalne
-
stos
-
sterta

C jest case-sensitive

W C++ w licieargumentówunkcjijeliwnawiaachniemanictojetvoidWCnatomiat
wtedyniewiemcotamjet(amożecobyd)

Edytory tekstu pod Windows: ultraedit
Wykład # Strona 1
Wykład#2
10 marca 2010
14:03
STRUKTURA PROGRAMU

W pliku nagłówkowymnawahnajdująi
1)
prototypy funkcji,
2)
deklaracje zmiennych zewntrnych(extern)
3)
deinicjemakrtrukturtypów

Plik nagłówkowy- nazwa.c zawiera:
1)
zasadniczątredprogramu
2)
wieleplików*c- modułowabudowaprogramu

Argumenty funkcji głównej(main())
int main(int argc, char *argv[])
int argc - licbaparametrówwywołania
argv[0] -łaocuchawierającypełnącieżkdotpudouruchomionejaplikacjipootałe
elementytowkanikiłaocuchówawierającychkolejneparametrywywołania
konwersja char na int np. poprzez funkcjatoi()
KOMPILACJA, KONSOLIDACJA, WYKONANIE

Wybrane parametry kompilatora gcc:
-
-cmówiżematylkokompilowad
-
-Wall wypisuje wszystkie ostrzeżenia
-
-o powoduje możliwodnadaniawłanejnawyplikowiwykonywalnemu
-
-lm wykorzystywana jest gdy korzystamy z biblioteki matematycznej (funkcje sinus, cosinus,
pierwiastek).

Linker (konsolidator) tworzy plik wykonywalny. Dodaje kod biblioteki i kod startowy.
Kod startowy powoduje żeprogramkompilowanypodjakimytememnieodpaliinainnym
Pobierabibliotektylkoteragmentyktórewymaganeąpreunkcjeużytewprogramie
Pliki wykonywalne:

-
Windows: exe, com, bat
-
Linux: out, nazwa, eXe TxT

Atrybut wykonywalnoci
nazwa.txt - rwxrwxrwx 0777
nazwa.exe
Linux - podstawowe polecenia:

-
./a.out
-
a.out
-
a.out&

Wymuszone zakooceniediałaniaaplikacji
-
Windows: CTRL + ALT + DEL, CTRL+SHIFT+ESC
-
Linux: ps, kill PID, kill -9 PID, CTRL-Z, jobs, fg, bg

Fajny debugger pod Linuxem: gdb
Wykład # Strona 2
 -2-
PODSTAWOWE TYPY DANYCH

Wyrażeniabudujeielementówkładowych
-
dane:
a)
stałe
b)
zmienne
-
operatory

WC89deiniowanychjet5podtawowychtypówdanych
1)
brak wartocivoid
2)
znak: char
3)
liczba całkowitaint
4)
liczba zmiennoprzecinkowa: float
5)
licbamiennoprecinkowapodwójnejprecyjidouble

W pliku limits.h sąwytkieinormacjenatematdługocimiennychnp.
printf("CHAR_BIT = %d\n",CHAR_BIT);
Informacje sąteżwloath- Linux 64bit
Identyfikator - nazwa zmiennej, funkcji, etykiety


Identyfikatory wewntrneąnieużywanewproceiekonolidacjinpnawymiennych
lokalnych.

Liczba znaczącychnaków
-
W C89 znaczącychjetconajmniej6pierwychnaków
-
W C99: 31
-
WC++1024pierwychnaków

W standardzie C89 należydeklarowadmiennelokalnenapocątkublokuwktórymą
deiniowanepredwelkimiinnymiintrukcjamiPonadtoniemożnamieaddeklaracji
przypisaniami.
Czyli np. takie cowC89jetbłdne
int i;
i = 10;
int j;
W C89 powinno byd
int i;
int j;
i = 10;
Nie zainicjalizowane zmienne statyczne i globalne mająwartod0alokalne-niewiadomomieci


Zastosowanie w C notacji HEX:
-
adresowanie pamici
-
maski bitowe (chociażracejijepiewbin)
\f (feed) nowa strona
Dany jest fragment programu:
int n = 10, p = 9, q;
q = (n | p) + (n & p);
q = n |p + n || p;
q = n ==p;
q = --n + (p++ > 2);
q = (n < p) + n << 2;
q = --n > p++ ? n % p : p % n;
Wykład # Strona 3
Wykład#3
17 marca 2010
15:25
OPERATORY

Rodajeoperatorów
1)
Arytmetyczne
2)
Relacyjne
3)
Logiczne
4)
Bitowe

Operatory sąposegregowane w/gpriorytetów(nagórenajwyżypriorytet)
Przykład
!0 && 0 || 0 //wartod= 0
!(0 && 0) || 0 // wartod1
Istnieją2deinicjedieleniamodulojelichodiolicbyujemneC ma inna od Python'a

funkcja fmod() // dzielenie modulo liczb innych niżcałkowite
Przykład:
x = 10;
y = ++x; // najpierw odczytujemy x, zwikamyo1iprypiujemydoy
wartodmiennejywynoi11
Przykład
x = 10;
y = x++; // najpierw odczytujemy x, przypisujemy do y a potem zwikamyo1
wartodmiennejy=10
Efekt uboczny: w obydwu przypadkach wartodmiennejxwynoi11
W C nie ma bool

Wykład # Strona 4
Wykład#4
24 marca 2010
15:01
INSTRUKCJE

Instrukcja to podstawowy element składowyprogramuProgramtokooconyciągintrukcji
Instrukcja okrelaakcjdiałanie
Instrukcja to każdepoprawnewyrażeniejykaCakooconerednikiem
Z każdymwyrażeniemwjykuCwiąanajetwartod

Przykład
6 + (c = 3 + 8) //wartod17
Jest to istotne dlatego, bo nie ma typu logicznego w C, nie ma takich typowych tablic, ma to
naceniepryprekaywaniuargumentówdounkcjiWJavieniekażdewyrażeniemawartod
//włgGawrookiegoJavajetnajbardiejpodobnadoCporódjykówktórymiipotkamy
na studiach.

Instrukcje w C dzielimy na nastpującekategorie
a)
wyboru (warunkowe): if, switch
b)
iteracyjne: while, for, do-while
c)
skoku: break, continue, goto, return
d)
etykiety: case, default
e)
wyrażenia
f)
blokowe: {}
Maksymalne dopuszczalne zagnieżdżenie15poiomów(C89)127(C99)
SWITCH
W instrukcji switch(wyrażenie)
-
case etykieta-stałaekwencjaintrukcji
break;
...
"etykieta-stałapocaemuibydtałątnkompilatormuijąnadwmomenciekompilacjiNie
możemytamdadmiennejprydomkiemcont
Standard C89(C99) okrelażewintrukcjiwitchmożewytąpidconajwyżej257(1023)intrukcji
case.
-
-
Instrukcja switch możejedynieprawdadrównodinacejniżintrukcjaiktóramożeprawdad
dowolnytypwyrażenialogicnegobądrelacyjnego
-
W switchu nie możewytąpid2raytaamawartod
-
Stałenakoweautomatycnieprektałcaneądowartocitypucałkowitego
-
Instrukcje break nie musza wystpowadwewnątrintrukcjiwitch
-
Instrukcje switch możnaagnieżdżad
W standardzie C99 dodali w stosunku do C89 możliwoddeiniowaniamiennychwptliorwC
nie ma wyjątków
EXIT():
Funkcja exit() powoduje natychmiastowe zakooceniecałegoprogramuipowrótdoytemu
operacyjnego.
-
-
Ogólnapotadunkcjiexit()deiniowanejwtdlibh
void exit(int kod powrotu);
wartodkodpowrotuprekaywanajetdoproceuwywołującegoNaogół0onacanormalne
akoocenieprogramuInneargumentyonacająbłdyDostpneąmakraEXIT_UCCEora
EXIT_FAILURE
Wykład # Strona 5
[ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • enzymtests.keep.pl
  •