Podstawy informatyki 2013/2014

Slides:



Advertisements
Podobne prezentacje
Katarzyna Szafrańska kl. II ti
Advertisements

Wstęp do strumieni danych
C++ wykład 2 ( ) Klasy i obiekty.
Programowanie obiektowe
Programowanie obiektowe PO PO - LAB 6 Wojciech Pieprzyca.
Zmienne i Typy.
Informatyka Stosowana
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Wskaźniki. Definiowanie wskaźników Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Real; Przykłady: Wskaźnik.
Programowanie w C Wykład 3
Podstawy programowania
Język ANSI C Operacje we/wy
Wykład 2 struktura programu elementy języka typy zmienne
Programowanie obiektowe W2
Podstawy informatyki 2013/2014
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy informatyki (4)
Podstawy informatyki 2013/2014
Podstawy programowania w języku C i C++
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki 2013/2014
Podstawy informatyki 2013/2014
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki 2012/2013
Wczytywanie danych z klawiatury, komentarze, zmienne.
Budowa komputera.
ARCHTEKTURA KOMPUTERA
Programowanie strukturalne i obiektowe
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Podstawowe usługi systemów operacyjnych
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Programy różne w C++
Podstawy informatyki 2013/2014
Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki 2013/2014
Programowanie obiektowe 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Programowanie obiektowe 2013/2014
Programowanie obiektowe 2013/2014
Kurs języka C++ – wykład 8 ( )
JĘZYKI ASSEMBLEROWE ..:: PROJEKT ::..
Modele pamięci Tiny - mikroskopijny do 64 K zmienne inicjalizowane kod programu zmienne nie inicjalizowane HEAP (sterta) obszar wolny STACK (stos) Model.
Przestrzenie nazw, strumienie. Przestrzenie nazw Przestrzeń nazw – co to takiego? Przestrzeń nazw – co to takiego?namespace Kiedy potrzebujemy przestrzeni.
Klasy String i Vector Zajęcia 9. Klasa String Atutem języka C++ jest biblioteka standardowych szablonów STL (Standard Template Library), która udostępnia.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Zmienne, stałe Instrukcje sterujące Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Standard Template Library Czyli Es Te El. Co to jest? Po polskiemu STL to standardowa biblioteka szablonów, czyli biblioteka C++ zawierająca algorytmy,
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Struktury Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
Podstawy informatyki Szablony funkcji Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
Podstawy informatyki Operatory rzutowania Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały.
Podstawy informatyki Mechanizm obsługi sytuacji wyjątkowych Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu.
Podstawy informatyki Operacje we/wy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
Piotr Kawałek , Mateusz Śliwowski
KURS JĘZYKA C++ – WYKŁAD 11 ( )
Programowanie Obiektowe – Wykład 2
Podstawy informatyki Operacje we/wy
Operacje na plikach w C++
Wstęp do programowania
Operacje na plikach w C++
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Język C++ Operatory Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła.
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

Podstawy informatyki 2013/2014 Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka

Strumień i flaga Strumień – wprowadzanie i wyprowadzanie danych można potraktować jako strumień bajtów płynący od źródła do ujścia. Flaga – przechowuje informacje typu tak/nie.

Strumienie Wyprowadzanie i wprowadzanie informacji ze standardowych urządzeń we/wy (klawiatura/ekran) Biblioteka iostream Wyprowadzanie i wprowadzanie informacji z plików Biblioteka fstream Wyprowadzanie i wprowadzanie informacji z obiektów klasy string Biblioteka sstream

Operacje we/wy Przepływ informacji może odbywać się na dwa sposoby: Operacje we/wy bitowe Polega na tym, że określone bajty przesyłane są od źródła do ujścia, a strumień nie interesuje się znaczeniem tych bajtów. Stosujemy, gdy program ma komunikować się nie z człowiekiem, ale z innym programem albo urządzeniem.

Operacje we/wy Operacje we/wy tekstowe Polega na tym, że określone bajty przesyłane są od źródła do ujścia oraz ma jeszcze je interpretować (formatować). Stosujemy, gdy program ma komunikować się z człowiekiem. Wszystkie operacje we/wy wykonywane do tej pory były typu tekstowego.

