Algorytm. Definicja i algorytmu METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE

Podobne dokumenty
Definicje. Algorytm to:

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Algorytm. Krótka historia algorytmów

Technologie informacyjne - wykład 12 -

Algorytmy i schematy blokowe

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

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

Algorytm. Krótka historia algorytmów

Algorytmy, reprezentacja algorytmów.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Podstawy Programowania Algorytmy i programowanie

Podstawy programowania wykład

Wprowadzenie do algorytmiki

Wykład z Technologii Informacyjnych. Piotr Mika

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!

Algorytm. a programowanie -

Język ludzki kod maszynowy

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Algorytmika i pseudoprogramowanie

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

Praktyka Programowania

Technologia informacyjna Algorytm Janusz Uriasz

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

START. Wprowadź (v, t) S:=v*t. Wyprowadź (S) KONIEC

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

2. Graficzna prezentacja algorytmów

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Zespół Szkół nr 9 Im. Romualda Traugutta Ul. Jedności Koszalin

Metody numeryczne w przykładach

EGZAMIN MATURALNY 2011 INFORMATYKA

Programowanie strukturalne

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

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

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Algorytm. Algorytmy Marek Pudełko

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Wstęp do Informatyki dla bioinformatyków

Programowanie i techniki algorytmiczne

ALGORYTMY I PROGRAMY

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

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

Zapisywanie algorytmów w języku programowania

Język programowania PASCAL

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 7 Algorytmy

Algorytmy od problemu do wyniku

Proste algorytmy w języku C

2.8. Algorytmy, schematy, programy

Temat 20. Techniki algorytmiczne

Spis treści. Część I Metody reprezentowania informacji oraz struktury danych...9. Wprowadzenie Rozdział 1. Reprezentacja liczb całkowitych...

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

1. WSTĘP. Dr inż. Robert Wójcik, p. 313, C-3, tel

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

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

Algorytmy i struktury danych. wykład 2

Zapis algorytmów: schematy blokowe i pseudokod 1

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

Sposoby przedstawiania algorytmów

Sterowniki Programowalne (SP)

Jerzy Nawrocki, Wprowadzenie do informatyki

Definicja algorytmu brzmi:

Wstęp do programowania

POLITECHNIKA OPOLSKA

Języki i paradygmaty programowania. I. Wprowadzenie

PODSTAWY ALGORYTMIKI

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

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

Programowanie w języku C++ Podstawowe paradygmaty programowania

Programowanie w języku Python. Grażyna Koba

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Programowanie, algorytmy i struktury danych

Wstęp do informatyki- wykład 2

POLITECHNIKA OPOLSKA

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

1 Wprowadzenie do algorytmiki

Wstęp do informatyki

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

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Podstawy programowania

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

Geneza powstania języka C++

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Metodyki i techniki programowania

Proste algorytmy w języku C

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

TWORZENIE SCHEMATÓW BLOKOWYCH I ELEKTRYCZNYCH

Podstawy programowania w języku C

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

Podstawy Informatyki. Metalurgia, I rok niestacjonarne. Wykład 2 Algorytmy

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

Transkrypt:

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 01 Algorytm Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn Musy al-chorezmi (z Chorezmu), który ok. 820 r n.e. opisał pozycyjny system kodowania dziesiętnego liczb i sztukę liczenia w tym systemie. W XII w. Europie przetłumaczono jego książkę i rozpoczęto wykonywanie obliczeń metodą znaną dzisiaj jako"pisemną". [w informatyce] dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie każdego zadania danego typu "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 2 Definicja i algorytmu Ściśle określony tok postępowania gwarantujący rozwiązanie określonego problemu na drodze wykonania skończonej liczby operacji własności: uniwersalny skończony jednoznaczny zupełny wykonalny zapisany w języku wykonawcy zlecane operacje są znane wykonawcy "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 3 1

Notacje algorytmu Języki naturalne polski, angielski, etc. wzory matematyczne pseudojęzyk Schematy blokowe (diagramy przepływu) - graficzna prezentacja algorytmu zapisanego w języku naturalnym Języki programowania maszynowy (wewnętrzny) asembler (język symboliczny) języki wyższego rzędu "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 4 Język schematów blokowych Początek sieci działań (schematu). W schemacie może występować tylko jeden taki element. Blok wejścia-wyjścia - oznacza czynność wprowadzania danych i przyporządkowywania ich zmiennym używanym w dalszej części programu albo czynność wyprowadzania wyników obliczeń. Napis wewnątrz określa rodzaj czynności (np. czytaj, pisz) oraz nazwy zmiennych i stałych. Element (blok) przetwarzania (obliczeniowy) oznacza wykonanie operacji ( lub zbioru operacji). Wewnątrz bloku określa się rodzaj czynności przetwarzania i ich argumenty. Blok decyzyjny (warunkowy, alternatywny, przełącznik) - oznacza element wyboru jednego z dwóch wariantów dalszego wykonywania programu. Wybór jest dokonywany na podstawie wyniku sprawdzenia warunku (b ędącego wyrażeniem logicznym) umieszczonego wewnątrz. Blok ten powinien zawsze posiada ć dwa wyjścia opisane "T" (Tak, True) i "N" (Nie, False). Łącznik wewnątrzstronicowy - służy do łączenia odrębnych części schematu znajdujących się na tym samym arkuszu. Ułatwia zachowanie przejrzystości schematu. Komplementarne elementy oznacza się tym samym symbolem. Zakończenie wykonywania czynności. "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 5 Algorytm liniowy Obliczenie pola prostokąta jest dla każdego bardzo prostym zadaniem. Jest oczywiste, że pole prostokąta równe jest iloczynowi długości jego boków, czyli P = ab Na rysunku z lewej strony przedstawiono zbiór (sekwencję) prostych czynności jakie należy wykonać, w określonej kolejności, aby obliczyć pole prostokąta. Jest to Zapis w pseudokodzie: POCZĄTEK Czytaj(a,b) P := a*b Pisz(P) KONIEC "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 6 2

