Instrukcja warunkowa i wyboru

Podobne dokumenty
Instrukcje iteracyjne (pętle)

Wprowadzenie do języka Pascal

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

1 Podstawy c++ w pigułce.

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

Programowanie w Turbo Pascal

Pascal - wprowadzenie

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

LibreOffice Calc VBA

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

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

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

Wstęp do programowania. Różne różności

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

Programowanie w języku Python. Grażyna Koba

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

1 Podstawy c++ w pigułce.

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

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Podstawy Programowania C++

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Cw.12 JAVAScript w dokumentach HTML

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

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

Podstawy programowania

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

Wstęp do programowania

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

Warunki logiczne instrukcja if

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

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

Zapis algorytmów: schematy blokowe i pseudokod 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Visual Basic for Application (VBA)

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Programowanie Delphi obliczenia, schematy blokowe

Podstawy programowania

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ć

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Proste programy w C++ zadania

Informatyka 1. Przetwarzanie tekstów

3. Instrukcje warunkowe

Pascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:

Kiedy i czy konieczne?

Wstęp do Programowania Lista 1

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

Właściwości i metody obiektu Comment Właściwości

Algorytmika i Programowanie VBA 1 - podstawy

Kalkulator. Programowanie komputerów. Kalkulator możliwe udoskonalenia. Kalkulator. Kalkulator. Kalkulator możliwe udoskonalenia

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Technologie Informacyjne Mechatronika 2012/2013 Algorytmy. Podstawy programowania

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

Podstawy programowania w języku C

Warsztaty dla nauczycieli

Odczyt danych z klawiatury Operatory w Javie

Instrukcje sterujące

Programowanie - instrukcje sterujące

WIADOMOŚCI WSTĘPNE WPROWADZENIE DO JĘZYKA TURBO PASCAL. Klawisze skrótów. {to jest właśnie komentarz, moŝna tu umieścić dowolny opis}

Języki programowania zasady ich tworzenia

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

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

Definicje. Algorytm to:

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

ECDL Podstawy programowania Sylabus - wersja 1.0

Pracownia Informatyczna Instytut Technologii Mechanicznej Wydział Inżynierii Mechanicznej i Mechatroniki. Podstawy Informatyki i algorytmizacji

Konstrukcje warunkowe Pętle

Język programowania PASCAL

Wykład 03 JavaScript. Michał Drabik

Wprowadzenie do systemu Delphi

do instrukcja while (wyrażenie);

W wielu obliczeniach w matematyce bądź fizyce wykonanie niektórych kroków zależy od spełnienia warunku.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

1 Wprowadzenie do algorytmiki

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Instrukcja warunkowa i złoŝona.

Bloki anonimowe w PL/SQL

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Podstawy programowania obiektowego

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

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

ForPascal Interpreter języka Pascal

Podstawy programowania C. dr. Krystyna Łapin

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Elementy języków programowania

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Wprowadzenie komentarzy do programu

Programy. Z Delphi. Opracowała Małgorzata Roguska

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

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

PHP w-3. Sterowanie w PHP

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

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5

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

Transkrypt:

Instrukcja warunkowa i wyboru projektowanie algorytmów instrukcje sterujące języka Pascal instrukcja warunkowa operatory relacyjne i logiczne instrukcja wyboru echniki programowania I s.3-1

Projektowanie algorytmów Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania; zbiór poleceń określających sposób przetwarzania zbioru danych ze wskazaniem kolejności w jakiej mogą być wykonane. Realizacja każdego programu powinna być poprzedzona procesem projektowania, którego istotnym elementem jest zaplanowanie sposobu przetwarzania danych. Algorytm stanowi uniwersalny język zapisu, niezależny od docelowego narzędzia programowania. Podstawowe symbole SAR początek algorytmu przejście do następnej operacji SOP koniec algorytmu warunek blok decyzyjny instrukcja operacja lub proces instrukcja operacja wejścia-wyjścia echniki programowania I s.3-2

Przykładowy algorytm (1) SAR włóż kartę wprowadź PI PI poprawny wprowadź kwotę odbierz gotówkę wyjmij kartę nast. operacja? SOP echniki programowania I s.3-3

Przykładowy algorytm (2) SAR wprowadź a, b, c delta = b 2-4ac delta < 0 delta = 0 brak rozwiązania x 1 =(-b-delta)/(2a) x = -b/(2a) x 2 =(-b+delta)/(2a) x x 1, x 2 SOP echniki programowania I s.3-4

