MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1



Podobne dokumenty
Algorytm. a programowanie -

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

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

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

MATERIAŁY POMOCNICZE NR 1 DO PRACOWNI Z PRZEMIOTU INFORMATYKA 1. Informacje podstawowe:

Algorytmy komputerowe. dr inŝ. Jarosław Forenc

METODY OPISU ALGORYTMÓW KOMPUTEROWYCH

dr inż. Jarosław Forenc

1 Wprowadzenie do algorytmiki

dr inż. Adam Idźkowski, WE WWW: (Dydaktyka)

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Definicje. Algorytm to:

Politechnika Białostocka, Wydział Elektryczny, Katedra Elektrotechniki Teoretycznej i Metrologii ul. Wiejska 45D, Białystok

Algorytmy komputerowe. dr inż. Jarosław Forenc

Rok akademicki: 2013/2014 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

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

dr inż. Jarosław Forenc

PODSTAWY PROGRAMOWANIA STRUKTURALNEGO (C) SYLABUS A. Informacje ogólne

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

Metodyki i techniki programowania

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

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

Język ludzki kod maszynowy

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Algorytm. Krótka historia algorytmów

Spis treści JĘZYK C - PRZEKAZYWANIE PARAMETRÓW DO FUNKCJI, REKURENCJA. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Technologie informacyjne - wykład 12 -

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

E-1EZ1-03-s2. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Wprowadzenie do algorytmiki

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C15

Spis treści JĘZYK C - INSTRUKCJA WARUNKOWA IF, OPERATORY RELACYJNE I LOGICZNE, WYRAŻENIA LOGICZNE. Informatyka 1

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Informatyka 1. Instrukcja do pracowni specjalistycznej z przedmiotu

Metodyki i techniki programowania

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

Podstawy i języki programowania

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Spis treści JĘZYK C - ZAGNIEŻDŻANIE IF-ELSE, OPERATOR WARUNKOWY. Metodyki i techniki programowania

Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) Niestacjonarne (stacjonarne / niestacjonarne)

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

WHILE (wyrażenie) instrukcja;

2.8. Algorytmy, schematy, programy

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

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

PRZEWODNIK PO PRZEDMIOCIE

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

ALGORYTMY I PROGRAMY

Spis treści JĘZYK C - OPERATORY BITOWE. Informatyka 2. Instrukcja do pracowni specjalistycznej z przedmiotu. Numer ćwiczenia INF32

PRZEWODNIK PO PRZEDMIOCIE

Podstawy programowania.

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

Podstawy Programowania

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

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

WHILE (wyrażenie) instrukcja;

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie w języku Python. Grażyna Koba

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

Algorytmy. dr Dariusz Banaś (UJK) Seminarium w ramach projektu Fascynujący Świat Nauki dla uczniów gimnazjów. wersja 0.9. Start.

#include <stdio.h> void main(void) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Algorytm. Algorytmy Marek Pudełko

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 komputerów

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

KARTA KURSU. Wstęp do programowania

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Wstęp do informatyki- wykład 2

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

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

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

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Podstawy Programowania Podstawowa składnia języka C++

Zmienne, stałe i operatory

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Definicja algorytmu brzmi:

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

PRZEWODNIK PO PRZEDMIOCIE

Podstawy Informatyki. Algorytmy i ich poprawność

Programowanie w języku C++

Podstawy programowania strukturalnego (C) SYLABUS A. Informacje ogólne

( wykł. dr Marek Piasecki )

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Algorytmy i struktury danych - opis przedmiotu

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015

while (test) instrukcja; int i=0; while (i<10) i++; dopóki test prawdziwy wykonuj instrukcję Wykonano: 35% / \ fałsz test prawda instrukcja

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

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

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Referencje. Programowanie w C/C++ Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Zasady zaliczeń. Informacje organizacyjne: Krzysztof Trojanowski

Podstawy programowania skrót z wykładów:

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

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

