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

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

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

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

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

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else

Pytania sprawdzające wiedzę z programowania C++

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

Wstęp do Programowania 2

C++ wprowadzanie zmiennych

Wstęp do programowania

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

Wstęp do informatyki- wykład 11 Funkcje

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

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

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

Część 4 życie programu

Wstęp do informatyki- wykład 9 Funkcje

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

Wstęp do programowania

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

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

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

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

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

Programowanie - wykład 4

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

INFORMATYKA Studia Niestacjonarne Elektrotechnika

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

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

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

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

Techniki Programowania wskaźniki

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

I - Microsoft Visual Studio C++

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Wstęp do programowania

Wstęp do programowania

Microsoft IT Academy kurs programowania

Struktury Struktura polami struct struct struct struct

Java Podstawy. Michał Bereta

Języki programowania obiektowego Nieobiektowe elementy języka C++

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

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

1. Wypisywanie danych

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Podstawy programowania w języku C++

4. Funkcje. Przykłady

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

Programowanie Komputerów

Wstęp do Programowania 2

tablica: dane_liczbowe

Wstęp do programowania

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

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

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

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

Język C zajęcia nr 11. Funkcje

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

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

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

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

VII. Ciągi znaków łańcuchy

1 Podstawy c++ w pigułce.

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

Podstawy programowania

Język C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa

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

Podstawy Programowania

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

Programowanie strukturalne. dr inż. Tadeusz Jeleniewski

Wstęp do Informatyki

1 Podstawy c++ w pigułce.

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

2 Przygotował: mgr inż. Maciej Lasota

Pliki wykład 2. Dorota Pylak

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

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wstęp do programowania obiektowego, wykład 7

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

Programowanie obiektowe w C++ Wykład 1

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Zmienne, stałe i operatory

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

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:

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

Podstawy Programowania. Wykład 1

C-struktury wykład. Dorota Pylak

Programowanie komputerowe. Zajęcia 1

MATERIAŁY DO ZAJĘĆ II

Transkrypt:

1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3

ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne wielkości i maksymalnych liczb i rożne dokładności Notacja naukowa: Opcjonalnie znak + lub - mantysa wykładnik +5.37E+16 Żadnych spacji! Opcjonalnie kropka dziesiętna Może być E lub e Może być + lub -, można też pominąć 2

Liczby zmiennoprzecinkowe różnią się od liczb całkowitych : sposobem przechowywania w pamięci komputera (znak, wykładnik, mantysa) sposobem realizacji obliczeń (: przy tej samej WIĘKSZEJ wartości cechy) IEEE standard Odczytywanie pamięci wykładnik Część ułamkowa S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 0 1.8 9 31 wartość = (-1) S * 2 (E -127 ) *1.(F) przy czym: ZMIENNE PROSTE: TYPY WBUDOWANE bit1 bit2 bit 1.( F ) = 1+ + +... + 1 2 2 2 2 Do pamięci: 0.15625= (-1) 0 * 2 (-3 +127) * 1.01 = (0 01111100 0100000000000000000000) -0.15625= (-1) 1 * 2 (-3 +127) * 1.01 = (0 01111100 0100000000000000000000) 23 23 Z pamięci: 0 10000000 00000000000000000000000= (-1) 0 * 2 (128-127) * 1.0 = 2 0 10000001 10100000000000000000000= (-1) 0 * 2 (129-127) * 1.101 = 6.5 1 10000001 10100000000000000000000= (-1) 1 * 2 (129-127) * 1.101 = -6.5 0 00000001 00000000000000000000000= (-1) 0 * 2 (1-127) * 1.0 = 2-126 3

ZMIENNE PROSTE: TYPY WBUDOWANE int 2 : ( 0000 0000 0000 0000 0000 0000 0000 0010) float 2.0 : ( 0100 0000 0000 0000 0000 0000 0000 0000) Standard C++ przewiduje wyświetlanie 6 wartości liczby zmiennoprzecinkowej pomijanie końcowych zer 4

Klasa numeric_limits #include <iostream> #include <limits> using namespace std; main(){ cout <<"najwiekszy float = "<< numeric_limits<float>::max()<<'\n'; cout <<"namniejszy float = "<< numeric_limits<float>::min() <<'\n'; return;} cout <<"min eksponent binarnie float = << numeric_limits<float>::min_exponent <<'\n'; cout <<"min eksponent dziesietnie float = << numeric_limits<float>::min_exponent10 <<'\n'; cout <<"max eksponent binarnie float = << numeric_limits<float>::max_exponent <<'\n'; cout <<"max eksponent dziesietnie float = << numeric_limits<float>::max_exponent10 <<'\n'; cout <<"ilosc cyfr mantysy binarnie float = << numeric_limits<float>::digits <<'\n'; cout <<"ilosc cyfr mantysy dziesietnie float = << numeric_limits<float>::digits10 <<'\n'; cout <<"nieskonczonosc w float = "<< numeric_limits<float>::infinity() <<'\n'; cout <<"epsilon dla float = "<< numeric_limits<float>::epsilon() <<'\n'; cout <<"blad zaokraglania dla float = "<< numeric_limits<float>::round_error() ; cout <<"styl zaokraglania dla float = "<< numeric_limits<float>::round_style \n'; epsilon 5

ZMIENNE zmiennoprzecinkowe Liczby zmiennoprzecinkowe rozmieszczone są niejednorodnie małe gęściej duże rzadziej duże rzadziej 6

