Algorytmy od problemu do wyniku

Podobne dokumenty
Algorytm. a programowanie -

Języki programowania zasady ich tworzenia

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

Język programowania PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Technologie informacyjne - wykład 12 -

Definicje. Algorytm to:

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie komputerów

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

ALGORYTMY I PROGRAMY

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

Język ludzki kod maszynowy

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

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

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

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

Wprowadzenie do algorytmiki

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

Algorytmy. Programowanie Proceduralne 1

Podstawy i języki programowania

Podstawy programowania wykład

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Algorytmy. Programowanie Proceduralne 1

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

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

EGZAMIN MATURALNY Z INFORMATYKI 17 MAJA 2016 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Opis problemu i przedstawienie sposobu jego rozwiązania w postaci graficznej. Gimnazjum nr 3 im. Jana Pawła II w Hrubieszowie 1

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

1 Wprowadzenie do algorytmiki

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

Wstęp do programowania

Algorytm. Krótka historia algorytmów

Języki i metodyka programowania

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Wykład z Technologii Informacyjnych. Piotr Mika

2.8. Algorytmy, schematy, programy

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Podstawy programowania

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

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

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

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 w języku Python. Grażyna Koba

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

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

Podstawy programowania w języku C

Algorytmika i pseudoprogramowanie

Podstawy Informatyki. Programowanie. Inżynieria Ciepła, I rok. Co to jest algorytm? Istotne cechy algorytmu

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

PORADNIK METODYCZNY DLA NAUCZYCIELI GIMNAZJUM JAK WYKORZYSTAC PAKIET DYDAKTYCZNY DO NAUCZANIA

Wprowadzenie do programowania

KONSTRUKCJA KOMPILATORÓW

Informatyka. dr inż. Paweł A. Mazurek

Jerzy Nawrocki, Wprowadzenie do informatyki

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Algorytm. Krótka historia algorytmów

Zapisywanie algorytmów w języku programowania

KARTA KURSU. Wstęp do programowania

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

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

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

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

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

Podstawy Programowania Algorytmy i programowanie

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

ForPascal Interpreter języka Pascal

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

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

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

Zadanie analizy leksykalnej

Podstawy Informatyki Języki programowania c.d.

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

Wstęp do programowania

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

Podstawy Informatyki. Programowanie. Metalurgia, I rok. Co to jest algorytm? Istotne cechy algorytmu

Zapisywanie algorytmów w języku programowania wysokiego poziomu

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

Definicja algorytmu brzmi:

PODSTAWY ALGORYTMIKI

Jerzy Nawrocki, Wprowadzenie do informatyki

EGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

Programowanie, algorytmy i struktury danych

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

Cel stosowania metod i środków informatyki

EGZAMIN MATURALNY Z INFORMATYKI 13 MAJA 2019 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

Podstawy programowania

Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6

tematyka zajęć - pracuje z powłoką graficzną systemu operacyjnego - wykonuje operacje na plikach i katalogach w praca w systemie operacyjnym

Ilość cyfr liczby naturalnej

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu Tablice (wstęp) Rzut okiem na języki programowania

Transkrypt:

Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie programu (efekt plik typu.exe). 5) Testowanie programu dla różnych grup danych.

Algorytmy od problemu do wyniku Ad 1) Co program ma robid: - jakie dane na wejściu - jakie wyniki na wyjściu Przykład: a) Program oblicza wartośd funkcji e x dla dowolnego x, z rozwinięcia w szereg Taylora e x = n=0 x n n!

Analiza problemu, algorytm Wartości funkcji składowych można policzyd iteracyjnie: x n 1 dla n = 0 = x x x (n razy) dla n > 0 bądź rekurencyjnie: x n 1 dla n = 0 = x n 1 x dla n > 0

Analiza problemu, algorytm cd. Podobnie dla drugiej funkcji iteracyjnie: n! = lub rekurencyjnie: n! = 1 dla n = 0 1 2 n dla n > 0 1 dla n = 0 n 1! n dla n > 0

Analiza problemu, algorytm cd. Bardzo ważne: kryterium zakooczenia obliczeo! Np. dla małego ε n+1 k=0 x k k! n k=0 x k k! < ε lub

