> liczba ; cout.precision(2); cout << "Twoja liczba : " << liczba; return 0; } Wpisz liczbę rzeczywista: Twoja liczba : 9.9 Na ekranie zobaczymy:">

Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie obiektowe W2 Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Obsługa wejścia/wyjścia w języku C++

Podobne prezentacje


Prezentacja na temat: "Programowanie obiektowe W2 Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Obsługa wejścia/wyjścia w języku C++"— Zapis prezentacji:

1 Programowanie obiektowe W2 Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Obsługa wejścia/wyjścia w języku C++ Przestrzeń nazw namespace

2 Obsługa WEJŚCIA / WYJŚCIA w C++ Pracujący w języku C++ ma do wyboru korzystanie z funkcji we/wy : 1. zdefiniowanych w pliku : – printf() – scanf() 2. zdefiniowanych w pliku : – cout – cin 3. d o wczytana znaków i łańcuchów można ponadto użyć funkcji typu get(), plik – getchar() – pobiera 1 znak z klawiatury – gets()/fgets() – pobiera łańcuch znaków do wciśnięcia ENTER

3 Porównanie C i C++ Przykład 1.1. #include void main( ) { float x; printf(Podaj dowolną liczbę: ); scanf(%f, &x) ; printf( Twoja liczba : %.2f \n, x) ; } Przykład 1.2 #include using namespace std; int main() { float liczba ; cout << "Wpisz liczbę rzeczywista:" ; cin >> liczba ; cout.precision(2); cout << "Twoja liczba : " << liczba; return 0; } Wpisz liczbę rzeczywista: Twoja liczba : 9.9 Na ekranie zobaczymy:

4 Wypisywanie danych na ekranie cout << Za pomocą #include dołączamy plik nagłówkowy do obsługi strumieni I/O cout Jest to specyficzne funkcja, które ma zmienną liczbę parametrów wejściowych oddzielonych znakami << a parametry nie są zebrane w nawiasy (). Parametrami funkcji mogą być: Zwykły tekst: cout << Wykład z programowania obiektowego; Zmienne: int zmienna = 1; double d = 1.5; char *str = Napis; cout << zmienna << str << d << endl;

5 Wypisywanie danych na ekranie c.d. Przykład 1.3 #include using namespace std; int main() { int zmienna = 1; double d = 1.5; char *str = " Napis"; cout << zmienna << str << " " <

6 Pobieranie danych od użytkownika cin >> Za pomocą #include dołączamy plik nagłówkowy do obsługi strumieni I/O cin Jest to specyficzne funkcja, która ma zmienną liczbę parametrów wejściowych oddzielonych znakami >>, a parametry nie są zebrane w nawiasy (). Podaj liczbe: 12 Podaj napis i liczbe : C C Przykład 1.4 #include using namespace std; int main() { int zm; double d; char *str; cout << "Podaj liczbe: "; cin >> zm; cout << "Podaj napis i liczbe:"; cin >> str >> d; cout << str << " " << d; return 0; }

7 Przestrzenie nazw Podczas pracy nad programami, w których używa się wielu bibliotek można natknąć się na problem konfliktu nazw. Konflikt nazw powstaje gdy kilka obiektów, typów, funkcji, itp. ma tę samą nazwę. Rozwiązaniem jest zamknięcie nazw w "zakresach", w celu oddzielenia ich. Zakresy takie nazywamy przestrzenią nazw. Przestrzeń nazw ogranicza dostęp do elementów składowych - oprócz nazwy obiektu niezbędne jest też podanie nazwy tej przestrzeni. Istniejących funkcji ze standardu C nie można było zmienić. Można było jednak wskazać, które funkcje należą do standardu C++. Wszystkie funkcje, klasy i szablony wprowadzone z tym językiem programowania wstawiono do przestrzeni nazw std.

8 Dostęp do przestrzeni nazw Przykład 1.5 #include int main () { std::cout << "Wyklad z C++" << std::endl; return 0; } Wyrażenie std:: pojawiające się przed cout i endl oznacza, że wspomniane obiekty chcemy pobrać z przestrzeni std

