Podstawy programowania w języku C i C++

Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawy programowania w języku C i C++"

Transkrypt

1 Podstawy programowania w języku C i C++ Część pierwsza Łagodny start Autor Roman Simiński Kontakt roman.siminski@us.edu.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim uczestnictwa. Opracowanie to jest chronione prawem autorskim. Wykorzystywanie jakiegokolwiek fragmentu w celach innych niż nauka własna jest nielegalne. Dystrybuowanie tego opracowania lub jakiejkolwiek jego części oraz wykorzystywanie zarobkowe bez zgody autora jest zabronione.

2 Jak powstał język C, ludzie Kenneth Thompson Urodzony w 1943 roku w Nowym Orleanie. Otrzymuje tytuł magistra Uniwersytetu Kalifornijskiego w 1966, jest entuzjastą elektroniki, jednak to informatyka staje się jego pasją. Zaraz po studiach dołącza do grupy z laboratorium firmy Bell, pracującej wspólnie z GE i MIT nad systemem Multics. W 1969 projektuje i opracowuje system Unix, wkrótce potem język B. W 1971 przenosi system Unix na komputer PDP-11, potem przepisuje jego kod w języku C. Rozwija system Unix (np. implementuje koncepcję potoków opracowaną przez D.McIlroy'a). W połowie lat 70-tych rozpoczyna również pracę dydaktyczną, na początku lat 80-tych stworzony przez niego komputer szachowy Belle zdobywa mistrzostwo świata w zawodach komputerów szachowych. Kontynuuje pracę dydaktyczną, otrzymuje wiele nagród. W roku 2000 odchodzi z Laboratorium firmy Bell. Copyright Roman Simiński Strona : 2

3 Jak powstał język C, ludzie Dennis M. Ritchie Urodzony w 1941 w Bronxville (N.Y.), w 1963 kończy Harvard z dyplomem fizyka, pięć lat później broni doktorat z matematyki. Zainteresowany teoretycznymi podstawami informatyki trafia, wzorem ojca, do laboratorium firmy Bell. W 1968 dołącza do zespołu pracującego nad systemem Multics. Tu spotyka się z K. Thompsonem. Po wycofaniu się firmy Bell z projektu Multics kontynuuje współpracę z K. Thompsonem, w 1972 roku tworzy język C w oparciu o opracowany przez Thompsona język B. Kieruje i bierze udział w wielu projektach związanych z rozwojem systemów operacyjnych. Wielokrotnie nagradzany, wybrany do U.S. National Academy of Engineering. Napisana wspólnie z Brianem Kernighan'em książka The C Programming Language staje się biblią entuzjastów języka C. Copyright Roman Simiński Strona : 3

4 Jak powstał język C, ludzie Brian Kernighan Urodzony w 1942 w Toronto (Ontario), w roku 1964 kończy Uniwersytet w Toronto i otrzymuje dyplom w zakresie fizyki inżynieryjnej, w roku 1969 broni doktorat z elektroniki na Uniwersytecie w Princeton. W 1969 rozpoczyna pracę w laboratorium badawczym firmy Bell. Opracowuje i współuczestniczy w opracowaniu wielu programów dla systemu Unix AWK, ditroff, opracowuje język AMPL. Jest, wspólnie z Dennisem Ritchie, współautorem książki The C Programming Language, która staje się biblią entuzjastów języka C. Jest autorem książki The UNIX Programming Environment. Aktualnie, jego zainteresowania koncentrują się na rozwoju języków programowania, metodykach programowania i budowaniu interfejsów użytkownika. Copyright Roman Simiński Strona : 4

5 Jak powstał język C, kalendarium Początki języka C są związane z wczesną fazą rozwoju systemu Unix. Prace nad protoplastą tego systemu zostały rozpoczęte pod koniec lat sześćdziesiątych w laboratoriach telekomunikacyjnej firmy Bell BTL wspólnie z General Electric Company oraz MIT. Powstać miał wielodostępny system operacyjny Multics Multiplexed Information and Computing Service. Mimo iż system Multics działa, prace przerwano w 1969 roku, programiści z BTL szukają innych projektów. Ciągle chcą napisać uniwersalny system operacyjny. Jednak w BTL nie ma dla takiego projektu dobrej atmosfery. Copyright Roman Simiński Strona : 5

6 Jak powstał język C, kalendarium Jeden z członków zespołu Ken Thompson pisze grę Space Travel. Thompson pisze ją na komputerze GE Honeywell 635, następnie używa asemblera skrośnego i przenosi kod binarny na komputer PDP-7 używając taśmy papierowej. Komputer DEC PDP-7 ma w 1968 roku pamięć 8K 18-sto bitowych słów. Komputer PDP-7 Copyright Roman Simiński Strona : 6

7 Jak powstał język C, kalendarium Praca nad rozwojem gry Space Travel wymaga napisania systemu operacyjnego dla PDP-7, Ken Thompson wspólnie z Denisem Ritchie rozpoczynają pracę nad tym systemem. Powstaje pierwsza wersja systemu nazwanego Unix jego nazwa jest kalamburem nazwy Multics. Powstaje wersja systemu obejmującej proste jądro oraz podstawowe narzędzia (edytor, asembler, powłoka). Wszystko zostało zaimplementowane w języku symbolicznym, jednak rozpoczynają się próby wykorzystania języka programowania wywodzącego się z języka BCPL. Copyright Roman Simiński Strona : 7

8 Jak powstał język C, kalendarium Komputer PDP-7 jest przestarzały. Zespół podejmuje próbę zdobycia komputera PDP-11. Kosztuje on wtedy $. Ostatecznie zespół otrzymuje komputer w lecie 1970r., jednak prace nad przeniesieniem nań systemu Unix startują dopiero w grudniu, po doposażeniu go w dysk. Oficjalnie prace poświęcone są opracowaniu systemu dla wydziału patentowego BTL. Komputer PDP-11 Copyright Roman Simiński Strona : 8

9 Jak powstał język C, kalendarium Denis Ritchie i Ken Thompson przenoszą system Unix na z PDP-7 na PDP-11 za pośrednictwem terminalu telegraficznego. Copyright Roman Simiński Strona : 9

10 Jak powstał język C, kalendarium Ken Thompson potrzebuje nowego języka programowania do tworzenia oprogramowania systemowego. Istnieje już jego własny język o nazwie B. Nazwa ta prawdopodobnie pochodzi od języka BCPL, alternatywna teoria mówi, iż nazwa pochodzi od języka Bon. Język Bon został stworzony przez Thompson'a wcześniej, a jego nazwa miała pochodzić ponoć od imienia jego żony Bonnie. Język B miał sporo ograniczeń, co spowodowało rozpoczęcie przez Ritchie go w roku 1971 prac nad rozszerzeniem tego języka. Doprowadziło to do powstania dialektu NB (ang. new B). Copyright Roman Simiński Strona : 10

11 Jak powstał język C, kalendarium Nazwa NB nie oddaje w pełni różnicy pomiędzy tym językiem a językiem B. Nowy język otrzymuje nazwę C, otwartą pozostaje kwestię jego pochodzenia czy C pochodzi od następnej litery w alfabecie po B czy też od drugiej litery z protoplasty języków B i C czyli języka BCPL. W roku 1973 powstaje specyfikacja języka C (zawierającego typ strukturalny) oraz odpowiednie narzędzia rozpoczynają się prace nad przepisanie jądra Unix a dla komputera PDP-11. Również w tym okresie następuje przeniesienia kompilatora języka C na inne platformy sprzętowe (np. Honeywell 635, IBM 360/370) oraz przygotowania bibliotek podprogramów np. podprogramów obsługi standardowego wejścia i wyjścia. W 1978 roku Dennis Ritchie i Brian Kernighan publikują książkę Język programowania C (oryginał ang. The C Programming Language). Copyright Roman Simiński Strona : 11

12 Jak powstał język C, kalendarium W latach siedemdziesiątych, w trakcie prac nad implementacją jądra Unix a, okazało się, że język jest na tyle elastyczny i efektywny, że rozpoczęto proces przepisywania narzędzi systemowych. Aby wspomóc programistów Steve Johnson tworzy narzędzie lint analizujące zawartość plików źródłowych i sygnalizujące niebezpieczne konstrukcje. Na początku lat osiemdziesiątych stało się jasne, że język C wymaga standaryzacji. Stało się to konieczne między innymi ze względu na wzrost zainteresowania językiem C w projektach rządowych. Copyright Roman Simiński Strona : 12

13 Jak powstał język C, kalendarium Ostatecznie w lecie 1983 roku ANSI powołało komitet X3J11, którego celem było opracowanie standardu języka C. Komitet ten opracował raport (ANSI 89) w końcu roku 1989, standard ten został zaakceptowany przez ISO jako ISO/IEC Standaryzacja przyczynia się do poprawy przenośności kodu źródłowego. Kompilatory języka C dostępne są na każdej, szanującej się platformie sprzętowej. Pośrednio ułatwia to przenoszenie systemu Unix i powstawanie jego dedykowanych wersji. Copyright Roman Simiński Strona : 13

14 Rozwój C a inne języki programowania Najbardziej znane rozwinięcia języka C: Concurrent C, Objective C, C*, C++. Z pnia języka C wyrosły również: Java, JavaScript, PHP, C#, i wiele innych. Po określeniu standardu języka C, jego specyfikacja przez dłuższy czas nie zmienia się. W tym samym czasie specyfikacja języka C++ ciągle ewoluuje. Rozwój języka C++ pośrednio wpływa na modyfikację standardu C. Powstaje standard C99, opublikowany przez ISO w 1999 r. Standard ten zostaje przyjęty przez ANSI w marcu 2000 r. Większość zmian standardu C99 zbliża język C do C++. Z tego powodu wielu producentów kompilatorów nie jest zainteresowanych implementacją C99, preferując zamiast niego programowania w C++ bez wykorzystania obiektów. Powstają specjalizowane i niszowe języki: C, D, P. Copyright Roman Simiński Strona : 14

15 Jak powstał język C++ Bjarne Stroustrup Urodzony w 1950 w Aarhus (Dania), skończył studia w swym rodzinnym mieście, doktorat obronił na Uniwersytecie w Cambridge. Od 1979 roku związany z centrum badawczym firmy Bell. Aktualnie pracuje jako profesor w Texas A&M University, utrzymując jednocześnie swoje związki z firmą AT&T jako członek zespołu badawczego laboratorium tej firmy. Twórca języka C++, autor książek: Język programowania C++ (ang. The C++ Programing Language), trzy edycje + edycja specjalna; Projektowanie i ewolucja C++ (ang. The Design and Evolution of C++). Copyright Roman Simiński Strona : 15

16 Jak powstał język C++, kalendarium Bjarnie Sroustrup, pracujący w Centrum Badań Komputerowych Laboratorium firmy Bell (ang. Computing Science Research Center of Bell Labs) prowadzi badania symulacyjne związane z sieciami komputerowymi. Język Simula, idealny do symulacji pod względem funkcjonalnym, jest za mało efektywny. Stroustrup potrzebuje nowego, obiektowego języka programowania łączącego funkcjonalność języka Simula z efektywnością języka C. Bjarne Stroustrup projektuje język programowania łączący w sobie cechy języków Simuli i C. Język zostaje nazwany C z klasami (ang. C with Classes). Wersja ta nie zawiera jeszcze znanych aktualnie z C++ rozbudowanych mechanizmów obiektowych. Copyright Roman Simiński Strona : 16

17 Jak powstał język C++, kalendarium 1983 Rick Mascitti proponuje nazwę C++ dla nowego języka. Nazwa sugeruje ewolucyjna naturę C++ w stosunku do języka C. Nowy język nie został nazwany D, ponieważ stanowi on rozszerzenie C a nie próbę stworzenia nowego jakościowo języka programowania Język C++ zostaje zaprezentowany publicznie z możliwością wykorzystania poza Laboratorium Bell. Powstaje pierwszy komercyjny kompilator C++ : cfront. Jest to tak na prawdę translator, tłumaczący kod w języku C++ na kod w języku C, kompilowany następnie zwykłym kompilatorem języka C. Copyright Roman Simiński Strona : 17

18 Jak powstał język C++, kalendarium 1989 Michael Tiemann (firma Cygnus Support) implementuje pierwszy prawdziwy kompilator C++, zwany G++. Publikacja pierwszej specyfikacji C++ w postaci książki The Annoutated C++ Reference Manual autorstwa Stroustrupa i Ellisa, znanej jako ARM. Rozpoczyna się proces standaryzacji języka Komitet ANSI publikuje pierwszą wersję zarysu standardu C++. Rozpoczyna się uciążliwy proces rewizji standardu wymaga on wielu poprawek. Grudzień 95, zostaje opublikowany szkic standardu ANSI C++, grudzień 97, oficjalna premiera pełnej wersji standardu ANSI C++. Czerwiec 98, oficjalna aprobata dla opublikowanego standardu. Standard zostaje również zaaprobowany przez ISO. Zamrożenie prac na pięć lat okres na adaptację producentów kompilatorów i poprawę błędów. Copyright Roman Simiński Strona : 18

19 Jak powstał język C++, kalendarium Aktualnie Obowiązuje standard ISO/IEC 14882:1998 (Standard for the C++ Programming Language) z drobnymi poprawkami zatwierdzonymi w 2003 r. (ISO/IEC 14882:2003). Ogłoszenie nowego standardu (tzw. C++0x) planowane było na Jednak pod koniec 2009 roku dostępna jest jedynie wersja robocza. Należy się spodziewać pojawienia oficjalnego standardu w roku 2010, a na standard międzynarodowy być może przyjdzie poczekać do roku Copyright Roman Simiński Strona : 19

20 Literatura język C Brian W. Kernigham, Dennis M. Richie, Język ANSI C, Wydawnictwo Naukowo Techniczne, Warszawa, Klasyka! Clovis L. Tondo, Scott E. Gimpel, Język ANSI C, ćwiczenia i rozwiązania, Wydawnictwo Naukowo Techniczne, Warszawa, Kopalnia sztuczek! Adam Sapek, Wgłąb języka C, Helion, Gliwice, Stare ale jare! Stephen Prata, Szkoła programowania. Język C, 2006, Helion. Może być tą jedyną :) Gorąco polecam! Copyright Roman Simiński Strona : 20

