Laboratorium 1 Schematy blokowe



Podobne dokumenty
Algorytmy i struktury danych

Podstawy programowania

Harmonogramowanie projektów Zarządzanie czasem

Ćwiczenie nr 2 Zbiory rozmyte logika rozmyta Rozmywanie, wnioskowanie, baza reguł, wyostrzanie

Architektura Systemów Komputerowych. Sterowanie programem skoki Przerwania

KONKURSY MATEMATYCZNE. Treść zadań

WSTĘP DO PROGRAMOWANIA

JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO

Niezależnie od rodzaju materiału dźwiękowego ocenie podlegały następujące elementy pracy egzaminacyjnej:

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik technologii odzieży 311[34]

WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Logika I. Wykład 2. Działania na zbiorach

Pomiary napięć i prądów w obwodach prądu stałego

ANALOGOWE UKŁADY SCALONE

EGZAMIN MATURALNY Z MATEMATYKI MAJ 2011 POZIOM ROZSZERZONY. Czas pracy: 180 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Edycja geometrii w Solid Edge ST

ASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:

Intellect. Business Intelligence. Biblioteka dokumentów Podręcznik. Business Intelligence od 2Intellect.com Sp. z o.o.

Wyznaczanie współczynnika sprężystości sprężyn i ich układów

Zagadnienia transportowe

Test F- Snedecora. będzie zmienną losową chi-kwadrat o k 1 stopniach swobody a χ

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik ochrony fizycznej osób i mienia 515[01]

INFORMATYKA dla gimnazjum Opis założonych osiągnięć ucznia klasy trzeciej

Ćwiczenie nr 8 Elementy uzupełniające

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

Test całoroczny z matematyki. Wersja A

EGZAMIN MATURALNY Z MATEMATYKI CZERWIEC 2012 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

PODSTAWY DZIAŁANIA UKŁADÓW CYFROWYCH

Oprogramowanie klawiatury matrycowej i alfanumerycznego wyświetlacza LCD

TESTER LX 9024 (SYSTEM ALARMOWY IMPULSOWY) INSTRUKCJA OBSŁUGI

Komentarz do prac egzaminacyjnych w zawodzie technik administracji 343[01] ETAP PRAKTYCZNY EGZAMINU POTWIERDZAJĄCEGO KWALIFIKACJE ZAWODOWE

WYMAGANIA EDUKACYJNE SPOSOBY SPRAWDZANIA POSTĘPÓW UCZNIÓW WARUNKI I TRYB UZYSKANIA WYŻSZEJ NIŻ PRZEWIDYWANA OCENY ŚRÓDROCZNEJ I ROCZNEJ

PODSTAWY METROLOGII ĆWICZENIE 4 PRZETWORNIKI AC/CA Międzywydziałowa Szkoła Inżynierii Biomedycznej 2009/2010 SEMESTR 3

Transformator Elektroniczny do LED 0W-40W Współpracuje z inteligentnymi ściemniaczami oświetlenia. Instrukcja. Model: TE40W-DIMM-LED-IP64

Politechnika Białostocka

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

Instrukcja obsługi panelu operacyjnego XV100 w SZR-MAX-1SX

INSTRUKCJA WYPEŁNIANIA SPRAWOZDANIA CZĘŚCIOWEGO LUB KOŃCOWEGO

INSTRUKCJA OBSŁUGI WD2250A. WATOMIERZ 0.3W-2250W firmy MCP

HiTiN Sp. z o. o. Przekaźnik kontroli temperatury RTT 4/2 DTR Katowice, ul. Szopienicka 62 C tel/fax.: + 48 (32)

Kryteria ocen z zajęć technicznych w klasie V

STA T T A YSTYKA Korelacja

Wiedza niepewna i wnioskowanie (c.d.)

Moduł Pulpit opcji oraz Narzędzia. Opis v 1.0

ROZWIĄZANIA ZADAŃ Zestaw P3 Odpowiedzi do zadań zamkniętych

