Podstawy Programowania

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

Język ludzki kod maszynowy

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

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

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

Słowa kluczowe i nazwy

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

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

Techniki Programowania

Praktyka Programowania

Wstęp do programowania. Wykład 1

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

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

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

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

Języki programowania - podstawy

1 Podstawy c++ w pigułce.

Spis treści

Wstęp do programowania

Języki programowania zasady ich tworzenia

Podstawy programowania - 1

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

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

Podstawy Programowania

Podstawy Programowania. Wykład 1

Podstawy języka C++ Marek Pudełko

Programowanie obiektowe

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

Szablony funkcji i szablony klas

Microsoft IT Academy kurs programowania

Pytania sprawdzające wiedzę z programowania C++

Język C - podstawowe informacje

Wstęp do programowania

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

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

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

Programowanie strukturalne i obiektowe

Podstawy programowania (1)

C++ wprowadzanie zmiennych

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

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Podstawy informatyki. Prowadzący cz. 2 (C++) wykładu: dr inż. Sylwester Przybył Instytut Fizyki WFT tel. (0-61) ;

Wykład 1

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

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

Wstęp do programowania

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

Programowanie komputerów

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

ECLIPSE wnioski z dwóch pierwszych laboratoriów

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

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

Wstęp do Programowania 2

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

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

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

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

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

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

Podstawy programowania w języku C

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

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

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

1 Podstawy c++ w pigułce.

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

Podstawy programowania w języku C i C++

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

Programowanie Komputerów

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

Wstęp do programowania

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

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

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

PROGRAMOWANIE w C prolog

Java EE produkcja oprogramowania

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

Część 4 życie programu

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Podstawy programowania w C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Programowanie strukturalne język C - wprowadzenie

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

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

ROZDZIAŁ 2. Operatory

Programowanie - wykład 4

Wprowadzenie do szablonów szablony funkcji

Wyjątki (exceptions)

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

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

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Wprowadzenie do szablonów szablony funkcji

Wstęp do programowania

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

I - Microsoft Visual Studio C++

tablica: dane_liczbowe

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

Transkrypt:

Podstawy Programowania dr inż. Piotr Borowiecki Katedra Algorytmów i Modelowania Systemów pborowie@eti.pg.gda.pl pokój EA 209 Strona WWW przedmiotu http://kaims.eti.pg.gda.pl/~pborowie Sekcja News - bieżące informacje organizacyjne Sekcja Downloads - wpisz hasło POP1617 (kliknij wejdź!! zamiast <Enter>) Slajdy z wykładów Materiały przygotowujące do laboratoriów Informacje organizacyjne Zasady zaliczenia Harmonogramy Wyniki kolokwiów, itp. Literatura, linki itp. Podstawy Programowania Zespół prowadzący zajęcia Borowiecki Piotr, dr inż. (KAMS) Cichosz Adam, mgr inż. (KSD) Czubenko Michał, mgr inż. (KSD) Goluch Tomasz, dr inż. (KAMS) Jastrzębski Andrzej, mgr inż. (KAMS) Kochańska Iwona, dr inż. (KSEM) Kuszner Łukasz, dr inż. (KAMS) Strąkowski Marcin, dr inż. (KMOE) Konsultanci projektów (studenci studiów doktoranckich) dr inż. P. Borowiecki (KAMS, WETI, PG) 1

Podstawy Programowania Formy zajęć 1. Pierwsza część semestru (8 tygodni od 26.09.2016) Wykład (W) Laboratorium zamknięte (LZ) 2. Druga część semestru (od 14.11.2016) Laboratorium otwarte (LO) konsultacje projektów (KP) odbiory projektów (OP) Harmonogram przedmiotu Wykłady (15 wykładów, 2x2 godziny w tygodniu) Laboratoria zamknięte (1x2 godziny w tygodniu) Laboratoria otwarte Każdy student ma do wykonania dwa zadania projektowe, Konsultacje do projektów prowadzone są przez studentów studiów doktoranckich w okresie od 14.11.2016 do 13.01.2017, Odbioru projektów dokonuje zespół prowadzący zajęcia Projekt 1: oddanie 04.12.2016, odbiór 05.12.16-16.12.16 Projekt 2: oddanie 15.01.2017, odbiór 16.01.17-27.01.17 W trakcie semestru każdemu studentowi zostanie wyznaczony indywidualny termin odbioru (dzień, godzina, sala) dla każdego z dwóch projektów. dr inż. P. Borowiecki (KAMS, WETI, PG) 2

