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

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

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

Podstawy Informatyki

Podstawy Informatyki. Wykład 5 Różne pożyteczne algorytmy

1 Podstawy c++ w pigułce.

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

Część 4 życie programu

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

1 Podstawy c++ w pigułce.

I - Microsoft Visual Studio C++

Programowanie komputerowe. Zajęcia 1

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Struktura pliku projektu Console Application

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

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

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

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

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

2 Przygotował: mgr inż. Maciej Lasota

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

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Programowanie strukturalne i obiektowe

C++ wprowadzanie zmiennych

Wstęp do programowania

Podstawy programowania w języku C

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

Pętla for. Wynik działania programu:

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

Podstawy Programowania C++

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

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

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

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

Podstawy Programowania. Wykład 1

Język ludzki kod maszynowy

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

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

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

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

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

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

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

Proste programy w C++ zadania

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

( wykł. dr Marek Piasecki )

Programowanie Obiektowe i C++

Podstawy programowania C. dr. Krystyna Łapin

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

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

Wstęp do Programowania 2

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

ROZDZIAŁ 2. Operatory

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

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

Wstęp do informatyki- wykład 6

Wstęp do Informatyki

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

Instrukcje sterujące. Programowanie Proceduralne 1

Pytania sprawdzające wiedzę z programowania C++

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

Programowanie - wykład 4

Podstawy Programowania

3. Instrukcje warunkowe

Instrukcje sterujące

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

Operatory, wyrażenia i typy proste

Kontrola przebiegu programu

wykład I uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Wstęp do języka C wykład I dr Jarosław Mederski Spis Ogólne informacje

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

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

Elementarne wiadomości o języku C

Języki programowania - podstawy

Programowanie - instrukcje sterujące

Wstęp do informatyki- wykład 7

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

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

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Zadanie 04 Ktory z ponizszych typow danych w jezyku ANSI C jest typem zmiennoprzecinkowym pojedynczej precyzji?

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

Microsoft IT Academy kurs programowania

KOTLIN. Język programowania dla Androida

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

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Podstawy programowania w języku C i C++

Język C - podstawowe informacje

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

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

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Podstawy i języki programowania

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Wstęp do informatyki- wykład 7

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

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

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

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2015

Transkrypt:

Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard ANSI C 98 - C++ (Bjarne Stroustrup) Do chwili obecnej nie stosuje się jednego standardu! Wykład 6 Krótki kurs C++ Kompilatory C++ Kompilacja Microsoft Visual C++ (w ramach licencji MSDN AA) nagłówki moduły biblioteki Darmowe: Linux (PC), Solaris (SUN) : http://gcc.gnu.org/ - g++ Windows : http://www.bloodshed.net/dev/devcpp.html - Dev-C++ http://www.delorie.com/djgpp/ - DJGPP http://www.mingw.org/ - MinGW *.cpp kompilator błędy UNIX Kompilacja: ) g++ prog.cpp ) g++ -o prog prog.cpp Uruchomienie: ) a.out ) prog linker błędy programm Pierwszy program #include <iostream> #include <string> using namespace std; int main() string komunikat; double a,b,c; komunikat = "Koniec obliczeń"; cout <<"Podaj a i b: "; cin >>a>>b; c=a+b; cout <<" suma "<<a<<" i "<<b<<" wynosi "<<c<<'\n'; cout<<komunikat<<'\n'; return 0; Dyrektywy preprocesora #include <iostream> #include <string> Program przed kompilacją dołącza zewnętrzne pliki np pliki nagłówkowe. Poniżej fragment pliku iostream: extern _IO_istream_withassign cin; // clog->rdbuf() == cerr->rdbuf() extern _IO_ostream_withassign cout, cerr; Zdefiniowanie przestrzeni nazw: using namespace std;