Pomiary geofizyczne w otworach

PODRĘCZNIK UŻYTKOWNIKA

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

Audyt SEO. Elementy oraz proces przygotowania audytu. strona

Wymagania edukacyjne z przedmiotu zajęcia techniczne dla klasy 5 szkoły podstawowej

KLAUZULE ARBITRAŻOWE

Regulamin w konkurencjach solowych

Trwałość projektu co zrobić, żeby nie stracić dotacji?

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

AKADEMIA MORSKA W SZCZECINIE

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

Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego ZAPYTANIE OFERTOWE

UMOWA POWIERZENIA PRZETWARZANIA DANYCH OSOBOWYCH (zwana dalej Umową )

2004 Heden Media. Wszelkie prawa zastrzeżone. Wirtualne laboratorium z napędów i sterowania pneumatycznego. Minimalne wymagania

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

Podstawowe pojęcia: Populacja. Populacja skończona zawiera skończoną liczbę jednostek statystycznych

INFORMACJA Z KONTROLI PRAWIDŁOWOŚCI ETYKIETOWANIA OPON POD KĄTEM EFEKTYWNOŚCI PALIWOWEJ I INNYCH ZASADNICZYCH PARAMETRÓW

art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),

Regulamin przyznawania, wydawania i korzystania z Karty Ustrzycka Karta Dużej Rodziny

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

CYFROWY MIERNIK REZYSTANCJI UZIEMIENIA KRT 1520 INSTRUKCJA OBSŁUGI

KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH

URZĄD OCHRONY KONKURENCJI I KONSUMENTÓW

Tematyka i rozwiązania metodyczne kolejnych zajęć lekcyjnych wraz z ćwiczeniami.

Podejmowanie decyzji. Piotr Wachowiak

Systemy mikroprocesorowe - projekt

1. Podstawy budowania wyra e regularnych (Regex)

STEROWNIK BIOLOGICZNYCH OCZYSZCZALNI ŚCIEKÓW

Wniosek o ustalenie warunków zabudowy

2) Drugim Roku Programu rozumie się przez to okres od 1 stycznia 2017 roku do 31 grudnia 2017 roku.

Regulamin szkolnego konkursu matematycznego dla uczniów klasy II i III: Mały Matematyk

Instrukcja Laboratoryjna

DJCONTROL INSTINCT I DJUCED PIERWSZE KROKI

1. Rozwiązać układ równań { x 2 = 2y 1

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Zapytanie ofertowe nr 3

Matematyka:Matematyka I - ćwiczenia/granice funkcji

7. REZONANS W OBWODACH ELEKTRYCZNYCH

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

ZAPYTANIE OFERTOWE KADRA TORUŃ/POKL/2014

USTAWA. z dnia 26 stycznia 1982 r. Karta Nauczyciela. (tekst jednolity) Rozdział 3a. Awans zawodowy nauczycieli

WOJEWÓDZKI KONKURS FIZYCZNY

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

USTAWA. z dnia 26 czerwca 1974 r. Kodeks pracy. 1) (tekst jednolity)

W nawiązaniu do korespondencji z lat ubiegłych, dotyczącej stworzenia szerszych

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

WOJEWÓDZKI KONKURS MATEMATYCZNY DLA SZKÓŁ PODSTAWOWYCH W ROKU SZKOLNYM 2012/2013

Bielsko-Biała, dn r. Numer zapytania: R WAWRZASZEK ISS Sp. z o.o. ul. Leszczyńska Bielsko-Biała ZAPYTANIE OFERTOWE

ZASADY WYPEŁNIANIA ANKIETY 2. ZATRUDNIENIE NA CZĘŚĆ ETATU LUB PRZEZ CZĘŚĆ OKRESU OCENY

Elementy animacji sterowanie manipulatorem

