Wstęp do programowania w C++

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

C++ wprowadzanie zmiennych

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

1 Podstawy c++ w pigułce.

Podstawy Programowania C++

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

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

Część 4 życie programu

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

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

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

Język ludzki kod maszynowy

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

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Programowanie - wykład 4

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

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

Pętla for. Wynik działania programu:

Programowanie komputerowe. Zajęcia 1

Struktura pliku projektu Console Application

1 Podstawy c++ w pigułce.

I - Microsoft Visual Studio C++

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

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

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

Podstawy Programowania. Wykład 1

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

3. Instrukcje warunkowe

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

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

4. Funkcje. Przykłady

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

Wstęp do Programowania, laboratorium 02

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

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

Pytania sprawdzające wiedzę z programowania C++

Podstawy Programowania

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

Proste programy w C++ zadania

Wstęp do informatyki- wykład 7

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

do instrukcja while (wyrażenie);

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

Instrukcje sterujące

Wstęp do programowania. Wykład 1

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

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

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

Podstawy programowania w języku C

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Konstrukcje warunkowe Pętle

WHILE (wyrażenie) instrukcja;

Wstęp do programowania

8. Wektory. Przykłady Napisz program, który pobierze od użytkownika 10 liczb, a następnie wypisze je w kolejności odwrotnej niż podana.

Algorytm. a programowanie -

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

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

Programowanie w języku Python. Grażyna Koba

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Programowanie strukturalne i obiektowe

Wstęp do informatyki- wykład 7

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Microsoft IT Academy kurs programowania

KURS C/C++ WYKŁAD 1. Pierwszy program

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Programowanie Obiektowe i C++

Język C, instrukcje sterujące (laboratorium)

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

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

Podstawy i języki programowania

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Programowanie proceduralne w języku C++ Pętle, tablice

Programowanie strukturalne i obiektowe. Funkcje

Podstawy Programowania.

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Pliki wykład 2. Dorota Pylak

Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH

Instrukcje sterujące. Programowanie Proceduralne 1

WHILE (wyrażenie) instrukcja;

Wstęp do informatyki- wykład 6

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

Wstęp do programowania

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Wstęp do programowania

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

2 Przygotował: mgr inż. Maciej Lasota

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

1. Wprowadzenie do C/C++

Program znajduje największa lub najmniejsza z podanych liczb. Liczby podajemy dopóki nam sie nie znudzi.

1. Wprowadzenie do C/C++

Zmienne, stałe i operatory

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 proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie - instrukcje sterujące

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

Transkrypt:

Wstęp do programowania w C++ Wydział Energetyki i Paliw Katedra Podstawowych Problemów Energetyki Literarura Symfonia C++ standard Jerzy Grębosz Thinking in C++ - Bruce Eckel Ćwiczenia praktyczne z C++ 1

Wstęp Aby wykonać na komputerze zadanie zapisane w postaci programu należy: utworzyć plik, którego zawartością jest treść programu, inaczej nazywana kodem źródłowym przetworzyć kod źródłowy zapisany w pliku na programwykonywalny, czyli zrozumiały dla komputera wykonać program Tłumaczenie kodu źródłowego na program Tłumaczenie kodu źródłowego na program składa się z następujących etapów: -Kompilacja wstępne przetworzenie instrukcji programu (kod źródłowy z języka C++ w procesie kompilacji zostaje przetłumaczony na język maszyny, czyli język binarny) -Łączenie linkowanie (konsolidacja). Połączenie wszystkich niezależnych segmentów z uwzględnieniem bibliotek, w jeden wykonywalny program. (dopiero w procesie linkowania dochodzi do połączenia napisanego programu z wymaganymi w celu jego prawidłowego działania bibliotekami ) Aby stwierdzić poprawność działania programu, niezbędne jest przeprowadzenie odpowiednich testów Testowanie programu polega na wielokrotnym wykonaniu programu dla danych opisujących proste przykłady i porównaniu otrzymanych wyników z rozwiązaniami uzyskanymi innymi metodami. Pozytywne wyniki testów oznaczają, że można przystąpić do wykorzystania programu. 2