Transkrypt:

Informacje podstawowe: MATERIAŁY POMOCNICZE NR 1 DO PRACOWNII Z PRZEMIOTU INFORMATYKA 1 INFORMATYKA 1 - Pracownia specjalistyczna 30h Kod przedmiotu: EZ1A200 010, ECTS: 6 pkt. Kierunek: Elektrotechnika, studia niestacjonarne I stopnia (zaoczne) Semestr: II, rok akademicki: 2008/2009 Grupa: PS2, Niedziela, godz. 13:30-15:55, sala: WE-110 Prowadzący zajęcia: dr inŝ. Jarosław Forenc WE-204, tel. (0-85) 746-93-97 e-mail: jarekf@pb.edu.pl WWW: http://we.pb.edu.pl/~jforenc (Dydaktyka) Konsultacje: Poniedziałek, godz. 10:00-12:00, WE-204 Piątek, godz. 11:00-12:00, WE-204 Niedziela, godz. 16:00-17:30, WE-204 (zaoczne) Program szczegółowy: 1. Zajęcia organizacyjne. Algorytmy, sposoby opisu. Przykłady algorytmów. Obsługa środowiska Dev-C++ przeznaczonego do tworzenia, analizy i uruchamiania programów w języku C/C++. Etapy tworzenia programu. Kompilacja i konsolidacja. 2. Ogólna struktura programu w języku C/C++. Zmienne, deklaracje, typy i nazwy zmiennych. Wyprowadzanie i wprowadzanie danych - instrukcje printf i scanf. Stałe liczbowe. Operatory i wyraŝenia arytmetyczne, priorytet operatorów. 3. Operatory relacyjne (porównania) i logiczne. Operatory bitowe. WyraŜenia logiczne. Instrukcja warunkowa if. ZagnieŜdŜanie if-else. Operator warunkowy? :. Instrukcja wyboru wielowariantowego switch. 4. Instrukcje iteracyjne for, while i do while. ZagnieŜdŜanie pętli for. Instrukcje break, goto i continue. 5. Tablice, deklaracja tablicy, inicjalizacja elementów tablicy. Operacje na tablicach. 6. Łańcuchy znaków. Inicjalizacja łańcucha znaków. Stała znakowa. Funkcje do wprowadzania i wyprowadzania znaków. Plik nagłówkowy string.h. 7. Struktury, odwołania do pól struktury, inicjalizacja zmiennej strukturalnej. Pola bitowe i unie. 8. Funkcje, ogólna struktura funkcji. Umieszczanie definicji funkcji w programie. Zmienne lokalne i globalne. Zasięg i widzialność identyfikatorów. 9. Przekazywanie argumentów do funkcji przez wartość i referencje. Rekurencyjne wywołanie funkcji. Argumenty funkcji main. 10. Pliki tekstowe i binarne. Operacje na plikach. Zaliczenie zajęć. Informatyka 1 - Pracownia Strona 1 z 14 2009 Jarosław Forenc Literatura: 1. B. W. Kernighan, D. M. Ritchie: Język ANSI C. WNT, Warszawa, 2007. 2. J. Grębosz: Symfonia C++ standard. Tom 1 i 2. Edition 2000, Warszawa, 2006. 3. S. Prata: Język C. Szkoła programowania. Wydanie V. Helion, Gliwice, 2006. 4. A. Sopek: Wgłąb języka C. Helion, Gliwice, 1993. (http://helion.pl/online/wglab/wglab.zip) 5. K. Barteczko: Praktyczne wprowadzenie do programowania obiektowego w języku C++. Wydawnictwo Lupus, Warszawa, 1994. 6. A. Zalewski: Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++. Wydawnictwo Nakom, Poznań, 2000. 7. S. Oualline: Język C. Programowanie. Helion, Gliwice, 2003. 8. S.G. Kochan: Język C. Wprowadzenie do programowania. Helion, Gliwice, 2005. 9. B. Stroustrup: Język C++. WNT, Warszawa, 2004. 10. Materiały na stronie: http://we.pb.edu.pl/~jforenc/dydaktyka.html Zaliczenie przedmiotu: 1. Zaliczenie przedmiotu odbywa się na podstawie następujących zasad: - obecność studenta na wszystkich planowych zajęciach, - realizacja tematu zajęć i zadań sformułowanych przez prowadzącego, - oceny uzyskane w ramach kartkówek, które określają przygotowanie studenta do zajęć oraz wiedzę i umiejętności nabyte w trakcie zajęć, - weryfikacja poprawności programów opracowanych w trakcie zajęć oraz oceny wystawione za programy opracowane w trakcie zajęć. 2. KaŜda kartkówka będzie zapowiedziana z wyprzedzeniem. 3. KaŜdą kartkówkę moŝna poprawić na konsultacjach. 4. Nieusprawiedliwiona nieobecność na zajęciach jest równowaŝna ocenie 2,0 z kartkówki (nieobecność usprawiedliwiamy na najbliŝszych zajęciach po tych, na których nie było się). 5. Trzy nieusprawiedliwione nieobecności są równowaŝne ocenie końcowej 2,0. 6. Ocena końcowa jest średnią arytmetyczną ocen z kartkówek (uwzględniając ostatnio otrzymaną ocenę, a nie ocenę najlepszą) i ocen dodatkowych. 7. Minimum połowa kartkówek musi być zaliczona na ocenę pozytywną. 8. Metoda wyznaczania oceny końcowej: ocena punkty średnia ocena końcowa 5 5,0 4,75-5,00 5 5-4,8 4,25-4,74 4+ 4+ 4,5 3,75-4,24 4 4 4,0 3,25-3,74 3+ 4-3,8 2,80-3,24 3 3+ 3,5 3 3,0 3-2,8 2 2,0 Informatyka 1 - Pracownia Strona 2 z 14 2009 Jarosław Forenc