Transkrypt:

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Laboratorium Algorytmów i Struktur Danych Laboratorium 1 Schematy blokowe 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie z zagadnieniami związanymi z projektowaniem blokowych schematów algorytmicznych, symbolicznym przedstawieniem elementów algorytmów oraz metodologii procesu tworzenia blokowych schematów opisujących algorytmy. 2 Wstęp teoretyczny Elementem poprzedzającym pisanie kodu programu powinno być przygotowanie schematu jego działania (algorytmu). Jednym ze sposobów przedstawiania algorytmów są schematy blokowe. Schemat blokowy jest to układ figur geometrycznych (nazywanych skrzynkami lub blokami) połączonych ze sobą odcinkami prostymi lub łamanymi (ścieżki sterujące). Figury służą do przedstawiania rodzaju działań zaprojektowanych w algorytmie, zaś linie wskazują kolejność wykonywania tych działań. Każda figura w schemacie blokowym prezentuje określony rodzaj operacji. Zasadniczą zaletą schematów blokowych jest to, że graficznie prezentują one algorytm zarówno od strony występujących w nim działań, jak i ich kolejności. 3 Elementy schematu blokowego Elementami schematu blokowego są: Strzałki określają kierunek przepływu danych lub kolejność wykonywania działań. Powinny składać się z linii prostych, należy unikać łuków oraz krzyżowania się linii. Operacja START (rys. 1) oznacza punkt startu algorytmu (programu). Od tego bloku rozpoczyna się wykonywanie algorytmu. Występuje dokładnie jeden raz w każdym schemacie blokowym. Operacja STOP (rys. 2) oznacza punkt zakończenia algorytmu (programu). Na tym bloku kończy się wykonywanie algorytmu. Najczęściej występuje jeden raz, jednakże dla zwiększenia czytelności schematu może zostać powtórzony wielokrotnie. START STOP Rysunek 1: Operacja START Rysunek 2: Operacja STOP 1

Operacje odczytywania danych oraz wprowadzania wyników (rys. 3) oznaczone za pomocą równoległoboków. W środku równoległoboku wpisuje się odpowiedni komentarz, odpowiadający żądanej operacji. Należy podkreślić, że inne operacje, nie będące operacjami wejścia / wyjścia oznaczane są innym blokiem blokiem operacji. Rysunek 3: Operacja wejścia/wyjścia Operacja warunkowa JEŻELI (rys. 4) oznaczona za pomocą rombu. Wewnątrz rombu znajduje się odpowiedni warunek. Słowo JEŻELI zazwyczaj pomija się. Operacje warunkowe zawsze prowadzą do konieczności rozważenia dwóch dróg: jednej () kiedy rozpatrywany warunek jest spełniony i drugiej (), kiedy rozpatrywany warunek nie jest spełniony. Blok ten odpowiada instrukcji warunkowej (if ). Przy zapisie warunku powinno się używać operatorów matematycznych =,, <,, >,, nie zaś zapisu znanego z języków programowania (np. >= ). Do łączenia warunków powinno się również używać operatorów logicznych: koniunkcji ( ) oznaczającej i, oraz alternatywy ( ) oznaczającej lub. Rysunek 4: Operacja warunkowe Komentarz (rys. 5) blok używany do wyjaśnienia znaczenia instrukcji zawartych w blokach. Tekst komentarza wpisuje się między kreskami. Ukośna kreska wskazuje (dotyka) komentowanego bloku. Tutaj wpisuje się komentarz Rysunek 5: Komentarz Łącznik stronnicowy (rys. 6) oznacza łączenie w obrębie jednej strony. Używany w przypadku, gdy użycie strzałki znacząco zmniejszyłoby czytelność schematu. Poszczególne łączniki oznacza się liczbami całkowitymi. Zawsze istnieją dwa łączniki oznaczone tym samym numerem: jeden źródłowy, drugi docelowy. Strzałka skierowana jest do łącznika źródłowego oraz od łącznika docelowego. Łącznik międzystronnicowy (rys. 7) używany w przypadku, gdy konieczne jest przeniesienie sterowania między stronami (arkuszami papieru) schematu. Zasady jego użycia są analogiczne do zasad użycia łącznika stronnicowego. Poszczególne łączniki oznacza się liczbami całkowitymi. Zawsze istnieją dwa łączniki oznaczone tym samym numerem: jeden źródłowy, drugi docelowy. Strzałka skierowana jest do łącznika źródłowego oraz od łącznika docelowego. Blok operacji (rys. 8) oznaczany za pomocą prostokąta, w którym wpisuje się komentarz określający daną operację. Jeśli kilka operacji tworzy logiczną całość, to wszystkie one mogą być umieszczone w jednym bloku. Nie zaleca się umieszczania tam zbyt dużej liczby operacji nawet wtedy, kiedy są one powiązane 2

