Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Podobne dokumenty
Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Pętla for. Wynik działania programu:

Cw.12 JAVAScript w dokumentach HTML

Zadanie: Napisać program, który odgadnie liczbę naturalną z przedziału [1, 50] wylosowaną przez komputer. Można zastosować różne algorytmy.

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

Wstęp do Programowania Lista 1

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

Podstawy Programowania C++

Pętle. Dodał Administrator niedziela, 14 marzec :27

Programowanie w Scilab

Wstęp do programowania

Pętle instrukcje powtórzeo

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

4. Funkcje. Przykłady

Instrukcje sterujące

7. Pętle for. Przykłady

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

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

Programowanie komputerowe. Zajęcia 1

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

Liczby losowe i pętla while w języku Python

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Programowanie - instrukcje sterujące

Struktura pliku projektu Console Application

Instrukcje cykliczne (pętle) WHILE...END WHILE

Pętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.

3. Instrukcje warunkowe

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

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

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Wykład z Technologii Informacyjnych. Piotr Mika

po wykonaniu instrukcji wartość zmiennej x zostanie zwiększona o 50,a

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wstęp do programowania

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

do instrukcja while (wyrażenie);

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

Blockly Kodowanie pomoc.

Instrukcje sterujące. Programowanie Proceduralne 1

Metody numeryczne Laboratorium 2

do instrukcja while(wyrażenie);

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

1 Podstawy c++ w pigułce.

for (inicjacja_warunkow_poczatkowych(końcowych); wyrazenie_warunkowe; wyrazenie_zwiekszajace(zmniejszające)) { blok instrukcji; }

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Scilab skrypty (programowanie)

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Podstawy programowania w języku C

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

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Lekcja : Tablice + pętle

Wykresy i interfejsy użytkownika

Wprowadzenie komentarzy do programu

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

1 Podstawy c++ w pigułce.

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

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Wstęp do programowania

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

Wstęp do informatyki- wykład 7

JAVAScript w dokumentach HTML (1)

JAVAScript w dokumentach HTML - przypomnienie

Konstrukcje warunkowe Pętle

Programowanie komputerowe. Zajęcia 3

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Warunki logiczne instrukcja if

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

WHILE (wyrażenie) instrukcja;

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

for (inicjacja_warunkow_poczatkowych; wyrazenie_warunkowe; wyrazenie_zwiekszajace) { blok instrukcji; }

Bloki anonimowe w PL/SQL

Jak zawsze wyjdziemy od terminologii. While oznacza dopóki, podczas gdy. Pętla while jest

Testowanie i walidacja oprogramowania

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

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

Dział I FUNKCJE I ICH WŁASNOŚCI

ECDL Podstawy programowania Sylabus - wersja 1.0

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Języki programowania zasady ich tworzenia

Wymagania na egzamin poprawkowy z matematyki dla klasy I C LO (Rok szkolny 2015/16) Wykaz zakładanych osiągnięć ucznia klasy I liceum

Wprowadzenie do programowania w języku C

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Język C, instrukcje sterujące (laboratorium)

Języki i techniki programowania Ćwiczenia 2

Wstęp do programowania

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

Wskazówki dotyczące zmiennych, tablic i procedur 1

TRYGONOMETRIA FUNKCJE TRYGONOMETRYCZNE KĄTA SKIEROWANEGO

Opis zagadnieo 1-3. Iteracja, rekurencja i ich realizacja

6. Pętle while. Przykłady

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Proste programy w C++ zadania

Wprowadzenie do Scilab: podstawy języka Scilab

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

8. TRYGONOMETRIA FUNKCJE TRYGONOMETRYCZNE KĄTA OSTREGO.

Transkrypt:

Pętle wielokrotne wykonywanie ciągu instrukcji. Bardzo często w programowaniu wykorzystuje się wielokrotne powtarzanie określonego ciągu czynności (instrukcji). Rozróżniamy sytuacje, gdy liczba powtórzeń jest znana oraz gdy liczba powtórzeń zależy od konkretnej sytuacji napotkanej w toku obliczeń. Pętla for for i=1:10.. Instrukcje zawarte pomiędzy instrukcją for a instrukcją zostaną wykonane 10 razy, wynika to z zapisu i=1:10. Zmienna i (nazwa przykładowa) nazywana jest zmienną sterującą; jej wartość zmienia się przy każdym obiegu pętli, począwszy od wartości początkowej (tu: 1), aż do wartości końcowej (10). Krok, czyli skok wartości w tym przykładzie wynosi 1 i dlatego został pominięty, chociaż równie dobrze można napisać: for i=1:1:10. i=5 i=4 i=3 i=2 i=1 for i=1:1:5 k=1 k=2 k=3 k=4 for k=4:-1:1 Koniec pętli, przejście do kolejnych instrukcji Koniec pętli, przejście do kolejnych instrukcji Krok może mieć wartość dodatnią: for k=1:2:10 disp(k) i ujemną, a wtedy wartość zmiennej sterującej w kolejnych wykonaniach pętli się zmniejsza: for licz=4:-1:1 disp(licz) Uwagi: Instrukcja disp(k) powoduje wypisanie wartości zmiennej k na konsoli. Można równocześnie wypisać większą liczbę zmiennych, oddzielając je przecinkiem (ale będą wypisywane od końca ), można też wypisywać teksty (mądrze mówi się łańcuchy znakowe ). Warto popatrzeć też na efekt instrukcji: disp( zmienna licz +string(licz)) Matematyka dla ciekawych świata -19- Scilab

