Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej



Podobne dokumenty
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 9 Rekurencja

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

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

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

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

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Poprawność algorytmów

Algorytm. a programowanie -

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

Zapisywanie algorytmów w języku programowania

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

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

Sortowanie przez wstawianie Insertion Sort

INFORMATYKA SORTOWANIE DANYCH.

Podstawy programowania 2. Temat: Funkcje i procedury rekurencyjne. Przygotował: mgr inż. Tomasz Michno

Podstawy Informatyki. Sprawność algorytmów

1 Wprowadzenie do algorytmiki

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

KONSPEKT ZAJĘĆ KOŁA INFORMATYCZNEGO LUB MATEMATYCZNEGO W KLASIE III GIMNAZJUM LUB I LICEUM ( 2 GODZ.)

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

Algorytmy. Programowanie Proceduralne 1

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

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

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

Jeszcze o algorytmach

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

Typy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:

ALGORYTMY I PROGRAMY

Języki programowania zasady ich tworzenia

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

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

WYMAGANIA EGZAMINACYJNE Egzamin maturalny z INFORMATYKI

Złożoność algorytmów. Wstęp do Informatyki

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy. Programowanie Proceduralne 1

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

Programowanie w VB Proste algorytmy sortowania

Laboratorium nr 1. i 2.

Wykład z Technologii Informacyjnych. Piotr Mika

Temat 20. Techniki algorytmiczne

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

2.8. Algorytmy, schematy, programy

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

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

Sposoby przedstawiania algorytmów

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Algorytmy sortujące i wyszukujące

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

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

TEORETYCZNE PODSTAWY INFORMATYKI

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Technologie informacyjne - wykład 12 -

Algorytm. Krótka historia algorytmów

Analiza algorytmów zadania podstawowe

Algorytmy. wer Wojciech Myszka 30 listopada 2008

9 10 = U1. Przykład dla liczby dziesiętnej ( 9): negacja 1001= =10110 U1. Podsumowując: w zapisie dziesiętnym

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

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

WYMAGANIA EDUKACYJNE Z INFORMATYKI dla klasy III gimnazjalnej, Szkoły Podstawowej w Rychtalu

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Wybrane wymagania dla informatyki w gimnazjum i liceum z podstawy programowej

Algorytmika i pseudoprogramowanie

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

Laboratorium nr 7 Sortowanie

Informatyka klasa III Gimnazjum wymagania na poszczególne oceny

Sortowanie - wybrane algorytmy

Rekurencja. Przygotowała: Agnieszka Reiter

Programowanie komputerów

Ciasto z serem i musem truskawkowym

Język programowania PASCAL

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

INFORMATYKA POZIOM ROZSZERZONY

Z nowym bitem. Informatyka dla gimnazjum. Część II

Wprowadzenie do algorytmiki

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Definicje. Algorytm to:

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

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.

Rekurencja. Przykład. Rozważmy ciąg

Technologia informacyjna Algorytm Janusz Uriasz

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

1.1 Definicja procesu

INFORMATYKA

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

Orzechy włoskie uprażyć na suchej patelni i bardzo drobno posiekać.

6. Pętle while. Przykłady

W szkole podstawowej materiał przedstawiony powinien być w następującej kolejności:

Programowanie obiektowe

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Wstęp do programowania

Informatyka 1. Złożoność obliczeniowa

Transkrypt:

Przeglad podstawowych pojęć (1) Podstawy informatyki (3) dr inż. Sebastian Pluta pluta@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Program komputerowy to sekwencja instrukcji wykonywanych przez komputer w pewnym ustalonym porzadku instrukcje programu zapisane sa w kodzie maszynowym Oprogramowanie jest pojęciem szerszym od programu: jest to zbiór jednego lub kilku programów i danych potrzebnych w czasie ich działania Proces (ang. process) to twór abstrakcyjny, który składa się z: wykonywanego (działajacego) programu zapisanego w sekcji kodu bieżacych danych o jego stanie i zasobach: licznika rozkazów reprezentujacego bieżac a czynność stosu przechowujacego dane tymczasowe sekcji danych Podstawy informatyki (3) p.1 Przeglad podstawowych pojęć (2) Przeglad podstawowych pojęć (3) Watek (ang. thread) jest podstawowa jednostka wykorzystania procesora składajac a się z: licznika rozkazów stosu watek współużytkuje wraz z innymi równorzędnymi watkami: sekcję kodu sekcję danych niektóre zasoby systemu operacyjnego, np. otwarte pliki i sygnały równorzędne watki wraz z współdzielonymi zasobami to zadanie Podstawy informatyki (3) p.2 System operacyjny (ang. Operating System, OS) to oprogramowanie odpowiedzialne za bezpośrednia kontrolę i zarzadzanie zasobami sprzętowymi. OS zapewnia dla innych aplikacji (programów): możliwość ich uruchomienia dostęp do zasobów sprzętowych w przypadku systemów wieloprocesowych i wieloużytkownikowych podział zasobów i ich ochronę. Jadro systemu operacyjnego (ang. kernel) to centralna część systemu operacyjnego, działajaca zawsze. Realizuje: zarzadzanie pamięcia zarzadzanie procesami zarzadzanie urzadzeniami wejścia wyjścia obsługę systemu plików Podstawy informatyki (3) p.3