Zaliczenie przedmiotu Procentowa ocena z przedmiotu Ocena końcowa pk z przedmiotu obliczana jest jako pk = ( 0.4pW + 0.3pLZ + 0.3pLO ) [%] gdzie pw, plz i plo są odpowiednio ocenami z kolokwium, laboratorium zamkniętego i odbioru projektów wyrażonymi w skali 0-100%. W szczególności, warunkiem zaliczenia przedmiotu jest uzyskanie z każdej formy (W, LZ, LO) oceny minimum 50%. Zaliczenie przedmiotu Ocena końcowa z przedmiotu Ocena pk przeliczana jest według poniższej tabeli na ocenę zgodną z "Regulaminem studiów w Politechnice Gdańskiej" wpisywaną do e-indeksu. pk [%] Ocena końcowa 90 100 bardzo dobry 80 89 ponad dobry 70 79 dobry 60 69 dość dobry 50 59 dostateczny < 50 niedostateczny dr inż. P. Borowiecki (KAMS, WETI, PG) 3

Organizacyjne Inne zasady Każda forma zaliczana jest niezależnie. W szczególności do kolokwium zaliczeniowego z wykładu mogą przystąpić wszyscy studenci, bez względu na to czy zaliczylilz i LO. Szczegółowe zasady zaliczenia laboratoriów zamkniętych podają prowadzący zajęcia w poszczególnych grupach lab. Zasady zaliczenia przedmiotu są dostępne również na stronie WWW przedmiotu Ewentualne przeniesienie się do innej grupy laboratoryjnej wymaga uzgodnienia tego z obydwoma prowadzącymi. Laboratoria zamknięte (LZ) Faza 0 - samodzielne przygotowanie się studenta do LZ na podstawie materiałów dostępnych na stronie WWW przedmiotu Faza 1 - analiza i rozwiązywanie zadań programistycznych wspólnie z prowadzącym zajęcia Faza 2 - samodzielne rozwiązywanie zadań programistycznych w obecności prowadzącego zajęcia Faza 3 - samodzielne rozwiązywanie zadań przez studenta po zajęciach LZ dr inż. P. Borowiecki (KAMS, WETI, PG) 4

Podstawowy podręcznik Literatura J. Grębosz, Symfonia C++ standard, Wydawnictwo "Edition 2000", Kraków 2008, tom 1 i 2. Literatura uzupełniająca: (alfabetycznie) D. Harel, Komputery spółka z o. o. Czyli czego komputery naprawdę nie umieją robić, WNT, W-wa 2002. S.S. Skiena, M.A. Revilla, Wyzwania programistyczne, WSiP, W-wa 2004. M.M. Sysło, Algorytmy, WSiP, W-wa 2002. Korzenie języka C++ 2003 C++03 2008 C++0x draft 2009 C++1x draft 2011 C++11 rys. B. Stroustrup Więcej szczegółów na stronie Historia języków programowania (patrz odnośnik na stronie WWW przedmiotu) dr inż. P. Borowiecki (KAMS, WETI, PG) 5

Język C++ C++ jest tzw. językiem programowania wysokiego poziomu rys. B. Stroustrup Dostępne wersje kompilatorów zwykle rozszerzają aktualny standard a rozszerzenia najczęściej różnią się między sobą. Algorytmy a programy Algorytm to jednoznaczny i skończony opis postępowania prowadzącego do wytyczonego celu. Intuicyjnie algorytm utożsamiamy z metodą, sposobem, recepturą, programem,... algorytm / program wykonawca Każdy program to implementacja pewnego algorytmu. dr inż. P. Borowiecki (KAMS, WETI, PG) 6

Wykonanie programu Do wykonania każdego programu niezbędne są określone zasoby: miejsce do przechowywania danych - pamięć wykonawca instrukcji programu - procesor najbardziej ulotny z zasobów - czas Zależności pomiędzy zasobami Zmniejszenie ilości dostępnej pamięci może wpłynąć na wydłużenie czasu wykonania.... Zwiększenie liczby procesorów może wpłynąć na skrócenie czasu wykonania....... itd. dr inż. P. Borowiecki (KAMS, WETI, PG) 7

