Informatyka. Cele nauczania przedmiotu Informatyka (ograniczone wymiarem godzinowym) Podręcznik zawiera m.in.:

Podobne dokumenty
Wydział Inżynierii Mechanicznej i Robotyki AGH w Krakowie Studia Niestacjonarne, Rok 1, semestr 2. przedmiot: Informatyka

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

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

Język programowania PASCAL

Podstawy Programowania C++

Z. Rudnicki: WPROWADZENIE DO INFORMATYKI I PROGRAMOWANIA

Wykład z Technologii Informacyjnych. Piotr Mika

Podstawy Informatyki Computer basics

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

Definicje. Algorytm to:

PRZEWODNIK PO PRZEDMIOCIE

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

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

1 Wprowadzenie do algorytmiki

Zapisywanie algorytmów w języku programowania

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

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

Ćwiczenie 1. Wprowadzenie do programu Octave

Technologie informacyjne - wykład 12 -

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

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

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Ćwiczenie 1. Wprowadzenie do programu Octave

Programowanie w języku Python. Grażyna Koba

Algorytmika i pseudoprogramowanie

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Przetwarzanie sygnałów

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

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

Algorytm. a programowanie -

Temat 20. Techniki algorytmiczne

Programowanie w Turbo Pascal

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

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

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

Podstawy Programowania

Programowanie i techniki algorytmiczne

Warsztaty dla nauczycieli

KARTA MODUŁU KSZTAŁCENIA

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

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

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Algorytm. Krótka historia algorytmów

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

Spis treści. Podstawy posługiwania się komputerem

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

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

Cw.12 JAVAScript w dokumentach HTML

PRZEWODNIK PO PRZEDMIOCIE

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

Język ludzki kod maszynowy

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

Język programowania C C Programming Language. ogólnoakademicki

Kompilator języka Basic można bezpłatnie pobrać ze strony z zakładki DOWNLOAD.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

ZASADY PROGRAMOWANIA KOMPUTERÓW

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Pętle. Programowanie komputerowe

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

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

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

ALGORYTMY I PROGRAMY

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

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

lekcja 8a Gry komputerowe MasterMind

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

Metodyki i techniki programowania

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

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

Podstawy Programowania Algorytmy i programowanie

Algorytm. Krótka historia algorytmów

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

PRZEWODNIK PO PRZEDMIOCIE

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

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

2.8. Algorytmy, schematy, programy

Wstęp do Programowania Lista 1

do instrukcja while (wyrażenie);

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

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

Matlab Składnia + podstawy programowania

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Pascal - wprowadzenie

Podstawy i języki programowania

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

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

PRZEWODNIK PO PRZEDMIOCIE

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

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

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

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

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Transkrypt:

Wydział Inżynierii Mechanicznej i Robotyki AGH w Krakowie Studia Niestacjonarne, Rok 1, semestr 2 AGH WIMiR Studia Niestacjonarne Semestr 2: Informatyka 2016 AiR 8 godz. wykładu, 8 godz. ćwiczeń (poprzednio 10+10) MiBM 8 godz. wykładu, 8 godz. ćwiczeń (poprzednio 8+16) przedmiot: Informatyka Dr inż. Zbigniew Rudnicki Katedra Konstrukcji i Eksploatacji Maszyn AGH B-2, pok.301, tel.617-31-27 Wykłady: AiR: B2 sala 123; MiBM: sala 100 dr inż Zbigniew Rudnicki, B-2 pok.301 e-mail: zbigniew.rudnicki@agh.edu.pl Ćwiczenia laboratoryjne: B2 sale: 320-322 - dr inż. Krystyna Prync-Skotniczny - mgr inż. Dariusz Wędrychowicz Informacje: w INTERNECIE: http://www.kkiem.agh.edu.pl (Nauczanie - Materiały dyd.) i w gablotce B-2 III p. obok pokoju 301 2 Cele nauczania przedmiotu Informatyka (ograniczone wymiarem godzinowym) 1) poznanie podstaw konstruowania algorytmów 2) nabycie umiejętności konstruowania prostych programów z użyciem standardowych poleceń dostępnych w większości języków programowania 3) nauczenie się podstaw użytkowania języka i potężnego pakietu oprogramowania jakim jest Matlab, a w tym środków do operowania na tablicach oraz generowania wykresów 4) poznanie zasad tworzenia programów obiektowo-zdarzeniowych z interfejsem graficznym ( okienkowych ) w Matlabie Ćwiczenia Laboratoryjne: 8 godz. ćwiczeń laboratoryjnych: Algorytmy (1 godz.)- śledzenie działań (oceniane), konstruowanie algorytmów (zadanie domowe) MATLAB (7 godz.): działania w oknie komend i proste programy, tabelaryzacja funkcji, zapis do pliku, wykres XY, programy z pętlą i warunkiem, rozwiązywanie równań nieliniowych, pierwiastki wielomianu budowa interfejsu graficznego, interpolacja i aproksymacja, operowanie na macierzach i układy równań liniowych test: podstawowe pojęcia z wykładów i ćwiczeń 3 4 Podręcznik: Wprowadzenie do Informatyki i Programowania Z. Rudnicki. Wyd. AGH wydanie drugie Kraków 2015 Podręcznik zawiera m.in.: 1. Podstawy tworzenia stron WWW w językach HTML i PHP 2. Wiedzę o algorytmach i strukturach danych wraz z przykładami i ćwiczeniami 3. Opis języka BASIC oraz przykłady programów w tym języku 4. Podstawy programowania obiektowego na przykładzie w Visual Basic-u 5. Szczegółowe wprowadzenie do programowania w MATLAB-ie (3 rozdziały) z uwzględnieniem: instrukcji strukturalnych, operacji na tablicach, tworzenia wykresów, programowania w trybie graficznym 6. Opis podstaw języka C i porównania go z Matlabem 7. Wprowadzenie do programowania Baz Danych 8. Zarys wybranych metod sztucznej inteligencji (sieci neuronowe i systemy ekspertowe) 5 6 1