Algorytmy (1) Algorytmy (2) Algorytm jest to sformalizowany zestaw czynności które należy wykonać żeby uzyskać dany rezultat, w szczególności aby wyliczyć wynik na podstawie danych, np.: Ciasto bananowo-jabłkowe Pychotka 4 jajka ubić z 1 szklanka cukru na puszysta pianę, następnie mieszajac dodawać po łyżeczce 1 i 4 1 szklanki m aki zmieszanej z łyżeczk a proszku do pieczenia. 200g margaryny rozpuścić i ostudzić, następnie dodać do ciasta. Na blachę tortowa z kominkiem (natłuszczona i posypana mak a) wylać połowę ciasta, na to pokrojone w cienkie plasterki 4 jabłka (obrane i pozbawione gniazd nasiennych), na to pokrojonego w plasterki banana, następnie rodzynki i wiórki kokosowe (w ilości wedle uznania). Przykryć to pozostałym ciastem i posypać wiórkami kokosowymi (również w ilości wedle uznania). Piec 45 60 minut w temp. 200 stopni C. Podstawy informatyki (3) p.4 poziom szczegółowości algorytmu musi być tak dobrany, aby być zrozumiałym dla sprzętu algorytm musi się składać z zestawu akcji podstawowych dane potrzebne do przeprowadzenia procesu musza być dopuszczalne dla algorytmu opisujacego proces czyli musza być zgodne z pewna specyfikacja algorytm dla sprzętu pozbawionego czynnika ludzkiego wymaga precyzyjnego określenia każdej akcji podstawowej algorytmy sa rozwiazaniami pewnych rodzajów zadań zwanych zadaniami algorytmicznymi lub obliczeniowymi Podstawy informatyki (3) p.5 Algorytmy (3) Struktury sterujace (1) algorytm powinien dać poprawne rozwiazanie dla każdych dopuszczalnych danych, w tym nieskończonych proces opisywany przez bardzo krótki algorytm może trwać bardzo długo, np. algorytm sumowania wydatków i przychodów w firmie: zanotuj na boku liczbę 0; przewertuj kolejno faktury w firmie, dodajac kwotę z faktury do liczby na boku przyjmujac kwotę z faktur wystawionych dla firmy jako ujemne, a kwoty z faktur wystawionych przez firmę jako dodatnie; kiedy obsłużysz ostatnia fakturę, przedstaw wartość na boku jako wynik; Bezpośrednie następstwo wykonaj A a potem B Wybór warunkowy jeśli Q, to wykonaj A, w przeciwnym razie wykonaj B, lub jeśli Q, to wykonaj A, gdzie Q jest pewnym warunkiem Iteracja: ograniczona wykonaj A dokładnie N razy, gdzie N jest pewna liczba warunkowa (nieograniczona) wykonuj A aż do Q lub dopóki Q, wykonuj A, gdzie Q jest pewnym warunkiem Podstawy informatyki (3) p.6 Podstawy informatyki (3) p.7

Struktury sterujace (2) Struktury sterujace (3) Algorytm sumowania wydatków i przychodów w firmie, dla listy N faktur: zanotuj na boku liczbę 0; wskaż na pierwszą fakturę z listy; sprawdź, czy wskazana faktura jest wystawiona dla firmy, jeśli tak, to dodaj do liczby na boku kwotę ze wskazanej faktury pomnożoną przez 1; w przeciwnym razie dodaj do liczby na boku kwotę ze wskazanej faktury; wskaż na następną fakturę; sprawdź, czy wskazana faktura jest wystawiona dla firmy, jeśli tak, to dodaj do liczby na boku kwotę z wskazanej faktury pomnożoną przez 1; w przeciwnym razie dodaj do liczby na boku kwotę ze wskazanej faktury; podaj wartość liczby na boku jako wynik; Przedstawiony algorytm działa dla danych wejściowych o N > 0 Podstawy informatyki (3) p.8 Podstawy informatyki (3) p.9 Struktury sterujace (4) Schematy blokowe algorytmy moga zawierać iteracje zagnieżdżone, np.: wykonaj A dokładnie N razy, gdzie A jest w postaci wykonuj B aż do Q wykonaj A dokładnie N razy jest tu pętla zewnętrzna wykonuj B aż do Q jest pętla wewnętrzna instrukcja skoku skocz do G, gdzie G oznacza pewne miejsce w algorytmie TAK dodaj wskazywaną kwotę pomnożoną przez -1 do "na boku" Start zanotuj "na boku" 0; wskaż na pierwszą fakturę; czy faktura jest dla firmy? NIE dodaj wskazywaną kwotę do "na boku" wypisz liczbę "na boku" TAK czy koniec faktur? NIE Podstawy informatyki (3) p.10 Stop Podstawy informatyki (3) p.11

