Semantyka i Weryfikacja Programów - Laboratorium 3
|
|
- Franciszek Komorowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Semantyka i Weryfikacja Programów - Laboratorium 3 Cz. I. Rachunek w sklepie Problem. Kasa sklepu zawiera rejestr danych łączących kody artykułów (np. paskowe) z ich nazwami i cenami. Konkretny zakup kasa interpretuje jako listę, gdzie na kolejnych pozycjach znajduje się liczba sztuk i kod danego artykułu. Należy opracować program, który wystawia rachunek z zakupu. Odpowiednio do pozycji na liście zakupu, rachunek ma zawierać liczbę sztuk, nazwę artykułu i ich cenę w formie listy, a na końcu sumaryczny koszt. Analiza Definicje typów danych: type kodart = string - kod artykułu (np. odpowiednik kodu paskowego) type nazwaart = string - nazwa artykułu type cena = int - cena artykułu (jednej lub kilku sztuk) lub sumaryczny koszt zakupów dla uproszczenia przyjęto liczbę całkowitą Dane o artykułach w rejestrze kasy mają postać par (kod_artykulu, (nazwa_artykulu,cena_artykulu)). Rejestr danych (w pamięci kasy sklepowej) jest zatem listą typu: type rejestr = (kodart*(nazwaart*cena)) list rejestr definiowany typ... nil argument lista kodart (nazwaart * cena) typy składowe nazwa Art cena string string int argumenty predefiniowane Niżej podano przykładową zawartość rejestru (bazę danych): val Rejestr = [ ("a1", ("ser bialy", 3)), ("a2", ("szprotki", 2)), ("a3", ("sok", 4)) ]; Klient kupuje kilka artykułów o tym samym kodzie. Wprowadzono nowe określenia typu: type sztukia = int type pozart = sztukia*kodart type zakupy = pozart list - liczba zakupionych sztuk danego artykułu - pozycja artykułu w liście zakupów - lista zakupów - 1 -
2 Przykład listy zakupionych artykułów: val zakupy = [(4,"a2"),(1,"a1")]; Dla utworzenia rachunku zdefiniowano następujące typy danych: type infoart = sztukia*nazwaart*cena - informacja o artykule w rachunku, gdzie cena jest kosztem łącznym type infolista = infoart list - lista z informacjami o artykułach type rachunek = infolista*cena - lista j.w. i sumaryczny koszt zakupów Przykład rachunku dla zakupów zdefiniowanych powyżej: ([(4, "szprotki", 8), (1, "ser bialy", 3)], 11) Konstruowana jest funkcja o nazwie utworzrachunek typu zakupy*rejestr->rachunek. Powinna ona sygnalizować wyjątek BLEDNY_KOD_ARTYKULU, gdy w rejestrze nie ma kodu szukanego artykułu (powodem może być błędny odczyt z czytnika kodu paskowego). Programowanie 1) Pomocnicza funkcja wyszukująca artykułu w rejestrze na podstawie kodu: szukajart:kodart*rejestr->nazwaart*cena Definicja funkcji: exception BLEDNY_KOD_ARTYKULU fun szukajart(ka, (ka', naz_cen_a)::rej) = (* nazwa, cena *) if ka=ka' then naz_cen_a else szukajart(ka,rej) szukajart _ = raise BLEDNY_KOD_ARTYKULU; 2) Właściwa funkcja tworząca rachunek: fun utworzrachunek([], _) = ([],0) (*lista artykulow, suma*) utworzrachunek((szta,ka)::zak, rej) = let val (naza,cena) = szukajart(ka,rej) val koszta = szta * cena val (Rach, suma) = utworzrachunek(zak,rej) in ((szta,naza,koszta)::rach, koszta + suma) end; Testy szukajart("a38",[]); szukajart("a3", Rejestr); utworzrachunek([],rejestr); utworzrachunek(zakupy,rejestr); Ewentualnie utworzrachunek([(2,"a22")],rejestr); Polecenie. Rozszerz rejestr o kilka artykułów i utwórz funkcję wyszukującą wszystkie artykuły o podanej nazwie. Wsk.: funkcja zwraca listę
3 Cz.II. Wielomian jako lista Problem. Wielomian a 0 +a 1 x+...+a n x n o współczynnikach a 0, a 1,..., a n, może być przedstawiony jako lista [a 0, a 1,..., a n ] (por. Matlab). Na przykład wielomianowi x 3 +2 odpowiada lista [2,0,0,1] (dla skrócenia współczynnikami są liczby całkowite). Należy zadeklarować następujące funkcje: a) Mnożenie wielomianu przez stałą b) Mnożenie wielomianu Q(x) przez x c) Dodawanie i mnożenie wielomianów. Do mnożenia można wykorzystać następujący wzór rekursywny 0*Q(x) = 0 (a 0 +a 1 x+...+a n x n )*Q(x) = a 0 Q(x)+x((a 1 + a 2 x+...+a n x n-1 )Q(x)) d) Tekstowa reprezentacja wielomianu (string). Opracować dokumentację techniczną oprogramowania (sprawozdanie), która powinna zawierać: specyfikację typów zmiennych i funkcji (funkcja: argument -> wynik) ewentualne wyjątki test oprogramowania plan pełnych testów (zob. Lab. 1) wyniki testów. Typ type wielomian = int list; Mnożenie przez stałą mnozconst: int*wielomian -> wielomian fun mnozconst(_,[]) = [] mnozconst(a,b::bx) = (a*b)::mnozconst(a,bx); mnozconst(7, [2,0,0,1]); Mnożenie przez x mnozx: wielomian -> wielomian fun mnozx ax = 0::ax; val Q = [2,0,0,1]; mnozx Q; Dodawanie i mnożenie wielomianów ++;--: wielomian*wielomian -> wielomian infix 6 ++; infix 7 ** fun [] ++ bx = bx ax ++ [] = ax (a::ax) ++ (b::bx) = (a+b) :: (ax ++ bx); fun [] ** bx = [] (a::ax) ** bx = mnozconst(a,bx) ++ mnozx(as ** bx); [1] ++ [2,3]; [1] ++ []; [1,2] ** [3,4]; - 3 -
4 Reprezentacja tekstowa Wielomian a 3 +2 zostanie przedstawiony jako a^1 + 0 a^2 + 1 a^3 nastring: wielomian -> string load "Int"; local fun nastringn([],_) = "" nastringn(a::ax,0) = Int.toString(a) ^ nastringn(ax,1) nastringn(a::ax,n) = " + " ^ Int.toString(a) ^ " a^" ^ Int.toString(n) ^ nastringn(ax,n+1) in fun nastring ax = nastringn(ax,0) end; nastring Q; nastring [1,2,3]; Cz.III. Biuro matrymonialne Problem. Internetowe biuro matrymonialne dysponuje plikiem danych, w którym znajduje się imię i nazwisko, numer telefonu, płeć, rok urodzenia i lista zainteresowań (ew. hobby) każdego klienta. Użytkownik podaje własną płeć, rok urodzenia i listę zainteresowań, w odpowiedzi otrzymując listę potencjalnych kandydatów (imię i nazwisko, numer telefonu), którymi są klienci odmiennej płci, młodsi lub starsi o mniej niż 10 lat, mający przynajmniej jeden wspólny temat na liście zainteresowań. Zaproponować treść funkcji wyszukującej kandydatów. Typy zmiennych type imienazw = string; type telefon = int; type plec = string (* "Z" lub "M" *) type rokur = int; type hobby = string; type zainteresowania = hobby list; type daneosoby = imienazw * telefon * plec * rokur * zainteresowania; type plik = daneosoby list; type danetwoje = plec * rokur * zainteresowania; Funkcja kandydaci: danetwoje*plik -> imienazw*telefon local infix mem; fun x mem [] = false x mem (y::ys) = x=y orelse x mem ys; fun wspelem([],_) = false (* istnieje wspolny element dwu list *) wspelem(x::xs,ys) = x mem ys orelse wspelem(xs,ys); (* zgodnosc: danetwoje * daneosoby -> bool *) fun zgodnosc((p,r,z),(_,_,p',r',z')) = p <> p' andalso abs(r-r') < 10 andalso wspelem(z,z'); - 4 -
5 in Testy fun kandydaci(_,[]) = [] kandydaci(dt:danetwoje, (do:daneosoby) :: xs) = if zgodnosc(dt,do) then (#1 do, #2 do) :: kandydaci(dt,xs) else kandydaci(dt,xs) end; (* #1 do imienazw, #2 do telefon *) val O1 = ("in1",997,"z",75,["a"]); val O2 = ("in2",998,"m",70,["b"]); val Plik = [O1,O2]; kandydaci(("z",80,["a"]), Plik); kandydaci(("m",70,["b"]), Plik); kandydaci(("m",70,["c","a"]), Plik); - 5 -
6 Zadania część 1 1. Zadeklaruj funkcję usunnieparzyste, taką że: usunnieparzyste[x 1,x 2,x 3,x 4,...]=[x 2,x 4,...] 2. Podaj deklarację funkcji typu int list -> int option odszukującej najmniejszy element z listy liczb całkowitych. 3. Podaj deklarację funkcji typu int list -> int option odszukującej największy element z listy liczb całkowitych. 4. Zadeklaruj funkcję polacz łączącą elementy listy w pary, tzn. polacz [x 1,x 2,x 3,x 4,...]= [(x 1,x 2 ),(x 3,x 4 ),...]. 5. Zaproponuj deklarację funkcji length wyznaczającej długość listy. 6. Zadeklaruj funkcję krotnosc(x,ys), która podaje ile razy element x występuje na liście ys. 7. Napisz funkcję sprawdzającą, czy na podanej liście występują powtórzenia elementów. Działanie zaprezentuj na przykładzie. 8. Zrealizuj funkcję biblioteczną map typu: ('a -> 'b)->'a list -> 'b list wywołującą podaną funkcję kolejno dla każdego elementu listy: map f [a1,a2,...,an] = [f(a1),f(a2),...,f(an)] 9. Napisz funkcję rev odwracającą kolejność elementów w liście. 10. Podaj definicję funkcji nty typu 'a list*int -> 'a option, która zwraca n-ty element na podanej liście (licząc od zera). 11. Napisz funkcję sprawdzającą, czy wszystkie całkowite elementy listy typu int są nieujemne. 12. Zaproponuj funkcję wstaw typu 'a list * int * 'a: 'a list wstawiającą do listy na podane miejsce (licząc od zera) określony element
7 Zadania część 2 1. Napisz funkcję sprawdzającą, czy w rejestrze w kasie sklepowej nie występują powtórzenia kodów kreskowych. 2. Sprawdź, czy wszystkie ceny artykułów w bazie danych sklepu są nieujemne. 3. Zmień ceny w rejestrze kasy sklepowej, tak by były wartościami typu real. Oblicz średnią cenę artykułu. Wsk.: może to być kilka funkcji. 4. Dokonaj przeceny artykułu o kodzie Kod o 1/5. Napisz odpowiednią funkcję. 5. Wyszukaj wszystkie artykuły o cenach zawartych w podanym zakresie (min,max). 6. Rozszerz rejestr o daną typu int zawierającą informację o liczbie sztuk w magazynie. Napisz funkcję, która zwraca listę artykułów, których liczba jest mniejsza niż MIN. 7. Wyszukaj za pomocą odpowiedniej funkcji najtańszy artykuł w sklepie. 8. Znajdź n-artykułów najtańszych w sklepie. Utwórz odpowiednią funkcję. Wsk.: najpierw posortuj. 9. Znajdź n-artykułów najdroższych w sklepie. Utwórz odpowiednią funkcję. Wsk.: najpierw posortuj. 10. Wyszukaj za pomocą odpowiedniej funkcji najdroższy artykuł w sklepie. 11. Zadeklaruj funkcje ++, ** z funkcjami mnozconst, mnozx jako lokalnymi ( niewidocznymi z zewnątrz). 12. Zrealizuj funkcję odejmowania wielomianów
b) Zadeklaruj infiksowy operator równoważności i sprawdź jego działanie.
1. Zmodyfikuj funkcje operujące na ułamkach tak, by wykluczały wystąpienie zera w mianowniku. Wskazówka: zastosuj instrukcję if...then...else i zastosuj wyjątek exception DzieleniePrzezZero. 2. Zadeklaruj
Bardziej szczegółowoSemantyka i Weryfikacja Programów - Laboratorium 3
Semantyka i Weryfikacja Programów - Laboratorium 3 Modelowanie układów mikroprocesorowych - część II Wykonywanie całego programu Cały program wykonywany jest przez funkcję intpprog. Jedynym argumentem
Bardziej szczegółowoAlgorytmy i język C++
Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 Outline Moduły i bariery abstrakcji 1 Moduły i bariery abstrakcji Moduły co to jest i po co to jest? Duży system dzielimy na mniejsze, łatwiejsze
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Pojęcie typu Definition (Typ danych) Typ danych to zbiór wartości wraz z zestawem podstawowych operacji na tych wartościach. Typy
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoOperacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.
Operatory w Javie W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje wykonywane są na operandach (argumentach
Bardziej szczegółowoFunkcje 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
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 będziemy używać w taki sam sposób, jak wbudowanych funkcji
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline Procedury wyższych rzędów 1 Procedury wyższych rzędów jako abstrakcje konstrukcji programistycznych Intuicje Procedury wyższych rzędów
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
Bardziej szczegółowoWiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java
Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java Cechy C++ Język ogólnego przeznaczenia Można programować obiektowo i strukturalnie Bardzo wysoka wydajność kodu wynikowego
Bardziej szczegółowoEgzamin z Podstaw informatyki i programowania 2007/2008
Egzamin z Podstaw informatyki i programowania 2007/2008 Imię i nazwisko:... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 suma 1. Napisz funkcję logiczną, która dla zadanej parametrem wartości rzeczywistej x, oblicza
Bardziej szczegółowoPodstawy programowania funkcjonalnego
Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoJęzyki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
Bardziej szczegółowoOdczyt danych z klawiatury Operatory w Javie
Odczyt danych z klawiatury Operatory w Javie Operatory W Javie występują następujące typy operatorów: Arytmetyczne. Inkrementacji/Dekrementacji Przypisania. Porównania. Bitowe. Logiczne. Pozostałe. Operacje
Bardziej szczegółowoWstęp do Programowania potok funkcyjny
Wstęp do Programowania potok funkcyjny Marcin Kubica 2016/2017 Outline 1 Pojęcie typu Definition (Typ danych) Typ danych to zbiór wartości wraz z zestawem podstawowych operacji na tych wartościach. Typy
Bardziej szczegółowoĆwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz
Ćwiczenie 3 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania Zofia Kruczkiewicz Zakres Podstawowe algorytmy przetwarzania tablic (wypełnianie, porównywanie elementów,
Bardziej szczegółowomain( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!
Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Bardziej szczegółowoWprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka
Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu
Bardziej szczegółowoĆwiczenia z wyliczania wartości funkcji
Ćwiczenia z wyliczania wartości funkcji 4 października 2011 1 Wprowadzenie Wyliczanie wartości wyrażenia nie jest sprawą oczywistą, szczególnie jeżeli chodzi o aplikację funkcji. Poniższy tekst nie jest
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoStruktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
Bardziej szczegółowoWarunki logiczne instrukcja if
Warunki logiczne instrukcja if Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko 1. Wejdź na stronę kółka, uruchom edytor i wpisz: use console; def test::main() { var y; y = 1; while (y
Bardziej szczegółowoInstrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.
Instrukcje warunkowe i skoku. Spotkanie 2 Dr inż. Dariusz JĘDRZEJCZYK Wyrażenia i operatory logiczne Instrukcje warunkowe: if else, switch Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Bardziej szczegółowoPRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ Arkusz I. Czas pracy: 60 minut Liczba punktów do uzyskania: 15
Organizatorzy: Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Oddział Kujawsko-Pomorski Polskiego Towarzystwa Informatycznego Centrum Kształcenia Ustawicznego TODMiDN w Toruniu
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoPętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady
Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy
Bardziej szczegółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoProgramowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne
Programowanie funkcyjne wprowadzenie Specyfikacje formalne i programy funkcyjne dr inż. Marcin Szlenk Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych m.szlenk@elka.pw.edu.pl Paradygmaty
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 1 Wprowadzenie, środowisko programistyczne, pierwsze programy 1 CEL ZAJĘĆ LABORATORYJNYCH: Wprowadzenie do programowania w języku C++ oraz
Bardziej szczegółowoTematyka do egzaminu ustnego z matematyki. 3 semestr LO dla dorosłych
Tematyka do egzaminu ustnego z matematyki 3 semestr LO dla dorosłych I. Sumy algebraiczne 1. Dodawanie i odejmowanie sum algebraicznych 2. Mnożenie sum algebraicznych 3. Wzory skróconego mnożenia - zastosowanie
Bardziej szczegółowoPascal typy danych. Typy pascalowe. Zmienna i typ. Podział typów danych:
Zmienna i typ Pascal typy danych Zmienna to obiekt, który może przybierać różne wartości. Typ zmiennej to zakres wartości, które może przybierać zmienna. Deklarujemy je w nagłówku poprzedzając słowem kluczowym
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoEGZAMIN MATURALNY Z INFORMATYKI MAJ 2013 POZIOM PODSTAWOWY CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY
Centralna Komisja Egzaminacyjna Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2011 KOD WPISUJE ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY
Bardziej szczegółowoCzęść XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.
Część XVII C++ Funkcje Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład. 2 3 Tworzymy deklarację i definicję funkcji o nazwie pobierzln() Funkcja
Bardziej szczegółowoOperatory logiczne. Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Operatory logiczne Podstawowe operatory logiczne, składanie wyrażeń z użyciem operatorów logicznych Podstawowe
Bardziej szczegółowoJęzyki programowania Haskell
Języki programowania Haskell zadanie projektowe nr. 4 2014/15 K. Turowski, T. Goluch 1. Kompilacja, uruchamianie i Hello world Kompilacja i uruchamianie: ghc --make hello.hs./hello Interaktywny interpreter:
Bardziej szczegółowoPętle. for, while, do... while, foreach. Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pętle for, while, do... while, foreach Jeszcze o operatorach... Skrócone operatory arytmetyczne przykład x +=
Bardziej szczegółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoPodstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
Bardziej szczegółowoDelphi Laboratorium 3
Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoLab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.
Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur. 1. Identyfikator funkcji,
Bardziej szczegółowoProgramowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt
Programowanie obiektowe Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt Operator new, new[] Operator new oraz new[] służy do rezerwacji obszarów z zapasie pamięci
Bardziej szczegółowoElementy metod numerycznych - zajęcia 9
Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie
Bardziej szczegółowoUwaga: Funkcja zamień(a[j],a[j+s]) zamienia miejscami wartości A[j] oraz A[j+s].
Zadanie 1. Wiązka zadań Od szczegółu do ogółu Rozważmy następujący algorytm: Dane: Algorytm 1: k liczba naturalna, A[1...2 k ] tablica liczb całkowitych. n 1 dla i=1,2,,k wykonuj n 2n s 1 dopóki s
Bardziej szczegółowo1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:
1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci: * Jan Kowalski * * ul. Zana 31 * 3. Zadeklaruj zmienne przechowujące
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c,
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax 2 + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax 2, a R \
Bardziej szczegółowo4. Funkcje. Przykłady
4. Funkcje Przykłady 4.1. Napisz funkcję kwadrat, która przyjmuje jeden argument: długość boku kwadratu i zwraca pole jego powierzchni. Używając tej funkcji napisz program, który obliczy pole powierzchni
Bardziej szczegółowoZadania z podstaw programowania obiektowego
Zadania z podstaw programowania obiektowego 1. Napisać klasę Lista, której zadaniem będzie przechowywanie listy liczb całkowitych. Klasa ta ma mieć następujące pola prywatne: int* liczby; tablica, w której
Bardziej szczegółowoWstęp do programowania. Listy. Piotr Chrząstowski-Wachtel
Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli
Bardziej szczegółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
Bardziej szczegółowo1 Powtórzenie wiadomości
1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoPascal - wprowadzenie
Pascal - wprowadzenie Ogólne informacje o specyfice języka i budowaniu programów Filip Jarmuszczak kl. III c Historia Pascal dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego
Bardziej szczegółowo3. Instrukcje warunkowe
. Instrukcje warunkowe Przykłady.1. Napisz program, który pobierze od użytkownika liczbę i wypisze na ekran słowo ujemna lub nieujemna, w zależności od tego czy dana liczba jest ujemna czy nie. 1 #include
Bardziej szczegółowoJęzyki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Bardziej szczegółowoPakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.
Pakiety Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki. Pakiet składa się ze: specyfikacji (interfejsu) i ciała (implementacji). W specyfikacji mieszczą
Bardziej szczegółowoPRÓBNY EGZAMIN MATURALNY Z INFORMATYKI
ARKUSZ ZAWIERA INFORMACJE PRAWNIE CHRONIONE DO MOMENTU ROZPOCZĘCIA EGZAMINU! Miejsce na naklejkę PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ II Czas pracy 150 minut Instrukcja dla zdającego
Bardziej szczegółowoWstęp do systemów wielozadaniowych laboratorium 19 awk
Wstęp do systemów wielozadaniowych laboratorium 19 awk Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-08 Język programowania do pracy z bazami danych (w formie
Bardziej szczegółowoWielomiany. dr Tadeusz Werbiński. Teoria
Wielomiany dr Tadeusz Werbiński Teoria Na początku przypomnimy kilka szkolnych definicji i twierdzeń dotyczących wielomianów. Autorzy podręczników szkolnych podają różne definicje wielomianu - dla jednych
Bardziej szczegółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 3 - operatory oraz instrukcje warunkowe i wyboru mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 19 października 2018 1 / 35 mgr inż. Krzysztof
Bardziej szczegółowoMetody i analiza danych
2015/2016 Metody i analiza danych Macierze Laboratorium komputerowe 2 Anna Kiełbus Zakres tematyczny 1. Funkcje wspomagające konstruowanie macierzy 2. Dostęp do elementów macierzy. 3. Działania na macierzach
Bardziej szczegółowoTypy wyliczeniowe Konwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Typy wyliczeniowe Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Typy wyliczeniowe Służą do łatwiejszej kontroli nad stałymi Ustawianie parametrów o ściśle określonym zbiorze wartości
Bardziej szczegółowoProjekt Era inżyniera pewna lokata na przyszłość jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego
Materiały dydaktyczne na zajęcia wyrównawcze z matematyki dla studentów pierwszego roku kierunku zamawianego Inżynieria Środowiska w ramach projektu Era inżyniera pewna lokata na przyszłość Projekt Era
Bardziej szczegółowoPowtórzenie podstawowych zagadnień. związanych ze sprawnością rachunkową *
Powtórzenie podstawowych zagadnień związanych ze sprawnością rachunkową * (Materiały dydaktyczne do laboratorium fizyki) Politechnika Koszalińska październik 2010 Spis treści 1. Zbiory liczb..................................................
Bardziej szczegółowoLaboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH
Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowoTablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011
Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 Załóżmy, że uprawiamy jogging i chcemy monitorować swoje postępy. W tym celu napiszemy program, który zlicza, ile czasu
Bardziej szczegółowoProcedury składowane. Funkcje vs. procedury Funkcja. Procedura. zazwyczaj ma parametry tylko typu IN; można wywoływać z poziomu
Procedury składowane Kolejnym typem programu języka PL/SQL są procedury składowane. Procedury mogą posiadać parametry typu IN, OUT lub IN OUT. Umożliwiają wykonanie operacji na danych w bazie, mogą też
Bardziej szczegółowoInformacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Bardziej szczegółowoPlanowanie eksperymentu 2 (k p) w 2 r blokach. Stanisław Jaworski, Wojciech Zieliński
Planowanie eksperymentu 2 (k p) w 2 r blokach Stanisław Jaworski, Wojciech Zieliński 1. Wstęp W praktyce często możemy spotkać się z sytuacją, kiedy nie jest możliwe wykonanie pełnego eksperymentu czynnikowego
Bardziej szczegółowoPodstawy i języki programowania
Podstawy i języki programowania Laboratorium 1 - wprowadzenie do przedmiotu mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 16 października 2017 1 / 25 mgr inż. Krzysztof Szwarc Podstawy i
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część piąta Proste typy danych w języku Pascal Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoMathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Bardziej szczegółowoOracle PL/SQL. Paweł Rajba. pawel@ii.uni.wroc.pl http://www.kursy24.eu/
Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 4 Wyjątki PL/SQL Mechanizmy dotyczące błędów Typy wyjątków Obsługa wyjątków PL/SQL Obsługa błędów predefiniowanych, użytkownika
Bardziej szczegółowoInformatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa
Informatyka 1 Wykład III Wyrażenia i instrukcje, złożoność obliczeniowa Robert Muszyński ZPCiR ICT PWr Zagadnienia: składnia wyrażeń, drzewa rozbioru gramatycznego i wyliczenia wartości wyrażeń, operatory
Bardziej szczegółowoWydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 2 Programowanie 1 Program wykładu Typy danych Wyrażenia Operatory 2 VBA Visual Basic dla aplikacji (VBA) firmy Microsoft jest językiem
Bardziej szczegółowoInstrukcje wyboru. Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Instrukcje wyboru Tworzenie programu, Schematy blokowe, Instrukcje wyboru, Operatory logiczne Być, czy nie być?
Bardziej szczegółowoFunkcja kwadratowa. f(x) = ax 2 + bx + c = a
Funkcja kwadratowa. Funkcją kwadratową nazywamy funkcję f : R R określoną wzorem gdzie a, b, c R, a 0. f(x) = ax + bx + c, Szczególnym przypadkiem funkcji kwadratowej jest funkcja f(x) = ax, a R \ {0}.
Bardziej szczegółowoPodstawy programowania
Podstawy programowania I rok Automatyka i Robotyka Eka PWr Ćwiczenia Zestaw 4 Zakres materiału Analiza poprawności konstrukcji, wyliczanie wyrażeń z wskaźnikami i tablicami, ręczna symulacja, opracowywanie
Bardziej szczegółowoKonwersje napis <-> liczba Struktury, unie Scanf / printf Wskaźniki
Konwersje napis liczba Struktury, unie Scanf / printf Wskaźniki Konwersje liczba napis Ćwiczenia 1. Napisz aplikację, która na wejściu dostaje napis postaci W Roku Pańskim 1345, władca Henryk 12,
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoPodstawy Programowania Podstawowa składnia języka C++
Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include
Bardziej szczegółowoBloki anonimowe w PL/SQL
Język PL/SQL PL/SQL to specjalny język proceduralny stosowany w bazach danych Oracle. Język ten stanowi rozszerzenie SQL o szereg instrukcji, znanych w proceduralnych językach programowania. Umożliwia
Bardziej szczegółowo> C++ typy wyliczeniowe, struktury, unie, konwersje napis <-> liczba, formatowanie wyjścia
> C++ typy wyliczeniowe, struktury, unie, konwersje napis liczba, formatowanie wyjścia Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1426512600 > Typy wyliczeniowe
Bardziej szczegółowoProgramowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Bardziej szczegółowoPodstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki
Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych Instytut Automatyki i Robotyki Warszawa, 2015 Kody liczb całkowitych nieujemnych Kody liczbowe dzielimy na analityczne nieanalityczne (symboliczne)
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Teoria sterowania MATLAB funkcje zewnętrzne (m-pliki, funkcje) Materiały pomocnicze do ćwiczeń laboratoryjnych
Bardziej szczegółowoFunkcje i instrukcje języka JavaScript
Funkcje i instrukcje języka JavaScript 1. Cele lekcji a) Wiadomości Uczeń : zna operatory i typy danych języka JavaScript, zna konstrukcję definicji funkcji, zna pętlę If i For, Do i While oraz podaje
Bardziej szczegółowo