Podstawy programowania w C++

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

Język C++ zajęcia nr 1

C++ wprowadzanie zmiennych

Wstęp do informatyki- wykład 7

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

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Wstęp do programowania

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

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

Podstawy programowania w C++

Instrukcje sterujące

Podstawy programowania w C++

Język C++ Różnice między C a C++

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wstęp do programowania. Wykład 1

Wstęp do Programowania 2

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

Akademia ETI Marcin Jurkiewicz

Wstęp do programowania

Programowanie - wykład 4

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

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

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych

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

Wstęp do Programowania 2

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

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

#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 ); }

Wstęp do Informatyki

1 Podstawy c++ w pigułce.

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

Wyjątki (exceptions)

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Ćwiczenia podstawowe, zestaw 5, część 1

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

Wstęp do Programowania, laboratorium 02

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

2. Zmienne i stałe. Przykłady Napisz program, który wypisze na ekran wynik dzielenia 281 i 117 w postaci liczby mieszanej (tj. 2 47/117).

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout)

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

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

Proste programy w C++ zadania

Programowanie komputerowe. Zajęcia 1

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

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

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

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

Pytania sprawdzające wiedzę z programowania C++

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

Część 4 życie programu

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

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

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

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

Wstęp do informatyki- wykład 6

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

1. Wypisywanie danych

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

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

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

Zmienne, stałe i operatory

Przesłanianie nazw, przestrzenie nazw

Podstawy Programowania

Wstęp do programowania

Pliki wykład 2. Dorota Pylak

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

1. Wprowadzanie danych z klawiatury funkcja scanf

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

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

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

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

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Pliki wykład 2 -przekazywanie strumieni do funkcji -funkcje get(char &) i getline(string)

Wstęp do programowania

dr inż. Paweł Myszkowski Wykład nr 8 ( )

Struktura pliku projektu Console Application

1 Pierwsze kroki w C++ cz.3 2 Obsługa plików

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

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

C++ - [1-3] Debugowanie w Qt Creator

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

3. Instrukcje warunkowe

Spis treści OPERACJE WEJŚCIA-WYJŚCIA W JĘZYKU C++. STEROWANIE FORMATEM, MANIPULATORY. Informatyka 2

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

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

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

I - Microsoft Visual Studio C++

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Zadanie 1. Napisz, skompiluj i uruchom program, który wyświetla komunikat: "Mam na imie...".

Ćwiczenie 4. Obsługa plików. Laboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Laboratorium Podstaw Informatyki Strona 1.

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

Warsztaty dla nauczycieli

Transkrypt:

Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout<< Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Gdy dane są wprowadzane do programu przez użytkownika (człowieka) lub wczytywane z plików, nazywa się to wejściem. Dane przesyłane w przeciwnym kierunku, tj. z komputera na ekran lub do pliku, nazywa się to wyjściem. Poznaliśmy już jeden ze strumieni do wyprowadzania danych na ekran (cout) i używaliśmy go wraz z operatorem <<. Operator << jest czasami nazywany operatorem wstawiania, gdyż wstawia ciąg znaków do urządzenia znakowego (na przykład konsoli). Zarówno operator << jak i strumień cout są odpowiedzialni za dwie ważne akcje: przekształcenie wewnętrznej (maszynowej) reprezentacji wartości całkowitej w formę akceptowalną dla ludzi przeniesienie skonwertowanej postaci na urządzenie wyjściowe, np. konsola

Strumienie są bardzo wydajnymi i wygodnymi narzędziami zarówno do wejścia, jak i wyjścia. Mogą łatwo wyprowadzać różne wartości różnych typów i mieszać je z tekstem. Mogą również łatwo wprowadzić wiele wartości naraz. Przykład: Wyświetl na ekranie wartość zmiennej int. int zmienna = 110; cout << zmienna; Możesz także połączyć więcej niż jeden operator << w jednym ciągu cout, a każdy z drukowanych elementów może być innego rodzaju i mieć inny charakter. int zmienna = 110; cout << Wartosc << zmienna; cout może wypisywać nie tylko napisy i wartości zmiennych, ale również wyniki obliczeń. Spójrz na przykład poniżej. int rozmiar_zmiennej = 123; cout << Elementy policzone do tej pory << rozmiar_zmiennej * 4;

