Programowanie I. Kornel Warwas. ATH Katedra Matematyki i Informatyki



Podobne dokumenty
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 proceduralne w języku C++ Podstawy

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

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

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

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

Technologie informacyjne - wykład 12 -

Wstęp do programowania. Wykład 1

Podstawy programowania wykład

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Metodyki i techniki programowania

POLITECHNIKA OPOLSKA

Metodyki i techniki programowania

Wstęp do programowania

POLITECHNIKA OPOLSKA

Podstawy Programowania

Programowanie proceduralne w języku C++ Pojęcia podstawowe - kod źródłowy

Podstawy Programowania Algorytmy i programowanie

Schematy blokowe. Algorytmy Marek Pudełko

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

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

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Definicje. Algorytm to:

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

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

Zaawansowane programowanie w języku C++

Programowanie w C. dr inż. Stanisław Wszelak

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż. ADAM KOLIŃSKI ZARZĄDZANIE PROCESAMI I PROJEKTAMI. Zakres projektu. dr inż.

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

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

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

Podstawy Programowania. Wykład 1

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

1 Wprowadzenie do algorytmiki

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

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

KONSTRUKCJA KOMPILATORÓW

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

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

Praktyka Programowania

Programowanie komputerów

Język programowania PASCAL

Algorytm. a programowanie -

Języki i metodyka programowania

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

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

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

Praktyczne zastosowanie bibliotek Boost oraz nowego standardu C++11

ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów AUTOR: ADAM KOLIŃSKI ZARZĄDZANIE PROJEKTAMI I PROCESAMI. Mapowanie procesów

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Paradygmaty programowania

Podstawy programowania - 1

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Języki i paradygmaty programowania

Programowanie obiektowe i C++ dla matematyków

Wprowadzenie do środowiska Qt Creator

Wstęp do programowania

Podstawy informatyki (3)

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

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

Podstawy programowania

Organizacja kursu, paradygmaty, ogólnie o C i C++

Podstawy. O czym będziemy mówić? Krótka historia C++ (od C zaczynając) Pierwsze programy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

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

Programowanie Obiektowe i C++ Marcin Benke

Podstawy Informatyki Wprowadzenie do języka C dr inż. Jarosław Bułat

Algorytmy, reprezentacja algorytmów.

Dr inż. Dariusz JĘDRZEJCZYK. Informacje organizacyjne, Wprowadzenie do programowanie w języku C++. Spotkanie 1

Tworzenie oprogramowania

ALGORYTMY I PROGRAMY

Wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Wyjątki (exceptions)

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

Podstawy programowania

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

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

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

Zadanie 2: Arytmetyka symboli

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

Szablony funkcji i szablony klas

Podstawy programowania.

Wprowadzenie do szablonów szablony funkcji

Języki i paradygmaty programowania. I. Wprowadzenie

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

Wstęp do Programowania 2

Wprowadzenie do szablonów szablony funkcji

Technologie cyfrowe semestr letni 2018/2019

Pytania sprawdzające wiedzę z programowania C++

1 Podstawy c++ w pigułce.

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

Szablony funkcji i klas (templates)

Programowanie komputerowe. Zajęcia 1

Transkrypt:

Programowanie I Kornel Warwas ATH Katedra Matematyki i Informatyki

2 Algorytm Algorytm skończony, uporządkowany ciąg zdefiniowanych czynności, koniecznych do wykonania określonego zadania w ograniczonej liczbie kroków. Algorytm oznacza przepis. W życiu codziennym spotykamy się z wieloma przykładami algorytmów np. instrukcje obsługi urządzeń, opis czynności przy wymianie żarówki w samochodzie lub przepis kucharski. Rodzaje prezentacji algorytmów: Lista kroków (opisowo) Graficznie w postaci diagramów

3 Schemat blokowy (block diagram, flowchart) Diagram, graficzny sposób przedstawienia algorytmu. Składa się z figur geometrycznych (bloków) połączonych liniami zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu.