Program główny int main() return 0; Program główny traktowany jest jak funkcja musi zwrócić jakąś wartość (typu integer) Zwracając do systemu operacyjnego wartość 0 informujemy, że program zakończył się bez błędu. Deklaracja zmiennych string komunikat; double a,b,c; short int - typ całkowity krótki int - typ całkowity. long int - typ całkowity długi float - typ zmiennoprzecinkowy pojedynczej precyzji. double - typ zmiennoprzecinkowy podwójnej precyzji. long double - typ zmiennoprzecinkowy podwójnej precyzji długi. char - typ znakowy string ciąg znaków Nazwy zmiennych mogą składać się z liter,cyfr i podkreślenia _ Nazwa nie może się zaczynać od cyfry unsigned zmienna bez znaku (tylko dodatnia) dla typów int int (,8) unsigned int (0,) Operatory komunikat = "Koniec obliczeń"; c=a+b; operator przypisania = operator dodawania + operator odejmowania - operator mnożenia * operator dzielenia / operator reszty z dzielenia (modulo) % operator znaku liczby (np. -) Operatory złożone += zmienna += zmienna = zmienna + - = zmienna -= zmienna = zmienna - *= zmienna *= zmienna = zmienna * /= zmienna /= zmienna = zmienna / %= zmienna %= zmienna = zmienna % Operatory inkrementacji i dekrementacji ++ zwiększenie wartości o, np. i++ to jest to samo co i=i+ -- zmniejszenie wartości o, np. i-- to jest to samo co i=i- Uwaga! Operatory te można stosować przed i po zmiennej, tzn. liczba++ lub ++liczba. Podobnie dla --. Mimo, że działanie operatora w obu wypadkach jest podobne, to nie jest jednak identyczne! ++liczba najpierw dodaje do liczby, a potem zwraca jej wartość liczba++ najpierw zwraca wartość, a potem dodaje liczba =; a) cout<<++liczba; drukuje 6 b) cout<<liczba++; drukuje a liczba jest po instrukcji a lub b zawsze równa 6 == równa się!= jest różne > jest większe >= jest większe lub równe < jest mniejsze <= jest mniejsze lub równe Operatory relacji Operatory logiczne suma - prawdziwe jeśli którekolwiek z wyrażeń jest prawdziwe && iloczyn - prawdziwe jeśli oba wyrażenia są prawdziwe! negacja logiczna - powoduje zaprzeczenie wyrażenia Uwaga! Przypisanie = zwraca wartość przypisania czyli np. a= zwraca wartość, a każda liczba różna od zera jest w języku C++ traktowana jako prawda. Tylko wartość 0 jest traktowana jako fałsz. (a=) (==) zawsze prawda; (a==) (==) niekoniecznie

Opercje wejścia i wyjścia Strumienie biblioteka iostream cout - powiązany ze standardowym urządzeniem wyjścia cin - powiązany ze standardowym urządzeniem wejścia cerr - strumień błędów - połączony ze standardowym urządzeniem wyjścia clog - podobnie jak cerr, ale wydajniejszy przy wielu danych << - operator wysyłania do strumienia >> - operator pobierania ze strumienia np. cin >>a>>b; cout <<x; cout <<y<<' '<<y<<'\n'; if (warunek) instrukcja; else instrukcja; Instrukcja warunkowa if (warunek) instrukcja; instrukcja; instrukcjan; else instrukcja; instrukcja; instrukcjan; Tablice int calkowite[0]; - przechowuje 0 liczb typu int char znaki[]; - p. znaków double liczby[000]; - p. 000 liczb typu double string napisy[]; - p. napisów (wieloznakowych) Uwaga! Rozmiar tablicy musi być podany przed kompilacją znaki[0] - pierwszy element tablicy znaki znaki[] piąty element tablicy Inicjacja tablicy int calk[]=,-,,8,; int aa[]=,-; Nie zainicjowane wyrazy otrzymują wartość 0 Nie zainicjowana tablica ma nieokreślone wartości. int bb[]=,-,,8; //Kompilator wykaże błąd! a=bb[] program nie zasygnalizuje błędu, ale przeczyta nieprzewidywalne dane! Pętle () - for for (licznik=pocz;licznik<=konc;++licznik). licznik zmienna sterująca pętlą Wykonuje się dla wartości licznik: od pocz do konc z dodaniem (++licznik) za każdym cyklem -------------------------------------------------------------------------------------------- for (licznik=pocz;licznik<konc;++licznik). ++licznik Licznik zwiększamy dwa razy! int licznik; int pocz =, konc = 0; for (licznik=pocz;licznik<konc;++licznik). Pętla wykona się 9 razy Po zakończeniu pętli zmienna licznik wynosi 0 --------------------------------------------------------------------------------- Nie musimy deklarować oddzielnej zmiennej licznik: for (int licznik=pocz;licznik<konc;++licznik). Po zakończeniu pętli zmienna licznik nie istnieje