21 Literatura język C++ S. Prata, Szkoła programowania. Język C++, 2006, Helion. Może być tą jedyną :) Gorąco polecam! J. Liberty, C++ dla każdego, Helion, Jeżeli programowanie to nie Twoja pasja, to to książka dla Ciebie ;) S.B. Lippman, J. Lajoie, Podstawy języka C++, WNT, Świetne, ale trzeba już coś o C++ wiedzieć. P.J. Plauger, Biblioteka standardowa C++, WNT, Przydatne. B. Stroustrup, Język C++, WNT, Dobre lecz trudne. B. Eckel, Thinking in C++ 2nd Edition, dostępne via Internet: Lektura na wiele tygodni. Copyright Roman Simiński Strona : 21

22 Zaczynamy problem do rozwiązania Problem Należy napisać program pozwalający na przeliczenie odległości podanej w kilometrach na mile amerykańskie. Scenariusz działania programu: Odległość w milach = odległość w kilometrach Odległość w kilometrach = 1.6 odległość w milach Copyright Roman Simiński Strona : 22

23 Pierwsza przymiarka program, który robi nic int main() { return 0; } int (integer) to podstawowy typ całkowitoliczbowy Nazwa funkcji Typ rezultatu Parametry Ciało funkcji int main() { return 0; } Instrukcja powrotu z podprogramu Wartość przekazywna w miejscu wywołania Każdy program C/C++musi posiadać funkcję o nazwie main, stanowiącą tzw. punkt wejściowy programu. Od niej się rozpoczyna wykonanie programu napisanego w języku C/C++. Copyright Roman Simiński Strona : 23