Algorytm Przed przystąpieniem do pisania programu wskazane jest opracowanie algorytmu, czyli receptury, opisującej sposób osiągnięcia rozwiązania zadania. Algorytm musi spełniać dwa warunki: gwarantować otrzymanie rozwiązania w skończonej liczbie operacji wielokrotne wykonanie algorytmu dla tego samego zestawu danych powinno spowodować otrzymanie tego samego wyniku - warunek jednoznaczności Algorytm Przykład algorytmu (pierwiastki wielomianu kwadratowego ax 2 +bx +c =0): START Podaj a,b,c Policz TAK > 0 NIE = 0 TAK NIE Obliczenie pierwiastka x 0 Obliczenie pierwiastków x 1, x 2 STOP Brak pierwiastków w dziedzinie liczb rzeczywistych 3

Zmienne w języku C++ Czym jest zmienna? Jest obiektem obdarzonym nazwą, typem i wartością. Wartość zmiennej może być określona lub nieokreślona w trakcie wykonywania programu. Co może być nazwą zmiennej w języku C++? Nazwą zmiennej może być dowolnie długi ciąg liter, cyfr oraz znaków podkreślenia _. Nazwa NIE może rozpoczynać się od cyfry. Małe i wielkie litery w nazwach są rozróżniane. Nazwa nie może być identyfikowana z żadnym ze słów kluczowych języka C++ (do, goto, int, else ) Przykład nazw zmiennych: NAZWA, J23, NAZWA1, N009Z, kuku, Ala, olo, f_uf23, break, ale_fajna_nazwa Podstawowe typy zmiennych W języku C++ każda nazwa musi zostać zadeklarowana zanim zostanie użyta. Deklaracja mówi jakiego typu będzie to, co nazwaliśmy daną nazwą. Zestaw podstawowychtypów i możliwych do przechowania w nich wartości dla komputerów/kompilatorów 32 bitowych char 8 1 od -128 do 127 int 32 4 od -2147483648 do 2147483647 float double 32 4 od 3.4E-38 do 3.4E+38 64 8 od 1.7E-308 do 1.7E+308 Typ zmiennej Szerokość w bitach Szerokość w bajtach Najczęściej spotykany zakres wartości 4

Typy zmiennych - inne W języku C++ wszystkie typy zmiennych mogą wystąpić w dwóch wariantach Signed ze znakiem. Wyposażenie typu w znak sprawia, że obiekt takiego typu może przechowywać liczbę dodatnią lub ujemną. Unsigned bez znaku. Obiekt takiego typu przyjmuje tylko wartości dodatnie. Definicja zmiennej w postaci np. int a rozumiana jest przez kompilator domyślnie jako definicja zmiennej ze znakiem tj. signed int a Język C++ wyposażony jest ponadto w wiele tj. podtypów zmiennych. Np. gdy z góry wiemy, że zmienna którą zastosujemy w programie będzie przyjmowała wartości dużo mniejsze niż zakres zmiennej typu int, możemy zastosować zmienną typu short int. Typy zmiennych - inne Zmienne signet, unsignet oraz inne podtypy zmiennych unsigned int 32 4 od 0 do 4294967295 signed int 32 4 od -2147483648 do 2147483647 Int 32 4 od -2147483648 do 2147483647 short int 16 2 od -32768 do 32767 Double 64 8 od 1.7E-308 do 1.7E+308 Long double 80 10 od 3.4E-4932 do 1.1E+4932 Typ zmiennej Szerokość w bitach Szerokość w bajtach Najczęściej spotykany zakres wartości Zastosowanie zmiennych o szerszym zakresie umożliwia wykonywanie obliczeń z większą dokładnością, ale im większa dokładność obliczeń tym dłuższy czas ich trwania, stąd należy rozsądnie dobierać zmienne do realizowanych zadań. 5

