Programowanie C/C++ Wstep do jezyka C wyk ad I
Transcript of Programowanie C/C++ Wstep do jezyka C wyk ad I
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Programowanie C/C++Wstęp do języka C
wykład I
dr Jarosław Mederski
uzupełnienie notatek: dr Jerzy Białkowski
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 Ogólne informacje
2 Literatura
3 Plan wykładów
4 Środowisko pracy
5 Język C - podstawyProces tworzenia programuStruktura koduTypyStałe i zmienneOperatory i wyrażenia
6 SterowanieInstrukcje warunkowePętleInstrukcje skoku
7 Wnioski
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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 doInformatyki;
� adresowany do matematyków, a nie informatyków ;
� jego celem jest zapoznanie z językami C i C++ w stopniuwystarczającym do pisania programów (na wasny użytek)oraz nauczania ich podstaw (np. w szkole), a nie naukaprofesjonalnego programowania w tych językach(zwłaszcza w zespole);
� wprowadza podstawy programowania obiektowego przyzałożeniu, że dla znacznej części słuchaczy język C++będzie jedynym poznanym na studiach obiektowymjęzykiem programowania (brak Javy, C#, D).
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Ogólne informacje
Zaliczenie wykładu
� na „zal”, a nie na ocenę;
� na podstawie obecności na wykładzie (podpisy na listach)oraz zaliczenia ćwiczeń (wpis w USOS-ie);
� wymaga zapisania się na przedmiot pod systemem USOS;
� uprawniony student ma prawo, a nawet obowiązekupomnieć się o brakujący wpis w USOS-ie (zwłaszczaw przypadku późniejszego zaliczenia laboratorium).
Terminy wykładów
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Literatura podstawowa
� B. Kernighan, D. Ritchie, Język ANSI C, WNT, Warszawa2004.
� E. Scheinerman, C++ for Mathematicians: AnIntroduction for Students and Professionals, Chapman &Hall/CRC 2006.
� J. Grębosz, Symfonia C++ standard : programowanie wjęzyku C++ orientowane obiektowo, Tom 1 i 2, Kraków2008.
� 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Plan wykładów - ProgramowanieC/C++
� Typy proste (typy całkowite i rzeczywiste, deklarowaniezmiennych). 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++.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Edytory i kompilatory C/C++Windows
� Notatnik[/ConTEXT/Notepad++] + MinGW(z MSYS)
� Code::Blocks
� Microsoft Visual Studio 2010 Express/Prof./Prem./Ultimate
� Dev-C++
� NetBeans
� Eclipse CDT
� inne (cygwin, Borland, Watcom, ...)
Linux
� vi[m], gedit, kate, [x]emacs + gcc/g++
� Code::Blocks
� KDevelop
� NetBeans
� Eclipse CDT
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Code::Blocks
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Visual Studio 2010 Ultimate
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Dev-C++
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Historia
Język C został zaprojektowany przez Dennisa Ritchie w 1972roku. W 1972 roku system operacyjny UNIX został napisany wtym języku. W roku 1989 Amerykański Narodowy InstytutStandaryzacji (American National Standards Institute) przyjąłstandard języka C zwany odtąd ANSI C.
Język C jest imperatywnym, strukturalnym językiemprogramowania: sekwencja instrukcji zmieniających stanprogramu, tworzenie programu w postaci jednolitych blokówbez korzystania z instrukcji skoku oraz numerowania linii,dzielenie kodu na procedury.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Historia
Język C został zaprojektowany przez Dennisa Ritchie w 1972roku. W 1972 roku system operacyjny UNIX został napisany wtym języku. W roku 1989 Amerykański Narodowy InstytutStandaryzacji (American National Standards Institute) przyjąłstandard języka C zwany odtąd ANSI C.Język C jest imperatywnym, strukturalnym językiemprogramowania: sekwencja instrukcji zmieniających stanprogramu, tworzenie programu w postaci jednolitych blokówbez korzystania z instrukcji skoku oraz numerowania linii,dzielenie kodu na procedury.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Języki C i C++ na tle innych językówwg. Tiobe, http://www.tiobe.com/
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>2 /* Program o b l i c z a NWD dwoch l i c z b */3 /* e u k l i d e s . c */45 int main ( )6 {7 int a , b , d ;89 printf ("Podaj liczby a i b : " ) ;10 scanf ("%d %d" , &a , &b ) ;11 printf ("NWD(%d,%d) = " , a , b ) ;1213 d = a % b ;14 while ( d != 0) {15 a = b ;16 b = d ;17 d = a % b ;18 }1920 printf ("%d\n" , b ) ;21 return 0 ;22 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Proces tworzenia programu
� algorytm (przepis na ciasto)
� programowanie w C (lub C++), w wyniku otrzymujemykod źródłowy, np. euklides.c
� kompilacja, np. gcc euklides.c
� program w asemblerze
� kod maszynowy, np. a.out
� ładowanie i wykonanie programu
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Fazy kompilacji (do pliku wykonywalnego)
/. -,() *+�� ���� ��plik.c (plik źródłowy w języku C)
preprocesowanie���� ���� ��plik.i (plik źródłowy bez dyrektyw preprocesora)
komplilacja właściwa���� ���� ��plik.s (plik.asm) (kod assemblerowy)
składanie (asemblacja)���� ���� ��plik.o (plik.obj) (plik obiektowy)
łączenie (linkowanie)��/. -,() *+�� ���� ��a.out (a.exe, plik.exe) (plik wykonywalny)
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Struktura kodu
dyrektywy preprocesoraint main(){deklaracjeinstrukcje}
Preprocesor przetwarza tekst wejściowy w sposób określony zapomocą poleceń preprocesora przez programistę na tekstwyjściowy. Przetworzony tekst poddawany jest analizieskładniowej i kompilacji. W wyniku otrzymujemy tekstwyjściowy podlegający następnie kompilacji.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Dyrektywy preprocesora
� #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
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Dyrektywy preprocesora
� #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
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Przykład
1 #include<s t d i o . h>2 #define p i 3 . 1 434 int main ( )5 {6 printf ("Liczba pi wynosi ~ %f" ,pi ) ;7 return 0 ;8 }
1 #include<s t d i o . h>2 #define p i 3 . 1 434 int main ( )5 {6 int i=10;7 printf ("%f + %i wynosi %f \n" ,pi , i , pi+i ) ;8 return 0 ;9 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Przykład
1 #include<s t d i o . h>2 #define p i 3 . 1 434 int main ( )5 {6 printf ("Liczba pi wynosi ~ %f" ,pi ) ;7 return 0 ;8 }
1 #include<s t d i o . h>2 #define p i 3 . 1 434 int main ( )5 {6 int i=10;7 printf ("%f + %i wynosi %f \n" ,pi , i , pi+i ) ;8 return 0 ;9 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje 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.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Typ znakowychar - typ znakowy, który pomieści jeden znak dostępny nadanej maszynie, a w szczególności duże i małe literyangielskiego alfabetu oraz cyfry.
1 #include<s t d i o . h>2 /* p r z y k l a d u z y c i a c h a r */3 int main ( )4 {5 char znak='A' ;6 printf ("A = %c\n" , znak ) ;78 /* k o n w e r s j a c h a r −> i n t */9 printf ("A = %i\n" , znak ) ;10 printf ("a = %i\n" ,'a' ) ;11 /* 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 */12 printf ("A + 4 = %c\n" , znak+4) ;13 printf ("Rozmiar %d\n" , ( int ) sizeof ( znak ) ) ;14 return 0 ;15 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Typ znakowychar - typ znakowy, który pomieści jeden znak dostępny nadanej maszynie, a w szczególności duże i małe literyangielskiego alfabetu oraz cyfry.
1 #include<s t d i o . h>2 /* p r z y k l a d u z y c i a c h a r */3 int main ( )4 {5 char znak='A' ;6 printf ("A = %c\n" , znak ) ;78 /* k o n w e r s j a c h a r −> i n t */9 printf ("A = %i\n" , znak ) ;10 printf ("a = %i\n" ,'a' ) ;11 /* 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 */12 printf ("A + 4 = %c\n" , znak+4) ;13 printf ("Rozmiar %d\n" , ( int ) sizeof ( znak ) ) ;14 return 0 ;15 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Identyfikatory
Identyfikator jest ciągiem liter małych i dużych, znaku orazcyfr. Identyfikator musi zaczynać się od litery. W języku Crozróżnia się wielkość liter.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
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 445 int main ( )6 {7 float promien_r , pole=0; /* d e k l a r a c j a ←↩
zmiennych */89 printf ("%f\n" , promien_r ) ;10 printf ("%f\n" , pole ) ;1112 scanf ("%f" ,&promien_r ) ;13 pole = pi * pow ( promien_r , 2 ) ;14 printf ("Pole wynosi %f\n" , pole ) ;15 return 0 ;16 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Słowa kluczowe
auto break case char const continue default do double elseenum extern float for goto if int long register return shortsigned sizeof static struct switch typedef union unsigned voidvolatile while
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Priorytet wybranych operatorów15 ( ) [ ] −> . l14 ! ˜ ++ −− + − ∗ & (typ) sizeof p13 ∗ / % (dwuargumetowe operatory) l12 + − l11 << >> l10 < <= > >= l9 == ! = l8 & l7 ˆ l6 | l5 && l4 | | l3 ? : p2 = += −= ∗= /= %= &= ˆ= |= <<= >>= p1 , l
l - łączność lewostronna, p - łączność prawostronna
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Przykład
1 #include<s t d i o . h>23 int main ( )4 {5 int m=9, n=4, d ;67 m++;8 printf ("m=%d\n" ,m ) ; /* m=10 */910 d = m / n ;11 printf ("d=%d\n" ,d ) ; /* 10/4=2 */1213 d = −− m / n ;14 printf ("d=%d\n" ,d ) ; /* ? */15 printf ("%d\n" ,d++) ; /* ? */16 printf ("%d\n",++d ) ; /* ? */17 return 0 ;18 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Operator warunkowy
wynik = warunek ? wartość1 : wartość2;
1 #include<s t d i o . h>23 int main ( )4 {5 int m , n , max ;67 printf ("Podaj m " ) ;8 scanf ("%d" , &m ) ;910 printf ("Podaj n " ) ;11 scanf ("%d" , &n ) ;1213 max = m < n ? n : m ;14 /* max = ( (m < n ) ? n : m ) ; */15 printf ("%d\n" , max ) ;16 return 0 ;17 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Operator warunkowy
1 #include<s t d i o . h>2 #define max ( x , y ) ( x > y ? x : y )34 int main ( )5 {6 int m , n , max ;78 printf ("Podaj m " ) ;9 scanf ("%d" , &m ) ;1011 printf ("Podaj n " ) ;12 scanf ("%d" , &n ) ;1314 max = max (m , n ) ;15 printf ("%d\n" , max ) ;1617 return 0 ;18 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Instrukcje i bloki
� ; - 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
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Warunek if
if (wyrażenie1)instrukcjaelse if (wyrażenie2)instrukcjaelseinstrukcja...
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , b , max ;67 scanf ("%d %d" , &a , &b ) ;89 if ( (a%2)==0 ) {10 printf ("a jest liczba parzysta\n" ) ;11 }1213 if ( a>b ) {14 max = a ;15 } else {16 max = b ;17 }1819 printf ("max wynosi %d\n" , max ) ;2021 return 0 ;22 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Warunek if, else if1 #include <s t d i o . h>23 int main ( )4 {5 int a ;67 scanf ("%d" , &a ) ;89 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 ←↩
przez 3\n" ) ;13 else if ( (a%3)==2 )14 printf ("liczba daje reszte 2 z dzielenia ←↩
przez 3\n" ) ;1516 return 0 ;17 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Instrukcja switch
switch (wyrażenie)case wyrażenie-stałe:instrukcjecase wyrażenie-stałe:instrukcje...default:instrukcje
break powoduje natychmiastowy wyskok z instrukcji switch
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a ;67 scanf ("%d" , &a ) ;89 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 ←↩
przez 3\n" ) ;15 break ;16 default :17 printf ("liczba daje reszte 2 z dzielenia ←↩
przez 3\n" ) ;18 }19 return 0 ;20 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
while
while (wyrażenie)instrukcja
Najpierw oblicza wyrażenie. Jeśli jego wartość jest różna odzera (tzn. jest prawdziwe), to wykonuje się instrukcję.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , i =2, jest_pierwsza=1;6 scanf ("%d" , &a ) ;78 while ( i < a ) {9 if ( (a%i ) == 0 ) {10 jest_pierwsza=0;11 }12 i++;13 }1415 if ( jest_pierwsza )16 printf ("%d jest liczba pierwsza\n" , a ) ;17 else18 printf ("%d jest liczba zlozona\n" , a ) ;19 return 0 ;20 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
do while
doinstrukcjawhile (wyrażenie);
Najpierw wykonuje instrukcję a potem oblicza wyrażenie. Jeślijego wartość jest różna od zera (tzn. jest prawdziwe), toponownie wykonuje się instrukcję. Instrukcja wykona się conajmniej raz.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , i=2, jest_pierwsza=1;6 scanf ("%d" , &a ) ;78 do {9 if ( (a%i ) == 0 ) {10 jest_pierwsza=0;11 }12 i++;13 } while ( i < a ) ;141516 if ( jest_pierwsza ) /* czy na pewno ? */17 printf ("%d jest liczba pierwsza\n" , a ) ;18 else19 printf ("%d jest liczba zlozona\n" , a ) ;20 return 0 ;21 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
for
for (wyr1; wyr2; wyr3)instrukcja
Poza pewnymi wyjątkami, na ogół jest ona równoważnanastępującej pętli
wyr1;while (wyr2) {instrukcja;wyr3;}
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , i , jest_pierwsza=1;6 scanf ("%d" , &a ) ;78 for (i=2; i<a ; i++) {9 if ( (a%i ) == 0 ) {10 jest_pierwsza=0;11 }12 }1314 if ( jest_pierwsza )15 printf ("%d jest liczba pierwsza\n" , a ) ;16 else17 printf ("%d jest liczba zlozona\n" , a ) ;1819 return 0 ;20 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int i , suma=0;67 for (i=100; i>=1; i−−) {8 suma += i*i ;9 /* suma = suma + i * i */10 }11 printf ("Suma kwadratow liczb naturalnych" ) ;12 printf (" od 1 do 100 wynosi %d\n" , suma ) ;13 return 0 ;14 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {56 for ( ; ; ) {7 printf ("Ala ma kota. " ) ;8 }910 return 0 ;11 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
goto
Instrukcja goto nie może przekazywać sterowania do etykietypoza daną funkcją. Nie jest zalecane stosowanie goto.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , i ;6 scanf ("%d" , &a ) ;78 for (i=2; i<a ; i++) {9 if ( (a%i ) == 0 ) {10 goto zloz ;11 }12 }13 goto pierw ;1415 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 :19 printf ("%d jest liczba pierwsza\n" , a ) ;20 return 0 ;21 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
break
Instrukcja break opuszcza najbardziej zagnieżdżoną instrukcjędo, while, for, switch.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int a , i =2, jest_pierwsza=1;6 scanf ("%d" , &a ) ;78 while ( i < a ) {9 if ( (a%i ) == 0 ) {10 jest_pierwsza=0;11 break ;12 }13 i++;14 }1516 if ( jest_pierwsza )17 printf ("%d jest liczba pierwsza\n" , a ) ;18 else19 printf ("%d jest liczba zlozona\n" , a ) ;20 printf ("Licznik %d\n" , i ) ;21 return 0 ;22 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
continue
Instrukcja continue przerywa wykonywanie instrukcjiwewnętrznej w najbardziej zagnieżdżonej pętli do, while, for.Powoduje przejście do następnego kroku pętli. Nie dotyczyinstrukcji switch.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>23 int main ( )4 {5 int i ;67 for (i=0; i<=20; i++ ) {8 if ( ( ( i%2) == 0) | | ( ( i%3) == 0) ) {9 continue ;10 }11 printf ("%d\n" ,i ) ;12 }1314 return 0 ;15 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
return
return kończy działanie funkcji i zwraca wartość;
1 #include <s t d i o . h>23 int main ( )4 printf ("Ala ma\n" ) ;5 return 1 ;6 printf ("kota\n" ) ;7 return 0 ;8 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
1 #include <s t d i o . h>2 /* Program o b l i c z a NWD dwoch l i c z b */3 /* e u k l i d e s . c */45 int main ( )6 {7 int a , b , d ;89 printf ("Podaj liczby a i b : " ) ;10 scanf ("%d %d" , &a , &b ) ;11 printf ("NWD(%d,%d) = " , a , b ) ;1213 d = a % b ;14 while ( d != 0) {15 a = b ;16 b = d ;17 d = a % b ;18 }1920 printf ("%d\n" , b ) ;21 return 0 ;22 }
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Problemy
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbypierwsze mniejsze od n.
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbydoskonałe mniejsze od n.
ZadanieDla danych liczb naturalnych m i n, napisać program, któryznajduje największy wspólny dzielnik d oraz najmniejsząwspólną wielokrotność w liczb m i n. Znajdź liczby całkowite ai b takie, że
d = a ·m + b · n.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Problemy
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbypierwsze mniejsze od n.
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbydoskonałe mniejsze od n.
ZadanieDla danych liczb naturalnych m i n, napisać program, któryznajduje największy wspólny dzielnik d oraz najmniejsząwspólną wielokrotność w liczb m i n. Znajdź liczby całkowite ai b takie, że
d = a ·m + b · n.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Problemy
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbypierwsze mniejsze od n.
ZadanieWczytać liczbę naturalną n i wyznaczyć wszystkie liczbydoskonałe mniejsze od n.
ZadanieDla danych liczb naturalnych m i n, napisać program, któryznajduje największy wspólny dzielnik d oraz najmniejsząwspólną wielokrotność w liczb m i n. Znajdź liczby całkowite ai b takie, że
d = a ·m + b · n.
ProgramowanieC/C++Wstęp dojęzyka Cwykład I
dr JarosławMederski
Spis
Ogólneinformacje
Literatura
Planwykładów
Środowiskopracy
Język C -podstawyProces tworzeniaprogramu
Struktura kodu
Typy
Stałe i zmienne
Operatory iwyrażenia
SterowanieInstrukcje warunkowe
Pętle
Instrukcje skoku
Wnioski
Dziękuję za uwagę.