1 / 197

Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 1: Organizacja

Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 1: Organizacja. Michał Karbowańczyk mak@zsk.p.lodz.pl http://zskl.p.lodz.pl/~mak Pokój nr 14 (parter) Poniedziałek 10 – 11 Czwartek 16 – 17 Sobota 14 – 15 w weekendy zjazdowe.

nichole
Download Presentation

Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 1: Organizacja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Organizacja • Michał Karbowańczyk • mak@zsk.p.lodz.pl • http://zskl.p.lodz.pl/~mak • Pokój nr 14 (parter)Poniedziałek 10 – 11Czwartek 16 – 17Sobota 14 – 15 w weekendy zjazdowe

  2. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Organizacja • Obecność na ćwiczeniach • Spóźnienia • Rozmowy • Telefony • Nagłe potrzeby wyjścia • Wydawanie odgłosów innych

  3. Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 1: Organizacja • Sposób zaliczenia zajęć:Pula 40 punktów (laboratoria 30 pkt, wykład 30 pkt) Dwa kolokwia po 20 punktówKażde kolokwium – minimum 12 punktów (60%)

  4. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Organizacja • PROSZĘ PYTAĆ! • PROSZĘ KRYTYKOWAĆ! • PROSZĘ SIĘ NIE ZGADZAĆ! • PROSZĘ MIEĆ WŁASNE KONCEPCJE!

  5. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Przedmiot zajęć • Przedmiot zajęć – programowanie w języku ADA • Dlaczego ADA, a nie C(++,#) / Java ?-> różnica między informatykiem a programistą C-> zalety języka ADA-> czytelna składnia wywodząca się z Pascala-> ADA wymusza poprawność-> mniejsza możliwość popełnienia błędu-> wielowątkowość niemal intuicyjna (por. C++!)-> pełna obiektowość-> obsługa bibliotek Windows-> ADA jest stosowana w aplikacjach odpowiedzialnych za bezpieczeństwo ludzi (przykład – sterowanie automatyką samolotu)-> Język ADA w dalszym toku studiów

  6. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Zasoby • Literatura:-> Michał Morawski, Antoni Zajączkowski „Ada 95”skrypt w formie pliku pdf-> Z. Huzar „Ada 95”, wyd. Helion->J. Barnes „Programming in Ada 95”-> N. Wirth „Algorytmy + struktury danych = programy”, wyd. WNT • Internet:-> http://republika.pl/greybrow/ada/ Kurs Ady po polsku-> http://www.adahome.com/Tutorials/Lovelace/lovelace.htm Popularny przewodnik po języku Ada-> http://www.adahome.com/Ammo/Cplpl2Ada.html Ada dla programistów C-> http://www.adahome.com/ Centrum informacji o języku Ada

  7. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Zasoby • Narzędzia dla programistów Ada • Kompilator GNAThttp://www.gnat.com-> student info • Środowisko AdaGIDEhttp://www.usafa.af.mil/dfcs/bios/mcc_html/adagide.html

  8. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Program zajęć Rzut oka na program zajęć: • 1: Organizacja. Pojęcie programu. Notacja BNF. • 2: Typy liczbowe int i float. Atrybuty i literały tych typów. Operatory arytmetyczne. Wyrażenia. Relacje. Konwersje. • 3: Typy własne: wyliczeniowe i podtypy. Atrybuty typów wyliczeniowych. Relacje. Typ znakowy i logiczny. Operatory logiczne.Deklaracje zmiennych. Składnia identyfikatora. Operator przypisania. Pojęcie L-wartości. Deklaracje stałych.

  9. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Program zajęć • 4: Instrukcja warunkowa if…then…elsif…else. • 5: Tablice jednowymiarowe. Atrybuty tablic. Agregaty tablicowe pozycyjne i nazywane. Podtablice. Relacje między tablicami. Typy tablicowe i tablice anonimowe. Otwarty typ tablicowy. Typ string. • 6: Tablice wielowymiarowe.Pętla for. Specyficzne własności pętli forw języku ADA. Instrukcja exit [when].

  10. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Program zajęć • 7: Deklaracja funkcji i procedur. Parametry typu in, out, in/out.Bloki programu. Zasięg i widoczność deklaracji. Instrukcja declare. • 8: KOLOKWIUM 1, na którym wszyscy osiągają znakomite rezultaty. • 9: Pętle while oraz loop. Instrukcja goto.Omówienie wyników kolokwium 1. • 10: Instrukcja warunkowa case. Typ rekordowy. Agregat rekordowy nazywany i pozycyjny.

  11. Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 1: Program zajęć • 11: Przechwytywanie i propagacja wyjątków.Instrukcja begin.Deklaracja wyjątków.Konstrukcja pakietów. Typy prywatne i publiczne. • 12: Funkcje i procedury rekurencyjne. Funkcje i procedury przeciążone.Parametry domyślne.Przesłanianie i przeciążanie operatorów i konwersji.13: Pakiety i podprogramy ogólne. Godzina prawdy. • 14 KOLOKWIUM 2, na którym ponownie wszyscy osiągają znakomite wyniki. • 15 Omówienie wyników kolokwium 2 i wyniki końcowe.

  12. PRZERWA

  13. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Pojęcie programu • Program:-> dane wejściowe-> warunki danych wejściowych (asercje początkowe)-> algorytm przetwarzania-> dane wyjściowe • Przykład: jajecznica-> dane wejściowe: ilość konsumentów (wczytywane)proporcje składników na 1 konsumenta (wbudowane)położenie składników i przyrządów

  14. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Pojęcie programu • Jajecznica - c.d.-> Asercje początkoweczy składniki i przyrządy są dostępne w niezbędnej ilości (wynika z liczby konsumentów)?czy składniki są jadalne?-> Algorytmrozpal gazpostaw patelnięwbij jajkaposólmieszaj dopóki się nie zetną

  15. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 1: Pojęcie programu • Dekompozycja problemu 'rozpal gaz' • Program: od pomysłu do wyniku • Notacja BNF:-> symbol - symbol występuje dokładnie raz-> [symbol] – symbol opcjonalnie występuje raz-> {symbol} – symbol opcjonalnie występuje dowolną ilość razy-> symbol1 | symbol2 – dokładnie raz występuje albo symbol1, albo symbol2

  16. KONIEC

  17. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 2: Typ całkowity • Typ całkowity Integer • Składnia literału[+|-]D{[_]D}[e[+]D{[_]D}] • Atrybuty‘First ‘Last‘Pos() ‘Val() ‘Pred() ‘Succ()‘Image() ‘Value() • Operatoryarytmetyczne +, -, *, /, remporównania =, /=, <, >, <=, >= • Podtypy Positive, Natural

  18. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 2: Typ całkowity • Czy wartości są prawidłowe?a) 1_0_00 b) 2e3 c) 1e-5 d) 10__000 • Jakie są wartości poniższych atrybutów?a) Integer’Succ(0) b) Integer’Val(Integer’Pos(-1))c) Positive’Pos(100); d) Natural’Pos(-1)e) Natural’Pred(0); f) Integer’Succ(Integer’Last)) • Jakie są wartości poniższych wyrażeń?a) (2 + 3) * 2 b) 2 + 3 * 2 c) 3 * 2 – 1 d) (2 + 3) / (3 – 2) e) 2 + 3 / (3 – 2) f) 2 + 3 / 3 - 2

  19. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 2: Typ rzeczywisty • Typ rzeczywisty Float. • Składnia literału[+|-]D{[_]D}.D{[_]D}[e[+|-]D{[_]D}] • Atrybuty ‘First ‘Last ‘Image() ‘Value() • Operatoryarytmetyczne +, -, *, /porównania =, /=, <, >, <=, >=

  20. Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 2: Typ rzeczywisty • Czy poniższe wartości są poprawne?a) 1.0e-3 b) 2.0e3.0 c) 2e-3d) 2 e) -1.0 f) 3,3g) 1__0.1e2 h) 1_2.e3 i) _1.9

  21. PRZERWA

  22. Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 2: Konwersje • Standardowe operatory w języku ADA wymagają zgodności operandów • Konwersje umożliwiają zamianę wartości jednego typu na wartość innego typu • Na ogół wykonywane są konwersje między typem całkowitym a rzeczywistym • Ogólna postać konwersji: typ_pożądany ( wartość )

  23. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 2: Konwersje • Konwersja liczby rzeczywistej na całkowitąPrzykład: Integer(3.45) • Zaokrąglanie jest wykonywane według zasad księgowych • Konwersja liczby całkowitej na rzeczywistąPrzykład: Float(8) • Należy mieć świadomość, że w typie rzeczywistym liczby całkowite nie są odwzorowywane dokładnie

  24. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 2: Konwersje • Zmienić wyrażenia tak, aby były poprawnea) ((3 + 2.0) / 7 – 2.0)b) (10 + 3 * (2.0 – 5) / 1.0) – 5 • Zastosować konwersje i obliczyć wartość logiczną wyrażeń:a) (3 + 4.0) / 5 >= (2 * 3) / 5.0b) 3 + 6 * 0.5 < 12 rem 7c) 10 – 2 * 4.0 /= 3.0 – 2 * 3.5

  25. KONIEC

  26. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Typy wyliczeniowe • Typ wyliczeniowy jest uporządkowanym zbiorem wartości. • Deklaracja: typenazwais (wartosc1, wartosc2, ..., wartoscN); • Wartości są uporządkowane, i to uporządkowanie wyznacza relacje między nimi oraz pozwala na określenie atrybutów. • Atrybuty:‘First, ‘Last, ‘Pos(), ‘Val(), ‘Pred(), ‘Succ(), ‘Value(), ‘Image() • Relacje (operatory przyrównania):<, >, <=, >=, =, /=

  27. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Typy wyliczeniowe • Przykład:type domains is (com, org, net, edu, biz); • Ćwiczenie: obliczyć następujące wartości:a) domains’First b) domains’Pos(net)c) domains’Val(4) d) domains’Succ(com) • Ćwiczenie: Prawda czy fałsz?a) domains’Last < org b) biz > netc) domains’Pred(biz) <= domains’Succ(com)

  28. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Typy wyliczeniowe • Można zdefiniować różne typy wyliczeniowe o przecinających się zakresach wartości:type gazy is (hel, wodor, tlen, azot);type palne is (wegiel, wodor, sod); • W szczególności można stworzyć dwa typy o tym samym zbiorze wartości, jednakże są to nadal dwa różne typy. • Typ integer jest typem wyliczeniowym.

  29. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Podtypy • Podtyp jest ograniczeniem zbioru wartości typu bazowego • Aby można było określić podtyp, muszą istnieć operatory przyrównania dla typu bazowego • Deklaracja:subtypenazwaistyp_bazowyrangewartosc1..wartosc2;Proszę zwrócić uwagę na to, że pomiędzy wartosc1 a wartosc2 są DWIE kropki!wartosc1 i wartosc2 muszą być wartościami z typu bazowego.Jeżeli wartosc1>wartosc2, deklaracja jest prawidłowa, ale tak określony podtyp nie ma wartości (jest pusty).

  30. Wstęp Do Informatyki – Ćwiczenia – Język ADA Zajęcia 3: Podtypy • Przykłady podtypów:subtype Positive is Integer range 1 .. Integer’Last;subtype Natural is Integer range 0 .. Integer’Last;subtype non_profit is domains range org .. edu; • Podtyp jest zgodny ze swoim typem bazowym, tzn. wartości z podtypu można używać tam, gdzie wymagana jest wartość z typu bazowego. • Wszystkie atrybuty i operatory określone dla typu bazowego są też określone dla podtypu. • Uwaga na wartości atrybutów ‘Pos() i ‘Val() !

  31. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Podtypy • Po co stosować podtypy?Jeśli określimy jak najwęższy zakres danych, to w czasie kompilacji i wykonania programu przekroczenie tego zakresu będzie zauważone i zasygnalizowane automatycznie.Jeśli posłużymy się typem o szerokim zakresie, kontrola wartości będzie naszym zadaniem.

  32. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Typ znakowy • Typ znakowy character jest typem wyliczeniowym. • Relacja między uporządkowaniem i wartościami typu znakowego (atrybuty ‘Pos() i ‘Val()) odwzorowuje uporządkowanie w tzw. kodzie ASCII (dokładnie ISO-8859-1). • Literałem typu znakowego jest znak ujęty w apostrofy, np. ‘a’. W przypadku tzw. Znaków niedrukowalnych (sterujących) należy się posłużyć atrybutem ‘Val().

  33. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Typ logiczny • Typ logiczny jest typem wyliczeniowym:type boolean is (false, true); • Dla typu logicznego są określone atrybuty tak samo jak dla innych typów wyliczeniowych. • Operatory typu logicznego:not, and, or, xor • Ćwiczenie:Wypełnić tabelkę operacji logicznych.Obliczyć wartość logiczną wyrażeń:((2 > 3) or (not(3.0 /= 3.0e0))) and (true = false)(4 * 2 + 1 < 4 * 3) or ((9 – 2 + 2 * 5 < 67) xor (1e3 /= 1e2))

  34. PRZERWA

  35. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Deklaracja zmiennej • Ogólna postać deklaracji zmiennej:identyfikator {,identyfikator} : typ [zakres] [:= wartosc]; • Przykład:a: integer;

  36. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Identyfikator • Składnia identyfikatora: L{[_]L|D} • Ćwiczenie: wskazać ewentualne błędy w poniższych identyfikatorach:a) Let’sgo b) hagirac) 15alfa d) returne) wartośćElementu f) wartosc_elementug) _underlined_identifier h) starry*identifierh) checkout_the__letter j) value(test)

  37. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Deklaracja z inicjalizacją • Deklarując zmienną należy określić jej wartość (zainicjalizować zmienną): a: integer :=0; • Jeżeli zadeklarujemy zmienną bez inicjalizacji, nie możemy określić jej wartości w momencie wykonania programu. Prowadzi to do trudnych do wyśledzenia błędów wykonania. • Można zadeklarować jednocześnie wiele zmiennych zainicjalizowanych tą samą wartością: a, b, c: integer := 1;

  38. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Deklaracja z określeniem zakresu • W deklaracji można określić zakres wartości przewidywany dla zmiennej. Jeżeli w trakcie wykonywania programu zmienna przyjmie wartość spoza podanego zakresu, zostanie to automatycznie potraktowane jako błąd. • Przykłady:dzien_tygodnia: integer range 0..7;mala_litera: character range 'a'..'z';

  39. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Operator przypisania (podstawienia) • Operator := jest operatorem przypisania. Powoduje on nadanie obiektowi będącemu lewym argumentem wartości wyrażenia będącego prawym argumentem. • Prawy argument musi być typu zgodnego z typem lewego argumentu (np. prawy argument może pochodzić z podtypu) • Lewy argument musi być tzw. L-wartością, czyli musi być powiązany z pewnym fragmentem pamięci.Najprostszymi L-wartościami są zmienne, ale są L-wartości bardziej skomplikowane (np. wycinki tablic)NIE są L-wartościami wyrażenia dające wartości chwilowe, np.: a + 2, a + b, float(a)

  40. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Stałe • Deklaracja stałej:identyfikator:constant [typ] := wartosc; • Można pominąć typ stałej, jeśli wartość jest wartością całkowitą lub rzeczywistą. Stała przybierze automatycznie odpowiedni typ (tzw. stała liczbowa). • Po co stosować stałe?-> skracają zapis programu;-> są bardziej czytelne;-> umożliwiają łatwe zmiany w programie. • Stosowanie zmiennych do przechowywania wartości stałych jest nielogiczne i nieprawidłowe!

  41. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 3: Deklaracje zmiennych i stałych • Czy poniższe deklaracje są prawidłowe?a) zero : constant Float:= 0.0; b) Jeden : constant Integer:= 1.0; c) G: constant:= 9.001; d) P,Q : constant integer; e) 2Pi: constant := 2.0*Pi; f) X: character := ”x”;g) Z: constant := true;h) s: boolean := ‘false’;

  42. KONIEC

  43. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Instrukcja warunkowa if pozwala na wykonanie lub nie pewnego fragmentu programu w zależności od spełnienia lub nie pewnego warunku. • Najprostszy wariant instrukcji if:ifwarunektheninstrukcje;end if;warunek musi być wyrażeniem o wartości logicznej (typu boolean). instrukcje pomiędzy słowem kluczowym then a end if są wykonywane, jeśli warunek ma wartość logiczną true.

  44. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Przykład:a: integer:=0;...if a=0 then put("Zmienna ma wartosc zero!"):end if; • Przykład:if (X>(Y+10)) and (X /= Y) then...end if;Pierwszy warunek implikuje drugi!

  45. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Często w programie podejmowana jest decyzja na zasadzie albo – albo. Do zapisywania takich decyzji należy użyć instrukcji if zalternatywą:if warunek then instrukcje1;elseinstrukcje2;end if; • Jeśli warunek ma wartość logiczną true, wykonywane są instrukcje1; w przeciwnym wypadku wykonywane są instrukcje2;

  46. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Przykład:a: integer:=13;...if a rem 2 = 0 then put("Zmienna jest parzysta");else put("Zmienna jest nieparzysta");end if; • Pod żadnym pozorem nie wolno stosować konstrukcji typu:if a rem 2 = 0 then put("Zmienna jest parzysta");end if;if a rem 2 = 1 then put("Zmienna jest nieparzysta");end if;Zmniejsza to czytelność programu, a zwiększa możliwość popełnienia błędu.

  47. PRZERWA

  48. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Najbardziej ogólną postacią instrukcji warunkowej if jest postać z wariantami:ifwarunek1theninstrukcje1;elsifwarunek2theninstrukcje2;elsif... ...elseinstrukcjeN; • Warunki są sprawdzane w kolejności zapisania. Jeśli warunek ma wartość true, odpowiadające mu instrukcje są wykonywane, a dalsze warunki nie są sprawdzane.

  49. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Przykład:a: integer:=6;...if a rem 2 = 0 then put("Zmienna jest parzysta");elsif a rem 3 = 0 then put("Zmienna jest podzielna przez 3");else put("Zmienna nie jest parzysta 2 ani podzielna przez 3");end if; • Stosowanie postaci z wariantami ma sens, jeśli warunki wykluczają się wzajemnie.

  50. Wstęp Do Informatyki – Ćwiczenia – Język ADAZajęcia 4: Instrukcja warunkowa if • Poniższa konstrukcja, aczkolwiek logicznie odpowiadająca postaci if...elsif...else...end if, nie powinna być stosowana:if a rem 2 = 0 then put("Zmienna jest parzysta");else if a rem 3 = 0 then put("Zmienna jest podzielna przez 3"); else put("Zmienna nie jest parzysta 2 ani podzielna przez 3"); end if;end if; • Stosowanie takiego zapisu powoduje, że tekst programu wydłuża się i staje się mniej czytelny.

More Related