9 Dostęp do przestrzeni nazw c.d. Przykład 1.6 #include int main () { int a, b; std::cout << "Podaj dwie liczby a i b" << std::endl; // wypisujemy komunikat std::cout << "podaj a: "; std::cin >> a; // wypisujemy komunikat std::cout << "podaj b: "; std::cin >> b; // wypisujemy sumę dwóch liczb std::cout << "a+b= " << a+b << std::endl; return 0; } Podaj dwie liczby a i b podaj a: 25 podaj b: 5 a+b= 30

10 Dostęp do przestrzeni nazw c.d. Przykład 1.7 #include using namespace std; int main () { cout << "Wyklad C++" << endl; return 0; } Za pomocą słów kluczowych: using namespace std; informujemy kompilator, że chcemy aby wszystkie funkcje, klasy i szablony należące do przestrzeni nazw std nie wymagały przedrostka.

11 Dostęp do przestrzeni nazw c.d. #include using std::endl; int main () { std::cout << "Wykład z C++" << endl; return 0; } Za pomocą słów kluczowych: using std::endl; informujemy kompilator, że jeżeli będziemy używać w kodzie endl to będziemy mieli na myśli właśnie to pochodzące z przestrzeni std

12 Tworzenie własnej przestrzeni nazw Przykład: namespace Obliczenia { int dodaj (int a, int b) { return a+b; } int odejmij (int a, int b) { return a-b; } namespace Obliczenia { int pomnoz (int a, int b) { return a*b; } int podziel (int a, int b) { return a/b; } Definiowanie: Przestrzeń nazw tworzymy za pomocą słowa kluczowego namespace, ograniczając jej zawartość klamrami. Można uzupełniać stworzoną przestrzeń nazw o kolejne funkcje w innym miejscu programu. Stosowanie: Za pomocą słów kluczowych: using namespace Nazwa; informujemy kompilator, że zastosowanych funkcji należy szukać w przestrzeni nazw Nazwa

13 Tworzenie własnej przestrzeni nazw c.d. #include namespace Obliczenia { int dodaj (int a, int b); int odejmij (int a, int b); } using namespace std; int main () { cout << Obliczenia::dodaj(10, 20) << endl; return 0; } //Wariant II int Obliczenia::dodaj (int a, int b) { return a+b; } int Obliczenia::odejmij (int a, int b) { return a-b; } //Wariant I namespace Obliczenia { int dodaj (int a, int b) { return a+b; } int odejmij (int a, int b) { return a-b; }

14 Sprawdzanie poprawności wprowadzonych danych #include int main() { float a; int b; std::cout << "Podaj liczbe rzeczywista: "; std::cin >> a; std::cout << "Podaj liczbe calkowita: "; std::cin >> b; std::cout << "Liczba a = " << a << std::endl; std::cout << "Liczba b = " << b << std::endl; return 0; } l Gdy użytkownik zrobi błąd: Podaj liczbe rzeczywista: 3qqq Podaj liczbe calkowita: Liczba a = 3 Liczba b = 0 Podaj iczbe rzeczywista: 2.5 Podaj liczbe calkowita: 25 Liczba a = 2.5 Liczba b = 25

15 Sprawdzanie poprawności wprowadzonych danych c.d. #include int main() { float a; int b; std::cout << "Podaj liczbe rzeczywista: "; std::cin >> a; std::cout << "Czy wczytano? " << std::cin.good() << std::endl; std::cout << "Czy jest pomylka? " << std::cin.fail() << std::endl; std::cout << "Podaj liczbe calkowita: "; std::cin >> b; std::cout << "Czy wczytano? " << std::cin.good() << std::endl; std::cout << "Czy jest pomylka? " << std::cin.fail() << std::endl; std::cout << "Liczba a = " << a << std::endl; std::cout << "Liczba b = " << b << std::endl; return 0; }

16 Na ekranie zobaczymy: Podaj liczbe rzeczywista: 23.5 Czy wczytano? 1 Czy jest pomylka? 0 Podaj liczbe calkowita: 55 Czy wczytano? 1 Czy jest pomylka? 0 Liczba a = 23.5 Liczba b = 55


Pobierz ppt "Programowanie obiektowe W2 Dr hab. inż. Lucyna Leniowska, prof. UR Zakład Mechatroniki, Automatyki i Optoelektroniki Obsługa wejścia/wyjścia w języku C++"

Podobne prezentacje


Reklamy Google