Wstęp do programowania

Podobne dokumenty
Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Wstęp do programowania

Wstęp do programowania. Wykład 1

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

1 Podstawy c++ w pigułce.

Podstawy Programowania. Wykład 1

Język ludzki kod maszynowy

Wstęp do programowania

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

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

1 Podstawy c++ w pigułce.

Techniki Programowania

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

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

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

Języki programowania - podstawy

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

Podstawy programowania w języku C

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

Podstawy Programowania

C++ wprowadzanie zmiennych

Programowanie w języku Python. Grażyna Koba

Część 4 życie programu

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

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

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Zmienne, stałe i operatory

Podstawy i języki programowania

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

Programowanie strukturalne i obiektowe

Słowa kluczowe i nazwy

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

Powtórka algorytmów. Wprowadzenie do języka Java.

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

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

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

Wstęp do programowania

Język C - podstawowe informacje

( wykł. dr Marek Piasecki )

Wstęp do programowania

Podstawy języka C++ Marek Pudełko

2 Przygotował: mgr inż. Maciej Lasota

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wstęp do programowania

Wstęp do programowania

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

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

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

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

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

Algorytm. a programowanie -

/* dołączenie pliku nagłówkowego zawierającego deklaracje symboli dla wykorzystywanego mikrokontrolera */ #include <aduc834.h>

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

Grzegorz Cygan. Wstęp do programowania mikrosterowników w języku C

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

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

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Powtórka algorytmów. Wprowadzenie do języka Java.

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Szablony funkcji i szablony klas

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

Pytania sprawdzające wiedzę z programowania C++

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

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

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

Programowanie - wykład 4

Podstawy Programowania Algorytmy i programowanie

Programowanie obiektowe

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

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

Programowanie komputerowe. Zajęcia 1

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Podstawy programowania w języku C i C++

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

Programowanie strukturalne język C - wprowadzenie

Struktura pliku projektu Console Application

Microsoft IT Academy kurs programowania

Programowanie Komputerów

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

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

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

Wstęp do programowania

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

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

Podstawy programowania. Wykład 2 Zmienne i obsługa wejścia/wyjścia. Krzysztof Banaś Podstawy programowania 1

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Transkrypt:

wykład 1 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018

strona www: http://www.math.uni.lodz.pl/~polrola

To oczywiście pewnie wszyscy wiedzą... Komputer może być traktowany jako urządzenie służące do przechowywania i przetwarzania informacji Działanie komputera jest kontrolowane przez wykonywany przez niego program

Podstawowe elementy komputera Procesor - mózg komputera. Zawiera: jednostkę sterującą (CU - control unit) - element nadzorujący i koordynujący działanie komputera jednostkę wykonawczą (EU - execution unit), a w niej m.in. element odpowiedzialny za operacje arytmetyczne i logiczne (ALU - arithmetic-logic unit) oraz różnego rodzaju rejestry (wbudowane w procesor małe komórki pamięci o szybkim dostępie, służące do przechowywania wyników obliczeń, adresów w pamięci operacyjnej, instrukcji; procesor wykonuje działania korzystając ze swoich rejestrów - dane są pobierane z pamięci do rejestrów a potem odsyłane). Pamięć operacyjna przechowuje m.in. uruchamiany program, dane, tymczasowe struktury danych niezbędne do poprawnego działania uruchamianego programu itp.

Podstawowe elementy komputera - cd jednostki wejścia/wyjścia umożliwiające komunikację z otoczeniem (mysz, klawiatura, ekran itp) pamięć pomocnicza (zewnętrzna) pozwalająca przechowywać dane, programy które nie są wykonywane itp zawartość pamięci pomocniczej jest zazwyczaj zorganizowana w pliki

Pamięć Pamięć komputera może być traktowana jako ciąg komórek pamięci (nazywanych czasami słowami). Każda komórka ma pewien adres, określający jej pozycję w pamięci. Każda komorka składa się z pewnej liczby bitów (zazwyczaj 8, 16, 32 lub 64). 8 bitów tworzy bajt Każdy bit przechowuje cyfrę dwójkową (0 lub 1) za pomocą ciągów cyfr dwójkowych zapisujemy liczby całkowite, rzeczywiste, wartości logiczne, instrukcje programu itd

