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

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

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

Język programowania PASCAL

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

Podstawy Programowania C++

Podstawy Informatyki Computer basics

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

Z. Rudnicki: WPROWADZENIE DO INFORMATYKI I PROGRAMOWANIA

Technologie informacyjne - wykład 12 -

Definicje. Algorytm to:

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

Wykład z Technologii Informacyjnych. Piotr Mika

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

1 Wprowadzenie do algorytmiki

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

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Algorytm. a programowanie -

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

PRZEWODNIK PO PRZEDMIOCIE

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

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

Programowanie w języku Python. Grażyna Koba

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Algorytm. Krótka historia algorytmów

Podstawy Programowania

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

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Warsztaty dla nauczycieli

Ćwiczenie 1. Wprowadzenie do programu Octave

Zapisywanie algorytmów w języku programowania

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

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

Ćwiczenie 1. Wprowadzenie do programu Octave

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

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

Programowanie i techniki algorytmiczne

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

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

Algorytmika i pseudoprogramowanie

Cw.12 JAVAScript w dokumentach HTML

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

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

Podstawy Programowania Algorytmy i programowanie

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Przetwarzanie sygnałów

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

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

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

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

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

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

Język ludzki kod maszynowy

Metodyki i techniki programowania

Algorytm. Krótka historia algorytmów

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

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

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

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

KARTA MODUŁU KSZTAŁCENIA

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do Programowania Lista 1

Temat 20. Techniki algorytmiczne

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

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


E-E-A-1008-s5 Komputerowa Symulacja Układów Nazwa modułu. Dynamicznych. Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy

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

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

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

Elektrotechnika I stopień Ogólno akademicki. Przedmiot kierunkowy. Obowiązkowy Polski VI semestr zimowy

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Ogólne wiadomości o językach programowania

lekcja 8a Gry komputerowe MasterMind

PRZEWODNIK PO PRZEDMIOCIE

Pascal - wprowadzenie

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

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

ALGORYTMY I PROGRAMY

Podstawy i języki programowania

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

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

do instrukcja while (wyrażenie);

Algorytmy i schematy blokowe

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

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Programowanie komputerowe. Geodezja i Kartografia I stopień (I stopień / II stopień) akademicki (ogólno akademicki / praktyczny)

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

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Programowanie w środowisku Baltie

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

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:

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

2.8. Algorytmy, schematy, programy

Transkrypt:

Wydział Inżynierii Mechanicznej i Robotyki AGH w Krakowie Studia Niestacjonarne, Rok 1, semestr 2 przedmiot: Informatyka Dr inż. Zbigniew Rudnicki Katedra Konstrukcji i Eksploatacji Maszyn AGH B-2, pok.301, tel.617-31-27 AGH WIMiR Studia Niestacjonarne Semestr 2: Informatyka 2014 AiR 8 godz. wykładu, 8 godz. ćwiczeń (poprzednio 10+10) MiBM 8 godz. wykładu, 8 godz. ćwiczeń (poprzednio 8+16) 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 1

Cele nauczania przedmiotu Informatyka (ograniczone wymiarem godzinowym) 1) poznanie podstawowych idei konstruowania algorytmó oraz metod i narzędzi programowania komputerów, z wykorzystaniem różnych struktur danych i języków programowania; 2) praktyczne poznanie podstaw programowania w języku BASIC 3) nauczenie się podstaw użytkowania języka i potężnego pakietu oprogramowania jakim jest Matlab; 4) poznanie zasad tworzenia programów obiektowo-zdarzeniowych z interfejsem graficznym ( okienkowych ) w Matlabie i Visual Basic u 3 Ćwiczenia Laboratoryjne: 8 godz. ćwiczeń laboratoryjnych: Algorytmy (2 godz.)- śledzenie działań (oceniane), konstruowanie. BASIC (2 godz.)- podstawowe polecenia i proste programy MATLAB (4 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ń Visual Basic (2 godz.) - budowa prostych programów 4 2

Podręcznik: Wprowadzenie do Informatyki i Programowania Z. Rudnicki. Wyd. AGH Kraków 2013 5 Podręcznik - Rozdział 2 6 3

Podręcznik - Rozdział 3 7 Podręcznik - Rozdział 4 cz.1 8 4

Podręcznik - Rozdział 4 cz.2 9 Kolejne rozdziały podręcznika: 5. Przykłady algorytmów i programów w jezyku BASIC 6. Zadania do zaprogramowania 7. Wprowadzenie do programowania w Visual Basic 8. Podstawy programowania w MATLAB-ie 9. MATLAB operowanie na tablicach 10. MATLAB - obiekty i programowanie w trybie graficznym 11. Elementy jezyka C i porównanie z Matlabem 12. Bazy danych 13. Zarys wybranych metod sztucznej inteligencji (sieci neuronowe i systemy ekspertowe) 10 5

Tematyka wykładów (obecność sprawdzana): 1) Wprowadzenie do algorytmów i struktury danych oraz metody i narzędzia programowania 2) Podstawy programowania w języku BASIC 3) Matlab - charakterystyka, tryby użytkowania i podstawy programowania 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 11 Wykład 1: Wprowadzenie do programowania czyli ALGORYTMY i STRUKTURY DANYCH Opracował: Zbigniew Rudnicki 6