Bardzo często zmienna sterująca jest powiązana z indeksami elementów wektorów pozwalając na ich systematyczne przetwarzanie/przeglądanie. Zacznijmy od takich przykładów: x=linspace(1,10,10); for i=1:10 disp (x(i)) for i=10:-1:1 disp(x(i)) albo for i=1:2:10 disp(x(i)) Przykład: Wyznaczyć 20 początkowych wyrazów ciągu zdefiniowanego wzorem: u = 1 1 u i = 2 u 5 + 1 i u(1)=1; Inicjalizacja. Od czegoś trzeba zacząć. Koniecznie wykonywana PRZED rozpoczęciem pętli. for i=1:1:19 u(i+1)=2*u(i)-5; Przy każdym obiegu pętli tworzony jest kolejny element wektora u. Począwszy od u(2)=2*u(1)-5=-3, u(3)=2*u(2)-5=-11,.) Zadanie: Wyznaczyć 10 pierwszych elementów ciągu Fibonacciego. Zadanie: Obliczyć wartość 6! Pętla while Innym rodzajem pętli jest pętla while, uzależniająca wykonanie ciągu instrukcji od spełnienia warunku. h=0; while h<4 h=h+1; disp (h) ; Frazę while h<4 czytamy: dopóki spełniony jest warunek h<4 wykonuj. Zauważmy, że gdyby wartość zmiennej h nie była modyfikowana wewnątrz pętli, to pętla ta nie miałaby szansy się zakończyć. Matematyka dla ciekawych świata -20- Scilab

h=0 czy warunek jest spełniony h<4 while warunek instrukcje pętli h=h+1 4. h=4 1. h=1 2. h=2 3. h=3 koniec pętli kolejne instrukcje programu koniec pętli kolejne instrukcje programu Uwaga na marginesie: Jak już było wspomniane, instrukcja disp(h) powoduje wypisanie wartości zmiennej h na konsoli. Tu wykorzystujemy tę instrukcję jako przykładową zawartość pętli. Warunki, wyrażenia logiczne i instrukcja warunkowa Rozważmy warunek: h<7. W zależności od wartości zmiennej h warunek ten ma wartość prawda (ang. true) albo fałsz (ang. false). Inne możliwości nie ma. Warunek: h<7 jest przykładem wyrażenia logicznego. Wyrażenia logiczne Wyrażenie logiczne przyjmuje wartość prawda lub fałsz. W wyrażeniu logicznym występują operatory relacji: == równy <> różny > >= większy, większy równy < <= mniejszy, mniejszy równy np: h<7, 5<>2, a==b, c^2==a^2+b^2, y<2*x+5 W wyrażeniach logicznych występują operatory logiczne: & i (and) koniunkcja lub (or) alternatywa ~ nie (not) negacja np: a>b & c>=10 wyrażenie ma wartość prawda jeśli spełnione jest a>b oraz c>=10 x<5 x>10 wyrażenie ma wartość prawda jeśli x<5 lub x>10 (pytanie: a jak inaczej można to zapisać) W szczególności wyrażeniami logicznymi są %t i %f specjalne zmienne Scilaba, o wartościach równych odpowiednio prawda i fałsz. Definiowanie warunków jest niezbędne do wykorzystania chyba najważniejszej instrukcji, jaką jest instrukcja warunkowa if. Matematyka dla ciekawych świata -21- Scilab