Wykonanie programu Wykonywany program zajmuje grupę powiązanych ze sobą komórek pamięci. Komórki lub grupy komórek zawierają poszczególne instrukcje programu. program to ciąg instrukcji podczas wykonania programu CU czyta kolejne instrukcje z pamięci i zapewnia, że są one wykonywane w odpowiednim porządku instrukcja mówi komputerowi, że powinien wykonać jakieś zadanie (np. przenieść zawartość komórki pamięci znajdującej się pod jakimś adresem do określonego rejestru procesora, albo dodać dwie liczby w ALU)

Postać programu ( wewnątrz komputera ) Instrukcja jest zapisana jako pewien ciąg zer i jedynek. instrukcja o tej samej roli może mieć różną postać w rożnych modelach komputerów Program zapisany w takiej postaci może być wykonany przez komputer. Mówimy, że jest w postaci kodu maszynowego instrukcje kodu maszynowego nazywa się też rozkazami maszynowymi Przykład 0011001111110011 0011111110000110 1001001111001111

Języki programowania Przykład początkowo programy były pisane w kodzie maszynowym kolejnym etapem był język asembler jest to język używający krótkich nazw odpowiadających poszczególnym rozkazom maszynowym danego typu procesora oraz pozwalający na użycie nazw zmiennych zamiast ich adresów LOAD A ADD B STORE C przetłumaczenie takiego programu na kod maszynowy jest bardzo proste język asembler jest w użyciu; pozwala pisać bardzo wydajne programy

Języki programowania - cd Przykład kolejnym etapem są języki programowania wysokiego poziomu (np. Pascal, Ada, C++, Java,...) prosty zapis operacji C := A + B programy napisane w takich językach są tłumaczone na kod maszynowy przy pomocy specjalnego translatora

Od kodu do programu wykonywalnego Program napisany w języku programowania ma postać pliku tekstowego. Ta postać nazywana jest kodem źródłowym Aby program można było wykonać, musi zostać przetłumaczony na kod wykonywalny (program wykonywalny) zapisany w języku maszynowym proces tłumaczenia programu nazywany jest kompilacją

Od kodu do programu wykonywalnego - cd proces tłumaczenia programu składa się tak naprawdę z dwóch czynności: kompilacji i łączenia kompilacja (przetworzenie kodu źródłowego przez program zwany kompilatorem) zamienia program źródłowy na plik binarny zawierający program w kodzie maszynowym (object file). Najczęściej nie jest on jeszcze końcową wersją programu - zawiera odwołania do zewnętrznych podprogramów umieszczonych w bibliotekach kompilacja może być poprzedzona analizą kodu źródłowego wykonywaną przez program zwany preprocesorem (często kompilator spełnia równocześnie rolę preprocesora) łączenie (konsolidacja, linkowanie,) wykonywana przez program zwany konsolidatorem, tworzy kolejny plik binarny, w którym jest już wszystko co jest potrzebne do wykonania programu na danym sprzęcie z danym systemem operacyjnym

Języki interpretowane (skryptowe) Programy napisane w niektórych językach programowania (np. w języku Perl lub Python) uruchamiane są w inny sposób. do uruchomienia programu potrzebne jest środowisko uruchomieniowe - interpreter interpreter nie tworzy programu wykonywalnego; poszczególne instrukcje programu tłumaczone są po kolei na bieżąco na kod maszynowy i wykonywane. Odwołania do podprogramów umieszczonych w zewnętrznych bibliotekach również przetwarzane są na bieżąco

Etapy tworzenia programu Aby napisać program musimy: określić wymagania programu (faza analizy wymagań i specyfikacji) zaprojektować sposób rozwiązania problemu (faza projektowa) zapisać w/w projekt w wybranym języku programowania (faza implementacji) skompilować i uruchomić program sprawdzić, czy program działa poprawnie (faza testowania)... z czego faza implementacji jest chyba najprostsza... ;-)

PROGRAMOWANIE JEST JEDNO tylko językow programowania wiele

Algorytmy Aby napisać program, musimy znaleźć odpowiedni algorytm - czyli opisać, jak rozwiązać konkretny problem / zadanie Algorytmy można zapisywać na różne sposoby: w języku naturalnym w postaci schematu blokowego w postaci instrukcji programu w pseudokodzie...

Przykłady algorytmów przepis na ciasto instrukcja składania mebli przepis na rozwiązanie równania kwadratowego postaci ax 2 + bx + c = 0 metoda znalezienia największej liczby w (bardzo, bardzo długim) ciągu liczb

Elementy algorytmów Sposób opisu algorytmu musi pozwalać na wyrażenie: sekwencyjności wyboru iteracji rekursji (rekurencji)