Tematyka wykładów (obecność sprawdzana): 1) Wprowadzenie do algorytmów i struktury danych oraz metody i narzędzia programowania 2) Matlab - charakterystyka, tryby użytkowania i podstawy programowania 3) Przykłady programów w Matlabie 4) Macierze i operacje macierzowe w Matlabie 5) Wykresy oraz obiekty i programy graficzne w Matlabie 6) Elementy programowania obiektowo-zdarzeniowego w języku Visual Basic 7) Charakterystyka języka C i porównanie z Matlabem 8) Budowa i obsługa baz danych. Elementy języka SQL Wykład 1: Wprowadzenie do programowania czyli ALGORYTMY i STRUKTURY DANYCH Opracował: Zbigniew Rudnicki 7 Po co komputerowi programy? Komputer dzięki programom (aplikacjom) może zmieniać się w różne narzędzia, np. do: pisania malowania komunikowania się obliczania komponowania i odtwarzania muzyki i filmów nauczania sterowania urządzeniami... Współczesne programy okienkowe kontra tradycyjne programy linearne Współczesne programy okienkowe są obiektowo-zdarzeniowymi, czyli: - program prezentuje na ekranie szereg obiektów i czeka na zdarzenia np.: kliknięcie któregoś z nich. Inaczej mówiąc: steruje użytkownik a programów jest tyle ile zdarzeń. Tradycyjny program - realizując ściśle określone zadanie - wykonuje polecenia krok po kroku w kolejności (linearnej) w jakiej są zapisane w programie, a w określonych sytuacjach żąda od użytkownika danych. Inaczej mówiąc: steruje program a użytkownik się do niego dostosowuje choć może wybierać zaproponowane warianty 9 10 Najpierw programowanie tradycyjne Większą część semestru poświęcimy nauce programowania tradycyjnego - z użyciem niewielkiej liczby podstawowych poleceń w tym instrukcji strukturalnych, organizujących rozgałęzienia i pętle programu. Dopiero ostatnie zajęcia poświęcone będą znacznie trudniejszemu - programowaniu obiektowo-zdarzeniowemu Jak opracować program dla realizacji określonego zadania? 1) określić jakie wyniki mają być uzyskane oraz jakie dane będą do tego niezbędne 2) zdefiniować potrzebne zmienne - a dokładniej struktury danych czyli pojemniki dla danych oraz wyników pośrednich i końcowych 3) zdefiniować (krok po kroku) algorytm czyli ciąg operacji jakie mają być wykonywane na danych 4) zapisać algorytm jako program w określonym języku programowania 5) przetestować działanie programu na reprezentacyjnych zestawach danych i dokonać niezbędnych poprawek. 11 12 2