Manipulatory Jeśli chcesz, aby wartość typu int była prezentowana jako stała liczba szesnastkowa, musisz użyć tak zwanego manipulatora. Manipulator jest specjalnym rodzajem podmiotu, który informuje strumień, że formularz danych musi zostać natychmiast zmieniony. Wszystkie elementy wyprowadzone po aktywacji manipulatora zostaną przedstawione w żądanej formie. Manipulator zaprojektowany do przełączania strumienia w tryb szesnastkowy nazywany jest hexem. Przykład: int byte = 255; cout << Bajt w zapisie szesnastkowym << byte << hex; Fragment wyświetli ciąg znaków składający się ze znaków "F" i "F". Technicznie, manipulator jest funkcją, która zmienia jedną z właściwości strumienia wyjściowego, zwaną basefield. Właściwość służy do określenia, która liczba powinna być użyta jako baza podczas konwersji wartości int do tekstu czytelnego dla człowieka. UWAGA: 1. każdy manipulator rozpoczyna pracę od miejsca, w którym został umieszczony i kontynuuje swoją pracę nawet po zakończeniu instrukcji cout; kończy działanie tylko wtedy, gdy inny manipulator anuluje jego działanie; 2. nazwa manipulatora może być w konflikcie z dowolną inną nazwą zadeklarowaną przez programistę; na przykład możesz mieć własną zmienną o nazwie hex, która może ukryć nazwę manipulatora; takie konflikty są rozwiązywane przez wyspecjalizowany mechanizm nazywany przestrzenią nazw.

Manipulatory zakres działania dec Manipulator dec przełącza strumień do postaci dziesiętnej. W większości przypadków nie jest to deklarowane jawnie, ponieważ wartość dziesiętna jest domyślnym trybem roboczym dla strumieni wyjściowych. int bajt = 255; cout << hex <<bajt; cout << bajt << dec << bajt; Przedstawiony przykład pokazuje, jak manipulatorzy zaczynają i kończą swoją pracę. Podany fragment wyprowadzi trzy przykłady o tej samej wartości (sprawdź jakie) FF jako szesnastkowa reprezentacja 255 (jako efekt manipulatora szesnastkowego) FF ponownie (poprzednia aktywacja hex nadal działa) 255 (w wyniku aktywacji dekodera dec) oct Manipulator oct przełącza strumień na tryb ósemkowy. int bajt = 255; cout << dec << bajt; W przedstawiony przykładzie zostanie wyświetlona wartość 377 na ekranie, ponieważ 255 (10) to 377 (8)

setbase Trzy manipulatory, które wcześniej poznaliśmy, są tylko jedną z metod (prawdopodobnie najprostszą) dostępu do właściwości basefield. Ten sam efekt można osiągnąć za pomocą manipulatora setbase, który bezpośrednio instruuje strumień o wartości bazowej, której powinien użyć podczas konwersji. Jedynymi akceptowalnymi wartościami dla parametru setbase są 8, 10 i 16. Przedstawiony fragment programu pokazuje użycie manipulatora setbase. Uwaga: Aby używać manipulatora setbase należy zadeklarować plik nagłówkowy o nazwie iomanip #include <iostream> #include <iomanip> using namespace std; int main(void) { int bajt = 255; cout << setbase(16) <<bajt; return 0; }

