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ę.

Podobne dokumenty