Typy zmiennych - bool Zmienna bool jest wykorzystywana do reprezentacji obiektów logicznych Obiekt typu bool przechowuje jedną z dwóch wartości: true, false Generalna zasada: true = 1, false = 0 int main() int x; // definicja zmiennej x typu całkowitego (integer) bool decyzja // definicja zmiennej decyzja typu bool decyzja = (x < 12) Jeśli obecnie wartość przechowywana w zmiennej x byłaby mniejsza od 12 to zmienna decyzja przyjmie wartość true czyli 1 Jeśli obecnie wartość przechowywana w zmiennej x byłaby większa bądź równa 12 to zmienna decyzja przyjmie wartość false czyli 0 Struktura programu Dołączenie biblioteki dzięki której nazwy schowane w przestrzeni nazw std (standard) stają się ogólnie dostępne. W tej przestrzeni nazw są między innymi przechowywane nazwy cout i cin. Wykorzystanie przestrzeni nazw std pozwala nam zamiast std::cout i std::cin pisać po prostu cout i cin. Operacje wejścia/wyjścia nie są częścią definicji języka C++. Funkcje odpowiedzialne za te czynności są w standardowej bibliotece o nazwie iostream, w którą wyposażony jest kompilator. #include <iostream> // dołączenie biblioteki using namespace std; // dołączenie biblioteki Koniec linii należy ZAWSZE!! Sygnalizować znakiem średnika ; int main() // deklaracja głównej funkcji programu, // w tym miejscu rozpoczyna się jego wykonanie cout << "Hello world!" << endl; /* wyprowadzenie tekstu na standardowe wyjście. Zakończenie linii sygnalizuje się znakiem ; */ return 0; // zamknięcie głównej funkcji programu Każda funkcja zwraca pewna wartość. Dla głównej funkcji programu wartość tę umownie przyjmuje się za 0 co oznacza, że program został poprawnie wykonany. W przypadku błędów zwracana jest różna od zera wartość /* */ - typ komentarza, którym można zaznaczyć więcej niż jedną linijkę tekstu // - po zastosowaniu tego komentarza kompilator ignoruje resztę znaków do końca linii 6

Kompilacja i uruchamianie - Linux Kompilacja + linkowanie Plik powstały po kompilacji. Do uruchamiania Uruchomienie programu Jeśli nazwa pliku wyjściowego, za pomocą której będziemy uruchamiać program nie zostanie podana (uruchomimy g++ bez opcji -o) to wtedy kompilator nada plikowi wynikowemu nazwę domyślną a.out Kompilacja: g++ -o [output file] [input file] polecenie Opcja wymuszająca podanie nazwy pliku wyjściowego Nazwa pliku wyjściowego Plik, który chcemy skompilować Prosty program I /* Program przelicza z dżuli na kalorie */ #include <iostream> using namespace std; int main() float joul, cal; //definicja dwóch zmiennych typu float float przelicznik = 4.184; // definicja zmiennej + nadanie wartości cout << "Podaj liczbe dzuli!\n" ; // wypisanie na ekran cin>>joul; // wczytanie z klawiatury cal=joul*przelicznik; // obliczenie kalorii cout<< "W kaloriach to bedzie?\n" ; cout<<cal; cout<<"\n" ; Wykorzystując w programie standardową przestrzeń nazw możemy zamiast std:cout oraz std:cin napisać po prostu cout oraz cin Niektóre systemy operacyjne (np. MS Windows) natychmiast po zakończeniu programu zamykają także okno w którym pracował program. Aby temu zapobiec na końcu programu wpisujemy system ( pause ); system("pause"); return 0; 7

Instrukcji sterujące Instrukcja warunkowa if if (warunek 1) [blok instrukcji 1]; else [blok instrukcji 3]; Schemat uproszczony if (warunek 1) instrukcja; Zagnieżdżenia if (warunek 1) if (warunek 2) [blok instrukcji 1] else [blok instrukcji 3] if (warunek 1) [blok instrukcji 1] else if (warunek 2) [blok instrukcji 2] else [blok instrukcji 3] Generalna zasada: Jeśli nawiasy klamrowe nie stanowią inaczej to else odnosi się zawsze do najbliższego poprzedzającego if Operatory Operatory w C++ Operatory logiczne % Reszta z dzielenia == Jest równy!= Jest różny = przypisywanie > Jest większy i++ i=i+1 < Jest mniejszy k-- k=k-1 >= Jest większy lub równy <= Jest mniejszy lub równy && i Operatory arytmetyczne lub + Dodawanie - Odejmowanie * Mnożenie / Dzielenie 8

Instrukcji sterujące // Przykład zastosowania instrukcji warunkowej if #include <iostream> using namespace std; int main () int predkosc; // definicja dwóch zmiennych typu int cout << Jak szybko jedziesz? [w km/h]:\n ; cin >> predkosc; if (predkosc > 70) // warunek cout << Predkosc << predkosc << to za szybko. Ograniczenie jest do 70 km/h\n ; // co jeśli prawda else // co gdy fałsz cout << Jest bezpiecznie \n ; return 0; Instrukcji sterujące // Przykład zastosowania instrukcji warunkowej if #include <iostream> using namespace std; int main () float y, x; // definicja dwóch zmiennych typu float cout << Podaj wartosc x \n ; cin >> x; if ( x!= 1) // warunek // co jeśli prawda y=(x*x- 5)/(x-1) ; cout << Wartosc funkcji dla << x << Wynosi << y << endl; else // co gdy fałsz cout << podany x nie należy do dziedziny funkcji \n ; return 0; 9