Krótki program a długi czas wykonania Program SZP [ sumowanie zarobków pracowników przedsiębiorstwa] (1) zanotuj w pamięci liczbę 0; (2) kolejno, dopóki nie osiągniesz końca listy przeglądaj kwestionariusze pracowników, dodając zarobki każdego z nich do liczby w pamięci (3) kiedy osiągniesz koniec listy, podaj wartość liczby w pamięci jako wynik wartości liczby w pamięci Długość kodu programu nie ma wpływu ani na czas ani na szybkość jego działania. początek Imię i Nazwisko Płaca 0 Adam Beski 1300 1300 Bogdan Decki 1550 2850 Danuta Hacka 1260 4110............ Tadeusz Wuski 1700 547 200 koniec rys. D. Harel + Autor Zadanie programistyczne Zadanie programistyczne Rozwiązanie Semantyczny opis problemu Specyfikacja dopuszczalności. Charakteryzacja wszystkich poprawnych danych wejściowych + dowolne poprawne dane PROGRAM Charakteryzacja poprawnych wyników oczekiwane wyniki rys. D. Harel + Autor dr inż. P. Borowiecki (KAMS, WETI, PG) 8

Zadanie programistyczne Specyfikacja dopuszczalności Jest definicją danych uważanych za dopuszczalne (poprawne) dane wejściowe. Specyfikacja powinna określać dziedzinę danych, ich wzajemne zależności oraz sposób reprezentacji, co ma wpływ np. na dokładność obliczeń. Charakteryzacja poprawnych wyników Podobnie jak dla danych wejściowych. Opis semantyczny Czyli, co jest do zrobienia. O R A Z Wymagania dotyczące języka programowania Pozwalają na dokonanie wyboru języka najodpowiedniejszego dla rozwiązywanego zadania Wybrane problemy występujące podczas projektowania i testowania programów Czy program jest poprawny (np. czy zawsze daje poprawne wyniki, czy dla każdych danych się zatrzymuje)? Jakie są wymagania zasobowe naszego programu? Czy program jest prosty i zwięzły? Jaka jest wrażliwość programu, czyli jak bardzo zmienia się zapotrzebowanie na poszczególne zasoby, gdy program otrzymuje na wejściu różne dane tego samego rozmiaru? Czy program daje rozwiązania optymalne? Jeżeli nie, to jak bardzo różnią się one od optymalnych? Czy program jest stabilny numerycznie?... i wiele innych. dr inż. P. Borowiecki (KAMS, WETI, PG) 9

Języki programowania Języki progrmowania służą do formalnego opisu algorytmów. Teoretyczne podstawy sięgają teorii języków formalnych, działu lingwistyki matematycznej (Thue, Chomsky). Definiując język należy określić: Alfabet języka ściśle określony zbiór symboli podstawowych, z których musi składać się każdy tekst w tym języku (alf. jęz. programowania, alf. jęz. etnicznego), Składnię języka (syntaktykę) często utożsamiana jest z gramatyką języka. Bardziej formalnie jest to zbiór reguł, które pozwalają generować syntaktycznie poprawne zdania danego języka. Semantykę języka - określa znaczenia (sens) poszczególnych jego wyrażeń i konstrukcji językowych. Przykład prostego języka Definicje syntaktyki języków progr. zapisuje się stosując: notację BNF (Backus-Naur Form), diagramy syntaktyczne,... itp. Są to tzw. metajęzyki czyli języki opisu języków Zdefiniujmy język stosując następujące mateformuły: <zmienna> ::= A B <wyrażenie> ::= <zmienna> <zmienna> + <zmienna> <zmienna> - <zmienna> Przez <zmienna> rozumiemy jeden z symboli A lub B. Znak oznacza "lub". Przez <wyrażenie> rozumiemy dowolny spośród napisów A B A+A A+B B+A B+B A-A A-B B-A B-B dr inż. P. Borowiecki (KAMS, WETI, PG) 10

