dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Wielkość: px
Rozpocząć pokaz od strony:

Download "dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1"

Transkrypt

1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

2 Komputer jest bardzo sprawnym urządzeniem do liczenia i przetwarzania informacji. Wykorzystanie komputera zgodnie z naszymi potrzebami wymaga wstępnego przygotowania go do pracy. Przygotowanie to polega na nauczeniu komputera, jakie ma kolejno wykonywać czynności, aby wynik jego działania nas satysfakcjonował. Zanim zajmiemy się omawianiem zasad uczenia komputera, musimy zapamiętać następujące twierdzenie:

3 Komputer sam nie myśli. Efekt działania komputera jest wynikiem naszego myślenia przy formułowaniu dla niego sekwencji zadań do wykonania. Im dokładniej i lepiej przemyślimy sposób rozwiązania danego problemu, tym szybciej i efektywniej otrzymamy wyniki. Jeżeli my popełnimy błąd, to również błędne będzie działanie komputera, a uzyskane wyniki nieprawidłowe.

4 Język naturalny jest siłą rzeczy niejednoznaczny. Wiele pozostawia interpretacji, wyczuciu. Komunikacja z komputerem jest o tyle trudniejsza, że nie pozostawia miejsca na domysły czy interpretacje. Ponadto chodzi o to, żeby nasze programy były uniwersalne, a ich wykonanie na każdym komputerze wyglądało tak samo albo różniło się co najwyżej nieznaczącymi szczegółami, wynikającymi ze specyfiki architektury komputera, a nie z istoty zapisu algorytmu.

5 Różnica między językiem programowania a językiem naturalnym polega na tym, że język naturalny jest zastany, podczas gdy język programowania możemy stworzyć od zera według naszego pomysłu. Użyjemy do tego metody gramatyk formalnych, które zostały wynalezione przez znanego językoznawcę Noama Chomsky'ego, który przez większość swojego życia próbował usystematyzować gramatykę języka angielskiego.

6 Każda przyjęta (określona) gramatyka powinna charakteryzować się następującymi cechami: Gramatyka wyrażeń powinna być jednoznaczna. Wartości wyrażeń powinny być zgodne z tradycją matematyczną, w szczególności należy zachować priorytety operatorów oraz wykluczyć napisy typu Nawiasy powinny wymusić dowolną kolejność, na której nam zależy. Operacje niełączne, takie jak odejmowanie i dzielenie powinny być lewostronnie łączne, czyli ich wykonywanie musi być od lewej do prawej (w szczególności np powinno dać wynik 1, a nie 3).

7 Na początku mamy problem... Potem pojawia się rozwiązanie ogólne, opisane werbalnie bez wchodzenia w szczegóły... Analizując je dostrzegamy charakterystyczne części, logicznie od siebie zależne... Zaczynamy uzmysławiać sobie szczegóły realizacji poszczególnych czynności... Szczegółowość podziału całego zadania na czynności i stopień dokładności opisu zależy od umiejętności i możliwości danego wykonawcy.

8 Osobie dorosłej wystarczy powiedzieć Włącz radio. Małemu dziecku trzeba już szczegółowiej: Krzysiu, podejdź do stolika pod oknem Na stoliku stoi czarna skrzynka ze srebrnymi guziczkami Jeden z guziczków ma czerwoną obwódkę Połóż na tym guziczku paluszek i mocno naciśnij Nie bój się włączyłeś radio I to jest właśnie algorytm......ale to już Państwo wiedzą po ostatnim wykładzie.

9 Algorytm ma to do siebie, że kolejne czynności należy wykonywać w określonym porządku. Przykład? Próba zrobienia JAJECZNICY od końca... Zwracamy uwagę na sposób zapisu algorytmu i jego szczegółowość tu musi być wszystko jasne. Oczekując na jakieś dane wejściowe trzeba określić ich typ, zakres, źródło, etc. Wykonując obliczenia trzeba podać wzór i określić jak ma zostać zinterpretowany wynik.

10 Kolejnym krokiem przygotowania komputera do wykonania działań rozwiązujących zadany problem jest zakodowanie algorytmu w postaci programu. Dla skrócenia zapisu zaczynamy korzystać ze znanych z algebry zapisów formuł obliczeń, wprowadzając zmienne reprezentujące określone wartości. Dla komputera konieczne jest precyzyjne określenie kolejności obliczeń oraz sposobu rozstrzygnięć sytuacji alternatywnych i obliczeń wielokrotnie powtarzanych.

11 Do jednoznacznego wyrażania tych wszystkich elementów algorytmu będzie służył język programowania. Jest to język skonstruowany z jednej strony na podobieństwo języka używanego przez człowieka, a z drugiej strony przez dokładne i jednoznaczne określenie reguł zapisu i ich znaczenia jest zrozumiały dla komputera. Programem będzie tekst zapisany w języku programowania opisujący wykonanie sekwencji czynności według zadanego algorytmu. Proces tworzenia programu jest zwany kodowaniem algorytmu.