9. Nie przewiduje się poprawiania ocen na wyŝsze na koniec semestru. 10. W przypadku, gdy średnia ocen będzie mniejsza od 2,8, to przedmiot moŝna zaliczyć pisząc test sprawdzający wiadomości. 11. Test składa się z 40 pytań. Za kaŝde pytanie moŝna otrzymać 1 pkt. (poprawna odpowiedź) lub 0 pkt. (błędna odpowiedź). Test uwaŝa się za zaliczony po uzyskaniu min. 21 pkt. 12. Maksymalna ocena końcowa jaką moŝna otrzymać po zaliczeniu testu to 3,0. 13. Test moŝna pisać tylko jeden raz. Termin testu zostanie podany na ostatnich zajęciach. 14. Zaliczenie pracowni na ocenę 4+ lub 5 uprawnia do przepisania oceny jako zaliczenia wykładu, ale o pół stopnia niŝszej, tzn. 4+ 4, 5 4+. Regulamin pracowni informatycznej KETIM: 1. Wstęp do laboratorium w czasie trwania ćwiczenia jest dozwolony tylko dla osób uczestniczących w zajęciach. 2. Ćwiczenia studenckie odbywają się w zespołach 1-2 osobowych. Opuszczanie stanowiska laboratoryjnego, nawet chwilowe, jest dopuszczalne tylko za zgodą prowadzącego zajęcia. 3. Zabronione jest wnoszenie do laboratorium wszelkich napojów i posiłków. 4. Zabronione jest dokonywanie jakichkolwiek zmian w połączeniach i konfiguracji sprzętu. 5. Niedopuszczalna jest jakakolwiek manipulacja przy okablowaniu oraz urządzeniach lokalnej sieci komputerowej. 6. Komputery mogą być włączone dopiero po uzyskaniu zezwolenia od prowadzącego zajęcia. 7. Niedopuszczalne jest wgrywanie własnych zbiorów, modyfikacja plików konfiguracyjnych i kasowanie programów, oprócz własnych zbiorów i plików roboczych. 8. Zabrania się wykorzystywania sprzętu znajdującego się w laboratorium do celów nie związanych z ćwiczeniami. 9. Dwukrotne nieusprawiedliwione opuszczenie ćwiczeń powoduje skreślenie z listy i przekazanie tej informacji do Dziekanatu WE PB. W wyjątkowych usprawiedliwionych przypadkach (np. choroby), ćwiczenie moŝe być odrobione w terminie dodatkowym. 10. Warunkiem dopuszczenia do wykonywania ćwiczenia jest znajomość podstawowych zagadnień teoretycznych dotyczących danego ćwiczenia. Sprawdzenie wiadomości odbywa się przed rozpoczęciem ćwiczenia lub w trakcie jego wykonywania. 11. Zaliczenie ćwiczenia następuje na podstawie: - wykazania się podstawowymi wiadomościami, - wykonanie niezbędnych zagadnień problemowych związanych z danym ćwiczeniem, - złoŝenie w wyznaczonym terminie sprawozdania. 12. Sprawozdanie powinno być wykonane starannie i przejrzyście, z podaniem zasadniczych wyników obliczeń, wniosków i uwag. 13. W razie nieszczęśliwego wypadku naleŝy natychmiast wyłączyć napięcie zasilające, a następnie wezwać pogotowie ratunkowe (tel. 999 lub tel. kom. 112) i udzielić pierwszej pomocy. 14. W razie poŝaru wyłączyć napięcie zasilające i gasić urządzenia gaśnicami oraz kocami gaśniczymi znajdującymi się w laboratorium lub na korytarzu, a w koniecznym przypadku wezwać straŝ poŝarną (tel.998 lub tel.kom.112). 15. Przed wyłączeniem komputera, naleŝy dokonać prawidłowego zamknięcia systemu operacyjnego. 16. Po zakończeniu ćwiczeń naleŝy zgłosić fakt ukończenia ćwiczenia prowadzącemu oraz na jego polecenie: - skasować własne pliki robocze, - wyłączyć urządzenia, - uporządkować stanowisko laboratoryjne. 17. Pomieszczenie laboratorium moŝna opuścić tylko po uzyskaniu zgody od prowadzącego ćwiczenia. 18. Uszkodzenie sprzętu w wyniku jego celowego niewłaściwego wykorzystania, będzie karane nie zaliczeniem laboratorium. 19. W przypadku celowego uszkodzenia lub na skutek niewłaściwego uŝytkowania sprzętu, osoby winne będą obciąŝone kosztami naprawy. Informatyka 1 - Pracownia Strona 3 z 14 2009 Jarosław Forenc Informatyka 1 - Pracownia Strona 4 z 14 2009 Jarosław Forenc