4 Schemat blokowy elementy budowy (1) Ścieżka sterująca oznacza kierunek przejścia między kolejnymi blokami algorytmu Blok graniczny oznacza początek, koniec, przerwanie lub wstrzymanie wykonywania działania, np. blok startu programu START Blok wejścia-wyjścia przedstawia czynność wprowadzania danych do programu i przyporządkowania ich zmiennym dla późniejszego wykorzystania, jak i wyprowadzenia wyników obliczeń Podaj a i b Blok obliczeniowy oznacza wykonanie operacji, w efekcie której zmienią się wartości, postać lub miejsce zapisu danych a = a + 5

5 Schemat blokowy elementy budowy (2) Blok decyzyjny, warunkowy przedstawia wybór jednego z dwóch wariantów wykonywania programu na podstawie sprawdzenia warunku a = 4 Blok fragmentu/blok wywołania podprogramu część algorytmu, która stanowi odrębną całość i jest zdefiniowana na oddzielnym schemacie blokowym LOGOWANIE Blok komentarza pozwala wprowadzać komentarze wyjaśniające poszczególne części schematu, co ułatwia zrozumienie go czytającemu Komentarz

6 Schemat blokowy elementy budowy (3) Łącznik wewnętrzny służy do łączenia odrębnych części schematu znajdujących się na tej samej stronie, powiązane ze sobą łączniki oznaczone są tym samym napisem A Łącznik zewnętrzny służy do łączenia odrębnych części schematu znajdujących się na odrębnych stronach, powinien być opisany jak łącznik wewnętrzny, poza tym powinien zawierać numer strony, do której się odwołuje A 23

7 Quiz: Podaj symbol lub znaczenie Start, stop programu 1 Wprowadzanie danych 2 Komentarz 3... 4 Blok obliczeniowy 5

8 Proces tworzenie oprogramowania Algorytm Kod źródłowy (implementacja algorytmu) Program wynikowy Pomysł (potrzeba)

9 Realny proces tworzenia oprogramowania Klient Pomysł (potrzeba) Programista Algorytm Klient Akceptacja algorytmu Programista Kod źródłowy Poprawa kodu źródłowego Klienta Akceptacja Uwagi klienta Testy Produkt finalny Koniec? Wdrożenie u klienta Poprawa kodu źródłowego Klient Nowa funkcjonalność

10 Paradygmaty programowania Paradygmat programowania definiuje sposób patrzenia programisty na przepływ sterowania i wykonywanie programu komputerowego. Stanowi wzorzec przedkładany w danym okresie rozwoju informatyki ponad inne lub szczególnie ceniony w pewnych okolicznościach lub zastosowaniach Programowanie proceduralne Programowanie strukturalne Programowanie funkcyjne Programowanie imperatywne Programowanie obiektowe Programowanie uogólnione Programowanie zdarzeniowe Programowanie deklaratywne Więcej: http://pl.wikipedia.org/wiki/paradygmat_programowania

11 Krótka historia języka C++ i jego poprzedników Język C++ powstał w latach osiemdziesiątych XX wieku (pierwsza wersja pojawiła się w 1979 r.) przez Bjarne Stroustrupa jako obiektowe rozszerzenie języka C. C natomiast został zaprojektowany w późnych latach 60-tych/na początku lat 70-tych przez Dennisa Ritchie i jest językiem wyższego poziomu przeznaczonym do tworzenia np. systemów operacyjnych, translatorów i programowania systemów wbudowanych (ang. embedded system). Poprzednik języka C, z którego Ritchie zaczerpnął wiele elementów nazywał się B.