12 W każdym programie możemy wyróżnić kilka charakterystycznych elementów składowych. Postać ich zapisu jest uzależniona od przyjętych konwencji w języku programowania. Elementami składowymi programu są: Stałe wartości wpisane bezpośrednio w tekst programu. Zmienne reprezentujące pojedynczą wartość, zmienianą w wyniku wykonywanych obliczeń. Dane wartości wprowadzane z otoczenia programu. Wyniki wartości wyprowadzane ze zmiennych programu do jego otoczenia. Instrukcje operacje określające wykonanie lub decyzję o wykonaniu jednostkowego obliczenia.

13 Zapis algorytmu w postaci sieci działań prezentuje graficznie przyszłą strukturę programu. Omawiając więc podstawowe struktury programów będziemy posługiwać się sieciami działań. Funkcjonalnie program składa się z 4 głównych modułów: Deklaracji zmiennych z nadawaniem im wartości początkowych Wprowadzania wartości danych Wykonywania obliczeń zasadniczych Wyprowadzania wartości wyników

14 Moduły podziału funkcjonalnego oraz części tych modułów tworzą jedną z czterech podstawowych struktur programów: O strukturze liniowej kolejne instrukcje tworzą sekwencję obliczeń O strukturze rozgałęzionej (decyzyjnej) w każdej z części niektóre z obliczeń są wykonywane przy spełnieniu obliczonych wartości warunków, a inne w przypadku ich niespełnienia O strukturze cyklicznej (iteracyjnej) część instrukcji jest wielokrotnie wykonywana aż do spełnienia określonego warunku O strukturze proceduralnej wyróżnione części programu (procedury, funkcje, podprogramy) są logicznie włączone w wykonanie różnych innych części programu.

15 Praktycznie rzecz biorąc w każdym programie można znaleźć każdy z rodzajów struktur w zawężeniu do jego modułów. Wyróżnienie tych struktur ma głównie na celu wyjaśnienie pierwszych podstawowych pojęć oraz zwrócenie uwagi na konieczność zachowania ładu w projektowanym algorytmie, a potem w zakodowanym programie. Jeżeli bowiem na danym stopniu szczegółowości opisu całego lub części algorytmu możemy przyporządkować mu odpowiednią instrukcję, to mamy dużą gwarancję, że nasz program będzie dobry.

16 Programowanie komputera jest zespołem czynności umożliwiających rozwiązanie zadanego problemu i obejmuje: ustalenie algorytmu, określenie sposobu i kontroli wprowadzanych danych i wyprowadzenia wyników, zapisanie algorytmu w języku zrozumiałym dla komputera oraz weryfikację poprawności działania programu. Z technicznego punktu widzenia warto jest też mieć wiedzą choćby ogólną z zakresu działania komputera.

17 Definicja pojęcia programowania nie wyjaśnia nam, jakie są kryteria oceny efektu programowania i jak powinien prawidłowo przebiegać ten proces. Wynikiem programowania jest zapis pewnego algorytmu w pewnym języku programowania. Niestety sam proces programowania nie jest w pełni algorytmiczny. Oprócz wielu zasad opracowanych na podstawie doświadczeń tysięcy programistów, w procesie programowania niezbędne jest logiczne i analityczne myślenie programującego, a pożądanymi cechami są też talent i zdolności. Zacznijmy jednak od podstaw.

18 Istnieje kilka metod konstruowania algorytmu, a na jego podstawie programu. Od ogółu do szczegółu czyli zadany problem dzielimy na logicznie domknięte moduły posługując się ogólnym, werbalnym opisem ich funkcjonowania. Następnie każdą z tych części dzielimy na coraz mniejsze moduły, uzyskując w rezultacie opis pojedynczych czynności w instrukcjach języka. Od szczegółu do ogółu czyli rozpoczynamy rozwiązanie problemu od skonstruowania obliczeń dla jego najbardziej istotnych fragmentów, koncentrując się na uzyskaniu gotowego zapisu. Następnie fragment ten, lub też inne podobnie uzyskane fragmenty, łączymy ze sobą dołączając instrukcje wprowadzania danych, wyprowadzania wyników oraz inne instrukcje pomocnicze.

19 W samej nauce programowania wyróżniamy: Konstruowanie algorytmów polegające na logicznym podziale zadanego problemu na pojedyncze czynności; Poznawanie i rozumienie algorytmów już istniejących i ich wykorzystywanie; Weryfikowanie poprawności algorytmu i jego zgodności z zadanym problemem; Poznawanie instrukcji języka ich wariantów i ograniczeń; Stosowanie standardowych rozwiązań niektórych modułów programu;

20 Wykorzystywanie funkcji dostarczonych standardowo z danym językiem programowania; Adaptowanie rozwiązań już istniejących; Efektywne wykorzystywanie funkcji systemu cyfrowego, jakim jest komputer i jego systemowe oprogramowanie; Uruchamianie gotowego programu, polegające na umiejętności wykrywania i usuwania błędów; Ocenę efektywności działania programu; Weryfikowanie poprawności programu; Prawidłową eksploatację gotowego programu; Dokumentowanie oraz rzetelne i zrozumiałe opisywanie zasad korzystania z programu.

