Programowanie C/C++ Wstep do jezyka C wykład I
Transkrypt
Programowanie C/C++ Wstep do jezyka C wykład I
Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Programowanie C/C++ Wstęp do języka C wykład I Plan wykładów Środowisko pracy dr Jarosław Mederski Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie 1 Ogólne informacje 2 Literatura 3 Plan wykładów 4 Środowisko pracy 5 Język C - podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia 6 Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 7 Wnioski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Ogólne informacje Charakter wykładu zakłada znajomość idei programowania strukturalnego (np. w Pascalu) oraz podstaw używania środowiska UNIX (wykonywanie poleceń) – poznanych na Wstępie do Informatyki; adresowany do matematyków, a nie informatyków ; jego celem jest zapoznanie z językami C i C++ w stopniu wystarczającym do pisania programów (na wasny użytek) oraz nauczania ich podstaw (np. w szkole), a nie nauka profesjonalnego programowania w tych językach (zwłaszcza w zespole); wprowadza podstawy programowania obiektowego przy założeniu, że dla znacznej części słuchaczy język C++ będzie jedynym poznanym na studiach obiektowym językiem programowania (brak Javy, C#, D). Programowanie C/C++ Wstęp do języka C wykład I Ogólne informacje dr Jarosław Mederski Spis Zaliczenie wykładu Ogólne informacje na „zal”, a nie na ocenę; Literatura na podstawie obecności na wykładzie (podpisy na listach) Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu oraz zaliczenia ćwiczeń (wpis w USOS-ie); wymaga zapisania się na przedmiot pod systemem USOS; uprawniony student ma prawo, a nawet obowiązek upomnieć się o brakujący wpis w USOS-ie (zwłaszcza w przypadku późniejszego zaliczenia laboratorium). Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Terminy wykładów Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Literatura podstawowa B. Kernighan, D. Ritchie, Język ANSI C, WNT, Warszawa 2004. E. Scheinerman, C++ for Mathematicians: An Introduction for Students and Professionals, Chapman & Hall/CRC 2006. J. Grębosz, Symfonia C++ standard : programowanie w języku C++ orientowane obiektowo, Tom 1 i 2, Kraków 2008. http://pl.wikibooks.org/wiki/C++ Literatura uzupełniająca B. Stroustrup, Język C++, WNT, Warszawa 2004. B. Eckel Thinking in C++. Edycja polska, Tom 1 i 2, Helion. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Plan wykładów - Programowanie C/C++ Typy proste (typy całkowite i rzeczywiste, deklarowanie Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski zmiennych). Operatory i wyrażenia. Instrukcje. Funkcje (składnia definicji i deklaracji, wywołanie funkcji, rekurencja). Wskaźniki i tablice, napisy. Struktury. Wybrane funkcje biblioteki standardowej Język C, a C++. Pojęcie klasy, konstruktory i destruktory. Argumenty domyślne funkcji, przeciążone identyfikatory funkcji, referencje. Przeciążanie operatorów, funkcje zaprzyjaźnione. Dynamiczne tworzenie obiektów. Podstawowe informacje o szablonach. Operacje we-wy, informacja o STL. Przykładowe problemy matematyczne i rozwiązania w C/C++. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Edytory i kompilatory C/C++ Windows Notatnik[/ConTEXT/Notepad++] + MinGW(z MSYS) Spis Code::Blocks Ogólne informacje Microsoft Visual Studio 2010 Express/Prof./Prem./Ultimate Literatura Dev-C++ Plan wykładów NetBeans Środowisko pracy Eclipse CDT Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski inne (cygwin, Borland, Watcom, ...) Linux vi[m], gedit, kate, [x]emacs + gcc/g++ Code::Blocks KDevelop NetBeans Eclipse CDT Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Code::Blocks Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Visual Studio 2010 Ultimate Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Dev-C++ Programowanie C/C++ Wstęp do języka C wykład I Historia dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Język C został zaprojektowany przez Dennisa Ritchie w 1972 roku. W 1972 roku system operacyjny UNIX został napisany w tym języku. W roku 1989 Amerykański Narodowy Instytut Standaryzacji (American National Standards Institute) przyjął standard języka C zwany odtąd ANSI C. Programowanie C/C++ Wstęp do języka C wykład I Historia dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Język C został zaprojektowany przez Dennisa Ritchie w 1972 roku. W 1972 roku system operacyjny UNIX został napisany w tym języku. W roku 1989 Amerykański Narodowy Instytut Standaryzacji (American National Standards Institute) przyjął standard języka C zwany odtąd ANSI C. Język C jest imperatywnym, strukturalnym językiem programowania: sekwencja instrukcji zmieniających stan programu, tworzenie programu w postaci jednolitych bloków bez korzystania z instrukcji skoku oraz numerowania linii, dzielenie kodu na procedury. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Języki C i C++ na tle innych języków wg. Tiobe, http://www.tiobe.com/ 1 2 3 4 dr Jarosław 5 Mederski 6 Spis 7 Ogólne 8 informacje 9 Literatura 10 Plan 11 wykładów 12 Środowisko pracy 13 Język C 14 podstawy 15 Proces tworzenia programu 16 Struktura kodu Typy 17 Stałe i zmienne Operatory i 18 wyrażenia 19 Sterowanie Instrukcje warunkowe 20 Pętle 21 Instrukcje skoku 22 Wnioski Programowanie C/C++ Wstęp do języka C wykład I # include < s t d i o . h> / * Program o b l i c z a NWD dwoch l i c z b * / /* e u k l i d e s . c */ int main ( ) { int a , b , d ; printf ( " Podaj liczby a i b : " ) ; scanf ( "%d %d" , &a , &b ) ; printf ( "NWD (%d ,%d) = " , a , b ) ; d = a while a = b = d = } % b; ( d != 0 ) { b; d; a % b; printf ( "%d\n" , b ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I Proces tworzenia programu dr Jarosław Mederski Spis Ogólne informacje algorytm (przepis na ciasto) Literatura programowanie w C (lub C++), w wyniku otrzymujemy Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski kod źródłowy, np. euklides.c kompilacja, np. gcc euklides.c program w asemblerze kod maszynowy, np. a.out ładowanie i wykonanie programu Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Fazy kompilacji (do pliku wykonywalnego) /. -, ()plik.c (plik źródłowy w języku C)*+ plik.i (plik źródłowy bez dyrektyw preprocesora) preprocesowanie plik.s (plik.asm) (kod assemblerowy) komplilacja właściwa plik.o (plik.obj) (plik obiektowy) składanie (asemblacja) /. -, ()a.out (a.exe, plik.exe) (plik wykonywalny)*+ łączenie (linkowanie) Programowanie C/C++ Wstęp do języka C wykład I Struktura kodu dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski dyrektywy preprocesora int main() { deklaracje instrukcje } Preprocesor przetwarza tekst wejściowy w sposób określony za pomocą poleceń preprocesora przez programistę na tekst wyjściowy. Przetworzony tekst poddawany jest analizie składniowej i kompilacji. W wyniku otrzymujemy tekst wyjściowy podlegający następnie kompilacji. Programowanie C/C++ Wstęp do języka C wykład I Dyrektywy preprocesora dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski #include - dyrektywa włącza tekst innego pliku źródłowego, #define - definiuje stałą i makroinstrukcję (pseudofunkcje) #undef - usuwa definicję stałej lub makra #ifdef, ... Programowanie C/C++ Wstęp do języka C wykład I Dyrektywy preprocesora dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski #include - dyrektywa włącza tekst innego pliku źródłowego, #define - definiuje stałą i makroinstrukcję (pseudofunkcje) #undef - usuwa definicję stałej lub makra #ifdef, ..., #ifndef, #if, #elif, #else, #endif Uwaga: dyrektywy przetwarzane są w sposób sekwencyjny, a nie rekurencyjny Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Przykład 1 2 3 4 5 6 7 8 #include<s t d i o . h> # define p i 3 . 1 4 int main ( ) { printf ( " Liczba pi wynosi ~ %f" , pi ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Przykład 1 2 3 4 5 6 7 8 #include<s t d i o . h> # define p i 3 . 1 4 1 2 3 4 5 6 7 8 9 #include<s t d i o . h> # define p i 3 . 1 4 int main ( ) { printf ( " Liczba pi wynosi ~ %f" , pi ) ; return 0 ; } Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski int main ( ) { int i =10; printf ( "%f + %i wynosi %f \n" , pi , i , pi+i ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int long long int (nie jest w standardzie ANSI) Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int long long int (nie jest w standardzie ANSI) Typy rzeczywiste float double Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int long long int (nie jest w standardzie ANSI) Typy rzeczywiste float double long double (nie jest w standardzie ANSI) Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int long long int (nie jest w standardzie ANSI) Typy rzeczywiste float double long double (nie jest w standardzie ANSI) signed, unsigned, <limits.h>, <float.h> Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typy proste Typy całkowite char short int int long int long long int (nie jest w standardzie ANSI) Typy rzeczywiste float double long double (nie jest w standardzie ANSI) signed, unsigned, <limits.h>, <float.h> Brak typu logicznego. Zamiast tego mamy: 0 - fałsz, liczba niezerowa - prawda. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Typ znakowy char - typ znakowy, który pomieści jeden znak dostępny na danej maszynie, a w szczególności duże i małe litery angielskiego alfabetu oraz cyfry. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje 1 2 3 Plan wykładów 4 Środowisko 5 pracy 6 Język C 7 podstawy Proces tworzenia 8 programu Struktura kodu 9 Typy 10 Stałe i zmienne Operatory i 11 wyrażenia 12 Sterowanie Instrukcje warunkowe 13 Pętle Instrukcje skoku 14 Wnioski 15 Literatura Typ znakowy char - typ znakowy, który pomieści jeden znak dostępny na danej maszynie, a w szczególności duże i małe litery angielskiego alfabetu oraz cyfry. #include<s t d i o . h> /* p r z y k l a d u z y c i a c h a r */ int main ( ) { char znak=' A ' ; printf ( "A = %c\n" , znak ) ; / * k o n w e r s j a c h a r −> i n t * / printf ( "A = %i\n" , znak ) ; printf ( "a = %i\n" , ' a ' ) ; / * k o n w e r s j a l o n g u n s i g n e d i n t −> i n t * / printf ( "A + 4 = %c\n" , znak+4) ; printf ( " Rozmiar %d\n" , ( int ) sizeof ( znak ) ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I Identyfikatory dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Identyfikator jest ciągiem liter małych i dużych, znaku oraz cyfr. Identyfikator musi zaczynać się od litery. W języku C rozróżnia się wielkość liter. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Stałe i zmienne 1 #include<s t d i o . h> 2 # include <math . h> / * uzywamy f u n k c j i pow ( ←- l i c z b a , w y k l a d n i k ) */ 3 # define p i 3 . 1 4 4 5 int main ( ) 6 { 7 float promien_r , pole =0; / * d e k l a r a c j a ←- 8 Proces tworzenia 9 programu Struktura kodu 10 Typy Stałe i zmienne 11 Operatory i wyrażenia 12 Sterowanie 13 Instrukcje warunkowe 14 Pętle Instrukcje skoku 15 Wnioski 16 } z m i e n n y c h */ printf ( "%f\n" , promien_r ) ; printf ( "%f\n" , pole ) ; scanf ( "%f" ,& promien_r ) ; pole = pi * pow ( promien_r , 2 ) ; printf ( "Pole wynosi %f\n" , pole ) ; return 0 ; Programowanie C/C++ Wstęp do języka C wykład I Słowa kluczowe dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Priorytet wybranych operatorów 15 ( ) [ ] −> . 14 ! ˜ ++ −− + − ∗ & (typ) sizeof 13 ∗ / % (dwuargumetowe operatory) 12 + − 11 << >> 10 < <= > >= 9 == ! = 8 & 7 ˆ 6 | 5 && 4 || 3 ? : 2 = += −= ∗= /= %= &= ˆ= | = <<= >>= 1 , l - łączność lewostronna, p - łączność prawostronna l p l l l l l l l l l l p p l Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski 1 2 Spis 3 Ogólne 4 informacje 5 Literatura 6 Plan wykładów 7 Środowisko 8 pracy 9 Język C 10 podstawy Proces tworzenia 11 programu Struktura kodu 12 Typy Stałe i zmienne 13 Operatory i wyrażenia 14 Sterowanie 15 Instrukcje warunkowe 16 Pętle Instrukcje skoku 17 Wnioski 18 Przykład #include<s t d i o . h> int main ( ) { int m=9, n=4, d ; m++; printf ( "m=%d\n" , m ) ; / * m=10 * / d = m / n; printf ( "d=%d\n" , d ) ; / * 10/4=2 * / d = −− m / n ; printf ( "d=%d\n" , d ) ; / * ? * / printf ( "%d\n" , d++) ; / * ? * / printf ( "%d\n",++d ) ; / * ? * / return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski 1 2 3 Literatura 4 5 Plan wykładów 6 Środowisko 7 pracy 8 Język C podstawy 9 Proces tworzenia programu 10 Struktura kodu 11 Typy Stałe i zmienne 12 Operatory i wyrażenia 13 Sterowanie 14 Instrukcje warunkowe 15 Pętle Instrukcje skoku 16 Wnioski 17 Spis Ogólne informacje Operator warunkowy wynik = warunek ? wartość1 : wartość2; #include<s t d i o . h> int main ( ) { int m , n , max ; printf ( " Podaj m " ) ; scanf ( "%d" , &m ) ; printf ( " Podaj n " ) ; scanf ( "%d" , &n ) ; max = m < n ? n : m ; / * max = ( (m < n ) ? n : m ) ; * / printf ( "%d\n" , max ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski 1 2 Spis 3 Ogólne 4 informacje 5 Literatura 6 Plan wykładów 7 Środowisko 8 pracy 9 Język C 10 podstawy Proces tworzenia 11 programu Struktura kodu 12 Typy Stałe i zmienne 13 Operatory i wyrażenia 14 Sterowanie 15 Instrukcje warunkowe 16 Pętle Instrukcje skoku 17 Wnioski 18 Operator warunkowy #include<s t d i o . h> # define max ( x , y ) ( x > y ? x : y ) int main ( ) { int m , n , max ; printf ( " Podaj m " ) ; scanf ( "%d" , &m ) ; printf ( " Podaj n " ) ; scanf ( "%d" , &n ) ; max = max ( m , n ) ; printf ( "%d\n" , max ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I Instrukcje i bloki dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski ; - kończy instrukcję (a nie rozdziela instr. jak w Pascalu) { } - instrukcja grupująca (blok) if, if else, switch - instrukcje wyboru while, do while, for - instrukcje iteracyjne (pętle) goto, continue, break, return - instrukcje skoku Programowanie C/C++ Wstęp do języka C wykład I Warunek if dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski if (wyrażenie1) instrukcja else if (wyrażenie2) instrukcja else instrukcja ... 1 2 3 4 dr Jarosław Mederski 5 6 Spis 7 Ogólne 8 informacje 9 Literatura 10 Plan wykładów 11 Środowisko 12 pracy 13 Język C podstawy 14 Proces tworzenia 15 programu Struktura kodu 16 Typy Stałe i zmienne 17 Operatory i wyrażenia 18 Sterowanie 19 Instrukcje warunkowe 20 Pętle Instrukcje skoku 21 Wnioski 22 Programowanie C/C++ Wstęp do języka C wykład I # include < s t d i o . h> int main ( ) { int a , b , max ; scanf ( "%d %d" , &a , &b ) ; if ( ( a%2)==0 ) { printf ( "a jest liczba parzysta \n" ) ; } if ( a>b ) { max = a ; } else { max = b ; } printf ( "max wynosi %d\n" , max ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Warunek if, else if 1 # include < s t d i o . h> 2 3 int main ( ) 4 { 5 int a ; 6 7 scanf ( "%d" , &a ) ; 8 9 if ( ( a%3)==0 ) 10 printf ( " liczba jest podzielna przez 3\n" ) ; 11 else if ( ( a%3)==1 ) 12 printf ( " liczba daje reszte 1 z dzielenia ←- Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 13 14 przez 3\n" ) ; else if ( ( a%3)==2 ) printf ( " liczba daje reszte 2 z dzielenia ←przez 3\n" ) ; 15 16 return 0 ; 17 } Programowanie C/C++ Wstęp do języka C wykład I Instrukcja switch dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu switch (wyrażenie) case wyrażenie-stałe: instrukcje case wyrażenie-stałe: instrukcje ... default: instrukcje Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski break powoduje natychmiastowy wyskok z instrukcji switch Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia 1 # include < s t d i o . h> 2 3 int main ( ) 4 { 5 int a ; 6 7 scanf ( "%d" , &a ) ; 8 9 switch ( a%3) { 10 case 0 : 11 printf ( " liczba jest podzielna przez 3\n" ) ; 12 break ; 13 case 1 : 14 printf ( " liczba daje reszte 1 z dzielenia ←15 16 17 Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 18 19 20 } przez 3\n" ) ; break ; default : printf ( " liczba daje reszte 2 z dzielenia ←przez 3\n" ) ; } return 0 ; Programowanie C/C++ Wstęp do języka C wykład I while dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski while (wyrażenie) instrukcja Najpierw oblicza wyrażenie. Jeśli jego wartość jest różna od zera (tzn. jest prawdziwe), to wykonuje się instrukcję. Programowanie C/C++ Wstęp do języka C wykład I 1 2 dr Jarosław 3 Mederski 4 Spis 5 Ogólne 6 informacje 7 Literatura 8 Plan 9 wykładów 10 Środowisko pracy 11 Język C 12 podstawy 13 Proces tworzenia programu 14 Struktura kodu Typy 15 Stałe i zmienne 16 Operatory i wyrażenia 17 Sterowanie Instrukcje warunkowe 18 Pętle 19 Instrukcje skoku 20 Wnioski # include < s t d i o . h> int main ( ) { int a , i =2, jest_pierwsza =1; scanf ( "%d" , &a ) ; while ( i < a ) { if ( ( a%i ) == 0 ) { jest_pierwsza =0; } i++; } if ( jest_pierwsza ) printf ( "%d jest liczba pierwsza \n" , a ) ; else printf ( "%d jest liczba zlozona \n" , a ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I do while dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski do instrukcja while (wyrażenie); Najpierw wykonuje instrukcję a potem oblicza wyrażenie. Jeśli jego wartość jest różna od zera (tzn. jest prawdziwe), to ponownie wykonuje się instrukcję. Instrukcja wykona się co najmniej raz. Programowanie C/C++ Wstęp do języka C wykład I 1 2 3 4 dr Jarosław Mederski 5 6 Spis 7 Ogólne informacje 8 Literatura 9 Plan 10 wykładów 11 Środowisko 12 pracy 13 Język C podstawy 14 Proces tworzenia programu 15 Struktura kodu Typy 16 Stałe i zmienne 17 Operatory i wyrażenia 18 Sterowanie 19 Instrukcje warunkowe Pętle 20 Instrukcje skoku 21 Wnioski # include < s t d i o . h> int main ( ) { int a , i=2, jest_pierwsza =1; scanf ( "%d" , &a ) ; do { if ( ( a%i ) == 0 ) { jest_pierwsza =0; } i++; } while ( i < a ) ; if ( jest_pierwsza ) / * c z y na pewno ? * / printf ( "%d jest liczba pierwsza \n" , a ) ; else printf ( "%d jest liczba zlozona \n" , a ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I for dr Jarosław Mederski Spis Ogólne informacje for (wyr1; wyr2; wyr3) instrukcja Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Poza pewnymi wyjątkami, na ogół jest ona równoważna następującej pętli wyr1; while (wyr2) { instrukcja; wyr3; } Programowanie C/C++ Wstęp do języka C wykład I 1 2 dr Jarosław 3 Mederski 4 Spis 5 Ogólne 6 informacje 7 Literatura 8 Plan 9 wykładów 10 Środowisko pracy 11 Język C 12 podstawy 13 Proces tworzenia programu 14 Struktura kodu Typy 15 Stałe i zmienne 16 Operatory i wyrażenia 17 Sterowanie 18 Instrukcje warunkowe Pętle 19 Instrukcje skoku 20 Wnioski # include < s t d i o . h> int main ( ) { int a , i , jest_pierwsza =1; scanf ( "%d" , &a ) ; for ( i=2; i<a ; i++) { if ( ( a%i ) == 0 ) { jest_pierwsza =0; } } if ( jest_pierwsza ) printf ( "%d jest liczba pierwsza \n" , a ) ; else printf ( "%d jest liczba zlozona \n" , a ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # include < s t d i o . h> int main ( ) { int i , suma =0; for ( i =100; i>=1; i−−) { suma += i * i ; / * suma = suma + i * i * / } printf ( "Suma kwadratow liczb naturalnych " ) ; printf ( " od 1 do 100 wynosi %d\n" , suma ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 1 2 3 4 5 6 7 8 9 10 11 # include < s t d i o . h> int main ( ) { for ( ; ; ) { printf ( "Ala ma kota. " ) ; } return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I goto dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Instrukcja goto nie może przekazywać sterowania do etykiety poza daną funkcją. Nie jest zalecane stosowanie goto. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia 1 # include < s t d i o . h> 2 3 int main ( ) 4 { 5 int a , i ; 6 scanf ( "%d" , &a ) ; 7 8 for ( i=2; i<a ; i++) { 9 if ( ( a%i ) == 0 ) { 10 goto zloz ; 11 } 12 } 13 goto pierw ; 14 15 zloz : 16 printf ( "%d jest liczba zlozona \n" , a ) ; 17 return 0 ; / * z a k o n c z e n i e d z i a l a n i a ←- programu * / 18 pierw : Sterowanie Instrukcje warunkowe 19 printf ( "%d jest liczba pierwsza \n" , a ) ; Pętle 20 return 0; Instrukcje skoku 21 } Wnioski Programowanie C/C++ Wstęp do języka C wykład I break dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Instrukcja break opuszcza najbardziej zagnieżdżoną instrukcję do, while, for, switch. 1 2 3 4 dr Jarosław 5 Mederski 6 Spis 7 Ogólne 8 informacje 9 Literatura 10 Plan 11 wykładów 12 Środowisko pracy 13 Język C 14 podstawy 15 Proces tworzenia programu 16 Struktura kodu Typy 17 Stałe i zmienne Operatory i 18 wyrażenia 19 Sterowanie Instrukcje warunkowe 20 Pętle 21 Instrukcje skoku 22 Wnioski Programowanie C/C++ Wstęp do języka C wykład I # include < s t d i o . h> int main ( ) { int a , i =2, jest_pierwsza =1; scanf ( "%d" , &a ) ; while ( i < a ) { if ( ( a%i ) == 0 ) { jest_pierwsza =0; break ; } i++; } if ( jest_pierwsza ) printf ( "%d jest liczba pierwsza \n" , a ) ; else printf ( "%d jest liczba zlozona \n" , a ) ; printf ( " Licznik %d\n" , i ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I continue dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Instrukcja continue przerywa wykonywanie instrukcji wewnętrznej w najbardziej zagnieżdżonej pętli do, while, for. Powoduje przejście do następnego kroku pętli. Nie dotyczy instrukcji switch. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # include < s t d i o . h> int main ( ) { int i ; for ( i=0; i<=20; i++ ) { if ( ( ( i%2) == 0 ) | | ( ( i%3) == 0 ) ) { continue ; } printf ( "%d\n" , i ) ; } return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I return dr Jarosław Mederski Spis return kończy działanie funkcji i zwraca wartość; Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski 1 # include < s t d i o . h> 2 3 int main ( ) 4 printf ( "Ala ma\n" ) ; 5 return 1 ; 6 printf ( "kota\n" ) ; 7 return 0 ; 8 } 1 2 3 4 dr Jarosław 5 Mederski 6 Spis 7 Ogólne 8 informacje 9 Literatura 10 Plan 11 wykładów 12 Środowisko pracy 13 Język C 14 podstawy 15 Proces tworzenia programu 16 Struktura kodu Typy 17 Stałe i zmienne Operatory i 18 wyrażenia 19 Sterowanie Instrukcje warunkowe 20 Pętle 21 Instrukcje skoku 22 Wnioski Programowanie C/C++ Wstęp do języka C wykład I # include < s t d i o . h> / * Program o b l i c z a NWD dwoch l i c z b * / /* e u k l i d e s . c */ int main ( ) { int a , b , d ; printf ( " Podaj liczby a i b : " ) ; scanf ( "%d %d" , &a , &b ) ; printf ( "NWD (%d ,%d) = " , a , b ) ; d = a while a = b = d = } % b; ( d != 0 ) { b; d; a % b; printf ( "%d\n" , b ) ; return 0 ; } Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Problemy Zadanie Wczytać liczbę naturalną n i wyznaczyć wszystkie liczby pierwsze mniejsze od n. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Problemy Zadanie Wczytać liczbę naturalną n i wyznaczyć wszystkie liczby pierwsze mniejsze od n. Zadanie Wczytać liczbę naturalną n i wyznaczyć wszystkie liczby doskonałe mniejsze od n. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Problemy Zadanie Wczytać liczbę naturalną n i wyznaczyć wszystkie liczby pierwsze mniejsze od n. Zadanie Wczytać liczbę naturalną n i wyznaczyć wszystkie liczby doskonałe mniejsze od n. Zadanie Dla danych liczb naturalnych m i n, napisać program, który znajduje największy wspólny dzielnik d oraz najmniejszą wspólną wielokrotność w liczb m i n. Znajdź liczby całkowite a i b takie, że d = a · m + b · n. Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje Literatura Plan wykładów Środowisko pracy Język C podstawy Proces tworzenia programu Struktura kodu Typy Stałe i zmienne Operatory i wyrażenia Sterowanie Instrukcje warunkowe Pętle Instrukcje skoku Wnioski Dziękuję za uwagę.