Program komputerowy: Program komputerowy moŝna rozumieć jako: o kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, o plik wykonywalny - program, który moŝna uruchomić. Etapy tworzenia programu: Kod źródłowy programu w języku C jest to plik tekstowy z rozszerzeniem.c, który moŝe być przygotowany w dowolnym edytorze zapisującym niesformatowane pliki tekstowe. Kompilacja polega na przetłumaczeniu kodu źródłowego na tzw. kod wynikowy, maszynowy (pliki z rozszerzeniem.o lub.obj). Podczas kompilacji programu mogą wystąpić błędy. Poprawienie tego rodzaju błędów wymaga ponownej edycji kodu źródłowego. Uruchomienie programu: Skompilowany program (plik wykonywalny.exe) przechowywany jest na nośniku danych (np. dysk twardy, dyskietka, płyta CD/DVD, PenDrive). Uruchomienie programu wymaga jego odczytania z nośnika i załadowania do pamięci operacyjnej komputera (RAM). Za taką operację odpowiedzialny jest system operacyjny. Uruchomiony program nazywany jest procesem. Proces w pamięci komputera ma określoną strukturę, przedstawioną na poniŝszym rysunku. Blok kontrolny procesu jest strukturą danych tworzoną i zarządzaną przez system operacyjny, a opisującą właściwości procesu. Blok kontrolny procesu zawiera m.in. identyfikator, stan procesu, priorytet, licznik programu, wskaźniki pamięci, informacje na temat Ŝądań we/wy. Program jest to kod wykonywanego programu (instrukcje programu). Dane są to dane potrzebne programowi podczas wykonywania. Stos jest specjalnym miejscem, w którym przechowywane są tzw. zmienne lokalne oraz kody powrotu z funkcji. Łączenie (konsolidacja) polega na połączeniu kodu wynikowego (.o lub.obj) z odpowiednimi bibliotekami. Programy komputerowe działają zazwyczaj zgodnie z pewnym algorytmem. Podczas łączenia mogą wystąpić błędy spowodowane brakiem odpowiedniej biblioteki. Uruchomienie pliku wykonywalnego.exe. Po uruchomieniu programu mogą wystąpić błędy. Błędy takie mogą być spowodowany wykonaniem przez program niedozwolonej operacji, np. odwołaniem do zabronionego obszaru pamięci. Innego rodzaju błędem moŝe być zwrócenie przez program niepoprawnego wyniku. W obu przypadkach poprawienie błędu wymaga ponownej edycji kodu źródłowego. Informatyka 1 - Pracownia Strona 5 z 14 2009 Jarosław Forenc Definicje algorytmu: W literaturze moŝna spotkać wiele definicji algorytmu. PoniŜej przedstawionych jest kilka z nich. algorytm - skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. algorytm - metoda rozwiązania zadania. algorytm - ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych zwraca Ŝądane dane wyjściowe zwane wynikiem działania algorytmu. algorytm - skończony zbiór reguł, wskazujący kolejność operacji przy rozwiązywaniu problemu pewnego typu. Informatyka 1 - Pracownia Strona 6 z 14 2009 Jarosław Forenc