21 Komputer posługuje się informacjami zakodowanymi w postaci sekwencji dwóch wartości 0 i 1. Również rozkazy są w ten sposób kodowane, a więc program wykonywany w komputerze musi być zapisany w kodzie (języku) wewnętrznym (maszynowym). Zewnętrzna, z założenia czytelna dla programisty, postać kodu wewnętrznego jest nazywana językiem asemblerowym (niskiego poziomu). W języku tym każdy rozkaz jest opisany mnemonicznym hasłem instrukcji, a większość odwołań do argumentów (ich adresów) jest zadawana symbolicznie.

22

23 Zapisywanie treści programu w języku asemblerowym jest dość uciążliwe i czasochłonne. Z czasem powstały więc języki programowania wysokiego poziomu, bardziej zrozumiałe dla programującego. W przeciągu dość krótkiego czasu stworzono na świecie ponad 1000 różnych języków programowania. Cechami rozróżniającymi je są: Odmienność sposobu zapisu niektórych konstrukcji algorytmów Uproszczenia zapisu konstrukcji typowych Podział na moduły Różny stopień wspomagania programisty w jego działaniach

24 W opisie języka programowania wyróżniamy opis składni i semantyki. Składnia języka jest zbiorem reguł określających prawidłowe postacie zapisu treści programu. Inaczej mówiąc, są to reguły ortografii i gramatyki specyfikujące poprawne postacie deklaracji instrukcji i programu. Semantyka języka jest zestawem znaczeń określających jednoznacznie sposób interpretacji poszczególnych instrukcji języka. W przypadku języka programowania semantyka precyzuje sposób zrozumienia każdego z elementów programu przez komputer.

25 Wiemy już, że funkcjonowanie komputera jest wynikiem wykonywania przez procesor kolejnych rozkazów pobieranych z pamięci operacyjnej. Nasuwa się zatem pytanie w jaki sposób można uzyskać sekwencję rozkazów dla każdej z instrukcji języka wysokiego poziomu? Translator jest częścią oprogramowania komputera i służy do przekształcenia źródłowego tekstu programu, zapisanego w określonym języku programowania, w równoważny funkcjonalnie program wykonywany bezpośrednio przez procesor.

26 Wyróżniamy dwie podstawowe, odmienne zasady funkcjonowania translatora: Interpretator jest translatorem zapisującym źródłowy tekst programu bezpośrednio w pamięci operacyjnej, a następnie wykonującym program poprzez interpretację semantyczną każdej zapisanej instrukcji wywołując odpowiednią procedurę. Kompilator jest translatorem tłumaczącym postać źródłową programu w postać wynikową jako sekwencję rozkazów zgodnie z przeznaczeniem semantycznym. Po wykonaniu kompilacji, gotowy, sprawdzony pod kątem poprawności składni, program może być wielokrotnie wykonywany.

27 Różnica jest w praktyce taka, jak np. przy tłumaczeniu tekstu z języka obcego na nasz. Interpreter to by była taka osoba, która odczytuje i tłumaczy kolejne punkty instrukcji, które po kolei realizujemy. Istotne jest tutaj, że kolejność wybierania tych punktów jest uwarunkowana stanem urządzenia, a interpretowanie tych samych punktów przez tę osobę może odbywać się wielokrotnie. Kompilator to taka osoba, która przetłumaczy nam tekst, oryginał do szafy, a posługujemy się tłumaczeniem. Druga wersja jest atrakcyjniejsza, ale weźmy poprawkę na zmiany oryginału dopóki go nie dopracujemy, to jej pełne tłumaczenie nie bardzo ma sens.

28 Spróbujmy na tym etapie podsumować dotychczas poznane tajniki nauki programowania: Fazy życia programu: Idea rozwiązania problemu przy użyciu komputera. Zaprojektowanie algorytmu. Zapisanie algorytmu w języku programowania jako programu. Wprowadzenie treści programu do pamięci operacyjnej. Translacja programu. Wykonanie programu z wprowadzaniem danych i wyprowadzaniem wyników.

29 Styl programowania jest pojęciem abstrakcyjnym, określającym zespół warunków, które determinują otrzymanie programu nie tylko poprawnego, ale również ładnego i eleganckiego pod względem zasad metodyki programowania. Rozważając te zagadnienia będziemy zajmować się zawsze programem poprawnym, czyli takim który: Dla dobrze określonych zbiorów danych dokonuje ich przetworzenia w zbiór wyników zgodnie z założonym algorytmem, opracowanym na podstawie specyfikacji problemu przewidzianego do rozwiązania z wykorzystaniem komputera; Dla wszystkich innych zestawów danych, niezgodnych z założeniami, spowoduje wyprowadzenie komunikatu o braku możliwości uzyskania wyników.

30 Dobór identyfikatorów. Najlepszą metodą jest przyjęcie nazewnictwa związanego z rozwiązywanym problemem. Należy unikać nadawania nazw takich samych lub podobnie brzmiących jak instrukcje w danym języku programowania. Zestaw danych. Deklarowanie zmiennych czy stałych należy wykonywać w jednym miejscu zazwyczaj na początku programu (procedury). Rzetelność danych. Należy dobrać typy danych pod kątem zakresu tak, aby zapewniały poprawne wyniki w całym zakresie danych wejściowych.