A więc podstawy programowania to: 1. Umiejętność tworzenia algorytmów operujących na zmiennych i strukturach danych 2. Znajomość języka programowania i środowiska do uruchamiania i testowania programów ALGORYTM Algorytm to: a) opis danych oraz b) opis procedury realizacji zadania z pewnej, ściśle określonej klasy zadań, np..: rozwiązywania dowolnego równania kwadratowego Opis procedury składa się ze skończonej liczby jednoznacznie określonych poleceń (kroków) jakie należy wykonać w określonej kolejności dla uzyskania celu. Polecenia muszą być zrozumiałe i możliwe do realizacji dla wykonawcy algorytmu. Np.: wykonawcą algorytmu obliczeń będzie komputer a wykonawcą algorytmu pieczenia placka - pani domu 13 14 Polecenia DLA KOMPUTERA Pamiętaj, że: algorytm i program mają się składać NIE z równań i nierówności ale z POLECEŃ DLA KOMPUTERA zwanych też: instrukcjami, rozkazami, komendami, Np. polecenie: Wczytaj A lub dokładniej Wczytaj wartość do zmiennej A oznacza, że: komputer ma zażądać liczby a gdy ją otrzyma to ma ją umieścić w obszarze pamięci zarezerwowanym dla zmiennej A Algorytm ma być uniwersalny dla określonej klasy zadań Algorytm nie ma służyć jednorazowo, lecz ma stanowić procedurę rozwiązywania: DOWOLNEGO ZADANIA z określonej KLASY ZADAŃ na przykład rozwiązywania dowolnego równania kwadratowego. Każdy algorytm i program powinien móc działać dla wielu różnych zestawów danych Uzyskujemy to przez operowanie NAZWAMI zmiennych oraz dzięki umiejętności abstrakcyjnego uogólniania 15 16 Abstrakcyjne uogólnianie Tworzenie programu to NIE OBLICZENIA! Konstruując algorytm: przeanalizuj na konkretnych przykładach - jakie operacje komputer ma wykonywać i w jakiej kolejności a następnie uogólnij tak aby algorytm mógł działać dla wielu zestawów danych nie myśl o liczbach tylko o ROLI jaką pełnią i zastąp liczby odpowiednio nazwanymi zmiennymi uwzględnij wszelkie sytuacje - na przykład jak unikniesz dzielenia przez zero,... przykłady liczbowe niech posłużą do testowania poprawności działania algorytmu i programu (należy wówczas unikać szczególnych przypadków np. jednakowych wartości zmiennych) Zmienne proste (skalarne) i struktury danych 17 18 3

Zmienne w programowaniu Zmienne traktujemy jak pojemniki na wartości danych Każda zmienna posiada NAZWĘ przez którą odwołujemy się do przypisanego tej zmiennej obszaru pamięci komputera Rodzaj przechowywanych danych związany jest z typem zmiennej (np. zmienne liczbowe, tekstowe, logiczne) Każda zmienna musi mieć ściśle określoną rolę i najlepiej gdy nazwa zmiennej kojarzy się z tą rolą Przy tworzeniu algorytmu i programu: - koniecznie sporządź SPIS ZMIENNYCH z precyzyjnym opisem ich ról Każda zmienna posiada: NAZWĘ (lub inny identyfikator np.: adres) TYP wartości jakie może przyjmować (oraz zakres i strukturę - jeśli jest to zmienna złożona) WARTOŚĆ - określoną w każdym momencie (a jeśli jest to zmienna złożona to zbiór wartości) ale przede wszystkim pełni OKREŚLONĄ ROLĘ 19 20 Zmienne w komputerze Każdej zmiennej przypisany jest określony obszar w pamięci operacyjnej komputera identyfikowany adresem pierwszej jego komórki Obszar ten przechowuje wartość zmiennej a odwołujemy się do niego przez jej nazwę. Nowo nadana wartość zmiennej zastępuje wartość dotychczasową. Jeśli zmienna musi przechowywać wiele wartości to musi być zmienną złożoną np. wektorem, tablicą, rekordem, listą. Zakres i czas trwania zmiennej Zmienne w programach mogą się też różnić: Zakresem widoczności: globalne - widziane w całym programie lokalne - widziane tylko w jednym bloku (podprogramie) wspólne (common) dla określonych podprogramów Czasem trwania: statyczne - istniejące przez cały czas działania programu dynamiczne - tworzone i usuwane w trakcie działania progr. 21 22 Zmienne proste i złożone czyli STRUKTURY DANYCH Zmienna skalarna (zmienna prosta) - przechowuje pojedynczą wartość Oprócz zmiennych prostych czyli skalarnych mogą występować zmienne złożone czyli struktury danych takie jak: tablice (wektory, macierze i in.) rekordy (inaczej struktury) listy (zmienna długość) i inne Struktury danych (1) - TABLICA TABLICA (ang.: ARRAY) to struktura wielu danych, które oprócz wspólnej nazwy posiadają indywidualne indeksy (numery). Liczba indeksów elementu tablicy nazywa się jej wymiarem Maksymalne wartości indeksów określają rozmiary tablicy Tablica jednowymiarowa to WEKTOR Tablica dwuwymiarowa to MACIERZ 23 24 4

