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