int licznik; for (licznik=0;licznik>=0;--licznik). Odliczanie "z góry" Pętla wykona się razy Po zakończeniu pętli zmienna licznik wynosi - Nie możemy w tym przypadku zadeklarować zmiennej licznik jako unsigned int Pętle zagnieżdżone int i, j,k=; for (i=;i<=0; i+=) for (j=;j>=;--j). cout<<i<<j<<k; ++k; i 0 0 0 0 j k 6 8 9 0 6 do while (warunek); Pętle () do while Wykonuje się dla wartości warunek: prawda Gdy warunek przestaje być prawdziwy wychodzimy z pętli -------------------------------------------------------------------------------------------- Pętla wykona się co najmniej jeden raz! W pętli for warunek (zakresu) był sprawdzany na początku i instrukcje w pętli mogły się nie wykonać ani raz! int i=; do.. while (i<0); 6 8 9 Pętle () do while int i=; do.. while (i<); while (warunek) Pętle () while Wykonuje się dla wartości warunek: prawda Gdy warunek przestaje być prawdziwy wychodzimy z pętli -------------------------------------------------------------------------------------------- Pętla może się nie wykonać ani jeden raz! W pętli while warunek jest sprawdzany na początku i mogą się w ogóle nie wykonać int i=; while (i<0).. 6 8 9 Pętle () while int i=; while (i<).. (nic)

Pętle i tablice int tabl[n]; //tablica n-elementowa unsigned int i; //zmienna sterujaca petlami for (i=0;i<n;++i) // wczytanie elementow tablicy cout <<"Podaj "<<i+<<". element tablicy: "; cin >>tabl[i]; for (i=0;i<n;++i) // dodanie liczby 0 do kazdego elementu tablicy tabl [i]+=0; for (i=0;i<n;++i) // wypisanie elementow tablicy cout <<tabl[i]<<'\n '; Pętle i tablice const int n=6; // rozmiar tablicy z danymi float dane[n]; unsigned int i; //zmienna sterujaca petlami float suma,srednia; // suma wyrazow, petla while i=0; suma=0; while (i<n) suma+=dane[i]; srednia=suma/n; Break przerwanie pętli Liczymy średnią arytmetyczną wczytanych liczb (max 00). Element równy zero kończy wczytywanie. int i; float a,suma=0,srednia; for (i=0;i<99;++i) cin>>a; if (a==0) suma+=a; srednia=suma/i; cout<<srednia<<'\n' Continue przerwanie kroku pętli Z przedziału..n podajemy liczby podzielne przez for (unsigned int i=0;i<=n;++i) if ((i%)!=0) continue; cout <<"Liczba "<<i<<"jest podzielna przez \n"; Program wraca na początek pętli i wykonuje kolejny krok Jeśli stosujemy zagnieżdżone pętle i użyjemy instrukcji break w pętli najbardziej wewnętrznej, to zostanie przerwana jedynie ta najbardziej wewnętrzna pętla, pozostałe pętle będą się wykonywać. instrukcje programu goto NazwaEtykiety;. NazwaEtykiety:.. goto NazwaEtykiety;.. NazwaEtykiety:.... Etykiety i instrukcje skoku goto Operator warunkowy wyrażenie? wyrażenie : wyrażenie; Jeżeli wyrażenie jest prawdziwe, to wykonuj wyrażenie, a jeśli jest fałszywe wykonuj wyrażenie (a<b)? cout <<"a jest mniejsze" : cout <<"b jest mniejsze"; zastępuje: if (a<b) cout <<"a jest mniejsze"; else cout <<"b jest mniejsze"; W miejscu umieszczenia etykiety dwukropek Po instrukcji goto średnik

Instrukcja wyboru switch switch (wyrażenie) case wartosc: Instrukcje; case wartosc: Instrukcje; case wartoscn: InstrukcjeN; default: InstrukcjaDomyslna; Obliczana jest wartość wyrażenia. Jeśli jest równa wartosc wykonywane są instrukcje, jeśli wynik wynosi wartość wykonywane są instrukcje itd. Jeśli wynik wyrażenia nie jest równy żadnemu przypadkowi (case) wykonywana jest instrukcja domyślna (default)