Rysunek 6: Łącznik stronnicowy źródłowy (po lewej stronie) i docelowy (po prawej stronie) Rysunek 7: Łącznik międzystronnicowy źródłowy (po lewej stronie) i docelowy (po prawej stronie) ze sobą bezpośrednio, ponieważ może to zmniejszyć czytelność schematu. Instrukcje przypisania oznacza się przy pomocy strzałki ( ). Instrukcję w C x = y; na schemacie powinno się oznaczyć jako x y. Jeśli zachodzi potrzeba użycia tablic, n-ty element można oznaczyć jako tablica[n]. Należy podkreślić, że elementy numerowane są od zera, tj. n = 0, 1, 2,.... Należy podkreślić, że operacje wejścia / wyjścia oznaczane są innym blokiem blokiem operacji odczytywania danych oraz wprowadzania wyników. Rysunek 8: Blok operacji Blok proceduralny (rys. 9) proces określony poza programem i z tego powodu nie wymagający zdefiniowania w rozpatrywanym programie (podprogram), przy definiowaniu tych elementów należy pamiętać, że ich wykonanie nie rozpoczyna się od START i nie kończy STOP (najczęściej podprogram kończy wykonanie instrukcji powrotu (RETURN) do głównego programu) Rysunek 9: Blok proceduralny Punkt koncentracji (rys. 10) blok używany dla podniesienia czytelności schematu. Oznacza miejsce, do którego wpływa kilka strzałek. Rysuje się go w postaci punktu Rysunek 10: Punkt koncentracji 3

4 Zasady tworzenia schematów blokowych 1. Schemat powinien być prosty i co za tym idzie czytelny. W razie złożonego rozwiązania schemat należy podzielić na mniejsze części (podprogramy) i zamieścić je na osobnych arkuszach. 2. Schemat blokowy powinien być jednakowo dobrze rozumiany przez programistów posługujących się różnymi językami programowania. Z tego powodu nie powinno się używać w schematach składni jakiegokolwiek języka programowania. Preferowane jest użycie operatorów matematycznych, rozumianych przez wszystkich (np. zamiast y = SQRT (X) należy napisać y x ). 3. Do rysowania schematów dobrze jest używać szablonów. Dzięki takiemu rozwiązaniu polepsza się czytelność schematu. 4. W blokach niezbędne jest komentowanie zarówno zaprojektowanych operacji, jak i kolejności ich wykonywania. Komentarze powinny być krótkie, lecz dostatecznie dokładnie wyjaśniające znaczenie opisywanych elementów. 5. Należy unikać rysowania przecinających się ścieżek sterowania. W razie konieczności lepiej jest wprowadzić odpowiednie łączniki, które pozwolą na wyeliminowanie niektórych linii wskazujących kolejność działań w algorytmie. 6. Należy dokładnie numerować arkusze, na których został rozrysowany schemat blokowy. 7. Trzeba liczyć się z możliwością wystąpienia konieczości wprowadzenia poprawek do schematu, dlatego wskazane jest tak tworzyć arkusze, aby możliwe było naniesienie poprawek bez konieczności przerysowywania całego schematu. 8. Należy unikać zarówno zbyt dużej szczegółowości jak i zbytniej ogólności schematów. Oczywiste operacje można zapisać w formie pseudokodu (np. Odczytaj z pliku liczbę x ). 9. Nie należy umieszczać zbyt dużej liczby operacji w jednym bloku. 10. Operacja warunkowa JEŻELI zawsze prowadzi do konieczości rozważenia dwóch dróg: gdy warunek jest spełniony i gdy nie jest. 4

