Podstawy Informatyki. Inżynieria Ciepła, I rok. Iteracja warunkowadopóki(while) Blok instrukcji. Pascal: begin instrukcja1; C: { end;

Podobne dokumenty
Podstawy Informatyki. Metalurgia, I rok. Wykład 5 Rekurencja

Podstawy Informatyki. Metalurgia, I rok. Rekurencja. skomplikowane zadanie. Rekurencja

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

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

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

WHILE (wyrażenie) instrukcja;

Podstawy Informatyki

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

do instrukcja while (wyrażenie);

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

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

Wykład z Technologii Informacyjnych. Piotr Mika

Złożoność obliczeniowa zadania, zestaw 2

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

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

WHILE (wyrażenie) instrukcja;

LISTA 5. C++ PETLE for, while, do while

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Konstrukcje warunkowe Pętle

Metody numeryczne w przykładach

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

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Programowanie i techniki algorytmiczne

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Programowanie Delphi obliczenia, schematy blokowe

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

Algorytmy i struktury danych. Wykład 4

Poszukiwanie liniowe wśród liczb naturalnych

3. Instrukcje warunkowe

Warsztaty dla nauczycieli

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

1 Wersja testu A 18 września 2014 r.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Uwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].

Definicje. Algorytm to:

Jarosław Wróblewski Matematyka Elementarna, lato 2012/13. Czwartek 28 marca zaczynamy od omówienia zadań z kolokwium nr 1.

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

Matematyka stosowana i metody numeryczne

Wstęp do Informatyki

Podstawy Programowania C++

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

Instrukcje pętli przykłady. Odgadywanie hasła. 1) Program pyta o hasło i podaje adres, gdy hasło poprawne lub komunikat o błędnym haśle.

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Wprowadzenie komentarzy do programu

Programowanie - instrukcje sterujące

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Jeszcze o algorytmach

Jarosław Wróblewski Matematyka Elementarna, zima 2013/14. Czwartek 21 listopada zaczynamy od omówienia zadań z kolokwium nr 2.

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Język C część 2. Podejmowanie decyzji w programie. if else. switch

Technologia informacyjna Algorytm Janusz Uriasz

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

9. Podstawowe narzędzia matematyczne analiz przestrzennych

Zapisywanie algorytmów w języku programowania

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

TEORETYCZNE PODSTAWY INFORMATYKI

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

PROGRAMOWANIE W C++ ZADANIA

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

TEORETYCZNE PODSTAWY INFORMATYKI

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

I) Reszta z dzielenia

ZADANIE 1. Ważenie (14 pkt)

Podstawowe I/O Liczby

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

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

Temat 20. Techniki algorytmiczne

Podstawy Informatyki. Sprawność algorytmów

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

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

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

Napisz program, który dla podanej na standardowym wejściu temperatury w stopniach Fahrenheita wypisze temperaturę w stopniach Celsjusza.

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

Dydaktyka matematyki, IV etap edukacyjny (ćwiczenia) Ćwiczenia nr 7 Semestr zimowy 2018/2019

4. Postęp arytmetyczny i geometryczny. Wartość bezwzględna, potęgowanie i pierwiastkowanie liczb rzeczywistych.

Podstawy programowania

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Wstęp do programowania

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

Jarosław Wróblewski Matematyka Elementarna, zima 2012/13

Programowanie strukturalne i obiektowe. Funkcje

... (środowisko) minut

Wstęp do Informatyki

Rzut oka na współczesną matematykę spotkanie 3: jak liczy kalkulator i o źródłach chaosu

Programowanie - wykład 4

Wymagania edukacyjne z matematyki w XVIII Liceum Ogólnokształcącym w Krakowie, zakres podstawowy. Klasa 1

Część 4 pętla FOR. Instrukcja pętli iteracyjnej FOR. Postać pętli for jest następująca: a)dla jednej instrukcji wykonywanej przez pętlę.

Podstawy Programowania C 02

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Transkrypt:

Podstawy Informatyki Inżyria Ciepła, I rok Wykład 8 Algorytmy, cd Instrukcja decyzyjna wybierz Zda wybierz służy do wyboru jednej z kilku możliwości Ma ono postać: wybierz przełącznik z wartość_1: zda_1 wartość_n: zda_n akcja awaryjna wybierz p z 1: wykonaj wariant pierwszy : wykonaj wariant drugi : wykonaj wariant trzeci wydrukuj komunikat o błędzie Program cenzurka1 wybierz ocena z : pisz( bardzo dobry ); 4: pisz( dobry ); : pisz( dostateczny ); : pisz( dostateczny ); pisz( blad danych ) Koc Program cenzurka jeżeli ocena = to pisz( bardzo dobry ) jeżeli ocena = 4 to pisz( dobry ) jeżeli ocena = to pisz( dostateczny ) jeżeli ocena = to pisz( dostateczny ) pisz( blad danych ) Blok instrukcji W przypadku, gdy w danej instrukcji, np instrukcji warunkowej, powinna wykonać się więcej niż jedna instrukcja, wówczas stosowany jest blok instrukcji C: { } ; instrukcja; instrukcja; Pascal: begin ; end; instrukcja; instrukcja; Iteracja warunkowadopóki(while) dopóki(wyraże) wykonuj ; wyraże Instrukcja1 może wykonać się ani jeden raz!

Działa pętli: Obliczana jest wartość wyrażenia Jeśli wyraże jest równe fałszywe to jest w ogóle wykonywana Wpp wykonywana jest Ponow obliczana jest wartość wyrażenia i ponow sprawdzana jego prawdziwość itd Jeśli wyraże będzie fałszywe, to działa pętli zosta przerwane Uwaga: oblicze wartości wyrażenia odbywa się przed wykonam instrukcji1 Iteracja warunkowawykonuj aż do (do until ) wykonuj aż do(wyraże) ; wyraże Instrukcja1 musi wykonać się co najmj jeden raz! Działa pętli: Wykonywana jest Obliczana jest wartość wyrażenia Jeśli wyraże jest równe fałszywe to jest wykonywana kolejny raz Ponow obliczana jest wartość wyrażenia i ponow sprawdzana jego prawdziwość itd Jeśli wyraże będzie prawdziwe, to działa pętli zosta przerwane Uwaga: oblicze wartości wyrażenia odbywa się po wykonaniu instrukcji1 Iteracja ograniczonadla(for) dla <zmienna> od <w1<> do <w> (z krokiem <k>) wykonuj ; <zmienna> + <k> <zmienna> <w1> zmienna <w> Instrukcja1 może wykonać się ani jeden raz! Działa pętli: Instrukcje wejścia/wyjścia Wykona instrukcji inicjalizujących pętlę <zmienna> <w1> Sprawdze wyrażenia warunkowego <zmienna> <w> Jeśli fałsz, praca pętli zostaje zakończona, Jeśli prawda, wykonana zosta Wykona instrukcji zwiększ <zmienna> o <k> Uwaga: sprawdze wyrażenia <zmienna> <w> odbywa się przed wykonam Umożliwiają komunikowa się programu z użytkownikiem Umożliwiają czyta danych jak rówż wypisywa komunikatów i wyników prowadzonych obliczeń Np: Pascal - read(a,b); { z klawiatury wprowadzamy : np 1 } writeln(a); {drukujemy na ekra wartość a (np 1) }