Sekwencyjność Opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej kolejności, w jakiej zostały zapisane Przykład weź 4 jajka, szklankę cukru i cukier waniliowy utrzyj żółtka z cukrem przygotuj szklankę mąki z łyżeczką proszku do pieczenia dodaj część mąki do ucieranej masy ubij pianę z białek dodaj do ucieranej masy pianę i resztę mąki...

Wybór Opisujemy fakt konieczności podjęcia decyzji którą z alternatywnych ścieżek wybrać Przykłady jeżeli ucierana masa jest zbyt gęsta, to dodaj łyżkę wody jeżeli uczestnik turnieju odpowiedział poprawnie na co najmniej 5 pytań, to przechodzi do następnego etapu, w przeciwnym razie odpada z gry jeżeli wyróżnik trójmianu kwadratowego jest ujemny, to piszemy że trójmian nie ma pierwiastków, jeżeli wyróżnik jest równy zero, to piszemy że trójmian ma jeden pierwiastek, w pozostałych przypadkach trójmian ma dwa pierwiastki

Iteracja Opisujemy fakt, że pewna część algorytmu będzie powtarzana - albo określoną ilość razy, albo do momentu zajścia pewnego warunku Przykłady podgrzewaj masę mieszając, dopóki cukier się nie rozpuści powtórz 100 razy czynność idź krok na północ (czyli idź 100 kroków na północ)

Rekurencja Problem dzielimy na mniejsze (zagnieżdżone) podproblemy o podobnej strukturze. Każdy z nich rozwiązujemy stosując ten sam algorytm.

Aby tworzyć algorytmy, powinniśmy rozumieć co jest w stanie zrobić komputer W przypadku bardziej złożonego problemu wygodnie jest: podzielić problem na mniejsze, prostsze podproblemy zaprojektować rozwiązanie dla każdego z nich, w razie potrzeby znów dzieląc je na podproblemy Jest to tzw. projektowanie od ogółu do szczegółu albo z góry w dół (top-down design) Kolejny krok to zapisanie algorytmu w wybranym języku programowania

Każdy język ma swoją składnię: słowa kluczowe instrukcje itd Na wykładzie / ćwiczeniach będziemy używać języka C++ jeden z bardziej popularnych języków programowania powstały w latach 80-tych XX wieku jako rozszerzenie języka C o mechanizmy programowania obiektowego

Musimy zaopatrzyć się w jakiś kompilator C++ (albo w odpowiednie IDE, tj. zintegrowane środowisko programistyczne dla danego języka) Przykłady IDE: Code::Blocks Dev-C++ Eclipse Falcon C++ wxdev-c++ VisualStudio Ultimate++...

Przykładowy program # include < iostream > /* dyrektywa preprocesora */ int main () // program glowny { std :: cout << " Dzien dobry! \n" ; std :: cout << " To ja, Twoj pierwszy program "; } return 0;

Dyrektywy preprocesora # include < iostream > linia zaczyna się od dyrektywy preprocesora preprocesor analizuje kod źródłowy poszukując przeznaczonych dla niego poleceń (dyrektyw lub makr) celem wykonania preprocesora jest przekształcenie kodu programu zgodnie z treścią tych poleceń w przypadku dyrektywy #include przekształcenie polega na dołączeniu w danym miejscu kodu pliku podanego po dyrektywie tu dołączamy plik (bibliotekę) iostream ponieważ będziemy używać tzw. strumieni do wypisania tekstu uwaga - preprocesor nie dokonuje kontroli poprawności programu!

Komentarze # include < iostream > /* dyrektywa preprocesora */ int main () // program glowny Komentarz to taki fragment zawartości pliku z kodem źródłowym programu, który nie jest brany pod uwagę przy kompilacji. W C++ istnieją dwa sposoby wstawiania komentarzy: komentarzem jest tekst zawarty między /* (otwarciem komentarza) i */ (zamknięciem komentarza) komentarzy tego typu nie można zagnieżdżać! komentarzem jest też tekst rozpoczynający się od // jest traktowany jako komentarz; końcem komentarza jest wówczas koniec linii