Podstawowe cechy algorytmu: Algorytm powinien posiadać dane wejściowe (w ilości większej lub równej zeru) pochodzące z dobrze zdefiniowanego zbioru. Algorytm powinien zwracać pewien wynik: o działanie algorytmu niezwracającego wyniku pozbawione jest sensu. Algorytm powinien być precyzyjnie zdefiniowany: o kaŝdy krok algorytmu musi być jednoznacznie określony. Algorytm powinien być zawsze poprawny: o ale dla kaŝdego z załoŝonego dopuszczalnego zestawu danych wejściowych, o w algorytmie mogą (ale nie muszą) być zaimplementowane mechanizmy reakcji na błędne dane wejściowe. Algorytm powinien zawsze kończyć się po skończonej liczbie kroków: o w algorytmie powinna istnieć poprawnie działająca reguła stopu. Algorytm powinien być efektywny: o jak najkrótszy czas wykonania, o jak najmniejsze zapotrzebowanie na pamięć. Algorytm moŝe zostać zaimplementowany w postaci programu komputerowego lub dla innego urządzenia. Ten sam algorytm moŝe być zaimplementowany w róŝny sposób przy uŝyciu róŝnych języków programowania. Metody opisu algorytmów: Opis w punktach, w języku naturalnym o moŝe występować w postaci opisu słownego (pełne zdania) lub teŝ listy kroków algorytmu Schemat blokowy o przedstawienie algorytmu za pomocą odpowiednich znaków graficznych reprezentujących fragmenty algorytmu Pseudokod (język publikacyjny) o niezbyt formalna odmiana języka programowania Konkretny język programowania, np. Pascal, C, C++, Matlab Opis słowny algorytmu: Opis słowny przypomina przepis kulinarny z ksiąŝki kucharskiej Przykład nr 1.1 Algorytm: Tortilla (*) (opis algorytmu w punktach) Dane wejściowe: Dane wyjściowe: 0,5 kg ziemniaków, 100 g kiełbasy Chorizo, 8 jajek gotowa Tortilla Kolejne kroki: 1. Ziemniaki obrać i pokroić w plasterki. 2. Kiełbasę pokroić w plasterki. 3. Ziemniaki wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron. 4. Kiełbasę wrzucić na gorącą oliwę na patelni i przyrumienić z obu stron. 5. Ubić jajka i dodać do połączonych ziemniaków i kiełbasy. 6. Dodać sól i pieprz. 7. UsmaŜyć z obu stron wielki omlet nadziewany chipsami ziemniaczanymi z kiełbaską. (*) na podstawie PodróŜy kulinarnych R. Makłowicza Schemat blokowy: Schematy blokowe nie mają jednej, ściśle określonej postaci. Najczęściej na schematach blokowych występują cztery podstawowe elementy (początek algorytmu, koniec algorytmu, blok funkcyjny, blok decyzyjny) oraz strzałki określające kolejność wykonywania operacji. Elementy występujące na schematach blokowych algorytmów: Początek algorytmu MoŜe występować tylko jeden raz Elementarna instrukcja Blok funkcyjny Operacje obliczeniowe lub organizacyjne Blok decyzyjny Operacje warunkowe Testy Zakończenie algorytmu Musi występować przynajmniej jeden raz Informatyka 1 - Pracownia Strona 7 z 14 2009 Jarosław Forenc Informatyka 1 - Pracownia Strona 8 z 14 2009 Jarosław Forenc