Po co komputerowi programy? Komputer działając według różnych programów 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... 13 Jak opracować program dla określonego zadania? 1) określić jakie rezultaty mają być uzyskane oraz jakie dane będą do tego niezbędne 2) zdefiniować potrzebne zmienne - a dokładniej struktury danych czyli pojemniki dla niezbędnych danych (także wynikowych) oraz sposoby dostarczania danych 3) zdefiniować (krok po kroku) procedury jakie mają być wykonywane na strukturach danych - według określonych przepisów czyli algorytmów. 14 7

A więc podstawa programowania to: Umiejętność tworzenia algorytmów operujących na zmiennych i strukturach danych 15 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 16 8

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 17 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 18 9

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 (unikać należy szczególnych przypadków np. jednakowych wartości zmiennych) 19 Zmienne W programowaniu, zmienne można traktować jako 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 20 10

Zmienne proste (skalarne) i struktury danych 21 ZMIENNA w dziedzinie modeli matematycznych: zmienna to symboliczna reprezentacja cechy modelowanego obiektu, procesu, lub samego modelu a w dziedzinie programów komputerowych: zmienna to POJEMNIK NA DANE a dokładniej to obszar pamięci komputera, dostępny poprzez przypisaną mu NAZWĘ i przechowujący WARTOŚĆ (lub zbiór wartości) określonego typu. Zamiast mówić: zmiennej X przypisano wartość..., lub nadano wartość będziemy także mówić: do zmiennej X wstawiono wartość.... 22 11

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Ę 23 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ą. 24 12

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. 25 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 26 13

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 27 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 W Matlabie typ rekordowy nazywa się struct 28 14

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 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. 29 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 ) 30 15

Cegiełki do budowy 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ń: 31 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 Wczytaj A, B A=A+2*B Drukuj A, B Tak Nie A>100 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) 32 16

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 33 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 34 17

Symbole przypisania W różnych językach stosowane są różne symbole podstawiania: := = zmienna := wyrażenie w algorytmach: zmienna wyrażenie w algorytmach, Matlabie, Basic u: zmienna = wyrażenie w algorytmach, Mathcadzie, Algolu, Pascalu: 35 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 36 18

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 37 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) 38 19

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 39 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 X1 X2 40 20

Przykłady algorytmów 41 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 jako nowe S 42 21

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 43 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 44 22

Przykłady algorytmów z użyciem tablic i podprogramów 45 Przykład 2 - Potrzeba zastosowania 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 46 23

c.d. Przykładu 2 - potrzeba tablicy 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 47 Program w języku BASIC (z tablicami) 48 24

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 49 Przykład 2 c.d. - Definiowanie podprogramów 50 25

Użycie podprogramów 51 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 52 26

PROGRAM to ALGORYTM zapisany w języku programowania 53 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 54 27

algorytm obliczania kwadratów dowolnych liczb postać 2: schemat blokowy 55 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 56 28

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. 57 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 58 29

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(); } } 59 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 60 30

Śledzenie działań algorytmu 61 Śledzenie działań algorytmu 62 31

Śledzenie działań algorytmu 63 Śledzenie działań algorytmu 64 32

Śledzenie działań algorytmu 65 Śledzenie działań algorytmu 66 33

Śledzenie działań algorytmu 67 Śledzenie działań algorytmu 68 34

Śledzenie działań algorytmu 69 Śledzenie działań algorytmu 70 35

Śledzenie działań algorytmu 71 Śledzenie działań algorytmu 72 36

Przykład algorytmu porządkowania ciągu: 73 37