Instrukcja warunkowa Instrukcja warunkowa pozwala realizować określone fragmenty programu (ciąg instrukcji) w zależności od spełnienia (lub nie) warunku i ma postać (zaczynamy od najprostszej): if warunek then if a>5 then Jeśli spełniony jest warunek a>5 wykonana zostanie instrukcja ; jeśli warunek nie jest spełniony, instrukcja nie zostanie wykonana. Kolejna postać instrukcji warunkowej: if warunek then if a>5 then Jeśli spełniony jest warunek a>5 wykonana zostanie instrukcja ; jeśli warunek nie jest spełniony ( w przeciwnym przypadku ), z=z*10 wykonana zostanie instrukcja z=z*10 a>5 a>5 z=z*10 Instrukcję if można jeszcze bardziej rozbudować, sprawdzając sekwencję warunków: if warunek then instrukcje if warunek1 then instrukcje1 if warunek2 then instrukcje2 Matematyka dla ciekawych świata -22- Scilab

a>5 a>0 if a>5 then if a>0 then z=z*10 z=0 z=z*10 z=0 Jeśli spełniony jest warunek warunek wykonany jest ciąg instrukcji instrukcje. W przeciwnym przypadku i o ile spełniony jest warunek warunek1 wykonany jest ciąg instrukcji instrukcje1. W przeciwnym przypadku (czyli jeśli nie jest spełniony warunek warunek i nie jest spełniony warunek warunek1 ) i jeśli spełniony jest warunek warunek2 realizowany jest ciąg instrukcji instrukcje2, itd. Instrukcje znajdujące się po frazie wykonywane są tylko wtedy, jeśli nie został spełniony żaden z występujących wcześniej warunków. Powrót do pętli while i nie tylko Zakończenie pętli while bardzo często jest sterowane za pomocą instrukcji if. Na przykład: i=0; while %t taka pętla, o ile jej jakoś nie przerwiemy, wykonywałaby się bez końca bowiem wartością wyrażenia logicznego %t zawsze jest prawda i = i + 1; W każdym obiegu pętli zwiększa się wartość zmiennej i x(i) = 2*i; Wyznacza się wartość kolejnego (i-tego) elementu wektora x. if i > 10 then Jeśli i > 10 to: break następuje zakończenie (przerwanie) wykonywania pętli Uwagi: Instrukcja warunkowa if jest zagnieżdżona wewnątrz instrukcji pętli. Można zagnieżdżać w sobie kolejne instrukcje warunkowe. Można też zagnieżdżać pętle czyli umieszczać wewnątrz jednej pętli kolejną pętlę, i tak dalej. Koniecznie trzeba używać w takim przypadku innych zmiennych sterujących. Wcinanie zagnieżdżonych instrukcji zwiększa czytelność kodu. Uwagi inne: Trzeba uważać na porównania, czyli operator ==! W przypadku porównywania wartości całkowitych nie powinno być niespodzianek, natomiast w przypadku wartości rzeczywistych należy uwzględnić wpływ arytmetyki komputerowej, czyli zaokrąglenia. Matematyka dla ciekawych świata -23- Scilab

Przykład: Twierdzenie Pitagorasa Dany jest trójkąt prostokątny, powstały z przecięcia przekątną kwadratu o boku równym 2. Jest to trójkąt prostokątny, o bokach równych odpowiednio 2, 2 (przyprostokątne) i 2 2 (przeciwprostokątna). A zatem powinno zachodzić twierdzenie Pitagorasa. Sprawdzamy to w Scilabie: a=2; b=2; c=sqrt(2)*2; pitagoras=a^2+b^2==c^2 Ostatnia instrukcja podstawienia jest pozornie dosyć dziwaczna. Jej prawa strona to wyrażenie logiczne porównujemy sumę kwadratów przyprostokątnych i kwadrat przeciwprostokątnej. Wynikiem jest fałsz! Czy prawo Pitagorasa nie jest spełnione Sprawdźmy to inaczej obliczając: error=c^2-a^2-b^2 Otrzymuje się: error = 0.00000000000000178 Albo jeszcze inaczej: -->a^2+b^2 ans = 8. -->c^2 ans = 8.00000000000000178 Przyczyną zamieszania są błędy zaokrąglenia związane z wyznaczeniem 2 2. Zadanie: Utworzyć wektor x złożony ze 100 elementów o wartościach losowych z przedziału [0, 1). x=rand(100,1); 1) Narysować wykres. 2) Obliczyć ile elementów wektora x ma wartości większe od 0.7 ile = 0 for i=1:100 if x(i) > 0.7 then ile = ile + 1; disp ( Liczba elementow wiekszych od 0.7= +string(ile)) 3) Obliczyć ile elementów wektora x ma wartości mniejsze od 0.5. 4) Utworzyć wektor y poprzez zastąpienie elementów wektora x większych od 0.6 wartością 0.6. Narysować wykres. y=x; for i=1:100 if x(i)>0.6 then y(i)=0.6; SCILAB Materiały opracowała Anna Trykozko, we współpracy z Łukaszem Czerwińskim Matematyka dla ciekawych świata -24- Scilab