Język C++ rys. fragment ISO/IEC 14882, Programming language C++ (draft) Język C++ Syntaktyka języka C++ (wybrane elementy, wersja uproszczona) <alfabet> ::= <litera> <cyfra> <symbol> <litera> ::= A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z _ <cyfra> ::= 1 2 3 4 5 6 7 8 9 0 <symbol> ::= % ' & ( )., ; :! [ ] " { } = > < \ /? ^ ~ # + - * @ dr inż. P. Borowiecki (KAMS, WETI, PG) 11

Język C++ Syntaktyka języka C++ (wybrane elementy, wersja uproszczona) <operatory> ::= <op_1_arg> <op_2_arg> <op_przypisania>... <op_1_arg> ::= * & -! ~ ++ --... <op_2_arg> ::= * / % + - << >> < > <= >= ==!= & ^ &&... <op_przypisania> ::= = *= /= %= += -= >>= <<= &= ^= =... itd. Omawiając elementy języka będziemy wprowadzać pewne uproszczenia, które na początku nauki języka pozwalają uniknąć zalewu szczegółów i koncepcji niezrozumiałych w początkowej fazie nauki. Język C++ Syntaktyka języka C++ (wybrane elementy, wersja uproszczona) <słowa_kluczowe> ::= const for register true alignof const_cast friend try goto reinterpret_cast asm continue requires typedef auto decltype if return typeid axiom default inline short typename bool delete int signed union break double late_check sizeof unsigned case do long static using catch dynamic_cast mutable static_assert virtual char16_t else namespace static_cast void char32_t enum new struct volatile char explicit nullptr switch wchar_t class export operator template while concept extern private this concept_map false protected thread_local constexpr float public throw Słowa zielone dotyczą C/C++, czarne tylko C++. Pozostałe elementy syntaktyki wprowadzane będą sukcesywnie w trakcie kolejnych wykładów. dr inż. P. Borowiecki (KAMS, WETI, PG) 12

Translacja Translacja jest procesem tłumaczenia tekstu zapisanego w języku źródłowym na tekst w języku docelowym. Dla języków programowania, program źródłowy z postaci czytelnej dla człowieka tłumaczony jest na kod wykonywalny przez procesor. Większość języków wymaga jednorazowej ale wielofazowej translacji. Potocznie proces ten nazywany jest kompilacją. Dla niektórych języków kolejne instrukcje tłumaczone są "w locie" podczas działania programu. Są to języki interpretowane. Błędy programu wykryte podczas translacji nazywane są w uproszczeniu błędami kompilacji (ang. compile time errors). Błędy programu wykryte podczas jego działania są nazywane błędami wykonania (ang. runtime errors) Translacja C++ h cpp... int main() { int a ; cout << "Podaj a" } h h pliki nagłówkowe *.h cpp pliki źródłowe *.cpp Preprocesor... int main() { int a, b c, d; cout <<"x" } samodzielne pliki źródłowe Kompilator biblioteki zewnętrzne skompilowane moduły Linker kod wykonywalny dr inż. P. Borowiecki (KAMS, WETI, PG) 13

Cykl wytwarzania oprogramowania sformułowanie problemu opracowanie rozwiązania zakodowanie rozwiązania translacja uruchamianie i testowanie programu Pierwszy program w C++ #include <iostream> using namespace std; int main() { cout << endl; cout << "Witam na I wykładzie!" << endl; cout << "Rozpoczynamy " << "programowanie" << endl; cout << "w języku C++."; return 0; } Witam na I wykładzie! Rozpoczynamy programowanie w języku C++._ dr inż. P. Borowiecki (KAMS, WETI, PG) 14

Komentarz do pierwszego programu w C++ W każdym programie w języku C++ musi wystąpić specjalna funkcja o nazwie main. Od funkcji main zaczyna się wykonanie programu. Instrukcje wykonywane w ramach każdej funkcji zawarte są między dwoma nawiasami klamrowymi { }. Instrukcja return kończy wykonanie funkcji i służy do określenia wartości zwracanej przez funkcję (wartości funkcji). W przypadku funkcji main instrukcję return można ewentualnie pominąć. Instrukcja 'return 0' oznacza, że wykonanie funkcji main zakończyło się pomyślnie. Komentarz do pierwszego programu w C++ Klasy i podprogramy odpowiedzialne za operacje wejścia wyjścia znajdują się w bibliotece iostream. Jeżeli chcemy skorzystać w programie z tej biblioteki, musimy na początku programu umieścić wiersz #include <iostream> Translator przed tłumaczeniem dalszej części programu wstawi w tym miejscu zawartość pliku nagłówkowego iostream.h. W języku C stosujemy rozszerzenie h, w C++ pomijamy. Bibliotekę iostream uznano za bardzo ważną, dlatego włączono ją do standardu ISO C++. dr inż. P. Borowiecki (KAMS, WETI, PG) 15