Instrukcji sterujące Pętla while while ( warunek ) [blok instrukcji] Przykład prostej pętli while char litera; while (litera!= K ) cout << Napisz jakąś literę! ; cin >> litera; cout << \nnapisałeś: << litera << \n ; cout << \n Skoro napisałeś K to kończymy! ; T Instrukcje zostaną wykonane Spełniony? N Instrukcje nie zostaną wykonana Przystępując do wykonania pętli while komputer najpierw sprawdza warunek W przypadku pętli while może się zdarzyć, że instrukcje w niej zawarte nie wykonają się ani razu jeśli od początku warunek nie jest spełniony Instrukcji sterujące Pętla do while do [blok instrukcji] while (warunek) Przykład prostej pętli do while char litera; do cout << Napisz jakąś literę! ; cin >> litera; cout << \nnapisałeś: << litera << \n ; while (litera!= K ); cout << \n Skoro napisałeś K to kończymy! ; Wykonanie instrukcji co najmniej raz T Dalsze instrukcje zostaną wykonane Spełniony? N Dalsze instrukcje nie zostaną wykonana W przypadku pętli do while instrukcje w niej zawarte zostaną wykonane co najmniej raz, nawet, gdy warunek nie będzie spełniony 10

Instrukcji sterujące Różnica do while i while Instrukcji sterujące Pętla for for (instr_ini ; warunek ; instr_krok) [blok instrukcji] Przykład prostej pętli for for (i=0 ; i < 10 ; i=i+1) cout<< Ku-ku! ; instr_ini instrukcja inicjalizująca pracę pętli, wykonywana jednokrotnie, zanim zostanie wykonana właściwa praca pętli warunek wyrażenie, które obliczane jest przed każdym obiegiem pętli. Jeśli jest prawdziwe to wykonane zostaną instrukcje zawarte w pętli. UWAGA: pętla w ogóle nie zostanie wykonana jeśli warunek od początku nie będzie spełniony instr_krok instrukcja kroku pętli, wykonywana po zakończeniu każdego obiegu (kroku) pętli. Jest to ostatnia instrukcja wykonywana bezpośrednio przed obliczeniem wyrażenia warunek 11

Instrukcji sterujące Konstrukcja switch switch (zmienna) case wartosc1: instrukcja1; break; case wartosc2: instrukcja2; break; case wartosc3: instrukcja3; break; ( ) default, instrukcja_domyslna; Przykład prostej konstrukcji switch char opcja; cout << Podaj opcje! \n ; cin >> opcja; switch (opcja) case a : cout << Wybrałeś pranie! ; break; case b : cout << Wybrałeś płukanie ; break; case c : cout << Wybrałeś wirowanie! ; break; default: cout << Wybrałeś FULL SERVICE! ; Gdy zmienna równać się będzie: wartość1 to zostanie wykonana instrukcja1 Gdy zmienna równać się będzie: wartość2 to zostanie wykonana instrukcja2 Gdy zmienna przyjmie wartość różną od: wartosc1, wartosc2, wartosc3 to wykonana zostanie instrukcja default break kończy wykonywanie każdej instrukcji. Instrukcji sterujące Instrukcja goto goto etykieta;. etykieta: instrukcje Przykład prostej konstrukcji goto cout<< napis! ; goto aaa; cout<< To się nie pojawi ; aaa: cout<< dalsza czesc napisu ; Zasada działania instrukcji goto polega na tym iż po jej napotkaniu wykonywanie programu przenosi się do miejsca gdzie jest dana etykieta ETYKIETA jest to nazwa, po której następuje dwukropek Po co stosować: instrukcja goto pozwala na natychmiastowe opuszczenie wielokrotnie zagnieżdżonych pętli lub instrukcji switch Po zastosowaniu instrukcji goto program pomija linijki kodu: std::cout << To się nie pojawi i przechodzi do miejsca, w którym pojawia się etykieta aaa: 12