Strumień wyjścia cout rozpoznawanie typów zmiennych Strumienie wyjściowe (w tym cout) są w stanie rozpoznać rodzaj drukowanej wartości i odpowiednio działać, tj. wykorzystają odpowiednią formę prezentacji danych dla wartości char i float. char znak = X, minus = - ; float liczba_rzeczywista = 2.5; cout << znak <<minus << liczba_rzeczywista; wynik wykonania fragmentu programu: X-2.5 cout jest w stanie rozpoznać rzeczywisty typ swojego elementu, nawet jeśli jest to efekt konwersji. Oznacza to, że możemy zobaczyć kod ASCII dowolnego znaku zapisanego w zmiennej char i odwrotnie, lub zobaczyć znak, którego kod ASCII jest umieszczony wewnątrz zmiennej int. char znak = X ; int wartosc = znak; cout << znak << <<(int)znak<< <<wartosc<< <<(char)wartosc; wynik wykonania fragmentu programu: X 88 88 X Czasami możemy chcieć (a czasami musimy) złamać linię przesyłaną na ekran. Kiedy przedstawiamy wiele różnych wyników jeden po drugim w tym samym wierszu tekstu, jest to nieczytelne. Jedna linia jest w porządku, ale tysiąc wierszy napisanych w ten sposób sprawi, że oślepniesz. Możemy przerwać linię na dwa sposoby. Po pierwsze, możemy użyć jednego ze znaków kontrolnych zwanych "newline" i zakodowanych jako \n. Znak nowej linii zmusza konsolę do ukończenia bieżącej linii i rozpoczęcia nowej. Możemy osiągnąć dokładnie taki sam efekt, używając manipulatora o nazwie endl (jako "linia końcowa").

Strumień wejścia cin rozpoznawanie typów zmiennych Równie ważne jak dane wyjściowe jest wprowadzanie danych. Właściwie trudno wyobrazić sobie nietrywialny program, który nie wymaga żadnych danych od użytkownika, chociaż można wykonać następujące czynności: zakodować wszystkie dane potrzebne w kodzie źródłowym (co czasami jest nazywane twardym kodowaniem) kiedy trzeba powtórzyć wykonanie programu z innymi danymi, wystarczy zmodyfikować program, skompilować go i uruchomić ponownie. To nie jest szczególnie wygodne rozwiązanie. Znacznie lepiej jest uzyskać informacje od użytkownika, przenieść je do programu, a następnie użyć do obliczeń. W jaki więc sposób program języka C ++ pobiera dane od człowieka i zapisuje je w zmiennych? Najprostszym sposobem jest mentalna zmiana kierunku transferu i potwierdzenie, że dla wprowadzania danych: używamy strumienia cin zamiast cout używamy operatora >> zamiast <<. Operator >> jest często nazywany operatorem ekstrakcji. Strumień cin, wraz z operatorem ekstrakcji, jest odpowiedzialny za: przenoszenie czytelnej dla człowieka postaci danych z urządzenia wejściowego, np. konsola przekształcenie danych w wewnętrzną (maszynową) reprezentację wprowadzanej wartości.

Przykłady użycia strumieni cin i cout oraz operatorów >>,<<; //program oblicza kwadrat danej liczby #include <iostream> using namespace std; int main(void) { int wartosc,kwadrat; } cout << " Podaj jakas liczbe calkowita oblicze jej kwadrat"; cin >> wartosc; kwadrat = wartosc * wartosc; cout << " Podales liczbe " << warotsc << endl; cout << " Kwadrat tej liczby wynosi" << kwadrat << endl; return 0; //program oblicza pierwiastek kwadratowy danej liczby #include <iostream> #include <cmath> using namespace std; int main(void) { float wartosc,pierwiastek; cout << " Podaj jakas liczbe oblicze jej pierwiastek kwadratowy";<< endl; cin >> wartosc; if(wartosc >= 0.0) { pierwiastek = sqrtf(wartosc); cout << " Podales liczbe: " << wartosc << endl; cout << "Pierwiastek kwadratowy tej liczby wynosi: " << pierwiastek << endl; } return 0;}