Procedury i funkcje - powtórzenie i uzupełnienia. Przykład funkcji potęgowanie przy wykładniku naturalnym

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

Programowanie modułowe

Język programowania PASCAL

Programowanie modułowe

Zapis programu z wykorzystaniem modułu (Podstawy Delphi 2.1, 2.2, 2.3 str11 )

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

2.Sprawdzanie czy podana liczba naturalna jest pierwsza Liczba pierwsza to liczba podzielna tylko przez 1 i przez siebie.

Algorytmy i struktury danych

Podprogramy. Procedury

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

Procedury i funkcje. Przykład programu z procedurą. Definicja. Cechy procedury

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};

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Skopiuj plik do katalogu macierzystego serwera Apache (C:/xampp/htdocs). Uruchom przeglądarkę i wpisz w polu adresowym następujący ciąg:

Kierunek: ETI Przedmiot: Programowanie w środowisku RAD - Delphi Rok III Semestr 5. Ćwiczenie 5 Aplikacja wielo-okienkowa

Programowanie w Turbo Pascal

Wrocław, dn. 19 kwietnia 2006 roku. Anna Kaleta Piotr Chojnacki IV rok, informatyka chemiczna Liceum Ogólnokształcące nr 10 we Wrocławiu

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

Programowanie strukturalne i obiektowe. Funkcje

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Wstęp do programowania

Podstawy Programowania 2

TEMAT: Podejmowanie decyzji w programie instrukcja warunkowa (IF).

Lekcja 6: Pascal. Procedura i funkcja

Wprowadzenie do systemu Delphi

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

Podstawy programowania. Wykład PASCAL. Wstęp do programowania obiektowego. dr Artur Bartoszewski - Podstawy programowania, sem.

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

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

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 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Pascal. 1. Pliki tekstowe. Przykład 1.1. Zapis do pliku tekstowego

Delphi Laboratorium 3

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Programowanie w języku Python. Grażyna Koba

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

Nazwa implementacji: Kółko i krzyżyk w Lazarusie. Autor: Piotr Fiorek Andrzej Stefaniuk

Języki programowania zasady ich tworzenia

Wprowadzenie komentarzy do programu

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Wstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel

Turbo Pascal. Zadania z programowania z przykładowymi rozwiązaniami

1 Podstawy c++ w pigułce.

Przykład programu Rozwiązanie równania postaci:

Jerzy Nawrocki, Wprowadzenie do informatyki

PLIKI. Składnia deklaracji zmiennej plikowej: file of <typ>

Wykład VI PASCAL procedury i funkcje przekazywanie parametrów,

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

Podstawy Programowania

Podstawy programowania 2. Temat: Wprowadzenie do wskaźników. Przygotował: mgr inż. Tomasz Michno

Podstawy Programowania semestr drugi. Wykład czternasty

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Pliki. Operacje na plikach w Pascalu

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Delphi podstawy programowania. Środowisko Delphi

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

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

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 8. Karol Tarnowski A-1 p.

Struktury Struktura polami struct struct struct struct

PROGRAM: WYSZUKANIE LICZBY MAKSYMALNEJ

Jerzy Nawrocki, Wprowadzenie do informatyki

KURS PASCAL A. 1.Wprowadzenie

Wykład III PASCAL - iteracja cz, 2, - liczby losowe, - tablice

Podstawy algorytmiki i programowania - wykład 4 C-struktury

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

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

ECDL Podstawy programowania Sylabus - wersja 1.0

INSTRUKCJE PĘTLI, INSTRUKCJA WYBORU. Instrukcja pętli For to do

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

Programowanie komputerowe. Zajęcia 2

Instrukcja standardowa Writeln

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

Zapisywanie algorytmów w języku programowania wysokiego poziomu

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Tak przygotowane pliki należy umieścić w głównym folderze naszego programu. Klub IKS

Warsztaty dla nauczycieli

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

Tworzenie własnych komponentów

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

W kodzie modułu Unit1 zdefiniuj dwie metody - składowe komponentu formatki TForm1:

Wykład 4: Klasy i Metody

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

Część 4 życie programu

Pascal - wprowadzenie

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

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

APROKSYMACJA. Rys. 1. Funkcja aproksymująca zbiór punktów pomiarowych (1) (2) (3) (4) (5) (6) (7) ... Zmienna y

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

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

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

Transkrypt:

Procedury i funkcje - powtórzenie i uzupełnienia Przykład funkcji potęgowanie przy wykładniku naturalnym program potegowanie; {$APPTYPE CONSOLE} uses SysUtils; var x: real; n: integer; function Potega(podstawa: real; wykladnik: integer): real; var wynik: real; i: integer; wynik:=1; for i:=1 to wykladnik do wynik:=wynik*podstawa; potega:=wynik; { przypisanie wyniku pod nazwę funkcji } writeln('podaj podstawe: '); readln(x); writeln('podaj wykladnik: '); readln(n); writeln(x:8:2, ' do potegi ', n, ' = ', Potega(x, n):8:2); writeln( Czekam na Enter ); readln; Wywołanie dla obliczenia a x + b y : wyr:= potega(a, x) + potega(b, y) Składnia funkcji function <nazwa_funkcji>(<lista_parametrów_formalnych>) : <typ_wyniku>; <deklaracje_lokalne> <instrukcje> <nazwa> := <wyrażenie>; { lub return <wyrażenie>; } Zasady: - funkcja wyznacza jedną wartość (typu prostego), - w nagłówku funkcji musi być zdefiniowany typ wyniku funkcji (funkcja ma typ), - w treści funkcji musi występować przypisanie pod nazwę funkcji (lub instrukcja return) - w funkcji można deklarować wiele zmiennych lokalnych, które w treści funkcji są wykorzystywane przy zapisie wykonywanego algorytmu

- zmienne lokalne istnieją tylko w czasie wykonywania funkcji, są niedostępne poza funkcją - funkcja może posiadać dowolną liczbę parametrów - wywołanie funkcji ma postać: <nazwa_funkcji>(<lista_parametrów_aktualnych>) i może występować wszędzie tam gdzie może pojawić się wyrażenie np. wyr:=potega(2, 4); writeln(potega(4, 3)); if potega(47, 3)>1000 then writeln( 47 do 3 jest większe od 1000 ); Funkcję wygodnie jest traktować jako czarną skrzynkę. WE FUNKCJA WY Do wnętrza funkcji można przekazywać wartości tylko przez parametry Wynik można otrzymać tylko przez nazwę funkcji. UWAGA. Przestrzeganie schematu : czarnej skrzynki jest tylko umową. W funkcji są dostępne zmienne globalne zdefiniowane w programie głównym. Wartości tych zmiennych można zmieniać w funkcji i zmienione wykorzystywać poza nią - w programie głównym za instrukcją wywołującą. Takie działanie nazywamy wykorzystywaniem efektów ubocznych. Przykład procedury wyznaczanie obwodu i pola trójkąta. var a, b, c, obw, p: real; procedure poleiobwod (a, b, c: real; var obw, pole: real); var p: real; obw:=a + b +c; p:=obw/2; pole:=sqrt((p-a)*(p-b)*(p-c)*p); writeln('podaj boki'); readln(a, b, c); poleiobwod(a, b, c, obw, p); writeln('obwod = ', obw:8:2);

writeln('pole = ', p:8:2); readln; Składnia procedury procedure <nazwa_procedury>(<lista_parametrów_formalnych>); <deklaracje_lokalne> <instrukcje> Zasady: - nazwa procedury nie przenosi wartości służy jedynie do identyfikacji procedury - procedura może posiadać dowolną liczbę parametrów - parametry procedury mogą służyć do przekazywania wyników obliczonych w procedurze - parametry przekazujące wyniki muszą być poprzedzone na liście parametrów słowem var - w procedurze (podobnie jak w funkcji) można deklarować wiele zmiennych lokalnych, które w treści funkcji są wykorzystywane przy zapisie wykonywanego algorytmu - zmienne lokalne istnieją tylko w czasie wykonywania funkcji, są niedostępne poza funkcją - wywołanie procedury ma postać: <nazwa_procedury>(<lista_parametrów_aktualnych>) i jest samodzielną instrukcją Procedurę wygodnie jest traktować jako czarną skrzynkę. WE PROCEDURA WY Do wnętrza procedury można przekazywać wartości tylko przez parametry Wyniki można otrzymać tylko poprzez parametry poprzedzone var. UWAGA. Podobnie jak w przypadku funkcji przestrzeganie schematu czarnej skrzynki jest tylko umową. W procedurze można również wykorzystywać efekty uboczne. Parametry poprzedzone słowem var są przekazywane przez zmienną. O pozostałych mówimy, że są przekazywane przez wartość. Oba rodzaje parametrów można wykorzystywać także w zapisie funkcji.

