METODYKI I TECHNIKI PROGRAMOWANIA 1 FOLIE NR 1 TEMAT: Obsługa pakietu - rodowiska do tworzenia, analizy i uruchomienia programów w j zyku C/C++: Dev-C++. Ogólna struktura programu w j zyku C, stałe i zmienne, typy danych, operatory matematyczne, wyra enia arytmetyczne. rodowisko Dev-C++: - produkcja: Bloodshed Software - internet: www.bloodshed.net - licencja: Free Software distributed under the GNU General Public License - wersja: 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2 - download: http://prdownloads.sourceforge.net/dev-cpp/devcpp- 4.9.9.2_setup.exe Wymagania sprz towe (minimalne): - Microsoft Windows 95, 98, NT 4, 2000, XP - 8 MB RAM with a big swapfile - 100 MHz Intel compatible CPU, 30 MB free disk space Wymagania sprz towe (zalecane): - Microsoft Windows 2000, XP - 32 MB RAM - 400 MHz Intel compatible CPU, 200 MB free disk space Domy lna instalacja: - ok. 60 MB Wybrane cechy: - rodowisko typu IDE (ang. Integrated Development Environment) dla j zyka C/C++, - umö liwia stworzenie programów typu: - Windows application - program dla systemu Windows wykorzystuj cy Win32 API, - Console application - program uruchamiany w konsoli (oknie tekstowym), - Static library - biblioteka statyczna, - DLL - biblioteka dynamiczna (ang. Win32 Dynamic Link Library), - polskoj zyczne menu. 1 2 3 5 6 Okno główne programu 1 - Menu główne programu 2 - Paski narz i uruchamianie, Opcje, Dodatki, Klasy) 3 - Przegl 4 - Edytor 5 - Pasek Zakładek 6 - Pasek stanu dzi (Główny, Edycja, Przeszukiwanie, Projekt, Kompilowanie darka projektu / klas 4 Metodyki i Techniki Programowania 1-1 - Metodyki i Techniki Programowania 1-2 -
najcz dat Menu główne programu: Projekt: - zawiera wszystkie polecenia programu, - dost pasku narz p do wybranych pozycji w menu mo liwy jest tak e poprzez przyciski na dzi, skróty klawiszowe (ang. hot keys) i menu kontekstowe. Dodaj do projektu - dodanie istniej cego pliku do projektu, Usu z projektu - usuni cie pliku z projektu, Opcje projektu (Alt+P) - wy wietlenie opcji projektu. Paski narz dzi: - zawieraj Główny: ciej wywoływane polecenia programu. Projekt... - stworzenie nowego projektu, Otwórz projekt lub plik... (Ctrl+O) - otwarcie istniej cego pliku lub projektu, Plik ródłowy (Ctrl+N) - stworzenie nowego pustego pliku i ewentualne dodanie go do projektu - nowy plik otrzymuje domy lnie nazw BezNazwyx, gdzie x jest kolejnym numerem, Zapisz (Ctrl+S) - zapisanie edytowanego pliku, Zapisz wszystko - zapisanie wszystkich otwartych plików, Zamknij (Alt+F4) - zamkni cie edytowanego pliku, Kompilowanie i uruchamianie: Opcje: Kompiluj (Ctrl+F9) - kompilacja programu, Uruchom (Ctrl+F10) - uruchomienie wcze niej skompilowanego programu, Kompiluj i uruchom (F9) - kompilacja i uruchomienie programu, Przebuduj wszystko (Ctrl+F11) - ponowna kompilacja wszystkich plików tworz cych projekt, Odpluskwiaj (F8) - uruchomienie odpluskwiania programu. Indeks pomocy Dev-C++ - uruchomienie systemu pomocy, O Dev-C++... - wy wietlenie informacji o programie. Edycja: Przeszukiwanie: Drukuj (Ctrl+P) - wydrukowanie edytowanego pliku. Cofnij (Ctrl+Z) - cofni cie ostatniej operacji edytorskiej, Powtórz (Shift+Ctrl+Z) - powtórzenie ostatniej operacji edytorskiej. Znajd (Ctrl+F)- wyszukanie ci gu znaków, Zamie (Ctrl+R) - wyszukanie i zamiana ci Szukaj ponownie (F3) - ponowne szukanie ci gu znaków, gu znaków, Przejd do wiersza... (Ctrl+G) - przej cie w edytowanym pliku do wiersza o podanym numerze. Dodatki: Zawiera cztery opcje: - Plik ródłowy (Ctrl+N), - Projekt, - Plik zasobów, - Szablon... Zawiera dwie opcje: - Data/Czas - wstawia do pliku ródłowego aktualn i czas w postaci: dd-mm-yy hh:mm, - Komentarz nagłówkowy - wstawia do pliku ródłowego nagłówek zawieraj cy pola: Name, Copyright, Author, Date, Description, Umö liwia zdefiniowanie w pliku ródłowym do 9 zakładek, Umö liwia przej do wcze cie niej zdefiniowanych zakładek. Metodyki i Techniki Programowania 1-3 - Metodyki i Techniki Programowania 1-4 -
wszystkich plików tworz pliku pojawia si bł Przegl darka projektu / klas: - zawiera trzy zakładki: Projekt, Klasy, Odpluskwiacz. - wy wietla kod ródłowy odpowiednio koloruj c go (np. słowa kluczowe j zyka C s cuchy znaków maj preprocesora - zielony), pogrubione, ła kolor czerwony za dyrektywy - je li edytowany plik zmienił si, ale nie został zapisany na dysku, to przed nazw symbol [*]. Kompilator: - wy wietla list dów, które wyst piły podczas kompilacji programu. Zakładka Projekt Zakładka Klasy Zakładka Odpluskwiacz Zakładka Projekt: - zawiera list stworzony, to zakładka ta jest pusta), - klikni Zakładka Klasy: - zawiera list programie, cych projekt (je li projekt nie został cie nazwy pliku na li cie powoduje otwarcie go w edytorze. klas, struktur, funkcji i zmiennych globalnych zdefiniowanych w - klikni cie wybranej nazwy powoduje przeniesienie w edytorze kursora do miejsca deklaracji wybranego elementu. Zakładka Odpluskwiacz: - w zakładce tej wy wietlane s odpluskwiania programu. warto ci zmiennych obserwowanych podczas Log kompilacji: - wy wietla przebieg kompilacji programu zawieraj cy wszystkie wywoływane polecenia. Odpluskwiacz: - zawiera polecenia wykorzystywane podczas odpluskwiania programu. Edytor: - umö liwia jednoczesn edycj wy wietlany jest na oddzielnej zakładce, kilku plików ka ródłowych, dy plik - umö liwia wykonywanie typowych operacji edytorskich, np. zaznaczanie, wycinanie, kopiowanie, zast powanie tekstu, Metodyki i Techniki Programowania 1-5 - Metodyki i Techniki Programowania 1-6 -
Wyniki poszukiwa : - zawiera wyniki poszukiwa plików. wyra, e ale tylko wtedy, gdy dotyczy ono kilku t c 5 ( t 9 = f 32) PROGRAM NA ZAMIAN TEMPERATUR #include <studio.h> #include <stdlib.h> Pasek stanu: typ warto ci zwracanej przez funkcj Liczba wierszy w edytowanym pliku Wstaw / Nadpisz - tryb edycji (Wstawianie / Nadpisywanie) Pojawienie si słowa Modyf. oznacza, e edytowany plik zmienił si, ale nie został zapisany na dysku Pozycja kursora w edytowanym pliku (numer wiersza i numer kolumny) OGÓLNA STRUKTURA PROGRAMU W J int main() { printf( Witaj swiecie\n ); return (0); } dyrektywa preprocesora #include <stdio.h> int main() { } nazwa pliku nagłówkowego nazwa funkcji lista argumentów przekazywanych do funkcji printf( Witaj swiecie\n ); return (0); warto zwracana przez funkcj ZYKU C instrukcja instrukcja nagłówek funkcji ciało funkcji int main() { foat tc, tf; } scanf( %f,&tf); tc=5*(tf-32)/9; printf( %f,tc); system( pause ); return 0; #include <studio.h> #include <stdlib.h> int main() { foat tc, tf; } printf( Podaj temp. w skali Fahrenheita: ); scanf( %f,&tf); tc=5*(tf-32)/9; printf( %.3f stopni F to %.3f stopni C\n,tf,tc); system( pause ); return 0; Metodyki i Techniki Programowania 1-7 - Metodyki i Techniki Programowania 1-8 -
Zmienne - słudo reprezentacji danych, mog przyjmowa róne warto ci, - zbiór warto ci jakie mog przyjmowa zmienne nazywa si typem, - zmienne przechowywane s w pami ci operacyjnej komputera, wi c kada z nich posiada swój adres, - aby móc skorzysta z danej zmiennej trzeba j zadeklarowa. Deklarowanie zmiennych Nazwa typu int a; rednik nazwa zmiennej nazwa typu Zakres warto ci danych int a; float b,c; Podstawowe typy zmiennych Rozmiar (bajty) Uwagi char -128... 127 1 małe liczby całkowite, znaki ASCII int -32768 32767 * -2147483648... 2147483647 ** 2 * / 4 ** liczby całkowite float -3,4 10-38 3,4 10 38 4 liczby rzeczywiste, 7 cyfr znacz cych double -1,7 10-308 1,7 10 308 8 liczby rzeczywiste, 15 cyfr znacz cych void - - oznacza brak warto ci Dodatkowe słowa kluczowe: - short, long - dla typu int oznaczaj krótk lub dług liczb całkowit, - long - dla typu double pozwala zwi kszy precyzj (liczb miejsc po przecinku), - signed, unsigned - stosowane do typów całkowitych, okre laj czy zmienna ma by ze znakiem czy bez znaku. Nazwa typu Wszystkie typy zmiennych Zakres warto ci danych Rozmiar (bajty) Uwagi signed char = char -128... 127 1 liczby całkowite unsigned char 0 255 1 liczby całkowite signed int = int -32768 32767 * 2 * liczby całkowite unsigned = unsigned int 0 65535 * 2 * liczby całkowite short = signed short int -32768 32767 2 liczby całkowite short unsigned = unsigned short int 0 65535 2 liczby całkowite long = signed long int -2147483648 2147483647 4 liczby całkowite long unsigned = unsigned long int 0 4294967295 4 liczby całkowite float -3,4 10-38 3,4 10 38 4 7 cyfr znacz cych double -1,7 10-308 1,7 10 308 8 15 cyfr znacz cych long double 3,4 10-4932 1,1 10 4932 * 10 * 19 cyfr znacz cych Rozmiar zmiennej a kompilator Kompilator int long double Borland C++ 3.1 2 10 Dev-C++ 4 12 Microsoft Visual C++ 6.0 4 8 Borland C++ Builder 6 4 10 Nazwy zmiennych - nazwa zmiennej moe składa si z liter i cyfr, pierwszym znakiem nazwy musi by litera, - znak podkre lenia traktowany jest jak litera, - jako nazw zmiennych nie na uywa mo słów kluczowych j zyka C. Metodyki i Techniki Programowania 1-9 - Metodyki i Techniki Programowania 1-10 -
by ma by ma by ma by ma cie stosowa auto break case char const continue default Literały liczbowe do double else enum extern float for Typy literałów liczbowych wynikaj Słowa kluczowe j zyka C goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while z formy ich zapisu i warto ci jakie reprezentuj. - liczby całkowite (int, long int, unsigned long int) 1 - liczba całkowita, typ int, 25000 - liczba całkowita, typ int, 39000 - liczba całkowita, typ long (bo przekracza maksymaln warto dla typu int), 4100000000 - liczba całkowita, typ unsigned long int (bo przekracza long), Liczby całkowite mona zapisywa take w formie ósemkowej (0 na pocz tku) lub szesnastkowej (0x lub 0X na pocz tku), np. 011-11 w systemie ósemkowym to 9 w systemie dziesi tnym, 0x11-11 w systemie szesnastkowym to 17 w systemie dziesi tnym. - liczby rzeczywiste (double) 1.0 - liczba rzeczywista, typ double, 1.312e2 - liczba rzeczywista 1,312 10 2, typ double, -2.124E-1 - liczba rzeczywista -2,124 10-1, typ double. Zmiana typu literału liczbowego Typy literałów liczbowych mog przyrostków: - dla typów całkowitych: u lub U - warto l lub L - warto - dla typów rzeczywistych: l lub L - warto f lub F - warto by zmieniane przez programist poprzez uycie potraktowana jako unsigned (int lub long), potraktowana jako long (int lub unsigned int). potraktowana jako long double, potraktowana jako float. Przykłady: 5L - liczba całkowita typu long, 4.52f - liczba rzeczywista typu float (a nie double), 2.5L - liczba rzeczywista typu long double. Literały znakowe Literały znakowe (pojedyncze znaki) zapisywane s char c = a ; c = 1 ; Operatory arytmetyczne - jednoargumentowe: za pomoc apostrofów, np. + - plus, znak liczby, - - minus, zmienia warto wyraenia na przeciwn, ++ - operator inkrementacji (zwi ksza warto zmiennej o 1), -- - operator dekrementacji (zmniejsza warto zmiennej o 1). Operatory ++, -- mog wyst powa jako: - przedrostek (przed nazw zmiennej): ++i, --i warto zmiennej modyfikowana jest przed jej wykorzystaniem, - przyrostek (po nazwie zmiennej): i++, i-- warto zmiennej modyfikowana jest po jej wykorzystaniu. - dwuargumentowe multiplikatywne: * - mnoenie, / - dzielenie (zastosowany do liczb całkowitych obcina cz ułamkow), % - dzielenie modulo (reszta z dzielenia), moe by stosowany tylko dla typów całkowitych (char, int, unsigned, long), - dwuargumentowe addytywne: + - dodawanie, - - odejmowanie. Priorytet operatorów arytmetycznych Najwyszy Najni szy ++ -- + - (jednoargumentowe) W wyra eniach arytmetycznych mona oczywi zmieniaj priorytet operatorów. * / % + - (dwuargumentowe) nawiasy, które Metodyki i Techniki Programowania 1-11 - Metodyki i Techniki Programowania 1-12 -
Przykłady: a = b+c; d = a*b + d*c; k = k+1; z = (a+d)*c; Operatory przypisania (zło one) Operatory te zapisywane s Zamiast i = i + 10; i = i - 20; i = i * 40; i = i / 15; i = i % 5; jako: += -= *= /= %= mona napisa i += 10; i -= 20; i *= 40; i /= 15; i %= 5; Funkcja printf printf( tekst opcjonalny + sp_for,argumenty); Funkcja printf wyprowadza tekst, gdy w tek cie wyst puje sp_for (specyfikator formatu) zaczynaj cy si od %, to nast puje przekształcenie - w miejsce specyfikatora wstawiana jest warto argumentu. Liczba specyfikatorów formatu musi by zgodna z liczb argumentów. sp_for = %[znacznik][szeroko [znacznik] [szeroko.precyzja ][.precyzja][modyfikator]typ - + - przed liczb stawiany jest znak (plus lub minus), - - wyrównanie wy wietlanych znaków do lewej strony, ] - okre la minimaln liczb li znaków jest mniej to pole jest z lewej strony uzupełniane spacjami, je li wi cej - podana szeroko jest ignorowana, - liczba znaków po kropce dziesi tnej, typ - okre la rodzaj i typ argumentu: d,i u x,x o f e,e g s c wyprowadzanych znaków, je - liczba całkowita ze znakiem, dziesi tna, - liczba całkowita bez znaku, dziesi tna, - liczba całkowita bez znaku, szesnastkowa, - liczba całkowita bez znaku, ósemkowa, - liczba rzeczywista w postaci [-]ddd.ddd, - liczba rzeczywista w formacie naukowym (z u yciem e lub E), - liczba rzeczywista (format f lub e), - ci - pojedynczy znak. g znaków, [modyfikator] - słu y do zmodyfikowania podstawowego typu podawanego przez znak typu: l L - stosowany tylko do liczb całkowitych do wy warto wietlania ci typu long (mo e sta przed d, i, o, u, x, X, o, np. %ld, %li), - stosowany do wy warto wietlania ci rzeczywistych typu long double Przykłady: int a = -10; float b = 10.23; char imie[5] = Jan ; printf( liczba1 = %d, liczba2 = %f \n,a,b); printf( Imie: %s Nazwisko: %s \n,imie, Kowalski ); Metodyki i Techniki Programowania 1-13 - Metodyki i Techniki Programowania 1-14 -
ci pól wej ci pól wej d by Funkcja scanf scanf( sp_for,argumenty); Funkcja scanf wczytuje znaki ze standardowego wej cia (klawiatura), interpretuje je zgodnie z zadanym sp_for (specyfikatorem formatu) i przypisuje wyniki argumentom w odpowiedniej kolejno ci. sp_for = %[szeroko [szeroko _pola][modyfikator]typ _pola] - okre la ile znaków zostanie przeczytanych typ - okre la rodzaj i typ argumentu: d - liczba całkowita dziesi tna, typ int, D - liczba całkowita dziesi tna, typ long, o - liczba całkowita ósemkowa, typ int, O - liczba całkowita ósemkowa, typ long, x - liczba całkowita szesnastkowa, typ int, X - liczba całkowita szesnastkowa, typ long, i - liczba całkowita dziesi tna, ósemkowa lub szesnastkowa, typ int, I - liczba całkowita dziesi tna, ósemkowa lub szesnastkowa, typ long, u - liczba całkowita dziesi tna bez znaku, typ unsigned, U - liczba całkowita dziesi tna bez znaku, typ unsigned long, f,e,e - liczba rzeczywista, typ float, g,g - liczba rzeczywista, typ float, s - ci c - pojedynczy znak, typ char. g znaków, [modyfikator] - słu y do zmodyfikowania podstawowego typu podawanego przez znak typu: l L h - zmienia wszystkie typy całkowitoliczbowe na ich długie wersje; zastosowany do znaków typu f, e, E, g, G spowoduje interpretacj zawarto ciowych jako liczb typ double, - zastosowany do znaków typu f, e, E, g, G spowoduje interpretacj zawarto ciowych jako liczb typ long double, - typy całkowitoliczbowe b traktowane jako short. int i=15, j=-30; float x=15.1234567; double y=1.456e-2; char text[10]="napis"; printf("%d %d %f %e",i,j,x,y); printf("%f %e",x,x); printf("%f %e",y,y); Funkcja printf (przykłady) 15 30 15.123457 1.456000e-002 15.123457 1.512346e+001 0.014560 1.456000e-002 printf("%5d %+5d %-5d",i,i,i); 15 +15 15 printf("%.2f %1.5f",x,x); 15.12 15.12346 printf("x = %1.3f, y = 1.3f",x,y); x = 15.123, y = 1.3f printf( %10.3f,x); 15.123 printf("tekst: %s",text); Tekst: Napis printf("\\ \' \" \? %%\n"); \ ' "? % int a,b,c; float x,z; double y; char text[10]; scanf( %d %d %d,&a,&b,&c); scanf( %d %f %lf,&a,&x,&y); scanf( %f %e %le,&x,&z,&y); scanf( %s,text); Funkcja scanf (przykłady) 15 20-30<enter> lub 15 20-30 <enter> lub 15<enter> 20<enter> -30<enter> 15 1.51-12.467<enter> 12.1 1.45e-2 1.34e5<enter> napis<enter> Argumenty funkcji scanf s adresami obszarów w pami poprzedzone znakiem & (nie dotyczy ci gu znaków). ci, dlatego te musz Przykłady: int a; scanf( %d,&a); int a; float b,c; scanf( %d %f %f,&a,&b,&c); char name[20]; scanf( %s,name); Metodyki i Techniki Programowania 1-15 - Metodyki i Techniki Programowania 1-16 -
glenie w gór pnia cz pnia liczb pnia liczb pnia liczb Plik nagłówkowy math.h abs() - warto bezwzgl acos() asin() atan() cabs() ceil() dna (liczby całkowitej), - arcus cosinus (zwraca k t w radianach), - arcus sinus (zwraca k t w radianach), - arcus tanges (zwraca k t w radianach), - moduł liczby zespolonej, - zaokr cos() - cosinus (k t w radianach), cosh() - cosinus hiperboliczny (kat w radianach), div() - iloraz dwóch liczb całkowitych, exp() - liczba e do pot fabs() floor() fmod() - warto bezwzgl - zaokr glenie w dół, - dzielenie modulo, log() - logarytm naturalny, log10() modf() - logarytm dziesi tny, - udost, gi argument, dna argumentu (liczby rzeczywistej), całkowit i ułamkow pow() - funkcja wykładnicza (oblicza x do pot pow10() rand() random() - udost - udost - udost 10 do wybranej pot pseudolosow pseudolosow argumentu, gi y), gi, z zakresu (0... 32767), z podanego zakresu, randomize() - inicjacja generatora liczb pseudolosowych, sin() - sinus (k t w radianach), sinh() - sinus hiperboliczny (k t w radianach), tan() - tangens (k t w radianach), tanh() - tangens hiperboliczny (k t w radianach). M_PI - stała okre laj M_E - stała okre laj ca liczb ca liczb π (π = 3,1415926...), e (e = 2,7182818...), Metodyki i Techniki Programowania 1-17 -