PODSUMOWANIE W języku C++ mamy wbudowane dwa podstawowe typy arytmetyczne: całkowite i zmiennoprzecinkowe. Są one dostępne przez słowa kluczowe języka: typy całkowite : bool, char, short, int, long, unsigned wchar_t różnią się ilością zajmowanej pamięci oraz obecnością lub nieobecnością znaku typy zmiennoprzecinkowe : float, double, long double różnią się ilością zajmowanej pamięci Arytmetyka zależy od typu Arytmetyka całkowitoliczbowa to obcinanie ułamków: int i=2, j=3; int k=i/j; /* k==0 */ Arytmetyka zmiennoprzecinkowa to zaokrąglanie wyników. Wynik może nie należeć do zbioru liczb reprezentowanych Jak się zaokrągla zależy od kompilatora. 7

C++ automatyczne konwertuje: (1)wartości w chwili przypisywania wartości jednego typu arytmetycznego zmiennej innego typu arytmetycznego int i=3.12234; // zmiennej i przypisana zostanie liczba 3 (2) wartości, jeżeli w wyrażeniu użyto rożnych typów KONWERSJA TYPU int i=3; float x=5.0; double suma= x+i; //zmienne x oraz i są konwertowane //do double przed operacją argumenty obliczeń są domyślnie poszerzane do najobszerniejszego typu ( do int dla całkowitych i do double dla zmiennoprzecinkowych) (3) wartości przekazywane funkcjom jako parametry Można wymusić zmiany rzutowanie : jak w C : (nazwa_typu) wartość jak funkcja: nazwa_typu (wartość) operator rzutowania: static_cast<nazwa_typu> (wartość) 8

OBLICZENIA w C++ Obliczenia prowadzimy korzystając z funkcji bibliotecznych (tutaj: z biblioteki cmath) lub własnych 9

OBLICZENIA w C++ Prototypy funkcji pojawić się muszą przed użyciem. Definicje funkcji pojawiają się Kolejno w pliku. 10

NAZWY ZMIENNYCH Co może być nazwą w C++ Dowolnie długi ciąg : liter, cyfr, i znaku podkreślenia _ Ale: nazwa nie może zaczynać się od cyfry nazwa nie może być identyczna z żadnym ze słów kluczowych Literały, czyli stałe wartości w programie: Zapis Zapis Zapis 10 8 16 znak łańcuch znakowy 11

SŁOWA KLUCZOWE 12

TABLICA ZNAKÓW: TRADYCYJNIE 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A l a m a k o a t \0 char Napis[14]; Mamy przydzieloną pamięć na 14 zmiennych znakowych numerowanych od 0 do 13 Napis[0]= A ; Napis[1]= l ; Napis[2]= a ; Napis[3]= ; Napis[4]= m ; Napis[5]= a ; Napis[6]= ; Napis[7]= k ; Napis[8]= o ; Napis[9]= t ; Napis[10]= a ; char Napis [14]={ A, l, a,, m, a,, k, o, t, a }; char Napis [14]= Ala ma kota ; char Napis []= Ala ma kota ; W tablicy jest umieszczany znak końca łańcucha Tablica ma rozmiar taki jak literał +1 13

TABLICA : STRUKTURA WIELU IDENTYCZNYCH DANYCH Typ danych Nazwa tablicy Nawias klamrowy z rozmiarem tablicy int tabela [ 23] rozmiar tablicy musi być wielkością stałą: literał albo zmienna const Elementy tablicy numerujemy od ZERA!!!!! Inicjowanie tablicy tylko przy definicji: int karty[4]= {3,4,5,6}; float cos[3]={2.5, -0.1}; double duza[2222]={0}; 14

TABLICA ZNAKÓW: WPROWADZANIE DANYCH Zadanie: Poproś klienta o podanie imienia oraz nazwy jego ulubionego deseru Dane: zapytanie_1 = Podaj imię zapytanie_2 = Podaj ulubiony deser Wynik: tablice znakowe imie[] i deser[] Pomocnicza: komunikat_ok wyświetl zapytanie_1 pobierz imie wyświetl zapytanie_2 pobierz deser wyświetl komunikat_ok 15

TABLICA ZNAKÓW: WPROWADZANIE DANYCH #include <iostream> // odczyt danych z konsoli int main(){ using namespace std; system("chcp 1250"); const int rozmiar = 20; char imie[rozmiar]; char deser[rozmiar]; Polska strona kodowa, ale z Lucida UWAGA: cin każdy biały znak: spacja, tabulator, znak nowej linii odczytuje jako separator łańcuchów. cout << "Podaj swoje imię : \n "; cin >> imie; cout << "Podaj swój ulubiony deser : \n "; cin >> deser; cout << " Mamy dla Ciebie " << deser << ", " << imie <<endl; cin.ignore(1000,'\n'); cin.get(); return 0; } Pomija 1000 znaków aż następnego \n 16

TABLICA ZNAKÓW: WPROWADZANIE DANYCH int ile_porcji; liczby.cpp cout << "Ile porcji chcesz? \n" ; while (! (cin >> ile_porcji) ){ cout<< "podaj liczbę, proszę \n"; cin.clear(); cin.ignore(10000,'\n'); } Obsługa błędu w cin 1. Likwiduje flagę błędu w cin 2. Pomija 1000 znaków aż następnego \n cout << "Twój wzrost : \n "; Można połączyć operacje: (cin >> wzrost).get(); cin << wzrost i cin.get(); cout << "Podaj swoje imię : \n "; cin.getline(imie, rozmiar); cout << imie<< ", Twój wzrost to "<< wzrost<< endl; 17