5 Realizacje pętli i instrukcji warunkowych Wszystkie fragmenty programów zostały napisane w języku C. 5.1 Instrukcja case Schemat blokowy postaci W=Warunek1 W=Warunek2 W=Warunek3 Blok instrukcji Blok instrukcji Blok instrukcji Odpowiada następującemu fragmentowi programu switch (W) { case Warunek1 : break ; case Warunek2 : break ; case Warunek3 : break ; Rysunek 11: Instrukcja CASE } default : break ; 5

5.2 Pętla FOR Schemat blokowy postaci x a x b Blok instrukcji x następna wartość x Odpowiada następującemu fragmentowi programu for (x=a; x <= b; x ++) { } Rysunek 12: Pętla FOR 5.3 Pętla WHILE Schemat blokowy postaci x>a Blok instrukcji Odpowiada następującemu fragmentowi programu while (x > a) { } Rysunek 13: Pętla WHILE 6

5.4 Pętla DO WHILE Schemat blokowy postaci Blok instrukcji x>a Odpowiada następującemu fragmentowi programu do{ } while (x <= a ); Rysunek 14: Pętla DO WHILE Należy zwrócić uwagę na różnice pomiędzy pętlami WHILE oraz DO WHILE. W przypadku pętli WHILE, jeśli warunek nie jest spełniony, instrukcje wewnątrz pętli nie są wykonywane ani razu. Pętla DO WHILE wykonuje się co najmniej jeden raz; warunek sprawdzany jest na końcu. Ponadto należy zwrócić uwagę na odwrócenie warunku wykonania pętli. Ciało pętli WHILE wykonywane jest, jeśli warunek jest spełniony. Pętla DO WHILE przerywana jest w przypadku spełnienia warunku odwrotnie do pętli WHILE. 7

6 Przykład Algorytm sprawdzający, czy suma dwóch liczb podanych przez użytkownika jest parzysta. Wskazówka: instrukcję wyznaczającą resztę z dzielenia liczby a przez b (czyli a mod b) zapisuje się w języku C jako a % b. START Podaj a i b c a+b d c mod 2 c mod 2 określa resztę z dzielenia c przez dwa; d=0 Suma a+b jest parzysta Suma a+b jest nieparzysta STOP Rysunek 15: Przykładowy algorytm Ten sam algorytm zapisany przy użyciu bloczka proceduralnego przedstawiono na rys. (16) i (17): START Podaj a i b CZY_PODZIELNA Procedura bada, czy liczby x i y są podzielne przez dwa d CZY_PODZIELNA(a,b) WE: liczby x i y d=0 d (x+y) mod 2 WY: liczba d 1 liczba nie jest podzielna 0 liczba jest podzielna Suma a+b jest parzysta Suma a+b jest nieparzysta RETURN STOP Rysunek 17: Procedura Rysunek 16: Program główny 8

7 Pytania sprawdzające Poniższe pytania mają pomóc w przyswojeniu materiału. 1. Ile razy w schemacie blokowym może wystąpić blok START? A blok STOP? 2. Przy pomocy jakiego bloku oznaczyć operację odczytaj liczbę x z pliku? (Wskazówka: jest to operacja wejścia/wyjścia) 3. Narysować schemat blokowy programu wyznaczającego średnią arytmetyczną dwóch liczb. 4. Narysować schemat blokowy programu wyznaczającego sumę liczb podawanych z klawiatury tak długo, aż użytkownik nie wprowadzi liczby zero. Literatura [1] P. Wróblewski. Algorytmy, struktury danych i techniki programowania, Helion, 1996. [2] T.H.Cormen i in. Wprowadzenie do algorytmów, WNT 2000. 9