Algorytm sprawdzania czy trójkąt jest prostokątny WY: trójkąt jest prostokątny We: a,b,c boki trójkąta N d = a*a + b*b? d=c*c T WY: trójkąt jest prostokątny Algorytm sprawdzania czy trójkąt jest prostokątny Program trojkat prostokatny; a,b,c,d: całkowita; pisz( podaj boki a,b,c); d:=a*a+b*b; jeżeli (d=c*c) to pisz ( trójkąt prostokątny ) pisz ( trójkąt Gdzie tkwi błąd? jest prostokątny ) Jak poprawić ten program? koc Algorytm sprawdzania parzystości liczby Algorytm sprawdzania parzystości liczby WY: x parzyste We: sprawdzana liczba x N y = (x/)*? x=y T WY: x parzyste Program parzystosc; x,y: całkowita; pisz( podaj liczbe x ); czytaj(x); y := x/; y := y*; jeżeli (x=y) to pisz ( liczba x jest parzysta ) pisz ( liczba x jest parzysta ) koc Uwaga: Program ma sens tylko dzięki własności dzielenia liczb całkowitych Sito Erastotenesa Sito Erastotenesa Wyszukiwa liczb pierwszych 1 14 16 4 18 6 0 8 1 10 4 1 1 6 1 1 14 16 4 18 6 0 8 1 10 4 1 1 6 1 Kiedy koc? Dla n

program sito a: tablica [000] elementów całkowitych i,j,n,m,x,y:całkowite pisz 'podaj górną granicę przedziału, max 1000' czytaj n m=int(sqrt(n)) {maksymalny mnoznik pierwiastek z n) dla i=1 do n wykonuj a[i]=i {podstawie kolejnych liczb do tablicy} dla j= do m wykonuj jeśli a[j] <>0 to dla i=j+1 do n wykonuj x=a[i] y=(x/j)*j {sprawdza podzielności} jeśli x=y to a[i]=0 koc koc koc pisz 'w podanym zakresie liczby pierwsze to:' dla i= do n jeśli a[i] <>0 to drukuj a[i] koc Optymalizacja algorytmów Zawsze poszukujemy najlepszego algorytmu ze względu na czas i złożoność obliczeń Wydajność czasowa algorytmu: - funkcja O(n), określająca ile czasu potrzebuje dany algorytm na rozwiąza problemu o rozmiarze n (parametr n zależy od analizowanego zagadnia, np dla sortowania tablicy, n jest liczbą danych do sortowania, itp) Program zliczający sumę elementów tablicy A[n]: Suma :=0 dla i:=0 do i:=n suma := suma + A[i] Złożoność obliczeniowa, cd Program obliczający sumę elementów tablicy dwuwymiarowej A[n,n]: Suma :=0 // 1 dla i:=0 do i:=n //1 dla j:=0 do j:=n //n suma := suma + A[i,j] //n^ Jedna instrukcja wymaga jednej jednostki czasu Złożoność obliczeniowa O(n) = n^ + n + Przyjmujemy, że złożoność obliczeniowa O(n) = n^ + n Jedna instrukcja wymaga jednej jednostki czasu Złożoność obliczeniowa O(n) = n+ Poważ najbardziej znaczącym składnikiem jest n, więc, O(n) = n Czas pracy algorytmów różnych klas c(n) c(n) 10 0 0 40 N 10 0 0 40 N 100 400 00 1600 n 104 10486 104184 1066 N! 68800 *10 18 6*10 *10 Czas działania algorytmu zależy tylko od rozmiaru danych wejściowych, ale rówż od ich wartości lub układu (rozmieszczenia) Skróce czasu obliczeń Wielokrotne mnoże zamiast potęgowania y=x y=x*x*x*x*x jest szybsze i dokładjsze niż: y=x^ gdyż funkcja potęgowania jest rozwijana jako: y=e *ln(x) a dodatkowo, funkcje ln i e x są obliczane jako sumy określonych ciągów Ze zrozumiałych przyczyn zadbuje się dalsze wyrazy ciągu, co zmjsza dokładność Tak więc często otrzymujemy wyniki: ^=6 itp

Obliczenia numeryczne Oblicza pierwiastka kwadratowego - algorytm: Oblicza pierwiastka kwadratowego: Jak obliczyć pierwiastek z x? Metoda Newtona: y+ x y= y x- liczba pierwiastkowana y - wynik pierwiastkowania Program pierwiastek kwadratowy; x,y: i : koc rzeczywista; całkowita; pisz( podaj x); y := 1; dla i:=0 do i:= 0 y:=(y+x/y)/; pisz ( pierwiastek z, x, =, y)