Analiza problemu, algorytm cd. x k+1 k + 1! xk < ε k! Zauważmy, że n-ty wyraz szeregu ma postad: x n n! = xn 1 n 1! x n Pytanie: jak liczyd sumę w algorytmie?

Algorytmy cd. b) Program wyszukuje w bazie danych WME studentów ze średnią >=4 i sporządza ich listę. EXCEL funkcje warunkowe i That s it! Ad 2): Sposób rozwiązania: musimy wiedzied, czy rozwiązanie istnieje i wiedzied, czy jest jednoznaczne

Etapy tworzenia programu - cd Ad 3) Platforma programisty (np. edytor tekstowy), powstaje tzw. kod źródłowy (nie program!) Ad 4) Kompilacja + konsolidacja = plik wykonywalny (.exe) Ad 5) Testowanie. Dane kontrolne.

Algorytm Zbiór akcji wykonanych w określonej kolejności na obiektach. Zbiór reguł postępowania (przepis), mający na celu w skooczonej liczbie kroków przetworzenie informacji wejściowych (dane) w informacje wyjściowe (wyniki). Wartości wspólne dla algorytmu i programu: poprawnośd skooczonośd

Modularyzacja algorytmów Każdy algorytm można podzielid na moduły. Większośd języków programowania: - podprogramy - procedury Programowanie strukturalne. Programowanie obiektowe (OOP Object Oriented Programming)

Schemat Dane Wyniki Dane Obiekty (dane) Problem (zadanie) Analiza problemu Algorytm Program Wyniki Cel Moduły Procedury Akcje (instrukcje)

Jeszcze o algorytmie Raz opracowany dla danego problemu dobry dla wszystkich problemów tej samej klasy Przed opracowaniem algorytmu: czy zadanie jest rozwiązalne i czy rozwiązanie jest jednoznaczne? Przy zadaniach inżynierskich: analiza matematyczna z użyciem metod numerycznych Powinien uwzględniad wszystkie warianty przebiegu obliczeo z powodu różnych danych

Schematy blokowe (sieci działao) Graficzny sposób przedstawienia algorytmu. Składa się ze ściśle określonych figur geometrycznych Stanowi brakujące ogniwo między sformułowaniem zadania w języku użytkownika a przedstawieniem go w postaci programu Umożliwia szybkie orientowanie się w organizacji algorytmu.

Niektóre symbole stosowane w schematach blokowych I Przetwarzanie; skrzynka operacyjna (instrukcja). NIE FALSE W TAK TRUE Decyzja; skrzynka warunkowa; określa wybór jednej z alternatywnych dróg działania

Niektóre symbole stosowane w schematach blokowych cd. WE/WY Skrzynka wprowadzania i (lub) wyprowadzania danych START Skrzynki graniczne STOP

Algorytm liniowy Przykład 1: suma dwóch liczb START Wprowadź (a) Wprowadź (b) S=a+b Wypisz (S) STOP

Przykład 2: Algorytm z rozgałęzieniami Program rozwiązuje równanie liniowe ax+b=c dla dowolnych współczynników a, b, c. Analiza problemu: a=0 i b=0: nieskooczenie wiele rozwiązao a=0 i b<>0: równanie sprzeczne a<>0: x=-b/a

Algorytm z rozgałęzieniami START Podaj (a) Podaj (b) TAK a=0? NIE TAK b=0? NIE x:=-b/a Pisz NWR Pisz RS Pisz (x) STOP

Algorytm z rozgałęzieniami Pseudokod w umownym strukturalnym języku programowania. Podaj (a) Podaj (b) Jeśli a=0 To Jeśli b=0 to Pisz ( Nieskooczenie wiele rozwiązao ) W przeciwnym razie Pisz ( Równanie sprzeczne ) W przeciwnym razie Początek x:=a/b Pisz (x) Koniec

P3: Algorytm z pętlą suma 5 kolejnych liczb naturalnych START S:=0 i:=1 S:=S+i i:=i+1 NIE i>5 TAK Pisz (s) STOP

P 4: Algorytm z pętlą - maksymalny element z ciągu danych n liczb a 1, a 2,, a n (wyrazy ciągu dalej niepotrzebne) START Czytaj (n) Czytaj (a 1 ) max:=a 1 i:=2 Czytaj (a i ) a i >max? TAK NIE i:=i+1