31 Komentarze. Program bez dokumentacji w postaci komentarzy jest wart niewiele. Nawet krótka przerwa w jego edycji powoduje, że musimy dużo czasu poświęcić na przypomnienie sobie co dany fragment programu robi i w jaki sposób. A już nie mówiąc o kimś, kto ten program dopiero co zobaczył. Struktura programu. Tekst programu powinien być wyraźnie podzielony na moduły wykonujące logicznie odrębne fragmenty algorytmu. Można ten efekt uzyskać stosownymi komentarzami, albo zabiegami formatującymi treść. Zapis formuł w postaci wyrażeń. Dla czytelności formuł warto korzystać z nawiasów grupujących czynniki. Czasem jest to wręcz konieczne. A czasem przyspiesza wykonanie obliczeń.

32

33 Stwierdzenia niektórych programistów, że napisali program i od pierwszego uruchomienia działał jak trzeba można włożyć na półkę między książki z kategorii science-fiction. Nie jest to niemożliwe, ale bardzo rzadkie i dotyczy jedynie bardzo prostych programów bazujących na znanych algorytmach. Błędy w dużej mierze wynikają z potrzeby bardzo szczegółowego opisania komputerowi co ma robić. Człowiek często myśli na skróty i stąd omija niektóre szczegóły (błędy w trakcie działania programu). Druga część błędów wynika z braku w wiedzy w zakresie używanego języka programowania (błędy składniowe).

34 W językach programowania wykorzystywane są różnego rodzaju oznaczenia symboliczne. Dzielą się one na trzy kategorie: Operatory operacji arytmetycznych i relacji Separatory rozdzielające elementy składni języka Atrybuty elementów języka W praktyce oznaczenie danego działania może być opisywane dwoma symbolami (np. := ) lub słownie (np. mod). Dokładny opis znaczenia omówiony będzie w praktyce na laboratorium w przyszłym semestrze. Niektóre na następnym wykładzie.

35 W zależności od wybranego języka programowania możemy spotkać się z różnymi rodzajami typów danych, z jakich możemy korzystać w programie. W praktyce różnice między językami programowania sprowadzają się do przyjętego sposobu nazewnictwa, ale też zdefiniowanych zakresów znaczeniowych. Ogólnie typy te dzielą się na: Liczbowe Tekstowe Logiczne Tablicowe

36 Oprócz poświęcenia uwagi na opracowanie skutecznego algorytmu, a później na dokonanie jego konwersji do postaci programu trzeba poświęcić też trochę uwagi na jego uruchamianie. Naszym dotychczasowym dążeniem było uzyskanie poprawnego merytorycznie i technicznie tekstu programu, uwzględniając w miarę możliwości dobry styl programowania. Czas zatem poświęcić chwilę na proces wprowadzania programu do komputera, wykonania oraz przetestowania dla stwierdzenia jego poprawności i zgodności z założeniami algorytmu rozwiązywanego problemu.

37 Prawdopodobieństwo uzyskanie bezbłędnego programu natychmiast po jego wprowadzeniu do komputera jest praktycznie bliskie zeru. Z tego powodu, już na etapie konstruowania algorytmu oraz jego zapisu w języku programowania musimy się przygotować do metodycznego poszukiwania istniejących błędów. W większości przypadków do tego celu można będzie wykorzystać sam komputer.

38 W uruchamianym programie mogą wystąpić błędy należące do jednej z trzech klas: Błędy składniowe polegające na niezgodnym ze składnią języka zapisem instrukcji (popularnie są to błędy ortograficzne); Błędy wykonywania polegające na żądaniu wykonania niedozwolonej w danym kontekście operacji; Błędy logiczne polegające na poprawnym funkcjonowaniu programu, ale wykonującym przetwarzanie dla innego niż założono problemu.

39 Błąd składniowy znajduje się zawsze w linii, w której został on zasygnalizowany. Przeważnie jest to: Błędne zapisanie słowa kluczowego lub też pozostała część linii nie jest zgodna ze składnią instrukcji określonej pierwszym słowem kluczowym; Opuszczenie elementu składni instrukcji lub też błędne jego zapisanie nieprawidłowy identyfikator zmiennej, zła postać stałej typu liczbowego lub tekstowego, brak operatora w wyrażeniu lub separatora na liście zmiennych czy liście wartości, itp.

40 Błąd wykonywania jest wykrywany przez sprawdzenie zgodności argumentów aktualnie wykonywanej operacji z jej kontekstem w pozostałej części programu. Błędy te mogą pojawić się zarówno przy pierwszym, jak i kolejnych wywołaniach danej instrukcji. Błąd jest sygnalizowany dla linii, w której został on wykryty, niemniej często jest on powiązany z wcześniej wykonywanymi instrukcjami. Przeważnie jest to brak definicji funkcji, deklaracji tablicy, niepoprawna lub niezgodna z oczekiwaniami wartość zmiennej, wyczerpanie obszaru pamięci przeznaczonego na przechowanie danej wartości tekstowej.