Struktury danych (2) Rekord to zbiór n danych o pojedynczym obiekcie lub zdarzeniu (np. twoje dane personalne: Nazwisko, rok urodzenia,...), przy czym każda z tych danych ma określony typ i nie muszą one być jednakowego typu zbiór rekordów (wierszy) tworzy tabelę (kartotekę) bazy danych Struktury danych (3) o zmiennej długości - Listy Lista jednokierunkowa - to ciąg danych z których każda oprócz wartości zawiera identyfikator (lub adres) swego następnika lub znacznik końca listy W Matlabie typ rekordowy nazywa się struct Lista dwukierunkowa - to ciąg danych z których każda oprócz wartości zawiera identyfikator (lub adres) swego następnika lub znacznik końca listy oraz identyfikator poprzednika lub znacznik początku. 25 26 Struktury danych (4) o zmiennej długości - stos i kolejka Kolejka to lista o zmiennej długości do której elementy można dołączać na końcu listy a usuwać na początku listy Może być sprzętowo realizowana jako rejestr FIFO (ang.: First In First Out - ten co pierwszy przyszedł ten pierwszy odejdzie ) Stos to lista o zmiennej długości w której zarówno dołączanie jak usuwanie elementów odbywa się na końcu listy. Może być sprzętowo realizowana jako rejestr LIFO (ang.: Last In First Out - ostatni przyszedł pierwszy wyjdzie ) Podstawowe polecenia algorytmów obliczeniowych Do budowania algorytmów obliczeniowych oraz tworzenia programów obliczeniowych, w dowolnym języku programowania, wystarczy znać: 8 podstawowych typów poleceń: 27 28 8 podstawowych typów poleceń: 1) Wprowadzanie (wczytywanie) danych = wartości danych pobierane z urządzenia wejściowego lub z pliku mają być przesłane do odpowiednich zmiennych 2) Podstawianie (przypisywanie) = wartość podanego wyrażenia ma być wyznaczona i przesłana do zmiennej (przypisana zmiennej) 3) Wyprowadzanie wyników i objaśnień na ekran lub drukarkę lub do pliku,... 4) Instrukcja warunkowa Jeżeli... to - zależnie od spełnienia lub nie spełnienia określonego warunku - nastąpi wybranie jednego z dwu wariantów Dwa typy PĘTLI dla powtarzania czynności: 5) pętla typu Dla... 6) pętla typu Podczas... 7) Definiowanie własnych podprogramów i funkcji 8) Wywoływanie podprogramów (funkcji i procedur) Wczytaj A, B A=A+2*B Drukuj A, B Tak A>100 Nie 29 Podstawowe polecenia: 1) Wczytywanie - czyli polecenie wprowadzenia wartości danej z urządzenia wejściowego do zmiennej. Na przykład: Wczytaj F Oznacza: Komputer zażąda wprowadzenia z klawiatury wartości zmiennej F wyświetlając na ekranie tekst zrozumiały dla użytkownika i określający rolę tej zmiennej np.: Sila= a wpisaną liczbę wstawi do zmiennej F 30 5