Instrukcje sterujące Instrukcja sterująca element języka programowania, który służy do określenia kolejności wykonania instrukcji zawartych w kodzie programu. Instrukcje sterujące w języku Pascal Instrukcja warunkowa (if then, if then else) wprowadza rozgałęzienie w kodzie programu, tworząc dwie alternatywne sekwencje instrukcji. Instrukcja wyboru, inaczej instrukcja decyzyjna (case of) wprowadza rozgałęzienie w kodzie programu tworząc dowolną liczbę alternatywnych sekwencji instrukcji. Instrukcja pętli (for, while, repeat until) umożliwia cykliczne powtarzanie pewnej sekwencji instrukcji określoną liczbę razy. Instrukcja grupująca (begin end) wydziela pewną część kodu programu tworząc grupę instrukcji traktowanych jak pojedyncza instrukcja programu, pełni rolę nawiasów syntaktycznych. echniki programowania I s.3-5

Instrukcje sterujące w algorytmach Instrukcje warunkowe Instrukcje pętli Instrukcja złożona (grupująca) Potencjalna instrukcja wyboru echniki programowania I s.3-6

Instrukcja warunkowa (1) if ( warunek ) then (2) if ( warunek ) then instrukcja; instrukcja1 else instrukcja2; warunek warunek instrukcja instrukcja1 instrukcja2 (1) Jeżeli warunek jest prawdziwy (ma wartość rue) wykonaj instrukcję (gdy warunek jest fałszywy instrukcja jest pomijana). (2) Jeżeli warunek jest prawdziwy (ma wartość rue) wykonaj instrukcję1 w przeciwnym wypadku (warunek ma wartość False) wykonaj instrukcję2. echniki programowania I s.3-7

Operatory relacyjne Operatory logiczne > większy and koniunkcja < mniejszy or alternatywa >= większy lub równy not negacja <= mniejszy lub równy <> różny = równy Przykład 4 procedure Form1.Button1Click(Sender: Object); var x: Integer; begin x := StroInt(Edit1.ext); if ( x > 0 ) then Label2.Caption:='Liczba dodatnia' else Label2.Caption:='Liczba ujemna lub zero'; Operatory relacyjne i logiczne Edit1 Label2 Pełny kod programu dostępny na stronie przedmiotu jako "Przykład04" echniki programowania I s.3-8

Instrukcja złożona W instrukcji warunkowej za słowem then lub else może wystąpić tylko jedna instrukcja, każda następna będzie traktowana jako niezależna od warunku. W celu umieszczenia bloku instrukcji wewnątrz instrukcji warunkowej należy umieścić je pomiędzy słowami begin i end taki blok nazywany jest instrukcją złożoną. Przykład 4a procedure Form1.Button1Click(Sender: Object); var Wynik z begin i end x: Integer; Edit1 begin Label2.Caption:=''; Label2 Label3.Caption:=''; x := StroInt(Edit1.ext); Label3 if ( x <= 0 ) then Wynik bez begin i end Label2.Caption:='Liczba ujemna lub zero' else begin Label2.Caption:='Liczba dodatnia'; Label3.Caption:='czyli większa od zera'; Pełny kod programu dostępny na stronie przedmiotu jako "Przykład04a" echniki programowania I s.3-9

Przykład 3d równanie liniowe, modyfikacja IV Modyfikacja programu rozwiązującego równanie liniowe w wersji z obsługą wyjątków (wykład 2., s.12, przykład 03a), sprawdzenie współczynnika a przed wykonaniem obliczeń (nie wystąpi błąd dzielenia przez zero). procedure Form1.Button1Click(Sender: Object); var a, b, x: real; begin try a := StroFloat(Edit1.ext); b := StroFloat(Edit2.ext); if ( a = 0 ) then Label5.Caption := 'Brak rozwiązania' else begin x := -b/a; Label5.Caption := 'Rozwiązanie: x=' + FormatFloat('0.0000',x); end except ShowMessage('Współczynniki równania muszą być liczbami'); Pełny kod programu dostępny na stronie przedmiotu jako "Przykład03d" echniki programowania I s.3-10