24 Kto wywołuje funkcję main? Funkcja main stanowi punkt programu, od którego zaczyna się jego wywołanie. Upraszczając, można powiedzieć, że funkcja main jest wywoływana przez system operacyjny. Wartość, będąca rezultatem funkcji main jest przekazywana systemowi operacyjnemu, stanowiąc kod wyjścia programu. Kod wyjścia programu może być wykorzystywany w skryptach systemu operacyjnego oraz jako środek komunikacji pomiędzy procesami. Copyright Roman Simiński Strona : 24

25 Typowy scenariusz uruchomienia programu wykonywalnego Użytkownik przekazuje systemowi operacyjnemu zlecenie uruchomienia programu. Pamięć operacyjna System ładuje kod programu do pamięci, przygotowuje jego środowisko, przekazuje sterowanie do bloku kodu startowego programu (tzw. startup). Kod startowy wykonuje czynności inicjalizujące. Na zakończenie wywołuje funkcje main. kod startowy call main main kod powrotu reszta programu + dane kod programu test.exe System operacyjny Po zakończeniu działania funkcji main bieżący proces jest kończony i do systemu przekazywany jest kod wyjścia. Plik wykonywalny np. test.exe Copyright Roman Simiński Strona : 25

26 Wykorzystanie kodu wyjścia w skryptach systemu operacyjnego Kod zakończenia programu może być wykorzystywany w skryptach systemu operacyjnego oraz jako środek komunikacji pomiędzy procesami. Przykładowe skrypty (będący w istocie plikami wsadowymi systemu DOS) testujący kod wyjścia programu off echo Testowanie kodu powrotu test.exe if errorlevel 2 goto dwa if errorlevel 1 goto jeden if errorlevel 0 goto zero : zero echo Kod powrotu 0 goto koniec : jeden echo Kod powrotu 1 goto koniec : dwa echo Kod powrotu 2 goto koniec : koniec off echo Testowanie kodu powrotu 1 : petla test.exe if errorlevel 1 goto koniec if errorlevel 0 goto petla : koniec echo Koniec programu pause Copyright Roman Simiński Strona : 26