Podstawowe polecenia c.d.: 2) Podstawianie lub inaczej przypisanie zmienna = wyrażenie - to nadanie zmiennej, wartości obliczonego wyrażenia a najprostsze wyrażenie to stała (liczba) lub zmienna. Przykłady: Zeta =1.567 y1 = sin(x-1)*x^2-5 a nawet: X = X + 2 - co oznacza: do dotychczasowej wartości zmiennej X dodaj 2 i wynik wstaw do X jako jej nową wartość. Krócej mówiąc: Zwiększ X o 2 Symbole przypisania W różnych językach stosowane są różne symbole podstawiania: := = w algorytmach, Mathcadzie, Algolu, Pascalu: zmienna := wyrażenie w algorytmach: zmienna wyrażenie w algorytmach, Matlabie, Basic u: zmienna = wyrażenie 31 32 Podstawowe polecenia c.d.: 3) Wyprowadzanie wyników (napisów i wartości zmiennych) przez urządzenie wyjściowe (ekran, drukarkę) lub do pliku dyskowego Przykłady (w algorytmach): 1) Wyświetl (lub wydrukuj) tekst Moment=" oraz wartość zmiennej Moment 2) Drukuj A, B Podstawowe polecenia c.d.: 4) Rozgałęzienie "Jeśli... to... w przeciwnym przypadku... (w Matlabie instrukcja IF... ELSE...END) Przykład 1: 1) Jeśli wyrażenie Delta>0 jest prawdziwe to wykonaj grupę instrukcji S1 a jeśli nie to wykonaj grupę instrukcji S2 Przykład 2: 2) Tak A>100 Nie 33 34 Podstawowe polecenia c.d.: 5) Pętla typu "Dla wartości... wykonuj... koniec" (instrukcja pętli "FOR... END") Przykład (w algorytmie): Dla poszczególnych wartości zmiennej X, zmieniającej się od XP do XK z przyrostem DX wykonuj ciąg instrukcji zapisanych poniżej aż do słowa KONIEC (tyle razy ile będzie wartości X) Podstawowe polecenia c.d.: 6) Pętla typu "Dopóki..." (instrukcja pętli "WHILE... WEND") Przykład (w algorytmie): Tak długo jak spełnione jest wyrażenie logiczne warunek powtarzaj wykonywanie instrukcji zapisanych poniżej aż do słowa KONIEC 35 36 6

Podstawowe polecenia c.d.: 7) Definiowanie podprogramu 8) Wywołanie podprogramu (wcześniej zdefiniowanego) Przykład: Wywołanie podprogramu rozwiązywania równania kwadratowego: [X1, X2] = RRKW(-3, 7.45, 0.9) a b c RRKW podprogram rozwiązywania równania kwadratowego Przykłady algorytmów X1 X2 37 38 Przykład 1: Utwórz algorytm wyznaczania sumy ciągu N dowolnych liczb wczytywanych z klawiatury Próbujemy sformułować różne warianty, dążąc do zapisu w którym identyczne operacje są powtarzane - wtedy można użyć t.zw. pętlę programową Najprostszy jest wariant (c): S := S+A i oznacza: dotychczasową wartość S zwiększ o A i i zapamiętaj c.d. Przykładu 1 (suma ciągu N wczytywanych liczb) Jeśli nie jest potrzebne pamiętanie całego ciągu to wystarczą zmienne proste (skalarne): N - liczba elementów ciągu i - numer wczytywanej liczby A - wartość wczytanej i-tej liczby S - suma już wczytanych liczb jako nowe S 39 40 Przykład 1 c.d. - program w języku BASIC PRINT "Program oblicza sume ciagu dowolnych liczb" INPUT "Podaj ilosc liczb (elementow ciagu), N="; N S = 0 FOR i = 1 TO N INPUT "Wpisz element ciagu A="; A S = S + A NEXT i PRINT "SUMA="; S Przykłady algorytmów z użyciem tablic i podprogramów 41 42 7

Przykład 2 - Potrzeba zastosowania tablicy c.d. Przykładu 2 - potrzeba tablicy Utworzyć algorytm wyznaczania średniej oraz wariancji i odchylenia standardowego ciągu wczytanych N liczb (wyników pomiarów) Jak widać ciąg A(i) potrzebny jest dwukrotnie 43 Wariancja to średnia z ciągu kwadratów odchyleń od średniej. Po wyznaczeniu sumy oraz średniej arytmetycznej, wczytany ciąg będzie znowu potrzebny do wyznaczania odchyleń od średniej. W takim przypadku trzeba zapamiętać cały ciąg liczb w tablicy, więc potrzebne są zmienne: N - liczba powtórzeń i - numer wczytywanej liczby A(i) - i-ta liczba wczytana do i-tego elementu tablicy S - suma już wczytanych liczb SR - srednia z ciagu wyników pomiarów V - wariancja OD - odchylenie standardowe D(i) - ciag kwadratów odchylen 44 Program w języku BASIC (z tablicami) Przykład 2 c.d. - potrzeba podprogramów Wczytywanie z pliku dyskowego ciągu liczb o niewiadomej długości to często występujące w różnych problemach zadanie więc: - warto zdefiniować wczytywanie z pliku jako osobny podprogram Wyznaczanie średniej w naszym zadaniu odbędzie się dwa razy: 1) średnia z ciągu wyników pomiarów 2) średnia z ciągu kwadratów odchyleń wyników od średniej - warto więc utworzyć podprogram funkcyjny (funkcję) do obliczania średniej 45 46 Przykład 2 c.d. - Definiowanie podprogramów Użycie podprogramów 47 48 8