Formatowanie kodu źródłowego wcięcia Wcięcia to sposób formatowania kodu źródłowego, który polega na niewielkim przesunięciu instrukcji (2-3 spacje, tabulacja, itp.) umieszczonych wewnątrz pewnego bloku. aki zapis nie ma wpływu na sposób wykonania programu, ale zwiększa jego czytelność ułatwiając odnalezienie miejsc, w których rozpoczynają się i kończą kolejne instrukcje sterujące. Przykład try a:=strofloat(edit1.ext); b:=strofloat(edit2.ext); if ( a = 0 ) then Label5.Caption:='Brak rozw.' else begin x := -b/a; Label5.Caption:=FloatoStr(x); end except ShowMessage('Błąd!!!'); try a:=strofloat(edit1.ext); b:=strofloat(edit2.ext); if ( a = 0 ) then Label5.Caption:='Brak rozw.' else begin x := -b/a; Label5.Caption:=FloatoStr(x); end except ShowMessage('Błąd!!!'); echniki programowania I s.3-11

Przykład 5 równanie kwadratowe (1) Program rozwiązuje równanie kwadratowe ax 2 +bx+c=0 na podstawie wartości współczynników a, b, c (liczby rzeczywiste) wprowadzanych w polach edycyjnych (Edit1, Edit2, Edit3). Obliczenia będą uruchomione po naciśnięciu przycisku "Oblicz" (Button1), rozwiązanie wyświetlane jest przy pomocy etykiety (Label6). Używane funkcje sqr(x) wyznacza kwadrat parametru x sqrt(x) wyznacza pierwiastek kwadratowy parametru x Kod programu stanowi dokładna implementację algorytmu rozwiązania równania kwadratowego przedstawionego na stronie 4. Uwaga: program nie jest zabezpieczony przed błędami użytkownika, powinien być uzupełniony o obsługę wyjątków i sprawdzenie wprowadzonych danych (współczynnik "a" nie może być zerem). echniki programowania I s.3-12

Przykład 5 równanie kwadratowe (2) procedure Form1.Button1Click(Sender: Object); var a, b, c: real; delta : real; x1, x2 : real; begin a := StroFloat(Edit1.ext); b := StroFloat(Edit2.ext); c := StroFloat(Edit3.ext); delta := sqr(b)-4*a*c; if ( delta < 0 ) then Label6.Caption := 'Brak rozwiązania' else if ( delta = 0 ) then begin x1 := -b/(2*a); Label6.Caption := 'Rozwiązanie: x='+formatfloat('0.00',x1); end else begin x1 := (-b-sqrt(delta))/(2*a); x2 := (-b+sqrt(delta))/(2*a); Label6.Caption := 'Rozwiązanie: x1='+formatfloat('0.00',x1)+ ', x2=' + FormatFloat('0.00',x2); Pełny kod programu dostępny na stronie przedmiotu jako "Przykład05" echniki programowania I s.3-13

Instrukcja wyboru Instrukcja wyboru ułatwia zapis algorytmu w przypadku gdy istnieje konieczność podjęcia kilku decyzji. Zawsze może być zastąpiona sekwencją instrukcji warunkowych, jednak zapis przy pomocy instrukcji wyboru zwiększa czytelność programu. case wyrażenie of wartość1: instrukcja1; wartość2, wartość3: instrukcja2; wartość4..wartość5: instrukcja3; else instrukcja4; Instrukcja oblicza wartość wyrażenia, jeżeli jest równe wartość1 wykonanuje instrukcja1, jeżeli jest równe wartość2 lub wartość3 (mogą wystąpić kolejne po przecinku) wykonuje instrukcja2, jeżeli jest większe lub równe wartość4 i mniejsze lub równe wartość5 (pomiędzy wartość4 i wartość5) wykonuje instrukcja3. Gdy wynik wyrażenia nie spełnia powyższych warunków wykonuje instrukcja4. Składnik else może wystąpić tylko raz i jest opcjonalny. Uwaga1: wyrażenie i wartości muszą być tego samego typu porządkowego. Uwaga2: bezpośrednio za ":" może wystąpić tylko jedna instrukcja, blok instrukcji wymaga zastosowania instrukcji grupującej (konstrukcji begin..end). echniki programowania I s.3-14

Przykład 6 program znaki (1) Program rozpoznaje znak wprowadzony w polu edycyjnym (Edit1). Algorytm jest zapisany w dwóch wersjach: z użyciem instrukcji wyboru (przycisk "Sprawdź1" Button1) oraz instrukcji warunkowej (przycisk "Sprawdź2" Button2). Rozwiązanie wyświetlane jest przy pomocy etykiety (Label2). Problem: Własność ext komponentu Edit zawiera wartość typu string, jednak do prawidłowego działania programu należy odczytać tylko jeden znak do zmiennej typu char. Konieczne jest więc odwołanie do pierwszego znaku z własności ext. Wartość typu string (zmienna, własność komponentu, itp.) jest tablicą jednowymiarową, czyli strukturą danych składającą się z pojedynczych znaków. Do każdego z nich można odwołać się używając konstrukcji: wartość[numer] gdzie wartość jest łańcuchem znakowym, a numer znaku (numeracja od 1). Przykład var c:char; s:string; s:='pascal'; c:=s[4]; s[1]:='p'; echniki programowania I s.3-15