Posługiwanie się strumieniem Definiujemy w pamięci obiekt sterowania strumieniem. Wskazujemy jakim urządzeniem ma się zajmować. Przeprowadzamy wczytania (wypisania) informacji. Likwidujemy strumień.

Strumienie zdefiniowane standardowo cout – standardowe urządzenie wyjścia cin – standardowe urządzenie wejścia cerr – standardowe urządzenie wyjścia, na które wypisujemy komunikaty o błędach (strumień niebuforowany) clog – standardowe urządzenie wyjścia, na które wypisujemy komunikaty o błędach (strumień buforowany) wcout wcin wcerr wclog

Operatory przesunięcia bitowego Operatory << oraz >> zostały przeładowane w ten sposób, że odpowiadają za wstawianie i wyjmowanie ze strumienia. PRIORYTETY!!! bool a = true, b = false; cout << a && b;

Domniemania (cout) Typy przechowujące liczby całkowite są wypisywane w systemie dziesiętnym. Typy alfanumeryczne są wypisywane jako pojedyncze znaki ASCII Typy przechowujące liczby zmiennoprzecinkowe są wypisywane w postaci 6 cyfr. Wskaźniki (z wyjątkiem char*) są wypisywane w systemie heksadecymalnym.

Hello Adres w pamięci Domniemania (cout) Wypisanie wskaźnika char* powoduje wypisanie C-stringu na który pokazuje, czyli: char *a="Hello"; cout << a << endl; cout << reinterpret_cast<void*>(a) << endl; Hello Adres w pamięci

Domniemania (cin) Wszystkie wczytywane typy mogą poprzedzać białe znaki, które są ignorowane. Przy wczytywaniu liczb całkowitych są traktowane jako wprowadzane w systemie dziesiętnym (nie można wprowadzać liczb pisząc np. 011, 0x11). Przy wczytywaniu liczb całkowitych po podaniu pierwszego znaku nie będącego cyfrą wprowadzanie zostaje zakończone. Wprowadzając liczby ujemne, pomiędzy znakiem minus a liczbą nie może być spacji.

Domniemania (cin) Wprowadzając liczbą zmiennoprzecinkową obowiązują zasady dotyczące liczb całkowitych, jednak w przypadku notacji wykładniczej (naukowej) może wystąpić drugi znak + lub – oraz litera oznaczająca wykładnik. Wewnątrz nie może być spacji. Przy wczytywaniu C-stringów oraz stringów wczytywanie rozpoczyna się po zignorowaniu białych znaków poprzedzających tekst i kończy się z napotkaniem pierwszego białego znaku.

Format state flags Zasady formatowania są zapisane w tak zwanych flagach stanu formatowania i znajdują się w klasie ios_base

Hierarchia klas

Flagi i maski Flagi: skipws ignoruj białe znaki left lewe justowanie right prawe justowanie internal „wewnętrzne” justowanie boolalpha używaj słów true/false dec konwersja decymalna oct konwersja oktalna hex konwersja heksadecymalna showbase pokaż podstawę konwersji showpoint pokaż kropkę dziesiętną

Flagi i maski uppercase wielkie litery (w liczbach) showpos pokaż znak + w liczbach R+ scientific notacja wykładnicza fixed notacja zwykła unitbuf nie buforuj strumienia Maski: adjustfield maska dla typu justowania basefield maska dla typu konwersji floatfield maska dla typu notacji

skipws Ustawienie tej flagi powoduję że strumień będzie ignorował białe znaki (spacje, tabulatory, znaki nowej linii), które poprzedzają znaki właściwe. string a; cin >> a; cout << a.length() << endl; //skasuj flagę skipws ___aaa 3 ___aaa

left right internal Wyjustowanie do lewej, prawej lub rozciągnięcie. int a=-12; //ustaw flagę left oraz ustal szerokość cout << a << endl; //ustaw flagę right oraz ustal szerokość //ustaw flagę internal oraz ustal szerokość

boolalpha Wartości zmiennych bool są wypisywane jako true / false. bool a=true,b=false; cout << a << endl; cout << b << endl; //ustaw flagę boolalpha 1 true false

dec hex oct Wypisywanie i wprowadzanie liczb w innych systemach liczbowych. int a=20; cout << a << endl; //ustaw flagę hex i skasuj oct i dec //ustaw flagę oct i skasuj hex i dec 20 14 24

showbase Decyduje czy wypisywać podstawę konwersji. int a=20; //ustwa flagę showbase cout << a << endl; //staw flagę hex i skasuj oct i dec //staw flagę oct i skasuj hex i dec 20 0x14 024

showpos Decyduje czy wypisywać znak + przed liczbami dodatnimi. int a=20; cout << a << endl; //ustaw flagę showpos 20 +20

uppercase Decyduje czy wypisywać duże litery zawarte w liczbach. double a=1e10; cout << a << endl; //ustaw flagę uppercase 1e+010 1E+010

showpoint Decyduje czy wypisywać kropkę dziesiętną. double a=1.23,b=4; cout << a << endl; cout << b << endl; //ustaw flagę showpoint 1.23 4 1.23000 4.00000

scientific, fixed Decyduje w jakiej notacji wypisywać liczby. double a=123.456; cout << a << endl; //ustaw flagę fixed //ustaw flagę scientific i skasuj flagę fixed 123.456 123.456000 1.234560e+002

Sposoby zmiany formatowania Flagi można zmieniać za pomocą: elementarnych funkcji składowych klasy ios, funkcji składowych klasy ios, które nie zmieniają flag, ale zmieniają towarzyszące im parametry, manipulatorów

Elementarne funkcje składowe klasy ios Do zmian flag służą funkcje: fmtflags flags() const; fmtflags flags(fmtflags); fmtflags setf(fmtflags); fmtflags setf(fmtflags, fmtflags); fmtflags unsetf(fmtflags); Typ fmtflags to inna nazwa typu int.

Przykład 1 int a=20; cout << a << endl; cout.setf(ios::showpos); cout.unsetf(ios::showpos); 20 +20 20

Przykład 2 double a=123; cout << a << endl; cout.setf(ios::showpoint | ios::fixed); 123 123.000000

Przykład 3 int a=20; cout << a << endl; cout.setf(ios::hex,ios::basefield); 20 14

Przykład 4 int a=20; cout << a << endl; ios::fmtflags stare=cout.flags(); cout.setf(ios::hex,ios::basefield); cout.flags(stare); 20 14 20

Funkcje składowe klasy ios, które nie zmieniają flag streamsize width() const; streamsize width(streamsize); streamsize precision() const; streamsize precision(streamsize); char fill() const; char fill(char); Typ streamsize to inna nazwa typu int.

Przykład 1 double a=1.0/3.0; cout << a << endl; cout.precision(10);

Przykład 2 int a=-12; cout.setf(ios::left,ios::adjustfield); cout.width(10); cout << a << endl; cout.setf(ios::right,ios::adjustfield); cout.setf(ios::internal,ios::adjustfield);

Przykład 3 int a=-12; cout.fill('.'); cout.setf(ios::left,ios::adjustfield); cout.width(10); cout << a << endl;

Manipulatory bezargumentowe boolalpha – noboolalpha hex – dec – oct flush endl skipws – noskipws showpoint – noshowpoint showpos – noshowpos showbase – noshowbase uppercase – nouppercase fixed – scientific left – right - internal

Przykład 14 int a=12; cout << oct << a << endl << showbase << a << endl << uppercase << hex << a << endl; 014 0XC

Manipulatory parametryzowane setw(int) setfill(char) setprecision(int) setbase(int) setiosflags(fmtflags) resetiosflags(fmtflags)

Przykład #include<iomanip> … double a=1.0/3.0; cout << a << endl << setprecision(10) << a << endl << setprecision(2) << a << endl;

Przykład int a=20; cout << a << endl << setiosflags(ios::showpos) << a << endl << setbase(8) << a << endl; 20 +20 24

Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie: http://creativecommons.org/licenses/by-sa/3.0/deed.pl