41 Błąd logiki programu może mieć swoją przyczynę: W błędnie zaprojektowanym algorytmie rozwiązania problemu nie uwzględniającym wszystkich możliwych warunków decydujących o kolejności przetwarzania danych i interpretacji wyników pośrednich; W błędnie zakodowanym algorytmie w postaci programu pomijającym niektóre fragmenty algorytmu lub ograniczającym jego możliwości. Ujawnienie tego typu błędów może nastąpić w trakcie wykonywania programu w postaci błędów wykonywania, a jedyną metodą stwierdzenia braku takich błędów jest całkowite przetestowanie programu z możliwymi danymi wejściowymi.

42 Zatem można podsumować, że brak błędów składniowych i wykonywania nie świadczy o braku błędów logiki. Dopiero przeprowadzenie testów i uzyskane w nich wyniki mogą doprowadzić do stwierdzenia o poprawności działania programu. Bywa to czasem znacznie bardziej czasochłonne i kosztowne. Do wykrywania błędów logiki algorytmu i programu używa się różnych metod opartych o tablice decyzyjne i definicje niezmienników dla wykonywanych obliczeń. Jedno i drugie wykracza sporo poza ramy podstaw, więc nie będziemy tego rozwijać teraz.

43 Testowanie programu polega na jego wykonywaniu dla specjalnie opracowanych danych testujących umożliwiających zweryfikowanie poprawności poprzez: Sprawdzenie działania programu w warunkach granicznych lub dla osobliwych wartości danych Oszacowanie dokładności obliczeń Sprawdzenie odporności programu na błędy Sprawdzenie wszystkich dróg sterowania Wymaga to opracowania kompleksowego zestawu testów, których dobór i opracowanie nie jest zagadnieniem uniwersalnym.

44 Podstawowymi zasadami przy generowaniu testów są: Test powinien sprawdzać działanie programu w warunkach granicznych czyli wybieramy wartości ekstremalne oraz zero. Kolejne testy w zestawie powinny się różnić tylko w niektórych wartościach dla sprawdzenia różnic w wartościach wyników. Na tej podstawie możemy oszacować dokładność, z jaką będzie trzeba zadawać wartości danych dla uzyskania pożądanej dokładności wyników. Pożądane jest, aby dla każdego zestawu danych testujących zostały oszacowane prawdopodobne wartości wyników, jakie powinny być uzyskane. Dobrze też jest znać wartości wyników pośrednich w określonych punktach programu.

45 Należy ograniczać czas wykonywania programu dla danych testujących poprzez minimalizowanie iteracji, liczby przetwarzanych wartości, wielkości rozmiarów analizowanych tablic czy długości przetwarzanych napisów. Część testów powinna zawierać wartości danych niezgodne z założeniami rozwiązywanego problemu. W tym przypadku wykonanie programu powinno spowodować wyprowadzenie odpowiednich komunikatów sygnalizujących odporność programu na błędy. Pełny zestaw testów powinien weryfikować wszystkie istniejące drogi sterowania w programie. Stąd też przygotowując testy należy przeanalizować sieć działań zaznaczając w niej, który zestaw testów weryfikuje daną drogę w sieci.

46 W procesie uruchamiania programu możemy wyróżnić dwa etapy: Usuwanie z programu błędów składniowych i błędów wykonywania. Testowanie programu z usuwaniem błędów logicznych programu. Usuwanie błędów z programu polega na uruchomieniu programu z bardzo prostymi zestawami danych w celu sprawdzenia poprawnego zapisania tekstu programu. Wykorzystywane zestawy danych powinny umożliwiać sprawdzenie praktycznie każdej drogi sterowania w programie. Uzyskiwane wyniki programu tymczasem nas nie interesują.

47 Dla pierwszego etapu uruchamiania programu warto jest przygotować testujący zestaw danych wewnętrznych, aby nie trzeba było go wielokrotnie wprowadzać dla kolejnych prób uruchomienia programu. Jednocześnie staramy się minimalizować ilość tych danych oraz czas działania programu. I w tym momencie z nawiązką zwraca się używanie dobrego stylu w programowania oraz parametryzacji programu. Z drugiej strony czytelność i łatwość modyfikacji tekstu programu daje nam szansę prostego przystosowania programu do częstych i krótkich w działaniu wykonań.

48 Po wstępnym przystosowaniu programu do akceptacji prostych zestawów danych przystępujemy do uruchamiania programu. W większości języków programowania wystąpienie błędu przerywa dalsze jego wykonywanie. Po poprawieniu błędu składniowego możemy wznowić jego działanie zazwyczaj jest to uruchomienie od początku. Przy okazji zatrzymania można (i czasem warto) przyjrzeć się zawartości niektórych zmiennych: Przechowujących dane programu Sterujących w instrukcji cyklu Ostatnio obliczanych w poprzednich instrukcjach

49 Po usunięciu błędów składniowych i wykonywania (tutaj procedura jest identyczna) przechodzimy do drugiego etapu uruchomienia programu testowania w celu weryfikacji jego poprawności. Przed rozpoczęciem tego etapu powinniśmy dokonać tzw. instrumentacji programu, która polega na świadomym wprowadzeniu do tekstu programu instrukcji umożliwiających stałe kontrolowanie jego działania. Elementami tymi są: Wydruki wartości pośrednich Instrukcje wstrzymywania (break point) Instrukcje śledzenia działania programu