Przykład 6 program znaki (2) procedure Form1.Button1Click ; var c: char; s: string; begin c := Edit1.ext[1]; case c of '*' : s:='gwiazdka'; '.', ',': s:='interp.'; '0'..'9': s:='cyfra'; else s:='inny'; Label2.Caption := s; procedure Form1.Button2Click ; var c: char; s: string; begin c := Edit1.ext[1]; if (c='*') then s := 'gwiazdka' else if (c='.') or (c=',') then s := 'interp.' else if (c>='0') and (c<='9') then s := 'cyfra' else s := 'inny'; Label2.Caption := s; Pełny kod programu dostępny na stronie przedmiotu jako "Przykład06" echniki programowania I s.3-16

Zastosowanie Komponent RadioGroup Grupy opcji, w których zawsze wybrany jest dokładnie jeden element Wybrane własności (properties) Wszystkie omówione na s.1-14; Columns liczba kolumn, w których będą wyświetlone opcje ItemIndex numer wybranej (zaznaczonej) opcji; opcje numerowane od zera Items lista opcji wyświetlanych w grupie; kolejne nazwy wprowadzane jako kolejne wiersze w edytorze dostępnym w trybie projektowania (przycisk [ ] w inspektorze obiektów Wybrane zdarzenia (events) OnClick kliknięcie; występuje przy każdej zmianie wybranej opcji echniki programowania I s.3-17

Przykład 7a kalkulator Program pełni funkcję czterodziałaniowego kalkulatora. Wykonuje wybrane działanie (RadioGroup1) na wartościach wprowadzonych do pól edycyjnych (Edit1, Edit2). Obliczenia uruchamiane są po naciśnięciu przycisku "Licz" (Button1), a wynik zostaje wyświetlany w polu edycyjnym Edit3 (ustawiona własność ReadOnly). procedure Form1.Button1Click(Sender: Object); var w1, w2, w: real; o : integer; begin w1 := StroFloat(Edit1.ext); w2 := StroFloat(Edit2.ext); o := RadioGroup1.ItemIndex; case ( o ) of 0: w:=w1+w2; 1: w:=w1-w2; 2: w:=w1*w2; 3: w:=w1/w2; Edit3.ext := FormatFloat('0.0000',w); Pełny kod programu dostępny na stronie przedmiotu jako "Przykład07a" echniki programowania I s.3-18

Zastosowanie Komponent ComboBox Wprowadzanie danych z klawiatury z możliwością wyboru jednej z predefiniowanych wartości Wybrane własności (properties) Wszystkie omówione na s.1-14 z wyjątkiem Caption; Items zawartość listy (elementy wyświetlane w liście); ItemIndeks numer elementu wybranego w liście; MaxLength maksymalna długość tekstu w polu edycyjnym; Sorted włącza automatyczne sortowanie zawartości; Style określa sposób działania listy: wartości wprowadzane z klawiatury i wybrane z listy (csdropdown), lub tylko wartości z listy (csdropdownlist); ext wartość w polu edycyjnym (wprowadzona z klawiatury lub wybrana z listy). Wybrane zdarzenia (events) OnChange zmiana wartości; występuje przy zmianie wartości w polu edycyjnym; Wszystkie zdarzenia omówione przy komponencie Edit. echniki programowania I s.3-19

Przykład 7b kalkulator, modyfikacja Modyfikacja czterodziałaniowego kalkulatora (przykład 7a), do wyboru operacji wykorzystany został komponent ComboBox. procedure Form1.Button1Click(Sender: Object); var w1, w2, w: real; o : integer; begin w1 := StroFloat(Edit1.ext); w2 := StroFloat(Edit2.ext); o := ComboBox1.ItemIndex; case ( o ) of 0: w:=w1+w2; 1: w:=w1-w2; 2: w:=w1*w2; 3: w:=w1/w2; Edit3.ext := FormatFloat('0.0000',w); Pełny kod programu dostępny na stronie przedmiotu jako "Przykład07b" echniki programowania I s.3-20