max:=a i i=n NIE TAK Pisz (max) STOP

P 5: Algorytm z pętlą - maksymalny element z ciągu danych n liczb a 1, a 2,, a n (wyrazy ciągu dalej potrzebne) START i:=1 Czytaj (a i ) i=n TAK NIE i:=i+1

max:=a 1 i:=2 a i >max? NIE TAK max:=a i i:=i+1 i=n NIE TAK Pisz (max) STOP

Lista pracowników z dośw. komputerowym, zatrudnionych od co najmniej 5 lat START LiczPrac:=0 NIE Drukuj (LiczPrac) Czy są jeszcze jakieś rekordy TAK Czytaj rekord pracownika STOP

TAK Czy ma dośw. komp? NIE TAK Wydrukuj nazwisko pracownika Czy zatrudn. >5 lat? NIE LiczPrac:=LiczPrac+1

Zadanie domowe Opracowad schemat blokowy dla algorytmu Euklidesa znajdowania Największego Wspólnego Dzielnika (NWD) dla dwóch liczb całkowitych: Jeśli a>b, to NWD(a, b)=nwd(b, a mod b) Działanie mod zwraca resztę z dzielenia całkowitego Kryterium zakooczenia algorytmu: Gdy b=0, to NWD(a, b)=a

Języki programowania Język przeznaczony do zapisu algorytmu komputerowego. Ma określone: alfabet składnię (syntaktykę) reguły znaczeniowe (semantyka) Przykład: - notacja Backusa-Naura - diagramy syntaktyczne

Notacja Backusa-Naura <, > symbol definiowany ::= z definicji równa się / albo <cyfra>::=0/1/2/3/4/5/6/7/8/9 <litera>::=a/b/c/ /z/a/b/c/ /Z <identyfikator>::=<litera> / <identyfikator><litera> / <identyfikator><cyfra>

Diagramy syntaktyczne 1) Identyfikator Litera Litera Cyfra

2) Liczba Liczba całkowita bez znaku cyfra Liczba bez znaku Liczba całkowita bez znaku. cyfra E + - Liczba całkowita bez znaku

Klasyfikacja języków programowania poziom mikroprogramowania język maszynowy (wewnętrzny) język asemlerowy języki wyższe (proceduralne): - języki trzeciej generacji (np. BASIC, Pascal, FORTRAN, C) - języki czwartej generacji deklaratywne, Np. w bazach danych: FIND ALL RECORDS WHERE LASTNAME= TUSK języki visual (np. Visual Basic, Java, C++, Pascal)

Translator Program tłumaczący kod źródłowy na program wynikowy (w języku wewnętrznym). Trzy typy: asemblery z języka asemblerowego na wewnętrzny kompilatory tłumaczą cały program przed wykonaniem interpretery czyta, tłumaczy i wykonuje jedną linię po drugiej z kodu źródłowego

Zadania translatorów 1) Rozpoznanie w programie źródłowym jednostek składniowych języka 2) Analiza poprawności składni programu 3) Informowanie użytkownika o zaistniałych błędach 4) Powiązanie identyfikatorów (zmiennych, etykiet itd.) z adresami w pamięci operacyjnej 5) Łączenie przekładu z używanymi podprogramami bibliotecznymi (konsolidacja) 6) Przekształcanie wyrażeo arytmetycznych w ciąg rozkazów języka wewnętrznego, z uwzględnieniem ogólnych zasad kolejności działao

Moduł źródłowy 1 Moduł wynikowy 1 Moduł źródłowy 2 Kompilator Moduł wynikowy 2 Program łączący Moduł źródłowy 3 Moduł wynikowy 3

PASCAL Program Szukanie_Max; Var i, n: byte; a, max: real; begin write ( Ile wyrazów ma ciąg? ); readln (n); readln (a); max:=a; for i:=2 to n do begin readln (a); if a > max then max:=a end; {for} write (max); end. BASIC INPUT n INPUT a LET max=a FOR i=2 TO n INPUT a IF a > max THEN LET max=a NEXT i PRINT max