Algorytm Euklidesa: RozwaŜmy sposób zapisu jednego z najbardziej znanych algorytmów - algorytmu Euklidesa znajdowania największego wspólnego dzielnika dwóch liczb - NWD(a,b) Przykład nr 1.3 Narysuj schemat blokowy algorytmu Euklidesa. Przykład nr 1.2 Algorytm: Euklidesa (opis algorytmu w punktach) Dane wejściowe: Dane wyjściowe: niezerowe liczby naturalne a i b NWD(a,b) Kolejne kroki: 1. Czytaj liczby a i b. 2. Dopóki a i b są większe od zera, powtarzaj krok 3, a następnie przejdź do kroku 4. 3. Jeśli a jest większe od b, to weź za a resztę z dzielenia a przez b, w przeciwnym razie weź za b resztę z dzielenia b przez a. 4. Przyjmij jako największy wspólny dzielnik tę z liczb a i b, która pozostała większa od zera. 5. Drukuj NWD(a,b). Działanie powyŝszego algorytmu sprawdźmy na przykładzie: o szukamy: NWD(1675,3752), czyli a 1675, b 3752 o dzielimy większą liczbę przez mniejszą: b/a 3752/1675 2 reszta 402; za b podstawiamy resztę z dzielenia, czyli teraz: a 1675, b 402 o dzielimy większą liczbę przez mniejszą: a/b 1675/402 4 reszta 67; za a podstawiamy resztę z dzielenia, czyli teraz: a 67, b 402 o dzielimy większą liczbę przez mniejszą: b/a 402/67 6 reszta 0; za b podstawiamy resztę z dzielenia, czyli teraz: a 67, b 0 o za NWD przyjmujemy tę z liczb a i b, która jest większa od zera, czyli: NWD(1675,3752) 67 Przykład nr 1.4 Zapis algorytmu Euklidesa w pseudokodzie. NWD(a,b) while a>0 i b>0 do if a>b then a a mod b else b b mod a if a>0 then return a else return b Przykład nr 1.5 Zapis algorytmu Euklidesa jako funkcja w języku C. int NWD(int a, int b) { while (a>0 && b>0) if (a>b) a a % b; else b b % a; if (a>0) return a; else return b; } Informatyka 1 - Pracownia Strona 9 z 14 2009 Jarosław Forenc Informatyka 1 - Pracownia Strona 10 z 14 2009 Jarosław Forenc