27 Wariacje na temat funkcji main Zamiast rezultatu w postaci bezwzględnych wartości można wykorzystać symbole: EXIT_SUCCESS oznacza bezbłędne zakończenie programu. EXIT_FAILURE zakończenie z informacją o błędzie. Stosowanie tych symboli jest zalecane przez standard POSIX. POSIX standaryzuje m.in. interfejs programistyczny, dotyczy głównie systemów klasy UNIX. Niestety, program zapisany tak: int main() { return EXIT_SUCCESS; } Nie skompiluje się prawidłowo: Dlaczego? ` Copyright Roman Simiński Strona : 27

28 Wariacje na temat funkcji main Symbole: EXIT_SUCCESS, EXIT_FAILURE, Nie są częścią języków C/C++, zapisane są w bibliotekach języka C. Aby z nich skorzystać, należy uzupełnić program do postaci: #include <stdlib.h> int main() { return EXIT_SUCCESS; } Dyrektywa #include powoduje włączenie zawartości pliku stdlib, zawierającego definicje symboli EXIT_SUCCESS i EXIT_FAILURE Copyright Roman Simiński Strona : 28

29 Do czego służy dyrektywa #include? Ta dyrektywa #include powoduje włączenie do kodu źródłowego programu w języku C/C++ definicji i deklaracji niezbędnych dla kompilacji. Informacje te są przechowywane w tzw. plikach nagłówkowych, są to pliku tekstowe. Dyrektywa: #include <stdlib.h> Powoduje włączenie do kodu programu zawartości pliku nagłówkowego stdlib.h, zawierającego definicje i deklaracje niezbędne dla wykorzystania elementów standardowej biblioteki języka C. W tym pliku zdefiniowane są właśnie symbole EXIT_SUCCES oraz EXIT_FAILURE. Dyrektywa #include realizowana jest przez preprocesor języka C/C++. Copyright Roman Simiński Strona : 29

30 Kłopot z rozszerzeniami plików nagłówkowych Pliki nagłówkowe w języku C mają rozszerzenie.h. Pliki nagłówkowe w języku C++ mają zwykle rozszerzenie.h,.hpp,.hxx. Wielość możliwych rozszerzeń nazw plików w C++ to kłopot. Aktualnie w programach w języku C++ nie pisze się rozszerzeń nazw plików nagłówkowych. W programach w języku C++, nazwy plików nagłówkowych z języka C pisze się z prefiksem c. C, ANSI89 Nagłówek standardowej biblioteki #include <stdlib.h> Nagłówek biblioteki wejścia/wyjścia #include <stdio.h> C++ Nagłówek standardowej biblioteki C #include <cstdlib> Nagłówek biblioteki wejścia/wyjścia C #include <cstdio> Copyright Roman Simiński Strona : 30

31 Wariacje na temat funkcji main, ciąg dalszy Program robiący nic, zapisany w języku C: #include <stdlib.h> int main() { return EXIT_SUCCESS; } C, ANSI89 Program robiący nic, zapisany w języku C++: #include <cstdlib> int main() { return EXIT_SUCCESS; } C++ Copyright Roman Simiński Strona : 31

32 Wyprowadzanie komunikatów do strumienia wyjściowego programu #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); } return EXIT_SUCCESS; Dyrektywa #include powoduje włączenie zawartości pliku stdio.h, zawierającego definicje niezbędne do obsługi standardowego wejścia-wyjścia w języku C Copyright Roman Simiński Strona : 32

33 Wyprowadzanie komunikatów do strumienia wyjściowego programu #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); } return EXIT_SUCCESS; puts funkcja z biblioteki standardowej, wyprowadzająca dane do strumienia wyjściowego programu, dołączająca znacznik końca linii. Napisy (inaczej literały łańcuchowe) są w języku C/C++ ujmowane w znaki cudzysłowa: Przeliczanie odleglosci wyrazonej w kilometrach na mile Kursor Copyright Roman Simiński Strona : 33

34 Co to standardowe strumienie programu? stdin standardowy strumień wejściowy programu, jest zwykle skojarzony z klawiaturą; stdout standardowy strumień wyjściowy programu, jest zwykle skojarzony z ekranem monitora; stderr standardowy strumień wyjściowy błędów programu, jest zwykle skojarzony również z ekranem monitora. Pamięć operacyjna Strumienie stdin, stdout reprezentują normalny kanał komunikacji programu z użytkownikiem. stdout stderr stdin Program jako proces Strumień stderr zarezerwowany jest do wyświetlania komunikatów diagnostycznych programu. Copyright Roman Simiński Strona : 34

35 Redyrekcja (przekierowanie) strumieni programu Standardowe skojarzenie strumieni. stdout stderr stdin Pamięć operacyjna Program jako proces Redyrekcja (przekierowanie) strumieni z poziomu systemu operacyjnego: C:\>test.exe > wyjscie.txt C:\>test.exe < wejscie.txt C:\>test.exe < wejscie.txt > wyjscie.txt Copyright Roman Simiński Strona : 35

36 Strumienie programu w języku C++ cin strumień reprezentujący standardowe wejście programu, odpowiada strumieniowi stdin z C. Strumień cin odczytuje dane i zapisuje je do odpowiednich zmiennych. cout strumień reprezentujący standardowe wyjście programu. Odpowiada strumieniowi stdout z C. cerr niebuforowany strumień wyjściowy błędów. Odpowiada strumieniowi stderr z C. clog buforowany strumień wyjściowy błędów. Odpowiada strumieniowi stderr z C. Aby skorzystać z strumieni cin, cout, cerr należy włączyć odpowiedni plik nagłówkowy Starsze kompilatory przed standaryzacją odwołań do plików nagłówkowych #include <iostream.h> Aktualny standard #include <iostream> using namespace std; Copyright Roman Simiński Strona : 36

37 Wyprowadzanie komunikatów do strumienia wyjściowego programu #include <cstdlib> #include <iostream> C++ using namespace std; int main() { cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; } return EXIT_SUCCESS; Dyrektywa #include powoduje włączenie zawartości pliku iostream, zawierającego definicje niezbędne do obsługi standardowego wejścia-wyjścia w języku C++ Copyright Roman Simiński Strona : 37

38 Wyprowadzanie komunikatów do strumienia wyjściowego programu #include <cstdlib> #include <iostream> C++ using namespace std; int main() { cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; } return EXIT_SUCCESS; W języku C++ wprowadzono przestrzenie nazw. Pozwalają one na powtarzanie tych samych nazw w różnych przestrzeniach. Ta linia programu mówi, że będziemy korzystali ze standardowej przestrzeni nazw. Copyright Roman Simiński Strona : 38

39 Wyprowadzanie komunikatów do strumienia wyjściowego programu #include <cstdlib> #include <iostream> C++ using namespace std; int main() { cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; } return EXIT_SUCCESS; cout obiekt reprezentujący standardowy strumień wyjściowy programu. Wyprowadzanie danych odbywa się z wykorzystaniem operatora <<, zwanego wstawiaczem (ang. inserter). Dane są wyprowadzane zgodnie z ich typem, istnieje możliwość formatowania postaci wyjściowej. Manipulator endl powodują opróżnienie bufora strumienia cout, wstawia znak nowej linii przed opróżnieniem bufora. Copyright Roman Simiński Strona : 39

40 Wyświetlenie komunikatu powitalnego wersja w języku C vs. C++ #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); } return EXIT_SUCCESS; #include <cstdlib> #include <iostream> C++ using namespace std; int main() { cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 40

41 Wprowadzamy zmienne deklaracje zmiennych w języku C #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { float kilometry, wynik ; puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); } return EXIT_SUCCESS; Zmienne w C mogą być deklarowane na początku każdego bloku określonego nawiasami { }. float to typ zmiennopozycyjny, służący do reprezentowania liczb rzeczywistych pojedynczej precyzji. double to typ zmiennopozycyjny, służący do reprezentowania liczb rzeczywistych podwójnej precyzji precyzji. int to typ całkowitoliczbowy, służący do reprezentowania liczb całkowitych ze znakiem, o zakresie zależnym od implementacji. Copyright Roman Simiński Strona : 41

42 Wprowadzamy zmienne deklaracje zmiennych w języku C++ #include <cstdlib> #include <iostream> using namespace std; C++ int main() { float kilometry, wynik ; cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; } return EXIT_SUCCESS; #include <cstdlib> #include <iostream> using namespace std; Zmienne w C++ mogą być deklarowane w dowolnym miejscu, dozwolonym syntaktyką języka. C++ int main() { cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; float kilometry, wynik ; } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 42

43 Zapytaj o odległości w kilometrach, funkcja printf język C #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { float kilometry, wynik; puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); } return EXIT_SUCCESS; Funkcja printf wyprowadzane sformatowane dane do stdout. Copyright Roman Simiński Strona : 43

44 Zapytaj o odległości w kilometrach język C++ #include <cstdlib> #include <iostream> using namespace std; int main() { float kilometry, wynik; C++ Manipulator flush powoduje opróżnienie bufora strumienia cout. cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; cout << "Podaj odleglosc w kilometrach: " << flush; } return EXIT_SUCCESS; Wyprowadzenie napisu do strumienia wyjściowego Copyright Roman Simiński Strona : 44

45 Wczytanie odległości w kilometrach, funkcja gets język C #include <stdlib.h> #include <stdio.h> int main() { float kilometry, wynik; char tekst[ 20 ]; C, ANSI89 Bufor dla wczytywanego napisu puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); gets( tekst ); kilometry = atof( tekst ); Wczytanie napisu do bufora Konwersja do liczby rzeczywistej } return EXIT_SUCCESS; Przyjrzyjmy się temu bliżej... Copyright Roman Simiński Strona : 45

46 Wczytanie odległości w kilometrach, funkcja gets język C Funkcja wczytuje łańcuch znaków ze strumienia wejściowego programu i zapisuje go w tablicy będącej parametrem wywołania. Na końcu łańcucha zapisywany jest znacznik końca napisu -- znak '\0'. gets( tekst ) znak Enter Pamięć operacyjna tekst 5 0 O 1 O 2 \O Funkcja atof przekształca napis zawarty w tablicy będącej parametrem wywołania na odpowiadającą mu liczbę rzeczywistą. kilometry = atof( tekst ) kilometry Copyright Roman Simiński Strona : 46

47 Wczytanie odległości w kilometrach, przepełnienie bufora język C To jest napis zbyt długi aby się zmieścić w 20-sto znakowym buforze + znak Enter Pamięć operacyjna tekst gets( tekst ) T 0 o kilometry j e s t n a p i s Nadmiarowe znaki wczytanego napisu niszczą zawartość komórek pamięci operacyjnej obok zmiennej linia. Copyright Roman Simiński Strona : 47

48 Wczytanie odległości w kilometrach, funkcja fgets język C #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { float kilometry, wynik; char tekst[ 20 ]; puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); fgets( tekst, 20, stdin ); kilometry = atof( tekst ); } return EXIT_SUCCESS; Wczytanie napisu z ochrona przed przepełnieniem bufora Copyright Roman Simiński Strona : 48

49 Wczytanie odległości w kilometrach, funkcja fgets język C Funkcja fgets : Pierwszy parametr określa bufor, do którego mają być zapisane wczytywane dane. Drugi parametr określa N maksymalną pojemność bufora, uwzględniającą miejsce na znacznik końca napisu. Trzeci parametr określa strumień (plik), z którego funkcja ma odczytywać dane, może to być również standardowy strumień wejściowy stdin. Działanie funkcji kończy się gdy funkcja odczyta N 1 znaków lub wcześniej zostanie odczytany znak nowego wiersza (Enter). Znacznik końca napisu dopisywany jest na jego końcu. Copyright Roman Simiński Strona : 49

50 Wczytanie odległości w kilometrach, obiekt cin język C++ #include <cstdlib> #include <iostream> using namespace std; C++ int main() { float kilometry, wynik; cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; cout << "Podaj odleglosc w kilometrach: "; cin >> kilometry; Odczytanie i konwersja do postaci liczby } return EXIT_SUCCESS; cin globalny obiekt cin umożliwia wczytywanie danych z wykorzystaniem operatora >> zwanego wydobywaczem (ang. extractor), który przeprowadza konieczne konwersje w trakcie pobierania danych. Operator >> pomija białe znaki w strumieniu wejściowym. Copyright Roman Simiński Strona : 50

51 Obliczenia, wyprowadzenie wyników język C #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { float kilometry, wynik; char tekst[ 20 ]; puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); fgets( tekst, 20, stdin ); kilometry = atof( tekst ); Wyrażenia wykorzystujące operator przypisania = } wynik = kilometry * 0.625; printf( "To w milach: %f", wynik ); return EXIT_SUCCESS; Wyprowadzanie zawartości zmiennej do stdout Przyjrzyjmy się bliżej funkcji printf... Copyright Roman Simiński Strona : 51

52 Funkcja printf wyprowadzanie danych w sposób sformatowany Funkcja printf wyprowadzane sformatowane dane do stdout. Pierwszy parametr funkcji, będący łańcuchem znaków, może zawierać specyfikacje przekształceń, rozpoczynające się znakiem %. W miejsce specyfikatorów przekształceń wstawiane są wartości kolejnych parametrów wywołania funkcji printf, sformatowane zgodnie z określonym formatem. printf( "To w milach: %f", wynik ); Copyright Roman Simiński Strona : 52

53 Funkcja printf wyprowadzanie danych w sposób sformatowany Sekwencje rozpoczynające się od znaku % stanowią specyfikacje przekształceń kolejnych parametrów funkcji printf: %d wyprowadza liczbę całkowitą dziesiętną, %f wyprowadza liczbę rzeczywistą, %c wyprowadza znak, %s wyprowadza napis. Możliwości formatowania funkcji są bardzo szerokie, omówione zostaną osobno. printf( "%s ma %d lat%c", "Ala", 18, '!' ); Copyright Roman Simiński Strona : 53

54 Funkcja printf kilka przykładów formatowania printf( "To w milach: %10.2f", wynik ); printf( "To w milach: %-10.2f", wynik ); printf( "To w milach: %0.2f", wynik ); Copyright Roman Simiński Strona : 54

55 Funkcja printf kilka przykładów formatowania printf( "%g km to w %g mil", kilometry, wynik ); %f wyprowadza liczbę rzeczywistą, %g wyprowadza liczbę rzeczywistą w najkrótszej postaci. Copyright Roman Simiński Strona : 55

56 Niech użytkownik ma szansę zobaczyć wyniki #include <stdlib.h> #include <stdio.h> C, ANSI89 int main() { float kilometry, wynik; char tekst[ 20 ]; puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); fgets( tekst, 20, stdin ); kilometry = atof( tekst ); wynik = kilometry * 0.625; W tym miejscu zostanie złamana linia. Znak \n spowoduje przejście kursora do początku następnego wiersza w strumieniu wyjściowym. printf( "To w milach: %g\nnacisnij Enter by zakonczyc program...", wynik ); getchar(); } return EXIT_SUCCESS; Wywołanie funkcji getchar, wczytującej pojedynczy znak, skutkuje zatrzymaniem programu (czekanie na naciśnięcie klawisza Enter) Copyright Roman Simiński Strona : 56

57 Wybrane znaki sterujące Znak sterujący Symbol Znaczenie \a BELL Sygnał dźwiękowy \b BS (backspace) Spacja wsteczna \n LF (newline, linefeed) Nowa linia \r CR (Carriage return) Powrót karetki \t TAB Tabulacja Copyright Roman Simiński Strona : 57

58 Zmienna wynik jest właściwie zbędna fgets( tekst, 20, stdin ); kilometry = atof( tekst ); C, ANSI89 wynik = kilometry * 0.625; printf( "To w milach: %g\nnacisnij Enter by zakonczyc program...", wynik ); getchar(); fgets( tekst, 20, stdin ); kilometry = atof( tekst ); C, ANSI89 printf( "To w milach: %g\nnacisnij Enter by zakonczyc program...", kilometry * ); getchar();... Copyright Roman Simiński Strona : 58

59 Obliczenia, wyprowadzenie wyników język C++ #include <cstdlib> #include <iostream> using namespace std; C++ int main() { float kilometry, wynik; cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; cout << "Podaj odleglosc w kilometrach: " << flush; cin >> kilometry; wynik = kilometry * 0.625; cout << "To w milach: "; cout << wynik; Wyznacz wartość Wyprowadź wyniki } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 59

60 cin to obiekt posiadający wbudowane funkcje składowe cin. ignore() ; Nazwa obiektu (zmiennej obiektowej) Selektor wyboru składowej obiektu Odwołanie do funkcji składowej cin. get() ; Copyright Roman Simiński Strona : 60

61 Niech użytkownik ma szansę zobaczyć wyniki #include <cstdlib> #include <iostream> using namespace std; C++ int main() { float kilometry, wynik; cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; cout << "Podaj odleglosc w kilometrach: " << flush; cin >> kilometry; wynik = kilometry * 0.625; cout << "To w milach: "; cout << wynik; } cout << endl << "Nacisnij Enter by zakonczyc program..."; cin.ignore(); cin.get(); cin.ignore() pomija znak Enter pozostały w buforze po wprowadzeniu liczby kilometrów. return EXIT_SUCCESS; cin.get() pobiera znak ze strumienia wejściowego. Copyright Roman Simiński Strona : 61

62 Zmienna wynik jest właściwie zbędna cin >> kilometry; C++ wynik = kilometry * 0.625; cout << "To w milach: "; cout << wynik; cout << endl << "Nacisnij Enter by zakonczyc program..." << endl; cin.ignore(); cin.get(); cin >> kilometry; cout << "To w milach: "; cout << kilometry * 0.625; C++ cout << endl << "Nacisnij Enter by zakonczyc program..." << endl; cin.ignore(); cin.get();... Copyright Roman Simiński Strona : 62

63 Wyprowadzanie danych do cout można uprościć cout << "To w milach: " cout << kilometry * 0.625; cout << "To w milach: " << kilometry * 0.625; Inna możliwość sformatowania wyświetlenia wyników: cout << "Odleglosc " << kilometry << " km to w milach " << kilometry * << endl; Copyright Roman Simiński Strona : 63

64 Kilometry na mile podsumowanie, język C #include <stdlib.h> #include <stdio.h> int main() { float kilometry; char tekst[ 20 ]; C, ANSI89 puts( "Przeliczanie odleglosci wyrazonej w kilometrach na mile" ); printf( "Podaj odleglosc w kilometrach: " ); fgets( tekst, 20, stdin ); kilometry = atof( tekst ); printf( "To w milach: %g\nnacisnij Enter by zakonczyc program...", kilometry * ); getchar(); } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 64

65 Kilometry na mile podsumowanie, język C++ #include <cstdlib> #include <iostream> using namespace std; C++ int main() { float kilometry; cout << "Przeliczanie odleglosci wyrazonej w kilometrach na mile" << endl; cout << "Podaj odleglosc w kilometrach: " << flush; cin >> kilometry; cout << "To w milach: " << kilometry * 0.625; cout << endl << "Nacisnij Enter by zakonczyc program..."; cin.ignore(); cin.get(); } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 65

66 Kolejny problem do rozwiązania Problem Zadaniem programu jest obliczanie, ile średnio litrów paliwa zużywa pojazd na trasie 100 km. Scenariusz działania programu: Copyright Roman Simiński Strona : 66

67 Kolejny problem do rozwiązania analiza Średnie spalanie wyznaczamy z proporcji: przejechany dystans [km] ilość paliwa [litry] 100 [km] x [litry] spalanie = ( 100 * ilość paliwa ) / przejechany dystans Do obliczenia średniego zużycia potrzebne są dwie wartości liczbowe, jak wyżej. Powinny to być liczby rzeczywiste. Program powinien zapytać użytkownika o te wartości, zapamiętać je, dokonać obliczeń oraz wyświetlić wynik. Program powinien reagować na niepoprawne dane wejściowe. Copyright Roman Simiński Strona : 67

68 Rozwiązanie w C wersja pierwsza #include <stdlib.h> #include <stdio.h> #define MAKS_DL 20 int main() { char linia[ MAKS_DL ]; float dystans, paliwo; C, ANSI89 Dyrektywa #define wprowadza stałą symboliczną MAKS_DL. Przed kompilacją stała ta zastępowana jest wartością 20. Uwaga, na końcu definicji stałej nie występuje średnik! printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans: " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 68

69 Rozwiązanie w C wersja pierwsza #include <stdlib.h> #include <stdio.h> #define MAKS_DL 20 int main() { char linia[ MAKS_DL ]; float dystans, paliwo; C, ANSI89 Deklaracje zmiennych bufor dla wczytywania liczb oraz zmienne dla przechowania dystansu i ilości paliwa. printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans: " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 69

70 Rozwiązanie w C wersja pierwsza #include <stdlib.h> #include <stdio.h> C, ANSI89 #define MAKS_DL 20 int main() { char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans: " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); Wczytanie dystansu printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 70

71 Rozwiązanie w C wersja pierwsza #include <stdlib.h> #include <stdio.h> C, ANSI89 #define MAKS_DL 20 int main() { char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans: " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); Wczytanie ilości paliwa printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 71

72 Rozwiązanie w C wersja pierwsza #include <stdlib.h> #include <stdio.h> C, ANSI89 #define MAKS_DL 20 int main() { char linia[ MAKS_DL ]; float dystans, paliwo; printf( "\nobliczam ile Twoj pojazd spala paliwa na 100 km\n" ); printf( "Dystans: " ); fgets( linia, MAKS_DL, stdin ); dystans = atof( linia ); printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); Obliczenie i wyprowadzenie średniego spalania printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Copyright Roman Simiński Strona : 72

73 Rozwiązanie w C wersja druga, kontrola dzielenia przez zero #include <stdlib.h> #include <stdio.h> C, ANSI89 #define MAKS_DL 20 int main() {... printf( "Paliwo: " ); fgets( linia, MAKS_DL, stdin ); paliwo = atof( linia ); Instrukcja alternatywy if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ); else printf( "Nie dokonam obliczen dla zerowego dystansu." ); } printf( "\nnacisnij Enter by zakonczyc program..." ); getchar(); return EXIT_SUCCESS; Operator!= oznacza różne, nierówne Copyright Roman Simiński Strona : 73

74 Instrukcje warunkowe Instrukcja warunkowa if( W ) I Instrukcja alternatywy if( W ) I1 else I2 W tak nie W tak nie II I2 I1 W językach C/C++ każde wyrażenie o wartości numerycznej 0 jest traktowane jako fałszywe, każde wyrażenie o wartości różnej od zera jako prawdziwe. Copyright Roman Simiński Strona : 74

75 Kontrola dzielenia przez zero Instrukcja warunkowa... if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans );... Instrukcja alternatywy... if( dystans!= 0 ) printf( "Spalanie %4.2f l na 100 km", ( paliwo * 100 ) / dystans ) ; else printf( "Nie dokonam obliczen dla zerowego dystansu." );... Średnik W językach C/C++ średnik kończy instrukcję przed nim zapisaną. Copyright Roman Simiński Strona : 75

76 Rozwiązanie w C++ wersja z kontrolą dzielenia przez zero #include <cstdlib> #include <iostream> using namespace std; C ++ int main() { float dystans, paliwo; cout << endl << "Obliczam ile Twoj pojazd spala paliwa na 100 km" << endl; cout << "Dystans: " << flush; cin >> dystans; cout << "Paliwo: " << flush; cin >> paliwo; if( dystans!= 0 ) cout << "Spalanie " << (paliwo*100) / dystans << " l na 100 km" << endl; else cout << "Nie dokonam obliczen dla zerowego dystansu." << endl; cout << "Nacisnij Enter by zakonczyc program..." << endl; cin.ignore(); cin.get(); } return EXIT_SUCCESS; Copyright Roman Simiński Strona : 76

77 Podsumowanie Każdy program w języku C/C++ musi posiadać funkcję main. Od niej rozpoczyna się wykonanie programu. Funkcja main według standardu ANSI C powinna zwracać wartość całkowitą, stanowiącą kod zakończenia programu przekazywany systemowi operacyjnemu lub procesowi rodzicowi. Każda funkcja posiada swoje ciało ujęte w nawiasy klamrowe { }. Zakończenie wykonania funkcji następuje wraz z osiągnięciem klamry zamykającej ciało funkcji lub po napotkaniu instrukcji powrotu z podprogramu instrukcji return. Wartość umieszczona po tej instrukcji stanowi rezultat funkcji. Instrukcja return może wystąpić w ciele funkcji wielokrotnie, w miejscach dozwolonych syntaktyką języka. W języku C zmienne wewnątrz funkcji wolno deklarować na początku każdego bloku. Na etapie deklaracji zmienne mogą być inicjowane. Copyright Roman Simiński Strona : 77

78 Podsumowanie, cd... W języku C++ zmienne wewnątrz funkcji wolno deklarować w dowolnym sensowym miejscu. Na etapie deklaracji zmienne mogą być inicjowane. W języku C/C++ nie ma funkcji standardowych. Wszystkie funkcje pochodzą z bibliotek lub są napisane przez programistę. Aby kompilator mógł sprawdzić poprawność wywołania funkcji bibliotecznych wykorzystuje się pliki nagłówkowe. Zawierają one informacje o typie rezultatu funkcji, parametrach i są włączane do kodu źródłowego programu dyrektywą #include. W języku C wywołanie funkcji bez włączenia odpowiedniego pliku nagłówkowego nie spowoduje błędu kompilacji (ang. error) a jedynie ostrzeżenie (ang. warning). W języku C++ wywołanie funkcji bez włączenia odpowiedniego pliku nagłówkowego spowoduje powstanie błędu kompilacji (ang. error). W instrukcji if-else, przed słowem kluczowym else występuje średnik. W języku C/C++ średnik nie rozdziela instrukcji, a kończy je. Copyright Roman Simiński Strona : 78

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część pierwsza Łagodny start Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część pierwsza Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

Języki programowania obiektowego

Języki programowania obiektowego Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Struktura programu, funkcja main, pliki nagłówkowe, operacje

Bardziej szczegółowo

Wstęp do programowania. Wykład 1

Wstęp do programowania. Wykład 1 Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.

Bardziej szczegółowo

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

#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 ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

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

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część druga Pierwsze programy Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

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

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

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

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część druga Pierwsze programy Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część jedenasta Przetwarzanie plików amorficznych Konwencja języka C Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

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

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 1

Programowanie komputerowe. Zajęcia 1 Programowanie komputerowe Zajęcia 1 Code::Blocks - tworzenie projektu Create New Project Console Application -> C++ Wybierz nazwę projektu Stworzy się nowy projekt z wpisaną funkcją main Wpisz swój program

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski dr Dariusz Wardowski, Instytut Matematyki i Informatyki PWSZ w Płocku 1 O mnie prowadzący wykład i laboratoria: Dariusz Wardowski pokój: 102

Bardziej szczegółowo

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

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych 1 Wstęp do informatyki- wykład 3 Pierwszy program w C++ Wyprowadzanie danych Deklaracja zmiennych Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI,

Bardziej szczegółowo

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

WYKŁAD 1 - KONSPEKT. Program wykładu:

WYKŁAD 1 - KONSPEKT. Program wykładu: mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część druga Instrukcje sterujące przebiegiem programu Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ Programowanie w języku C++ Część siódma Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout

Bardziej szczegółowo

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

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część siódma Przetwarzanie tablic znaków Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Wprowadzenie do programowania w języku C

Wprowadzenie do programowania w języku C Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów

Bardziej szczegółowo

Języki programowania obiektowego

Języki programowania obiektowego Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Sprzęt jako platforma wykonawcza dla programów C++ wprowadzenie,

Bardziej szczegółowo

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

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład I I Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Zaliczenie przedmiotu Na laboratorium można zdobyć 100 punktów. Do zaliczenia niezbędne jest

Bardziej szczegółowo

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

#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 ); } OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

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

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część druga Przetwarzanie tablic znaków Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie zastąpi uważnego w nim

Bardziej szczegółowo

Część 4 życie programu

Część 4 życie programu 1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński

Języki programowania. Przetwarzanie plików amorficznych Konwencja języka C. Część siódma. Autorzy Tomasz Xięski Roman Simiński Języki programowania Część siódma Przetwarzanie plików amorficznych Konwencja języka C Autorzy Tomasz Xięski Roman Simiński Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów nie

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 12 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Obsługa łańcuchów znakowych getchar(), putchar()

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl

Bardziej szczegółowo

Podstawy programowania w języku C i C++

Podstawy programowania w języku C i C++ Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

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

Operacje wejścia/wyjścia odsłona pierwsza Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

1. Wprowadzanie danych z klawiatury funkcja scanf

1. Wprowadzanie danych z klawiatury funkcja scanf 1. Wprowadzanie danych z klawiatury funkcja scanf Deklaracja int scanf ( const char *format, wskaźnik, wskaźnik,... ) ; Biblioteka Działanie stdio.h Funkcja scanf wczytuje kolejne pola (ciągi znaków),

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

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

Podstawy algorytmiki i programowania - wykład 4 C-struktury 1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

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

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: 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

Bardziej szczegółowo

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

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

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

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

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

Język C++ Różnice między C a C++ Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

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

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 Języki C i C++ Wykład: 2 Wstęp Instrukcje sterujące 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Instrukcje sterujące 2 Pętla for for ( instrukcja_ini ; wyrazenie_warunkowe

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziesiąta Rekordy w C/C++ struktury Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

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

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com Programowanie wykład dla I roku bioinformatyki semestr letni 2013 Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel. 58 523 2466 e-mail: danuta.makowiec at gmail.com Cel bloku

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

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

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 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

Bardziej szczegółowo

Programowanie strukturalne i obiektowe

Programowanie strukturalne i obiektowe Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie

Bardziej szczegółowo

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

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; } #include using namespace std; Prototypy funkcji Funkcja 1 void ela(int); double info (double); int main( ); return 0; Funkcja 2 void ela(int); Funkcja 3 double info(double); return 4*t; jeszcze

Bardziej szczegółowo

1.1 Wprowadzenie do języka C w pigułce

1.1 Wprowadzenie do języka C w pigułce Języki programowania język C Ćwiczenie 1 1 Łagodny start Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: struktura programu

Bardziej szczegółowo

Wyjątki (exceptions)

Wyjątki (exceptions) Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Tablica znaków w językach C i C++ (oraz pochodnych) łańcuch znaków przechowywany jest jako

Bardziej szczegółowo

Geneza C++, manipulatory

Geneza C++, manipulatory Bogdan Kreczmer bogdan.kreczmer@pwr.edu.pl Katedra Cybernetyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu dotyczącego programowania

Bardziej szczegółowo

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

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, 2015. Wydział Matematyki Stosowanej Politechniki Śląskiej Laboratorium 1 - Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Punkty Na laboratorium można zdobyć 60 punktów. Ocena ogólna z zajęć:

Bardziej szczegółowo

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie Część X C++ Typ znakowy służy do reprezentacji pojedynczych znaków ASCII, czyli liter, cyfr, znaków przestankowych i innych specjalnych znaków widocznych na naszej klawiaturze (oraz wielu innych, których

Bardziej szczegółowo

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

Języki programowania obiektowego Nieobiektowe elementy języka C++ Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Przetwarzanie tablic znaków Łańcuchy znakowe jako tablice znaków

Bardziej szczegółowo

INFORMATYKA Studia Niestacjonarne Elektrotechnika

INFORMATYKA Studia Niestacjonarne Elektrotechnika INFORMATYKA Studia Niestacjonarne Elektrotechnika Wydział Elektrotechniki i Informatyki dr inż. Michał Łanczont Wydział Elektrotechniki i Informatyki p. E419 tel. 81-538-42-93 m.lanczont@pollub.pl http://lanczont.pollub.pl

Bardziej szczegółowo

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

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Programowanie w C++ Wykład 1 Katarzyna Grzelak 26 luty 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28 Dlaczego programowanie? K.Grzelak (Wykład 1) Programowanie w C++ 2 / 28 Umiejętność, która otwiera

Bardziej szczegółowo

Podstawy Programowania. Wykład 1

Podstawy Programowania. Wykład 1 Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania

Bardziej szczegółowo

Kilka prostych programów

Kilka prostych programów Ćwiczenie 1 Kilka prostych programów Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: definiowanie stałych, deklarowanie

Bardziej szczegółowo

Wstęp do informatyki- wykład 11 Funkcje

Wstęp do informatyki- wykład 11 Funkcje 1 Wstęp do informatyki- wykład 11 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

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

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski

Bardziej szczegółowo

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

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 programowania Wykład: 5 Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD programowania w C++ Instrukcje sterujące 2 dr Artur Bartoszewski

Bardziej szczegółowo

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

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 9 Funkcje 1 Wstęp do informatyki- wykład 9 Funkcje Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum

Bardziej szczegółowo

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.

1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań

Bardziej szczegółowo

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

OPERACJE WEJŚCIA / WYJŚCIA. wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) OPERACJE WEJŚCIA / WYJŚCIA Funkcja: printf() biblioteka: wysyła sformatowane dane do standardowego strumienia wyjściowego (stdout) int printf ( tekst_sterujący, argument_1, argument_2,... ) ;

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

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

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

I - Microsoft Visual Studio C++

I - Microsoft Visual Studio C++ I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i

Bardziej szczegółowo

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

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami

Bardziej szczegółowo

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

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak

Systemy operacyjne. System operacyjny Linux - wstęp. Anna Wojak Systemy operacyjne System operacyjny Linux - wstęp Anna Wojak 1 1 Wstęp Linux jest systemem z rodziny Unix. Pierwsza wersja systemu została opracowana w 1969 roku przez K.Thompsona i D.Ritchie Jest to

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część trzynasta Tablice struktur, pliki struktur Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

3. Instrukcje warunkowe

3. Instrukcje warunkowe . Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include

Bardziej szczegółowo

Programowanie - wykład 4

Programowanie - wykład 4 Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include

Bardziej szczegółowo

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

Ćwiczenia podstawowe, zestaw 5, część 1 Ćwiczenia podstawowe, zestaw 5, część 1 1 Napisz zestaw funkcji identyfikujących rodzaj znaku Należy napisać funkcje, pozwalające na identyfikowanie typu znaku przekazanego parametrem. Załóżmy, że tworzymy

Bardziej szczegółowo

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

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

KURS C/C++ WYKŁAD 1. Pierwszy program

KURS C/C++ WYKŁAD 1. Pierwszy program KURS C/C++ WYKŁAD 1 Pierwszy program Tworzenie programu odbywa sie w dwóch etapach: 1. opracowanie kodu źródłowego 2. generowanie kodu wynikowego Pierwszy etap polega na zapisaniu algorytmu za pomocą instrukcji

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo