Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.



Podobne dokumenty
Programowanie Obiektowe i C++

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce.

Część 4 życie programu

Podstawy programowania skrót z wykładów:

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

I - Microsoft Visual Studio C++

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie - wykład 4

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe i C++ dla matematyków

Pytania sprawdzające wiedzę z programowania C++

Programowanie komputerowe. Zajęcia 3

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

Pętla for. Wynik działania programu:

Wstęp do programowania

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Wstęp do programowania

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy Programowania C++

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie komputerowe. Zajęcia 1

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Struktura pliku projektu Console Application

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Podstawy Programowania

3. Instrukcje warunkowe

Programowanie Obiektowe i C++

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

Języki programowania - podstawy

Programowanie strukturalne i obiektowe

Microsoft IT Academy kurs programowania

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Podstawy programowania - 1

7. Pętle for. Przykłady

C-struktury wykład. Dorota Pylak

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Programowanie Obiektowe i C++

Kontrola przebiegu programu

Podstawy programowania (1)

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Programowanie w języku C++ Grażyna Koba

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Język C - podstawowe informacje

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Wstęp do programowania

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Wstęp do programowania obiektowego. Przekazywanie parametrów do funkcji w C++ Metody i funkcje operatorowe Strumienie: standardowe, plikowe, napisowe

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Języki i metodyka programowania. Wprowadzenie do języka C

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Podstawy Programowania. Wykład 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Operacje wejścia/wyjścia odsłona pierwsza

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

4. Funkcje. Przykłady

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Język C zajęcia nr 11. Funkcje

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wstęp do informatyki- wykład 9 Funkcje

Programowanie Proceduralne

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Wyjątki (exceptions)

Wstęp do programowania. Wykład 1

Wprowadzenie do programowania w języku C

Język ludzki kod maszynowy

Podstawy programowania w języku C

Instrukcje sterujące

C-struktury wykład. Dorota Pylak

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Transkrypt:

Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include <iostream> using namespace std ; main() // Program główny { // do obiektu cout wysyłamy komunikat << // argument - co wypisać cout << "Hello, brave new world" ; cout << endl ; // koniec linii Zmienne i arytmetyka Każda nazwa i każde wyrażenie mają typ, np int i ; deklaruje zmienną i typu int, tj. całkowitą. Typami podstawowymi są: char short int long reprezentujące liczby całkowite oraz float double long double reprezentujące liczby zmiennopozycyjne. 1

Operacje arytmetyczne Operatory arytmetyczne można stosować do dowolnej kombinacji typów podstawowych Relacje + (plus, jedno- i dwuaargumentowy) - (minus, jedno- i dwuaargumentowy) * (mnożenie) / (dzielenie) % (reszta z dzielenia) To samo tyczy się operatorów relacji: == (równe)!= (nierówne) < (mniejsze) > (większe) <= (mniejsze lub równe) >= (większe lub równe) Wynik porównania jest typu int. Pamiętaj: symbol = oznacza przypisanie, a nie porównanie! Wyrażenie zakończone średnikiem staje się instrukcją. Wskaźniki i tablice Tablicę można zadeklarować następująco: char t[10]; // tablica 10 znaków podobnie można zadeklarować wskaźnik do znaku char* p; // wskaźnik do znaku Dolnym zakresem wszystkich tablic jest zero. Tablica t ma elementy t[0]..t[9] Wskaźnik przechowuje adres obiektu p = &t[3]; // p wskazuje czwarty element t Operator jednoargumentowy & daje w wyniku adres argumentu. 2