12 Właściwości języka C++ Międzyplatformowy (sprzętowo np. x86, x86-64, IA-64, Alpha, ARM, Motorola, MIPS, PowerPC, SPARC/SPARC64 i systemowo np., Windows, Linux, Andoid, ios) Wieloparadygmatowy (np. proceduralny, obiektowy i uogólniony) Posiada statyczną kontrolę typów (elementy dynamicznej kontroli typów) Szybkość Ze względu na bardzo rozbudowaną składnię oraz surowe wymogi w zakresie wydajności kodu stanowi duże wyzwanie dla twórców kompilatorów Żaden popularny kompilator nie jest w pełni zgodny z obowiązującym standardem języka

13 Standard języka C++ C++98 (ISO/IEC 14882:1998) C++03 (ISO/IEC 14882:2003) C++11 (ISO/IEC 14882:2011), nazwa przejściowa C++0x

14 Kod źródłowy Kod źródłowy (ang. source code) ciąg instrukcji zapisany w zrozumiałym dla człowieka języku programowania opisujący operacje, jakie powinien wykonać komputer przy pomocy skończonej liczby ściśle zdefiniowanych rozkazów. Jest wynikiem pracy programistów. Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój. Źródło: http://pl.wikipedia.org/wiki/kod_%c5%bar%c3%b3d%c5%82owy

15 Translatory Interpreter Kompilator

16 Edytory kodu źródłowego Notatnik/Notepad2 Sublime Text Gedit SciTE jedit Notepad++ PSPad TextPad EditPlus Vim Programmer s Notepad i wiele innych

17 Kompilatory GCC (GNU Compiler Collection, g++ dla języka C++) ICC (Intel C/C++ Compiler) VC++ (Microsoft Visual C++) Borland C++ Compiler Clang++ i wiele innych

18 C++ IDE (Integrated Development Environment) Eclipse CDT Code::Blocks Embarcadero C++Builder Microsoft Visual Studio Microsoft Visual C++ Express Edition Dev-C++ (również w wersji portable) KDevelop CodeLite i wiele innych (http://en.wikipedia.org/wiki/comparison_of_inte grated_development_environments#c.2fc.2b.2b)

19 Proces kompilacji Konsolidacja Preprocesor Kompilacja Analiza składniowa Optymalizacja Generowanie kodu w języku wewnętrznym Kod źródłowy *) Rozłączna kompilacja

20 Elementy składowe kodu źródłowego w języku C++ Literały (stałe - wartości) Nazwy użytkownika (stałych, zmiennych, przestrzeni nazw, funkcji, itd.) Słowa kluczowe Operatory Znaki punktacji Dyrektywy preprocesora

21 Pierwszy program (1) Wynik: Hello world #include <iostream> using namespace std; int main() { cout<<"hello world"<<endl; return 0; } Elementy kodu źródłowego: Dyrektywy preprocesora Przestrzeń nazw Główna funkcja programu Słowa kluczowe Obiekt cout (console out) Operator << Manipulator endl Wartość zwracana z funkcji Zasady: Rozróżniane są wielkości liter Każda instrukcja kończy się średnikiem Program rozpoczyna działanie od funkcji głównej (main) Program kończy działanie gdy: wykonają się wszystkie instrukcje w funkcji głównej (main) napotka słowo kluczowe return w funkcji głównej (main)

22 Pierwszy program (2) Wariant 2 #include <iostream> int main() { std::cout<<"hello world"<<std::endl; return 0; } Wariant 3 #include <iostream> using std::cout; int main() { cout<<"hello world"<<std::endl; return 0; } Wariant 4 #include <iostream> using std::cout; using std::endl; Wynik: Hello world int main() { cout<<"hello world"<<endl; return 0; }

23 Błędy w programach Rodzaje błędów: błędy składniowe błędy logiczne Sposoby znajdywania i niwelowania błędów logicznych: Debugowanie (program typu debugger) Testy (jednostkowe, integracyjne, techniki TDD, BDD) Wykorzystanie gotowych i przetestowanych komponentów (bibliotek, np. STL, Boost, itp.)