Break i continue Przykład instrukcji break (w zastosowaniu do pętli for, while i do while) for (int a=1; a<10; a++) cout<< B ; if (a==5) cout<< Przerywamy break; Jeśli mamy do czynienia z kilkoma pętlami zagnieżdżonymi jedna w drugiej to instrukcja break przerywa tylko tę pętlę w której aktualnie się znajduje = przejście poziom wyżej Przykład instrukcji continue (w zastosowaniu do pętli for, while i do while) for (int k=0 ; k < 12 ; k=k+2) cout<< C ; if (k > 7) continue; cout<< D ; Instrukcja continue powoduje zaniechanie wykonywania instrukcji będących dalszą treścią pętli, jednak sama pętla nie zostaje przerwana. Continue przerywa tylko ten obieg pętli i przygotowuje do rozpoczęcia następnego, kontynuując pracę pętli Zadanie 1 Napisać program do obliczania silni danej liczby 13

Zadanie 2 Napisać program obliczający rzeczywiste pierwiastki równania kwadratowego Tablice TABLICA ciąg obiektów tego samego typu, które zajmują ciągły obszar w pamięci #include <iostream> using namespace std; int main() int t[4]; int t[4] = 2,1,15,8; Inicjalizacja tablicy czterech elementów typu integer t[0], t[1], t[2], t[3]. Podanie rozmiaru jest opcjonalne Podczas inicjalizacji kompilator sprawdza czy rozmiar tablicy nie jest przekroczony. np. podaliśmy jej rozmiar = 4, a wpisaliśmy 5 elementów Definicja tablicy czterech elementów typu int t[0], t[1], t[2], t[3]. Rozmiar musi być wyrażony liczbą całkowitą. Numerowanie elementów tablicy zaczyna się od 0 Tablica N-elementowa ma elementy o indeksach od 0 do N-1 Próba wpisania dowolnej wartości do nieistniejącego elementu tablicy np. t[4] nie jest w języku C++ sprawdzana w czasie kompilacji = brak sygnalizacji błędu Próba wpisania czegoś do nieistniejącego elementu tablicy t[4] spowoduje zniszczenie w obszarze pamięci czegoś co następuje bezpośrednio za tablicą 14

Zadanie 3 Napisać funkcję wypisującą nieujemną liczbę całkowitą w zapisie dwójkowym Algorytm konwersji liczby dziesiętnej na jej postać binarną opiera się na ciągłym dzieleniu jej przez 2, gdzie reszty z dzielenia tworzą reprezentację binarną danej liczby. Dzielenia dokonujemy tak długo, aż cześć całkowita z dzielenia będzie równa 0. Realizację tego algorytmu dla liczby 210 Liczba Reszta 210 0 105 1 52 0 26 0 13 1 6 0 3 1 1 1 0 Postać binarna: 1 1 0 1 00 1 0 Zadanie 4 Napisz program wyszukujący maksimum w zbiorze 8 liczb 15

Zadanie 5 Napisz program obliczającym wartość średnią pewnej ilości danych oraz odchylenie standardowe od tej wartości Zadanie 6 Napisać program rozwiązujący układ równań 2x2 (2 równania, dwie niewiadome) 16

Zadanie 7 Napisz program sortujące zbiór n liczb w kolejności od najmniejszej do największej Zapisywanie danych do pliku Biblioteka strumieni wejścia-wyjścia C++ udostępnia łatwy sposób pracy na plikach. Oto przykład zapisu wartości zmiennej do pliku: Przykład kodu #include <iostream> #include <fstream> Using namespace std; int main () ofstream my_file("zapis"); int k; k=3; my_file << k << endl; my_file.close(); W celu umożliwienia pracy na plikach trzeba dołączyć bibliotekę <fstream> W celu otwarcie pliku do zapisu trzeba utworzyć obiekt ofstream, który będzie zachowywał się podobnie do cout! Jednak wynik nie zostanie wydrukowany na ekranie a w pliku. W poniższym przypadku tym obiektem jest my_file. return 0; Zakończenie pracy nad plikiem. Zamknięcie pliku. 17