Postacie zapisu algorytmów Ten sam algorytm może być zapisywany przy użyciu różnych środków (języków) np.: 1) w języku naturalnym - po polsku, w postaci ponumerowanych poleceń, 2) w postaci schematu blokowego 3) w języku programowania komputera - jako program............ Tak więc ważna jest merytoryczna treść algorytmu oraz zrozumiałość, jednoznaczność i wykonalność poleceń a nie środki zapisu PROGRAM to ALGORYTM zapisany w języku programowania 49 50 Przykład: algorytm obliczania kwadratów dowolnych liczb postać 1: opis słowny 1) Będą użyte zmienne liczbowe: X, Y, oraz tekstowa: P 2) Wyświetl: Obliczanie kwadratów. Podaj liczbę: 3) Wczytaj liczbę do zmiennej X 4) Oblicz: X*X i wynik wstaw do Y 5) Wyświetl tekst Kwadrat liczby = oraz wartość Y 6) Wyświetl pytanie: Czy nowe obliczenie? (T/N): 7) Wczytaj znak z klawiatury do zmiennej P 8) Jeśli wartość P = T lub P = t to skocz do (2) 9) KONIEC algorytm obliczania kwadratów dowolnych liczb postać 2: schemat blokowy 51 52 algorytm obliczania kwadratów dowolnych liczb postać 3: program w języku BASIC ' w tym języku nie musimy deklarować zmiennych 2 PRINT "Obliczanie kwadratów" INPUT "Podaj liczbe:"; X Y = X * X PRINT "Kwadrat liczby ="; Y INPUT "Czy nowe obliczenie? (T/N):"; P$ IF P$ = "T" OR P$ = "t" GOTO 2 STOP algorytm obliczania kwadratów dowolnych liczb postać 4: program w języku PASCAL program kwadraty; uses crt, dos; VAR x,y:real; p:char; label 2; BEGIN 2: writeln('obliczanie kwadratow.'); write('podaj liczbe:'); readln(x); y:=x*x; write('kwadrat liczby='); writeln(y); write('czy nowe obliczenie? (T/N):'); readln(p); if (p='t') OR (p='t') then goto 2 END. 53 54 9

algorytm obliczania kwadratów dowolnych liczb postać 5: program w języku MATLAB % Program oblicza kwadraty liczb p= 't'; while p=='t' p=='t' disp('obliczanie kwadratow.'); x = input('podaj liczbe :'); y = x^2; disp('kwadrat liczby = '); disp(y); p=input('czy nowe obliczenie? (T/N):', 's'); end 55 algorytm obliczania kwadratów dowolnych liczb postać 6: program w języku C main() { float x,y; char p; p='t'; while(p=='t' p=='t') { printf("\n OBLICZANIE KWADRATOW. Podaj liczbe:"); scanf("%f",&x); y=x*x; printf("\n Kwadrat liczby= %f",y); printf("\n Czy nowe obliczenia? (T/N):"); p=getch(); } } 56 Idea zadań śledzenia algorytmu Śledzenie algorytmów polega na wykonywaniu poleceń zawartych w algorytmie, w podobny sposób jak wykonywałby to komputer. Może być to przydatne dla sprawdzenia poprawności algorytmu, ale na ćwiczeniach z informatyki poprawne wykonanie zadania ze śledzenia algorytmów udowodni, że student zna sens i działania poszczególnych poleceń. Każdy student otrzyma ten sam algorytm oraz inny zestaw danych. Na kartce wydzieli obszary: 1) dla danych czekających w kolejce na urządzeniu wejściowym, 2) dla pamięci zmiennych 3) dla wydruku wyników 57 58 59 60 10

61 62 63 64 65 66 11

67 68 Przykład algorytmu porządkowania ciągu: 69 70 12