Definicja głównej funkcji programu int main () // program glowny {... // tresc programu return 0; } funkcja o nazwie main jest właściwym programem w C++. Nazwa ta jest zastrzeżona (nie można jej zmienić) każda funkcja zwraca wartość pewnego typu; dla main jest to zawsze int - wartość całkowita. Typ wyniku jest podany przed nazwą funkcji. Na końcu treści programu znajduje się instrukcja return 0; powodująca zwrócenie zera (oznaczającego zazwyczaj poprawne wykonanie programu) funkcja może przyjmować również pewne dane wejściowe - argumenty. Listę argumentów podaje się w nawiasach () następujących po nazwie funkcji. Pusta lista argumentów oznaczana jest pustymi nawiasami.. nawiasy klamrowe { i } wyznaczają początek i koniec bloku zawierającego instrukcje programu każda instrukcja programu jest zakończona średnikiem

Strumień wyjścia std::cout std :: cout << " Dzien dobry! \n" ; std :: cout << " To ja, Twoj pierwszy program "; użycie tzw. strumienia std::cout pozwala na przesłanie danych na standardowe wyjście (ekran) znaki << (nazywane operatorem strumienia wyjścia pozwalają wskazać dane które mają być przekazane do strumienia tu przekazujemy tekst (napis). Napis musi być ujęty w cudzysłowy polecenie przesyłania danych musi być zakończone średnikiem przekierowania można sklejać : std :: cout << " Dzien dobry! \n" << "To ja" ;

Znaki specjalne w tekście std :: cout << " Dzien dobry! \n" ; std :: cout << "To ja, \t \t Twoj pierwszy \" program \" "; W tekście można umieszczać znaki specjalne. Najczęściej używane to: \n - przejście do nowej linii \t - znak tabulacji \" - znak cudzysłowu Efekt przejścia do nowej linii można uzyskać również przesyłając na standardowe wyjście znak oznaczony std::endl

Przykładowy program - drobna zmiana # include < iostream > using namespace std ; // okreslenie przestrzeni nazw int main () { cout << " Dzien dobry! " << endl ; cout << " To ja, Twoj pierwszy program "; } return 0;

Przestrzenie nazw using namespace std ;... cout << " Dzien dobry! " << endl ; Powyższa linia mówi że w programie poniżej niej będziemy używać nazw ze standardowej przestrzeni nazw - std nie musimy zatem poprzedzać nazw cout i endl przedrostkiem std:: - kompilator wie gdzie poszukiwać danego elementu

Identyfikatory w C++ Nazwy wykorzystywane w programie, (tzw. identyfikatory) muszą być ciągami znaków złożonymi z liter, cyfr i znaków podkreślenia, zaczynającymi się od litery, przy czym znak podkreślenia traktowany jest jak litera. polskie znaki nie są traktowane jako litery! wielkie i małe litery są rozróżniane zazwyczaj rozróżniane są tylko pierwsze 32 znaki Przykłady poprawne: prog1, prog 1, moja zmienna, A123, JamesBond007, moj program niepoprawne: on&ona, 1szy program, max%

Słowa kluczowe w C++ Niektóre identyfikatory są tzw. słowami kluczowymi (zarezerwowanymi). Nie mogą one pojawiać się w programie w innym znaczeniu niż nadane w standardzie języka. Słowa kluczowe w C++ and and eq asm auto bitand bitor bool break case catch char class compl const const cast continue default delete do double dynamic cast else enum explicit export extern false float for friend goto if inline int long mutable namespace new not not eq operator or or eq private protected public register reinterpret cast return short signed sizeof static static cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar t while xor xor eq

Liczby Korzystanie z liczb C++ zna różne rodzaje liczb (różne typy liczbowe) i potrafi wykonywać na nich różne operacje arytmetyczne.

Podstawowe działania na liczbach całkowitych # include < iostream > using namespace std ; int main () { cout << " 20 + 2 = " << 20+2 << endl ; cout << " 20-2 = " << 20-2 << endl ; cout << " 20 * 2 = " << 20*2 << endl ; cout << " 20 / 2 = " << 20/2 << endl ; cout << " 20 / 3 = " << 20/3 << endl ; cout << " 20 % 2 = " << 20%2 << endl ; cout << " 20 % 3 = " << 20%3 << endl ; } return 0; użyte operatory arytmetyczne: + - dodawanie, - odejmowanie, - mnożenie, / - dzielenie, % - modulo (reszta z dzielenia)

Podstawowe działania na liczbachrzeczywistych Liczby rzeczywiste zapisujemy z kropką dziesiętną (przecinek zamiast kropki nie jest dozwolony!!) # include < iostream > using namespace std ; int main () { cout << " 20 + 2.0 = " << 20+2.0 << endl ; cout << " 20-2.0 = " << 20-2.0 << endl ; cout << " 20 * 2.0 = " << 20*2.0 << endl ; cout << " 20 / 2.0 = " << 20/2.0 << endl ; cout << " 20 / 2.1 = " << 20/2.1 << endl ; } return 0; operatory arytmetyczne: + - dodawanie, - odejmowanie, - mnożenie, / - dzielenie (nie ma operatora modulo!)

Dzielenie dzielenie dwóch liczb całkowitych daje wynik będący liczbą całkowitą (wykonywane jest dzielenie całkowite - 20/2 daje 10, 20/3 daje 6) jeśli przynajmniej jedna z liczb jest rzeczywista, wynik jest liczbą rzeczywistą

Dzielenie dzielenie dwóch liczb całkowitych daje wynik będący liczbą całkowitą (wykonywane jest dzielenie całkowite - 20/2 daje 10, 20/3 daje 6) jeśli przynajmniej jedna z liczb jest rzeczywista, wynik jest liczbą rzeczywistą... zatem jeśli chcemy uzyskać poprawny wynik dzielenia, musimy przynajmniej jedną z liczb zapisać z kropką dziesiętną (możliwe zapisy: 20.0/3 albo 20/3.0 albo 20.0/3.0)

Literały Literały są rodzajem stałych (wyrażeń o ustalonej, niezmiennej wartości). Umożliwiają umieszczenie w kodzie źródłowym programu konkretnych wartości (liczb, znaków, napisów), reprezentujac je za pomocą odpowiedniej notacji. Literały numeryczne reprezentują wartości liczbowe. Wyróżniamy literały całkowite reprezentujące wartości całkowite oraz literały zmiennoprzecinkowe (ang. floating-point literals) reprezentujące wartości rzeczywiste.

Literały całkowite liczby dziesiętne: 12, -12, 1234 liczby ósemkowe (system o podstawie 8): 012, -012 (cyfry liczby są poprzedzone zerem) liczby szesnastkowe (system o podstawie 16): 0xab, 0x12, -0X12, -0XAB (cyfry liczby są poprzedzone znakami 0x albo 0X, cyfry w tym systemie to 0..9, a..f) liczby binarne (system o podstawie 2) - zapis dozwolony od standardu C++14: 0B001, -0b1111 (cyfry liczby poprzedzone są znakami 0b albo 0B)

Literały całkowite - cd Domyślnym typem literałów całkowitych nie mających przyrostka specyfikującego typ jest int. Przyrostki umożliwiające przypisanie literału całkowitego do innego typu liczbowego to: (o typach za chwilę) u lub U typ unsigned int l lub L typ long int ll lub LL typ long long int (przyrostki można [odpowiednio] łączyć - np. ul oznacza unsigned long int. Przykłady: 75l, 75ul, 75LL).

Literały rzeczywiste Reprezentują liczby rzeczywiste, z kropką dziesiętną i/lub wykładnikiem. notacja standardowa : 12.3, -4.5 notacja naukowa (wykładncza) : -3.3e5, 4.6E-2

Literały rzeczywiste Reprezentują liczby rzeczywiste, z kropką dziesiętną i/lub wykładnikiem. notacja standardowa : 12.3, -4.5 notacja naukowa (wykładncza) : -3.3e5, 4.6E-2 domyślnym typem literałów rzeczywistych jest double. Przyrostki umożliwiające przyisanie literału rzeczywistego do innego typu rzeczywistego: f lub F typ float l lub L typ long double

Typy liczbowe W języku zdefiniowane są pewne (tzw. predefiniowane) typy liczbowe. Podstawowe to: int, short int, long int, long long int służące do reprezentowania liczb całkowitych; każdy z nich może być ze znakiem (signed, domyślnie) lub bez znaku (unsigned). Przykład: unsigned short int - typ krótki całkowity bez znaku (dozwolone jest używanie skróconych nazw typów: short, long, long long ) float, double i long double służące do reprezentowania liczb rzeczywistych

Zakresy typów Wartości danego typu T reprezentowane są w pamięci komputera przy użyciu pewnej, ustalonej dla danego typu, liczby bitów (jako ciągi zer i jedynek). Z tego powodu każdy typ ma swój zakres - istnieje w nim wartość najmniejsza i największa

Wyświetlenie zakresu typu int # include < iostream > # include < limits > using namespace std ; int main () { cout << " zakres int : od " << std :: numeric_limits < int >:: min () << " do " << std :: numeric_limits < int >:: max () << endl ; cout << " rozmiar wartosci typu int w bajtach : " << sizeof ( int ) << endl ; } return 0; Zakresy innych typów liczbowych można uzyskać w podobny sposób

Zmienne Aby móc zapamiętać (przechować) w pamięci komputera wprowadzoną z klawiatury albo wyliczoną w programie wartość pewnego typu, musimy zdefiniować zmienną tego typu (ang variable) w tym celu piszemy typ zmiennej nazwa zmiennej ; (e.g., int a; ) nazwy zmiennych muszą być indentyfikatorami (nie będącymi słowami kluczowymi) wynik: w odpowiednim momencie uruchamiania programu w pamięci zostaje zarezerwowany pewien obszar o rozmiarze odpowiednim dla przechowania wartości danego typu. Odwołujemy się do niego przez nazwę zmiennej.

Zmienne Aby móc zapamiętać (przechować) w pamięci komputera wprowadzoną z klawiatury albo wyliczoną w programie wartość pewnego typu, musimy zdefiniować zmienną tego typu (ang variable) w tym celu piszemy typ zmiennej nazwa zmiennej ; (e.g., int a; ) nazwy zmiennych muszą być indentyfikatorami (nie będącymi słowami kluczowymi) wynik: w odpowiednim momencie uruchamiania programu w pamięci zostaje zarezerwowany pewien obszar o rozmiarze odpowiednim dla przechowania wartości danego typu. Odwołujemy się do niego przez nazwę zmiennej. można zdefiniować naraz kilka zmiennych tego samego typu: int a,b,c;

Definicja a deklaracja deklaracja informuje kompilator że dana nazwa jest już znana, ale nie powoduje alokacji (rezerwacji) pamięci (przykład: extern int a; - informuje że zmienna a jest zdefiniowana w innym pliku będącym częścią programu) definicja określa dokładnie czym jest dany identyfikator. Zdefiniowanie zmiennej skutkuje zarezerwowaniem pamięci dla tej zmiennej Każda definicja jest deklaracją, ale nie każda deklaracja jest definicją.

Przypisanie Wartość zmiennej może ulegać zmianie w trakcie działania programu Operator przypisania (=) pozwala nadać zmiennej pewną wartość

Przypisanie Wartość zmiennej może ulegać zmianie w trakcie działania programu Operator przypisania (=) pozwala nadać zmiennej pewną wartość przypisywana wartość musi oczywiście mieścić się z zakresie typu do którego należy zmenna zmienna, której nie przypisano w programie żadnej wartości, ma wartość przypadkową

Przykład (Użycie instrukcji przypisania) deklaracje zmiennych: int a,b,i; i = 2; a = 2+2; b = a+i; weź wartość zmiennej a, dodaj do niej wartość zmiennej i, otrzymany wynik przypisz zmiennej b a = a + 5; weż wartość zmiennej a, dodaj do niej 5, otrzymany wynik przypisz z powrotem zmiennej a

Przykład użycia zmiennych # include < iostream > using namespace std ; int main () { int a; int b,c; a =3; b =6; c = a+b; cout << " a = " << a << endl ; cout << " b = " << b << endl ; cout << " a + b = " << c << endl ; } return 0;

Inicjalizacja zmiennych Zmiennej możemy nadać wartość już w momencie jej definiowania (inicjalizacja zmiennej). Przypisywana wartość powinna mieścic się w zakresie typu. Postać: typ zmiennej nazwa zmiennej = wyrażenie; Przykłady int i = 0; float s= 2.5234 + 3.234; int k, l=100, m; tylko jedna zmienna ma nadaną wartość początkową 100

Inicjalizacja zmiennych Zmiennej możemy nadać wartość już w momencie jej definiowania (inicjalizacja zmiennej). Przypisywana wartość powinna mieścic się w zakresie typu. Postać: typ zmiennej nazwa zmiennej = wyrażenie; Przykłady int i = 0; float s= 2.5234 + 3.234; int k, l=100, m; tylko jedna zmienna ma nadaną wartość początkową 100 powyższe wartości początkowe mogą być oczywiście zmienione w trakcie działania programu

Przykład (inicjalizacja zmiennych,oraz C++ to nie Excel ;-) ) # include < iostream > using namespace std ; int main () { int a = 3; int x, b =10; int c = a* b; } cout << " niezainicjalizowany x = " << x << endl ; a = 6; cout << " a = " << a << " b = " << b << " c = " << c << endl ; /* wartosc zmiennej a zmieniona, wartosc c bez zmiany ( nadal 30) */ return 0;