Algorytm rozgałęziony Równanie kwadratowe : ax 2 + bx + c = 0 można rozwiązać różnymi metodami. Jedną z nich jest zastosowanie wyróżnika (tzw. delty). W przykładowym algorytmie oznaczony jest literą D. W zależności od wartości tego wyróżnika można rozpatrywać następujące sytuacje: Jeśli D > 0 to równanie posiada dwa pierwiastki x1 i x2: Jeśli D = 0 wtedy równanie posiada jeden pierwiastek. Jeśli D < 0 to wówczas równanie nie posiada rozwiązań rzeczywistych (istnieją tylko pierwiastki urojone - patrz akademicki zakres matematyki "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 7 Algorytm z cyklem Algorytm poszukiwania najmniejszej liczby w n elementowym zbiorze liczb a1, a2,..., an Jest to także algorytm z cyklem (algorytm z pętlą). Analogicznie post ępując wyszukamy także wartość maksymalną. Zmienna pomocnicza i pełni rolę licznika pętli. Algorytm w języku naturalnym: 1. Przyjmujemy i = 1 i idziemy do etapu 2. 2. Przyjmujemy Min = 1 i idziemy do następnego etapu. 3. Sprawdzamy czy i < n. Jeśli tak to przechodzimy do etapu 4. W przeciwnym przypadku ko ńczymy poszukiwanie i podajemy wartość Min. 4. Zwiększamy i o 1 ( aktualizacja licznika p ętli) i przechodzimy do kolejnego etapu. 5. Porównujemy ai (kolejna liczba z przeszukiwanego zbioru) z bieżącą wartością Min.. Jeśli ai >= Min to przechodzimy do etapu 3. W przeciwnym przypadku przechodzimy do etapu 2 (czyli dotychczasowy element minimalny zostanie zastąpiony kolejnym mniejszym) "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 8 Język programowania Jest to notacja dla której opracowano program automatycznego przekładu (translator) na język maszynowy (wykonawcy) Podstawowe techniki translacji: kompilacyjna interpretacyjna "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 9 3

Translacja kompilacyjna EDYTOR KOMPILATOR.obj.exe BIBLIOTEKARZ.lib LINKER "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 10 asemblery Fortran HISTORIA Algol-60 Pascal Modula 2 C Loglan Loglan Simula-67 Ada Ada C++ C++ inne inne języki języki hybrydowe Simula-67: lata 60-te Smalltalk: lata 70-te, rozwój w latach 90-tych PASCAL, C: lata 70-te Ada: początek lat 80 C++: początek lat 80-tych Java: połowa lat 90-tych popularność programowania obiektowego: lata 90 Smalltalk Java Java "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 11 Jakość oprogramowania Poprawność (correctness) program ma robić dokładnie (i poprawnie) to, co zostało zdefiniowane w specyfikacji Odporność (robustness) program ma zachowywać się sensownie w każdej (nawet nieprzewidzianej) sytuacji Modyfikowalność i rozszerzalność program musi być łatwo dostosowywalny do zmian w specyfikacji Możliwość wielokrotnego użycia elementów projektu i programu (reusability) typowe fragmenty programu muszą dać się łatwo użyć w innych programach lub w tym samym programie Kompatybilność Efektywność Przenaszalność "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 12 4

Jak osiągnąć cele jakości oprogramowania? Modularność, programowanie strukturalne, wielokrotny użytek procedur (funkcji) Pascal, Modula 2, C Wielokrotny użytek całych struktur danych, ochrona danych Modula 2 Wielokrotny użytek struktur danych i obiektów, hermetyzacja poprzez klasy i dziedziczenie języki obiektowe Użycie metodologii obiektowej (od analizy, poprzez projekt do programu) ->następny semestr: przyspiesza proces tworzenia systemu poprzez wielokrotne użycie elementów ułatwia modyfikowalność i rozszerzalność pozwala szybko stworzyć prototyp "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 13 Krótka historia języka C 1969 język BCPL; Martin Richards z University Mathematical Laboratories w Cambridge; dla pierwszej instalacji systemu operacyjnego UNIX 1970 język B zdefiniowany dwa lata wcześniej przez Kena Thompsona dla pierwszego systemu UNIX działającego na DEC PDP-7. 1972 definicja języka C przez Dennisa M. Ritchie z Bell Laboratories w New Jersey dla systemu UNIX działającego na minikomputerze DEC PDP- 11. "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 14 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*= =================*/ /* Między tymi znaczkami można pisać, co się chce - to komentarz*/ #include < stdio.h> /* znaczek # - polecenie(dyrektywa) translatora*/ void main (void) { /* poczatek definicji funkcji głównej programu */ char x[100]; /* deklaracja zmiennej tekstowej - na Twoja odpowiedz na pozdrowienie komputera */ printf("witaj!\r\n"); /*komputer wypisuje pozdrawienie */ scanf("%s",x); /* i czeka na Twoja odpowiedz z klawiatury */ } /* koniec instrukcji zlozonej */ Repertuar zdań tekstu programu w języku C: KOMENTARZE, DYREKTYWY TRANSLATORA, DEKLARACJE (DEFINICJE) OBIEKTÓW, INSTRUKCJE "Metody i języki programowania. Programowanie strukturalne", Tadeusz Wilusz, 2004 15 5