Sortowanie (1) Sortowanie (2) dane do sortowania: nieuporzadkowana lista elementów rezultat sortowania: lista elementów uporzadkowana w ustalonej kolejności, np. rosnacej algorytm sortowania babelkowego dla N elementów: wskaż na pierwszy element; porównaj wskazany element z następnym elementem; jeśli porównane elementy są w niewłaściwej kolejności, zamień je miejscami; wskaż następny element; algorytm sortowania przez liniowe wstawianie dla N elementów: zapisz na boku 0; znajdź maksymalny element dla elementów od elementu 1 do elementu N na boku ; zamień znaleziony maksymalny element z elementem ostatnim z przedziału poszukiwań z poprzedniego punktu; dodaj do liczby na boku 1; Podstawy informatyki (3) p.12 Podstawy informatyki (3) p.13 Sortowanie (3) Podprogramy algorytm znajdowania maksymalnego elementu od elementu 1 do elementu M: zapisz na boku pierwszy element; wskaż na pierwszy element; wykonaj co następuje M 1 razy: wskaż na następny element; jeśli wskazany element jest większy od zapisanego na boku, zapisz wskazany element na boku ; algorytm szukania największego elementu w odniesieniu do algorytmu sortowania przez liniowe wstawianie jest podprogramem (procedura) zalety podprogramów: możliwość wykonania tego samego algorytmu dla różnych danych uproszczenie zapisu większych algorytmów znaczne uproszczenie czytania i analizowania algorytmów podprogram jest rozszerzeniem istniejacej listy instrukcji elementarnych łatwiejszy proces projektowania algorytmów poprzez zbliżanie się do celu stopniowo poprzez użycie podprogramów jeszcze nieistniejacych Podstawy informatyki (3) p.14 Podstawy informatyki (3) p.15

Rekurencja (1) Rekurencja (2) rekurencja to zdolność podprogramu do wywołania samego siebie algorytm rekurencyjny obliczania n! (silnia): n! = n (n 1) (n 2)... 2 1 n! = n (n 1)! algorytm podprogramu liczacego silnię dla liczby n podprogram silnia z n jeśli n jest 0, to wynikiem jest 1 w przeciwnym razie wynikiem jest n pomnożone przez wartość podprogramu silna z n 1 wróć; algorytm główny obliczajacy 10! : wywołaj silnia z 10 Podstawy informatyki (3) p.16 algorytm iteracyjny obliczania n! (silnia): podprogram silnia z n zapisz na boku 1; zapisz na drugim boku 2; wykonaj co następuje n 1 razy: pomnóż na drugim boku przez na boku i wynik umieść na boku ; dodaj do na drugim boku 1; wróć, wynik jest zapisany na boku ; algorytm główny obliczajacy 10! : wywołaj silnia z 10 Podstawy informatyki (3) p.17 Wieże Hanoi (1) Wieże Hanoi (2) zadanie polega na przeniesieniu wszystkich (N) krażków ze słupka A na słupek B przy pomocy słupka C w ten sposób, że na krażek mniejszy nie można położyć większego po uzyskaniu takiego stanu dalsze zadanie sprowadza się do przenieś wszystkie (N 1) krażki ze słupka C na słupek B przy pomocy słupka A algorytm ma za zadanie wypisać sekwencję kroków potrzebnych do wykonania zadania Podstawy informatyki (3) p.18 Podstawy informatyki (3) p.19

Wieże Hanoi (3) algorytm rekurencyjny podprogramu wypisujacego sekwencję kroków stanowiacych rozwiazanie zadania Wież Hanoi: podprogram przenieś N z X na Y używając Z jeśli N jest 1, to wypisz X -> Y ; w przeciwnym razie wykonaj: wywołaj przenieś N 1 z X na Z używając Y ; wypisz X -> Y ; wywołaj przenieś N 1 z Z na Y używając X; wróć; algorytm główny dla 3 krażków: wywołaj przenieś 3 z A na B używając C; Podstawy informatyki (3) p.20