50 Wykorzystując wszystkie trzy, lub tylko niektóre, metody instrumentacji programu odpowiednio przygotowane zestawy danych testujących kolejno weryfikujemy poprawność fragmentów programu. Po wykonaniu testów i stwierdzeniu, że program na 99% jest poprawny powinniśmy usunąć elementy jego instrumentacji i można taką wersję programu udostępniać dalej. Niemniej warto zachować wersję zinstrumentalizowaną, ponieważ zawsze zostaje ten 1% prawdopodobieństwa, że w trakcie regularnego korzystania pojawi się sytuacja awaryjna i wtedy mając taką wersję łatwiej i szybciej będziemy mogli załatać dziurę.

51 A co zrobić, jeśli program działa błędnie, mimo naszych usilnych starań? Propozycje są następujące kolejno: Uzbroić się w cierpliwość i raz jeszcze spokojnie przejrzeć tekst programu, najlepiej z drugim programistą, wyjaśniając mu przeznaczenie każdej instrukcji przez nas napisanej; często mamy przeświadczenie o poprawności działania fragmentu programu, a niestety rzeczywistość jest inna. Na podstawie tekstu programu należy odtworzyć sieć działań porównując ją następnie z wersją przez nas na początku skonstruowaną dla danego algorytmu; często wychodzą różnice. Nie wstydzić się i poprosić o pomoc bardziej doświadczonych programistów; niektórzy mogli mieć podobny problem i znają remedium.

52 Napisać jeszcze raz porządnie program od początku, korzystając ze zdobytych już doświadczeń i stosując wszelkie kanony dobrego stylu programowania; ładne i eleganckie programy to podstawa. Jeżeli żadna z powyższych rad nie przyniesie pozytywnego rezultatu, można zacząć podejrzewać używany przez nas komputer oraz wykorzystywane oprogramowanie o błędne funkcjonowanie; warto zatem spróbować uruchomić program na innej maszynie, w innym środowisku tego samego języka programowania.

53

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

Języki programowania zasady ich tworzenia

Języki programowania zasady ich tworzenia Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

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

Podstawy 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ółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++ Uniwersytet Śląski w Katowicach str. 1 Kierunek i poziom studiów: Chemia, poziom pierwszy Sylabus modułu: Laboratorium programowania (0310-CH-S1-019) Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

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

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. 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ółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz Wykład 8 Testowanie w JEE 5.0 (1) Autor: 1. Rola testowania w tworzeniu oprogramowania Kluczową rolę w powstawaniu oprogramowania stanowi proces usuwania błędów w kolejnych fazach rozwoju oprogramowania

Bardziej szczegółowo

Algorytmika i programowanie usystematyzowanie wiadomości

Algorytmika i programowanie usystematyzowanie wiadomości Temat 1. Algorytmika i programowanie usystematyzowanie wiadomości Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm, program, specyfikacja zadania, lista kroków, schemat blokowy, algorytm

Bardziej szczegółowo

KARTA KURSU. Wstęp do programowania

KARTA KURSU. Wstęp do programowania KARTA KURSU Nazwa Nazwa w j. ang. Wstęp do programowania Introduction to Programming Kod Punktacja ECTS* 6 Koordynator dr inż. Magdalena Andrzejewska Zespół dydaktyczny: dr inż. Magdalena Andrzejewska

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

ALGORYTMY I PROGRAMY

ALGORYTMY I PROGRAMY ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Podstawy Informatyki Języki programowania c.d.

Podstawy Informatyki Języki programowania c.d. Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład

Bardziej szczegółowo

Od programowania wizualnego do tekstowego

Od programowania wizualnego do tekstowego Od programowania wizualnego do tekstowego Krzysztof Chechłacz Nowa podstawa programowa z informatyki w świetle reformy oświaty - Konferencja w ramach XII edycji Akademii Technologii Informacyjnej i Komunikacyjnej

Bardziej szczegółowo

ECDL Podstawy programowania Sylabus - wersja 1.0

ECDL Podstawy programowania Sylabus - wersja 1.0 ECDL Podstawy programowania Sylabus - wersja 1.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu Podstawy programowania. Sylabus opisuje, poprzez efekty uczenia się, zakres wiedzy

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady

Bardziej szczegółowo

Poprawność algorytmów

Poprawność algorytmów Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy

Bardziej szczegółowo

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn

Bardziej szczegółowo

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej. Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery

Bardziej szczegółowo

Metody Kompilacji Wykład 1 Wstęp

Metody Kompilacji Wykład 1 Wstęp Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Temat 20. Techniki algorytmiczne

Temat 20. Techniki algorytmiczne Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły opis prostej sytuacji problemowej, analizuje

Bardziej szczegółowo

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

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

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

Programowanie. 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ółowo

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

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia

Bardziej szczegółowo

Algorytmika i pseudoprogramowanie

Algorytmika i pseudoprogramowanie Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry

Bardziej szczegółowo

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO Aleksandra Nogała nauczycielka matematyki w Gimnazjum im. Macieja Rataja w Żmigrodzie olanog@poczta.onet.pl KONSPEKT ZAJĘĆ ( 2 godziny) KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO TEMAT

Bardziej szczegółowo

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!

Programowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga! Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)

Bardziej szczegółowo

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW-4014-87/99 Techniki algorytmiczne realizowane przy pomocy grafiki żółwia w programie ELI 2,0. Przedmiot: Informatyka

Bardziej szczegółowo

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

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Technologie cyfrowe Artur Kalinowski Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.pl Semestr letni 2014/2015 Zadanie algorytmiczne: wyszukiwanie dane wejściowe:

Bardziej szczegółowo

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

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa Autorzy scenariusza: SCENARIUSZ LEKCJI OPRACOWANY W RAMACH PROJEKTU: INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA. PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Bardziej szczegółowo

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań

Opis efektów kształcenia dla programu kształcenia (kierunkowe efekty kształcenia) WIEDZA. rozumie cywilizacyjne znaczenie matematyki i jej zastosowań TABELA ODNIESIEŃ EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA PROGRAMU KSZTAŁCENIA DO EFEKTÓW KSZTAŁCENIA OKREŚLONYCH DLA OBSZARU KSZTAŁCENIA I PROFILU STUDIÓW PROGRAM KSZTAŁCENIA: POZIOM KSZTAŁCENIA: PROFIL KSZTAŁCENIA:

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Temat 5. Programowanie w języku Logo

Temat 5. Programowanie w języku Logo Temat 5. Programowanie w języku Logo Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej sytuacji

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym

11. Blok ten jest blokiem: a. decyzyjnym b. końcowym c. operacyjnym 1. Instrukcja warunkowa a. słuŝy do wprowadzania danych oraz wprowadzania wyników b. to instrukcja decyzyjna c. to sposób przedstawienia algorytmu 2. Instrukcja, która opisuje wykonanie róŝnych czynności

Bardziej szczegółowo

TRANSLACJA I TRANSLATORY

TRANSLACJA I TRANSLATORY TRANSLACJA I TRANSLATORY Języki programowania niskiego czy też wysokiego poziomu mają na zadanie przetworzyć ogół algorytmów w nich zapisanych na taką postać aby maszyna cyfrowa była w stanie je wykonać

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Lokalizacja Oprogramowania

Lokalizacja Oprogramowania mgr inż. Anton Smoliński anton.smolinski@zut.edu.pl Lokalizacja Oprogramowania 16/12/2016 Wykład 6 Internacjonalizacja, Testowanie, Tłumaczenie Maszynowe Agenda Internacjonalizacja Testowanie lokalizacji

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Elementy algorytmiki C w środowisku.e (C#) dr inż. Grzegorz Zych Copernicanum, pok. 3 lub 206a 1 Minimum programowe reści kształcenia: Pojęcie algorytmu. Podstawowe konstrukcje programistyczne.

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek Wprowadzenie Organizacja pracy i środowisko programistyczne Mirosław Ochodek Miroslaw.Ochodek@pwsz.pila.pl Miroslaw.Ochodek@cs.put.poznan.pl Dane kontaktowe Mirosław Ochodek E-mail: Miroslaw.Ochodek@pwsz.pila.pl

Bardziej szczegółowo

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Lekcja 3: Pierwsze kroki z Pythonem. Pętle

Lekcja 3: Pierwsze kroki z Pythonem. Pętle #SuperKoderzy www.superkoderzy.pl Mikrobitowcy Autorzy: Filip Kłębczyk Lekcja 3: Pierwsze kroki z Pythonem. Pętle Podczas lekcji uczniowie zapoznają się z dwoma rodzajami pętli - for i while - analizując

Bardziej szczegółowo

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej. Dział Zagadnienia Wymagania podstawowe Wymagania ponadpodstawowe Arkusz kalkulacyjny (Microsoft Excel i OpenOffice) Uruchomienie

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Sposoby przedstawiania algorytmów

Sposoby przedstawiania algorytmów Temat 1. Sposoby przedstawiania algorytmów Realizacja podstawy programowej 5. 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych problemów; 2) formułuje ścisły

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia.

Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia. Prowadzący: Dariusz Stefańczyk Szkoła Podstawowa w Kurzeszynie Konspekt lekcji z informatyki w klasie IV Dział programowy: Programowanie. Podstawa programowa 1. Treści nauczania: Rozumienie, analizowanie

Bardziej szczegółowo

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

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu. Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą

Bardziej szczegółowo

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i

Bardziej szczegółowo

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15.

Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop Spis treści. Wstęp 15. Kod doskonały : jak tworzyć oprogramowanie pozbawione błędów / Steve McConnell. Gliwice, cop. 2017 Spis treści Wstęp 15 Podziękowania 23 Listy kontrolne 25 Tabele 27 Rysunki 29 Część I Proces budowy oprogramowania

Bardziej szczegółowo

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7

Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział

Bardziej szczegółowo

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba Programowanie od pierwszoklasisty do maturzysty Grażyna Koba Krąg trzydziestolecia nauki programowania C++, Java Scratch, Baltie, Logo, Python? 2017? Informatyka SP, GIMN, PG 1987 Elementy informatyki

Bardziej szczegółowo

Zapis algorytmów: schematy blokowe i pseudokod 1

Zapis algorytmów: schematy blokowe i pseudokod 1 Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu

Bardziej szczegółowo

Informatyka. Michał Rad

Informatyka. Michał Rad Informatyka Michał Rad 13.10.2016 Co i po co będziemy robić Plan wykładów: Wstęp, historia Systemy liczbowe Co to jest system operacyjny i po co to jest Sprawy związane z tworzeniem i własnością oprogramowania

Bardziej szczegółowo

Podstawy programowania w C++

Podstawy programowania w C++ Podstawy programowania w C++ Liczby w jaki sposób komputery je widzą? Opracował: Andrzej Nowak Bibliografia: CPA: PROGRAMMING ESSENTIALS IN C++ https://www.netacad.com Czy wiesz, jak komputery wykonują

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++ Jednostka prowadząca: Wydział Techniczny Kierunek studiów: Elektronika i telekomunikacja Nazwa przedmiotu: Język programowania C++ Charakter przedmiotu: podstawowy, obowiązkowy Typ studiów: inŝynierskie

Bardziej szczegółowo

Podstawy programowania.

Podstawy programowania. Kod przedmiotu: PPR Podstawy programowania. Rodzaj przedmiotu: kierunkowy; obowiązkowy Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Poziom studiów: pierwszego stopnia Profil

Bardziej szczegółowo

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb; 1 TEMAT LEKCJI: Instrukcja pętli For w języku Turbo Pascal 2 CELE LEKCJI: 2.1 Wiadomości: Uczeń potrafi: podać konstrukcję instrukcji pętli For w języku Turbo Pascal; omówić sposób działania instrukcji

Bardziej szczegółowo

Etapy życia oprogramowania

Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 w prezentacji wykorzystano również materiały przygotowane przez Michała Kolano

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Translacja wprowadzenie

Translacja wprowadzenie Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986

Bardziej szczegółowo

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA: NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA: Podstawy programowania Kod przedmiotu: GS_13 Rodzaj przedmiotu: kierunkowy Wydział: Informatyki Kierunek: Grafika Poziom studiów: pierwszego stopnia VI poziom PRK Profil

Bardziej szczegółowo

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład VII. Programowanie III - semestr III Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład VII - semestr III Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Wytwarzanie oprogramowania Model tworzenia oprogramowania

Bardziej szczegółowo

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury; 1 TEMAT LEKCJI Definiowanie i wywoływanie własnych procedur 2 CELE LEKCJI 2.1 Wiadomości Uczeń potrafi: scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

Bardziej szczegółowo

Testowanie oprogramowania. Testowanie oprogramowania 1/34

Testowanie oprogramowania. Testowanie oprogramowania 1/34 Testowanie oprogramowania Testowanie oprogramowania 1/34 Testowanie oprogramowania 2/34 Cele testowania testowanie polega na uruchamianiu oprogramowania w celu wykrycia błędów, dobry test to taki, który

Bardziej szczegółowo

LEKCJA 2 Program do zdalnego sterowania robotem

LEKCJA 2 Program do zdalnego sterowania robotem LEKCJA 2 Program do zdalnego sterowania robotem Przedmiot: Informatyka Etap: klasa I-III, klasa IV-VI, klasa VII-VIII Czas na realizację: 45min. Autor: Grzegorz Troszyński Redakcja: Joanna Skalska Krótki

Bardziej szczegółowo

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne. Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

3a. Wstęp: Elementarne równania i nierówności

3a. Wstęp: Elementarne równania i nierówności 3a. Wstęp: Elementarne równania i nierówności Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2017/2018 Grzegorz Kosiorowski (Uniwersytet Ekonomiczny 3a. Wstęp: w Krakowie) Elementarne równania

Bardziej szczegółowo

Jakość w procesie wytwarzania oprogramowania

Jakość w procesie wytwarzania oprogramowania Jarosław Kuchta Jakość Oprogramowania http://www.eti.pg.gda.pl/katedry/kask/pracownicy/jaroslaw.kuchta/jakosc/ J.Kuchta@eti.pg.gda.pl Względny koszt wprowadzania zmian w zależności od fazy realizacji projektu

Bardziej szczegółowo

Laboratorium nr 4: Arytmetyka liczb zespolonych

Laboratorium nr 4: Arytmetyka liczb zespolonych Laboratorium nr 4: Arytmetyka liczb zespolonych 1 Cel ćwiczenia Wykształcenie umiejętności definiowania przeciążeń operatorów arytmetycznych dwuargumentowych i jednoargumentowych dla własnych struktur

Bardziej szczegółowo

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania Etapy życia oprogramowania Modele cyklu życia projektu informatycznego Organizacja i Zarządzanie Projektem Informatycznym Jarosław Francik marzec 23 Określenie wymagań Testowanie Pielęgnacja Faza strategiczna

Bardziej szczegółowo