Bloki { double d; int i; short s; d = d+i; i = s*i; Każdą instrukcję kończymy średnikiem Ciąg instrukcji otoczony nawiasami klamrowymi jest instrukcją Deklaracje w bloku są widoczne tylko wenątrz bloku Testy if (i % 2) { i = i / 2 ; else i = 3 * i + 1 ; Instrukcja warunkowa: if (warunek) instrukcja else instrukcja Pierwsza instrukcja zostanie wykonana jeśli warunek ma wartość różną od zera. Forma skrócona (bez else): if (warunek) instrukcja Pętla while int i ; cin >> i ; // pobierz i z wejscia while (i!= 0) { // albo: while(i) if (i % 2) i = i / 2 ; else i = 3 * i + 1 ; Ciało pętli będzie wykonywane tak długo jak warunek będzie miał wartość niezerową. Pętla for Konstrukcja for(wyrażenie1; wyrażenie2;wyrażenie3) instrukcja odpowiada konstrukcji wyrażenie1; while(wyrażenie2) { instrukcja wyrażenie3 3

Pętla for przykład for(i = 0; i < 10 ; i++) cout << t[i] ; Instrukcja do-while Składnia: do instrukcja (wyrażenie) Przykład do { char ch ; cin >> ch ; cout << ch ; while(ch!= q ) ; Pętla wykonuje się tak długo jak warunek jest prawdziwy. Warunek jest sprawdzany na końcu pętli. Instrukcje break i continue Instrukcja break wewnątrz pętli powoduje natychmiastowe wyjście z niej. W przypadku zagnieżdżonych pętli wyjście dotyczy tylko jednej (wewnętrznej) pętli. Instrukcja continue powoduje natychmiastowe przejście do sprawdzania warunku pętli. Przykład break i continue for(;;) { // pętla nieskończona char ch ; cin >> ch ; if(ch == q ) break ; // Wyjdź z pętli if(ch == a ) { cout << Ala ma kota << endl ; continue ; // Następny obrót pętli if(ch == b ) cout << "Beeee!" << endl ; Instrukcja switch Instrukcja switch pozwala na wybór wariantu w zależności od wartości podanego wyrażenia całkowitego. Składnia: switch(wyrażenie) { case stała 1 : ciąg instrukcji //... case stała ciąg instrukcji default: ciąg instrukcji 4

Instrukcja switch c.d. Każdy z ciągów instrukcji powinien w zasadzie kończyć się instrukcją break, w przeciwnym wypadku zostanie wykonany również następny ciąg instrukcji... Ciąg instrukcji z etykietą default zostanie wykonany jeśli wartość wyrażenia nie pasuje do żadnego z wymienionych przypadków. Przykład switch int quit = 0 ; do { char ch ; cin >> ch ; switch(ch) { case q : quit = 1 ; break ; // Wyjdź ze switch case a : cout << Ala ma kota << endl ; break ; //... while(!quit) Deklaracje funkcji Deklaracja funkcji umożliwia użycie funkcji zdefiniowanej później lub w innym pliku. Deklaracja funkcji podaje typ wyniku funkcji, jej nazwę oraz typy argumentów. Można (ale nie trzeba) podać nazwy argumentów. Typ wyniku void oznacza, że funkcja nie daje wyniku Deklarację funkcji kończymy średnikiem. Przykłady: void drawline(int x1,int x2,int y1,int y2) ; int foo(int, float) ; Definicje funkcji Definicja funkcji podaje jej nagłówek (podobnie jak deklaracja, z tym, że tu nazwy argumentów są obowiązkowe) oraz treść Treść funkcji jest zawsze blokiem 5

Definicji funkcji nie kończymy średnikiem. Przykład: void paint() { drawline(100,100,300,100) ; Powrót z funkcji i dawanie wyniku Instrukcja return powoduje natychmiastowy powrót z funkcji Jeśli funkcja daje wynik (typ wyniku różny od void), argumentem dla return jest wyrażenie, którego wartość stanie się wynikiem funkcji. Przykład: char cfunc(int i) { switch(i) { case 0: return a ; case 1: return g ; //switch //cfunc Zwróćmy uwagę, że po return użycie break jest zbędne. Rekurencja Podobnie jak w innych językach możemy definiować funkcje rekurencyjne. Każde wcielenie funkcji ma własne wartości parametrów i zmiennych lokalnych. int silnia(int n) { if(n<=1) return 1; int s ; s = silnia(n-1); return n * s ; Modyfikacja obiektów zewnętrznych Argumenty funkcji są przekazywane przez wartość, tj. funkcja otrzymuje kopię wartości argumentu. Zmiana wartości argumentu wewnątrz funkcji jest widoczna tylko wewnątrz funkcji 6

void f(int a) { a = 5; int main { int x = 42 ; f(x) ; // x ma nadal wartość 42 Jeśli chcemy zmienić wartość obiektu zewnętrznego (z punktu widzenia funkcji) możemy przekazać wskaźnik do niego Modyfikacja obiektów zewnętrznych Jeśli chcemy zmienić wartość obiektu zewnętrznego (z punktu widzenia funkcji) możemy przekazać wskaźnik do niego void g(int* a) { *a = 5; int main { int x = 42 ; g(&x) ; // x ma wartość 5 Funkcja g otrzymuje adres zmiennej x i może operować na niej samej, a nie tylko na jej kopii. Referencje Język C++ (w odróżnieniu od C) umożliwia również przekazywanie argumentów przez referencję void h(int& a) { a = 5; int main { int x = 42 ; h(x) ; // x ma wartość 5 Wywołanie funkcji h wygląda tak samo jak wywołanie przez wartość,ale w istocie przekazywany jest adres zmiennej x, a nie kopia jej wartości. Wskaźniki do funkcji void run(void (*paint)()) { //... (*paint)() 7

void paint() { drawline(100,100,300,100) ; int main() { run(paint) ; Argumentem funkcji run jest wskaźnik do funkcji bezwynikowej. Wskaźniki do funkcji void run(void (*paint)()) { //... (*paint)() void paint() { drawline(100,100,300,100) ; int main() { run(paint) ; Dla ustalenia adresu funkcji nie używamy operatora & a tylko jej nazwy. Wskaźniki do funkcji void run(void (*paint)()) { //... (*paint)() void paint() { drawline(100,100,300,100) ; int main() { run(paint) ; Jeśli pf jest wskaźnikiem do funkcji, to do jej wywołania używamy konstrukcji (*pf)(argumenty) Program w wielu plikach Program może być zapisany w wielu plikach źródłowych. W C++, podobnie jak w C nie ma jawnego systemu modułów. 8

Namiastkę modułu tworzymy zapisując jego interfejs w jednym pliku (często z rozszerzeniem.h) a implementację w innym (innych). Korzystając z modułu włączamy jego interfejs dyrektywą preprocesora #include #include "foo" działa tak jakby w jej miejscu znalazła się treść pliku foo. #include <foo> oznacza, że pliku foo należy szukać w standardowych miejscach dla nagłówków (np. #include <iostream>). Kompilacja i łaczenie Każdy plik z implementacją kompilujemy do pliku obiektowego z rozserzeniem.o (pod Windows.obj), np. g++ -c dtest.cpp g++ -c drawing.cpp Na zakończenie łączymy uzyskane pliki obiektowe w plik wykonywalny, np: g++ -o dtest dtest.o drawing.o Gotowe biblioteki możemy dołączyć używając opcji -l,np g++ -o dtest -lx11 dtest.o drawing.o dołącza bibliotekę zawierającą podstawowe funkcje systemu Xwindow. Makefile Zwykle wygodnie jest użyć programu make, opisując proces kompilacji w Makefile: LIBS=-lX11 LDFLAGS=-L/usr/X11R6/lib -g CFLAGS=-g check: dtest./dtest drawing.o: drawing.cpp drawing.h g++ $(CFLAGS) -c $< btest.o: btest.cpp drawing.h g++ $(CFLAGS) -c $< dtest: dtest.o drawing.o g++ -o $@ $(LDFLAGS) $(LIBS) $^ clean: -rm -f dtest -rm -f *.o 9

Makefile Plik Makefile składa się z definicji zmiennych (CFLAGS, LDFLAGS) oraz reguł. Reguły mają składnie następującą: cel : zależności TAB polecenia make kompiluje tylko te pliki które są nieaktualne, tj. starsze od plików od których zależą. Korzysta w tym celu z reguł wyspecyfikowanych w pliku, oraz z tzw. reguł domyślnych. 10