Parametry formalne i aktualne Parametry z definicji procedury lub funkcji mają postać listy elementów rozdzielanych średnikami. Każdy element listy ma składnię: [var] <nazwa1>, <nazwa2>,... : <typ>; i może być poprzedzony słowem var. Parametry te nazywamy formalnymi. Jak widać z opisu składni można określać typ jednocześnie dla całej grupy parametrów. Specyfikacja typu musi być wyrażona identyfikatorem typu, a nie opisem typu. W wywołaniu funkcji lub procedury umieszczamy listę parametrów aktualnych. Na tej liście musi występować tyle samo parametrów co na liście parametrów formalnych. W czasie realizacji wywołania funkcji lub procedury parametry aktualne i formalne są kojarzone według kolejności występowania. Odpowiadające sobie parametry aktualne i formalne muszą być tych samych rodzajów i zgodnych typów. Parametry aktualne są rozdzielane przecinkami i muszą być wyrażeniami właściwych typów. Parametry aktualne kojarzone przez zmienną muszą być nazwami zmiennych. Parametry tablicowe Parametry procedur mogą być tablicowe jak w przykładzie poniżej: program Tablica; {$APPTYPE CONSOLE} uses SysUtils; type Tab=array[1..10] of real; var n, i: integer; suma, srednia: real; a: Tab; procedure czytaj(var n: integer; var x: Tab); var i: integer; write('n='); readln(n); writeln('podaj ', n, ' liczb'); for i := 1 to n do write('liczba ', i, ' wynosi: '); readln(x[i]); procedure drukuj(n: integer; x: Tab); var i: integer; writeln('tablica ', n, ' elementowa'); for i := 1 to n do writeln(x[i]:8:2);

czytaj(n, a); suma:=0; for i := 1 to n do suma := suma+a[i]; srednia:=suma/n; writeln('srednia = ', srednia:8:2); for i := 1 to n do a[i]:=a[i]/srednia; drukuj(n, a); writeln('czekam na Enter...'); readln; W przykładzie powyższym konieczne było zdefiniowanie identyfikatora typu tablicowego z uwagi na wymaganie składniowe, które nie dopuszcza specyfikacji parametrów formalnych z użyciem opisu typu. Własne typu definiuje się w pascalu po słowie type. W przykładzie powyższym umieszczono deklarację: type Tab=array[1..10] of real; co pozwoliło na zadeklarowanie tablicy a przy pomocy zapisu: var a: Tab; a ponadto pozwoliło spełnić wymóg składniowy dla opisów nagłówków procedur np.: procedure czytaj(var n: integer; var x: Tab); Programowanie strukturalne Programowanie strukturalne to metodyka opracowywania, organizacji i pisania programów. Zakłada ona rozwiązywanie złożonych problemów poprzez ich dekompozycję na mniejsze zagadnienia. Każde elementarne zagadnienie zapisywane jest w postaci oddzielnej procedury. Program główny zawiera wtedy jedynie rozmieszczone we właściwej kolejności odwołania do procedur Podział na zagadnienia elementarne powinien być tak szczegółowy, by rozwiązanie każdego dało się zapisać w postaci procedury mieszczącej się na jednej stronie (ekranie). Zastosowanie zasad programowania strukturalnego prowadzi do powstawania programów zwięzłych, o przejrzystych i łatwych do analizy strukturach. Pierwsza aplikacja w Delphi - automatyczne generowanie szkieletu aplikacji - aplikacja wyświetla pustą formatkę - kod źródłowy rozmieszczony w dwu plikach - plik główny: program Project1; uses { deklaracja dołączanych bibliotek }

Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.RES} Application.Initialize; Application.CreateForm(TForm1, Form1); { generowanie formatki } Application.Run; { uruchomienie pętli głównej } - plik modułu zawiera deklaracje opisujące formatkę Rozmieszczanie komponentów na formatce Generowanie szkieletu metody (procedury) obsługi zdarzenia. UWAGA. Szczegółowy opis Delphi i przykłady w książce: K. Strzałkowski Podstawy Delphi Wyb. Stachurski. Kielce. 2000 Projektowanie aplikacji zdarzeniowej Przykład 2 przyciski i etykieta