Zmienne a typy Zmienna to nazwany obszar pamięci, w którym można zapisać dane reprezentujące wartość zmiennej. Zawartość pamięci interpretowana jest w zależności od podanego w deklaracji typu zmiennej. Różne interpretacje ciągu 32 bitów 01000011010011110011111100111111 32 bity 01000011 01001111 00111111 00111111 4 bajty 0.747303187847137451 Liczba rzeczywista 67 79 63 63 4 liczby całkowite (8 bitowe) C O?? 4 znaki ASCII 0100001101001111 0011111100111111 2 słowa (16 bitowe) 20291 16191 2 liczby całkowite (16 bitowe) Deklaracje a definicje zmiennych W języku C++ można używać wyłącznie tych zmiennych, które zostały zadeklarowane (wyjątek stanowią zmienne tworzone dynamicznie, gdyż nie posiadają nazwy). Deklaracja zmiennej określa jej typ oraz nazwę. W treści programu deklaracja zmiennej musi poprzedzać jej pierwsze użycie. Deklaracja nie powoduje utworzenia zmiennej w pamięci. Definicja jest deklaracją nakazującą, fizyczne utworzenie zmiennej w pamięci. Deklaracja nie jest definicją. Definicja zmiennej może określać wartość początkową. Ten sam obiekt można w programie deklarować wielokrotnie, natomiast zdefiniować można tylko raz. dr inż. P. Borowiecki (KAMS, WETI, PG) 16

/*---------------------------------------------------------*/ /* Program przelicza wysokość podaną w stopach na wysokość podaną w metrach. */ /*---------------------------------------------------------*/ #include <iostream> using namespace std; int main() { int stopy; // wysokość podana w stopach float metry; // wysokość w metrach float przelicznik = 0.3; // przelicznik: stóp na metry cout << "Podaj wysokość w stopach: "; cin >> stopy; // wczytanie wysokości w stopach metry = przelicznik * stopy; cout << endl; cout << "Wysokość " << stopy << " stóp - to jest " << metry << " metrów" << endl; return 0; } Podaj wysokość w stopach: 26 Wysokość 26 stóp - to jest 7.8 metrów _ Nazwy (identyfikatory) w C++ Identyfikatorem (nazwą) może być dowolnie długi ciąg liter, cyfr i znaków podkreślenia nie zaczynający się od cyfry. Małe i wielkie litery są rozróżniane. Identyfikatorem nie może być słowo kluczowe. W podanym przykładzie pojawiły się definicje zmiennych: int stopy; float metry; Zmiennym nadano nazwy stopy oraz metry. Definicja float przelicznik = 0.3; inicjalizuje zmienną nadając jej wartość początkową. dr inż. P. Borowiecki (KAMS, WETI, PG) 17

Instrukcja przypisania Instrukacja przypisania stosowana jest do nadawania wartości zmiennym i ma postać zmienna = wyrażenie; a = 4; metry = przelicznik * stopy; W sensie syntaktycznym cała instrukcja przypisania jest wyrażeniem o wartości równej wartości przypisywanej, co pozwala na dokonywanie przypisań kaskadowych. a = b = c = 1; kilometry = (metry = przelicznik * stopy) / 1000; Styl programowania Programy muszą być czytane przez ludzi. Stosuj komentarze wstępne. Stosuj komentarze wyjaśniające. Stosuj odstępy do poprawienia czytelności. Używaj dobrych nazw mnemonicznych. Wystarczy jedna instrukcja w wierszu. Stosuj wcięcia do uwidocznienia struktury programu. Rozsądnie wybieraj między czytelnością programu a apetytem programu na czas i pamięć. dr inż. P. Borowiecki (KAMS, WETI, PG) 18