dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1
|
|
- Rafał Jankowski
- 8 lat temu
- Przeglądów:
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 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ółowoTechnologie 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ółowoJę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ółowoINFORMATYKA, 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ółowoProgramowanie 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ół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ółowoProgramowanie 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ółowoProgramowanie 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ółowoNazwa 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ółowoZapisywanie 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ółowoProgramowanie 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ółowo3. 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ół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ółowoDefinicje. 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ółowoWykł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ółowoAlgorytmika 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ółowoKARTA 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ółowoSprzę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ółowoALGORYTMY 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ółowoAlgorytm. 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ółowoPodstawy 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ółowoOd 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ółowoECDL 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ółowoAproksymacja 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ółowoWykł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ółowoKlasa 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ółowoPoprawność 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ółowoINFORMATYKA 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ółowoPROLOG 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ółowoMetody 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ółowoPodstawy 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ółowoElż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ółowoTemat 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ółowoznajdował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ółowoJava 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ół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ółowoJę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ółowoAlgorytmika 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ółowoKOŁ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ółowoProgramowanie 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ółowoScenariusz 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ółowoProgramowanie. 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ółowoTechnologie 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ółowoInstrukcja 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ółowoTeraz 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ółowoMETODY 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ółowow 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ółowoSCENARIUSZ 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ółowoOpis 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ółowo1 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ółowoWskaź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ółowoTemat 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ółowodr 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ółowo11. 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ółowoTRANSLACJA 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ółowoAlgorytm. 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ółowoKomputer 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ółowoLokalizacja 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ółowoJę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ółowoPodstawy 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ółowodr 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ółowoPraktyka 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ółowoWprowadzenie. 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ółowo12. 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ółowoMetody 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ółowoLekcja 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ółowoWymagania 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ółowoPoprawność 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ółowoSposoby 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ółowoPodstawy 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ółowoTemat: 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ółowoNiezwykł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ółowoProgramowanie 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ółowoKONSTRUKCJA 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ółowoJę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ółowoPodstawy 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ółowoKod 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ółowoSpis 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ółowoProgramowanie 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ółowoZapis 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ółowoInformatyka. 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ółowoPodstawy 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ółowoDariusz 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ółowoWYKŁ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ółowoPodstawy 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ółowoScenariusz 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ółowoEtapy ż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ółowoPodstawy 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ółowoTranslacja 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ółowoNAZWA 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ółowoWykł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ółowoScenariusz 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ółowoTestowanie 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ółowoLEKCJA 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ółowoAlgorytm. 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ółowo3a. 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ółowoJakość 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ółowoLaboratorium 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ółowoEtapy ż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