Przykład nr 1.6 Narysuj schemat blokowy algorytmu wyznaczającego wartość bezwzględną (moduł) liczby. Przykład nr 1.7 Narysuj schemat blokowy algorytmu sprawdzającego parzystość liczby całkowitej. Wartość bezwzględna liczby określana jest następującym wzorem: x dla x 0 x x dla x < 0 Narysujemy schemat blokowy w dwu postaciach. lub Wczytaj(x) moŝna rozumieć jako podanie przez uŝytkownika wartości x (wczytanie z klawiatury) lub teŝ przekazanie argumentu do funkcji, która wyznacza wartość bezwzględną liczby. Drukuj(x) moŝna rozumieć jako wyświetlenie na ekranie wyniku lub teŝ zwrócenie go przez funkcję. Przedstawione powyŝej algorytmy róŝnią się tylko liczbą bloków STOP. W algorytmie po lewej stronie, algorytm moŝe zakończyć się w dwu miejscach, natomiast algorytm po prawej stronie - tylko w jednym miejscu. W językach programowania do obliczenia wartości bezwzględnej liczby stosowane są funkcje (x jest argumentem przekazywanym do funkcji): o C, C++ - abs(x), fabs(x), o Fortran - abs(x), Zasada działania powyŝszego algorytmu jest następująca: o wczytujemy liczbę x, o jeśli liczba x jest ujemna, to zamieniamy ją na dodatnią: x -x, o jeśli liczba x jest większa od 1, to odejmujemy od niej wartość 2 - operację tę powtarzamy do momentu, aŝ x będzie mniejsze lub równe 1, o jeśli x jest równe 0, to liczba była parzysta, w przeciwnym wypadku (czyli, gdy x jest równe 1) - liczba była nieparzysta Parzystość liczby całkowitej moŝna sprawdzić w prostszy sposób, wykorzystując dzielenie modulo. Dzielenie modulo zwraca resztę z dzielenia. JeŜeli liczbę całkowitą podzielimy modulo 2 to w wyniku moŝemy otrzymać: o 0 - jeśli liczba jest parzysta, o 1 lub -1 - jeśli liczba jest nieparzysta. Schemat blokowy algorytmu sprawdzającego parzystość liczby przy wykorzystaniu dzielenia modulo 2 przedstawiony jest na poniŝszym rysunku. Informatyka 1 - Pracownia Strona 11 z 14 2009 Jarosław Forenc Informatyka 1 - Pracownia Strona 12 z 14 2009 Jarosław Forenc

Przykład nr 1.8 Schemat blokowy algorytmu sprawdzającego parzystość liczby całkowitej. Przykład nr 1.10 Narysuj schemat blokowy algorytmu rozwiązującego równanie kwadratowe. Do rozwiązania równania kwadratowego: ax 2 + bx + c 0 naleŝy w pierwszej kolejności obliczyć wyróŝnik równania kwadratowego ( deltę ): b 2 4ac o jeŝeli > 0, to równanie ma dwa róŝne pierwiastki rzeczywiste x 1, x 2 : o o b b +, x 2 jeŝeli 0, to równanie ma jeden podwójny pierwiastek rzeczywisty: b x 2 jeŝeli < 0, to równanie nie ma rozwiązań rzeczywistych. Przykład nr 1.9 Narysuj schemat blokowy algorytmu obliczającego silnię liczby n. Silnią liczby naturalnej n (w notacji matematycznej n!) nazywamy iloczyn wszystkich liczb naturalnych nie większych niŝ n. n! 1 2 3... n przy czym 0! 1, 1! 1, 2! 1 2, 3! 1 2 3,... b b + x2 b x2 Informatyka 1 - Pracownia Strona 13 z 14 2009 Jarosław Forenc Informatyka 1 - Pracownia Strona 14 z 14 2009 Jarosław Forenc