Zapisywanie tablic do pliku Przykład kodu #include <iostream> #include <fstream> Using namespace std; int main () Zapisywanie kolejnych elementów tablicy do pliku zapis. ofstream my_file("zapis"); int k[5]=5,6,7,3,1; int i; for (i=0;i<5;i++) my_file << k[i] << endl; my_file.close(); return 0; Odczytywanie danych z pliku Biblioteka strumieni wejścia-wyjścia C++ udostępnia łatwy sposób pracy na plikach. Oto przykład zapisu wartości zmiennej do pliku: Przykład kodu #include <iostream> #include <fstream> Using namespace std; int main () ifstream my_file( odczyt"); int k; my_file >> k ; my_file.close(); W celu umożliwienia pracy na plikach trzeba dołączyć bibliotekę <fstream> W celu otwarcie pliku do odczytu trzeba utworzyć obiekt ofstream, który będzie zachowywał się podobnie do cin! Jednak wartość zmiennej nie będzie czytana z klawiatury a z pliku. W poniższym przypadku tym obiektem jest my_file. return 0; Zakończenie pracy nad plikiem. Zamknięcie pliku. 18

Funkcje Po co komu funkcje? Załóżmy, że pisząc program wielokrotnie musisz wykonań podobną czynność np. obliczyć wartość jakiejś funkcji dla danego argumentu! Wymagał to wielokrotnego wpisywania wzoru funkcji przy liczeniu jej wartości dla każdego argumentu! Czy można to uprościć? Tak stosując funkcje! Po co komu funkcje? Napisałeś użyteczny fragment kodu? Chcesz go stosować wielokrotnie w bardziej złożonych programach? Możesz to zrobić stosując funkcje funkcje! Funkcje - przykład #include <iostream> #include <fstream> #include <cmath> using namespace std; float f(float x) float f; f=(pow(x,2)+5)/sqrt(pow(x,2)+2)+4; return f; int main() float k; float f(float); cout << "Podaj jakis argument:" << endl; cin >> k; cout << "Wartosc funkcji wynosi: " << f(k) << endl; return 0; 19

Zadania - funkcje Zadanie 1 Napisz program liczący liczbę bezwzględną (moduł) z podanej przez użytkownika liczby. Użyj poznanego zagadnienia funkcji do obliczenia modułu. Zadanie 2 Oblicz pochodną funkcji na podanym przedziale. Wykorzystaj do tego funkcje. 2 x 17x f ( x) =, x 10,10 2 x + 1 [ ] Zadania - funkcje Zadanie 2 Podaj rozwiązanie nieliniowego równania. Wykorzystują do tego przedstawioną poniżej metodę Newtona. Metoda Newtona przyjmuje następujące założenia dla funkcji : 1.W przedziale [a,b] znajduje się dokładnie jeden pierwiastek. 2.Funkcja ma różne znaki na krańcach przedziału. 3.Pierwsza i druga pochodna funkcji mają stały znak w tym przedziale. x = x k+1 k ' f ( xk ) f ( x ) k f x x x x 3 2 ( ) = ( + sin( 1) 1) 1 20

Tablice wielowymiarowe* #include <iostream> using namespace std; int main() int wektor[4] [2]; Definicja tablicy wielowymiarowej wektor jest tablicą 4 elementów, z których każdy jest dwuelementową tablicą typu int Zdefiniowana tablica jest tablicą dwuwymiarową. Można ją rozumieć następująco: Wektor: (x,y) Lp: X Y 1 wektor[0] [0] wektor[0] [1] 2 wektor[1] [0] wektor[1] [1] 3 wektor[2] [0] wektor[2] [1] 4 wektor[3] [0] wektor[3] [1] Przykład kodu Zapisywanie tablic wielowymiarowych do pliku ofstream my_file( odczyt"); int i,j, n; ifstream czytaj("odczyt"); Zapisywanie kolejnych elementów tablicy do pliku zapis. czytaj >>n; float k[n][n]; for (i=0;i<n;i++) for (j=0;j<n;j++) czytaj >> k[i][j]; my_file.close(); 21

Rzutowanie Rzutoanie proste czyli: static_cast int zmienna_całkowita = static_cast<int>(zmienna_rzeczywista); #include <iostream> Using namespace std; int main () int liczba = 5, liczba2 = 2; cout << "5/2 int(bez rzutowania): " << liczba/liczba2 << endl; cout << "5/2 float(static_cast): " << static_cast<float>(liczba)/static_cast<float>(liczba2) << endl; return 0; Przykład kodu 22