Technologia Informacyjna. Mariusz B. Bogacki

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

Download "Technologia Informacyjna. Mariusz B. Bogacki"

Transkrypt

1 Strona 1 z 31 Technologia Informacyjna Mariusz B. Bogacki Instytut Technologii i Inżynierii Chemicznej www2.fct.put.poznan.pl/cv23.htm Mariusz.Bogacki@put.poznan.pl Poznań 2008

2 Strona 2 z 31 Program zajęć Technologia Informacyjna - Wykład 1. Wstęp Zarys historii Algorytmy i dane - struktury sterujące i podprogramy - typy i struktury danych Języki programowania - zasady składni i semantyki - kompilacja i interpretacja programów 2. Algorytmy Metody algorytmiczne - przeglądanie struktur danych - dzielenie problemu - poszukiwanie drogi - programowanie dynamiczne

3 Strona 3 z 31 Poprawność algorytmów - błędy językowe i logiczne - testowanie i uruchamianie programów - analiza poprawności algorytmów Sprawność algorytmów - ulepszanie algorytmów - analiza kosztów wykonania algorytmów 3. Problemy Zła wydajność Zadania nierozwiązywalne Sztuczna Inteligencja

4 Strona 4 z 31 Literatura 1. Harel, Dawid, Rzecz o istocie informatyki. ALGORYTMIKA, WNT, Warszawa Bentley, Jon, Perełki Oprogramowania, WNT, Warszawa 2000.

5 Strona 5 z 31 Technologia Informacyjna Pracownia Projektowa Harmonogram zajęć Tydzień Temat zajęć Lekcja 1. - MS Excel 1 1 Struktura arkusza kalkulacyjnego, wprowadzanie, kopiowanie, przenoszenie i sortowanie danych Lekcja 2. - MS Excel 2 2 Używanie jednostek, konwersja jednostek, wpisywanie daty i godziny, wykresy Lekcja 3. MS Excel 3 Adresowanie komórek w arkuszu kalkulacyjnym, odwołanie się do komórek i zakresów, adresowanie bezwzględne i względne. Pisanie formuł ma- 3 tematycznych, funkcje wbudowane: matematyczne, statystyczne, tekstowe, logiczne. Lekcja 4. - MS Excel 4 4 Moduł Solver Lekcja 5. - MS Excel 5 5 Analiza statystyczna: histogram, statystyka opisowa, regresja liniowa. 6 Kolokwium I

6 Strona 6 z Lekcja 6. MathCad 1 Edycja wyrażeń; definiowanie zmiennych i funkcji; jednostki i wymiary Lekcja 7. MathCad 2 Wektory i macierze Lekcja 8. MathCad 3 Obliczenia iteracyjne Lekcja 9. MathCad 4 Operatory, funkcja warunkowa Lekcja 10. MathCad 5 Rysunki 2D i 3D. Lekcja 11. MathCad 6 Numeryczne rozwiązywanie równań i układów równań Lekcja 12. MathCad 7 Obliczenia symboliczne 14 Zadania powtórkowe 15 Kolokwium II Literatura 1. Palaczek W., Mathcad 2001 professional, Akademicka Oficyna Wydawnicza EXIT, Warszawa, Wróblewski P., Microsoft Office PL w biurze i nie tylko, Helion, Gliwice, 2007.

7 Strona 7 z Komputery Cztery elementy informatyki - w domu: przetwarzanie tekstu, zastosowania multimedialne, internet, kuchenki mikrofalowe, pralki, lodówki,... ; - w biurze: przetwarzanie tekstów, tworzenie opracowań, zestawień, grafiki, interenet; - komputery w samolotach, samochodach, pociągach,... ; - maszyny i urządzenia przemysłowe: sterowane procesorami obrabiarki, instalacje przemysłowe; - urządzenia kontrolno pomiarowe: mierniki temperatury, ciśnienia, aparatura analityczna; - telefony komórkowe, aparaty fotograficzne; - inteligentne domy.

8 Strona 8 z 31 Różne zastosowania komputera wymagają dostosowania jego budowy do przewidywanych zadań. Definicja 1 Informatyka to nauka związana z projektowaniem, konstruowaniem i wykorzystaniem komputerów.

9 Strona 9 z Programy #include "stdio.h" main() /*obliczanie dlugosci slowa maszynowego */ { unsigned n; int i; n=~0; i=0; while ((n&~(~0<<1))==1) { n>>=1; i++; } printf("%d/n",i); } Języki programowania: - proste w użyciu zbliżone do języka naturalnego; - precyzyjnie opisują rozwiązywany problem; - ukierunkowane na rozwiązywanie określonych zagadnień.

10 Strona 10 z 31 Definicja 2 Informatyka to nauka związana z projektowaniem i zastosowaniem różnych języków do sterowania komputerami (procesorami)

11 Strona 11 z 31 Algorytmy Algorytm 4.1. Metoda bisekcji xa + xb 1. Obliczyć x = ; c 2 2. Jeżeli f(x c ) = 0 lub x a x b ε, to podaj x c jako rozwiązanie i zakończ obliczenia; 3. W przeciwnym razie 3.1. Jeżeli f ( xa ) f ( xc ) 0, to xb = x c ; 3.2. W przeciwnym razie x a = x c ; 4. Wróć do punktu 1. - konieczny jest przepis, który określa, co i jak należy zrobić, aby komputer rozwiązał postawiony problem; - przepis ten musi uwzględniać ograniczenia w działaniu komputerów: szybkość procesora i wielkość pamięci; - musi gwarantować uzyskanie rozwiązania w jak najkrótszym czasie. Definicja 3 Informatyka jest dziedziną wiedzy i działalności zajmującą się algorytmami.

12 Strona 12 z 31 Informacja - bazy danych; - katalogi; - rozpoznawanie mowy i obrazu; - dowolne obliczenia. Definicja 4 Informatyka jest to dziedzina wiedzy i działalności zajmująca się gromadzeniem, przetwarzaniem i wykorzystywaniem informacji (różnego rodzaju danych o otaczającej nas rzeczywistości). Obróbka informacji odbywa się za pomocą komputerów.

13 Strona 13 z 31 Definicja 5 Algorytm jest przepisem rozwiązywania postawionego zadania, będącym dokładnie określonym układem elementarnych instrukcji wraz z porządkiem ich wykonywania. Każda instrukcja ma precyzyjnie określoną interpretację za pomocą podstawowych operacji arytmetycznych i logicznych, a jej wykonanie jest skończone i ma jednoznacznie określony efekt końcowy. Jako elementy komunikacji ze światem zewnętrznym w algorytmie można wyróżnić: - dane, na których są wykonywane obliczenia, - wyniki, które są oczekiwanym rezultatem działania.

14 Strona 14 z 31 Jak rozumieć definicję Algorytmu? Algorytm jest przepisem rozwiązywania postawionego zadania. Każdy przepis omawiający sposób rozwiązania postawionego zadania jest algorytmem: - instrukcja obsługi telefonu, telewizora... ; - przepis otrzymywania preparatu chemicznego; - przepis z książki kucharskiej; - instrukcja składania szafy kupionej w jednej z sieci sklepów; - Instrukcja kasowania biletu tramwajowego, autobusowego, kolejowego;

15 Strona 15 z 31 Dokładnie określony układ elementarnych instrukcji wraz z porządkiem ich wykonywania. - należy określić zbiór najprostszych tzw. elementarnych instrukcji; - ich kolejność musi być określona, ponieważ niedotrzymanie kolejności powoduje brak rozwiązania. Każda instrukcja ma precyzyjnie określoną interpretację. - wszystkie instrukcje muszą być jednoznaczne, to znaczy jasno i dokładnie określone i nie wymagające dodatkowej interpretacji; - nie można wprowadzać domyślnych rozwiązań, komputer nie domyśli się, o co nam chodzi; - komputery nie potrafią zinterpretować instrukcji niejasnych, - niedopuszczalne są instrukcje nieokreślone, wymagające dodatkowej interpretacji

16 Strona 16 z 31 Jej wykonanie jest skończone i ma jednoznacznie określony efekt końcowy - komputery nie mogą pracować nieskończenie długo; - Wynik ich działania musi być zgodny z naszymi oczekiwaniami. Algorytm przewiduje komunikację ze światem zewnętrznym. - pobiera dane potrzebne do jego realizacji;\ - generuje wyniki zgodne z naszymi oczekiwaniami.

17 Strona 17 z 31 Z historii informatyki Euklides ( p.n.e.) usystematyzował całość ówczesnej wiedzy matematycznej w postaci tzw. aksjomatów nadając wszystkiemu ujęcie geometryczne; najstarszy znany algorytm tzw. algorytm Euklidesa (wyznaczanie największego wspólnego dzielnika dwu liczb naturalnych).

18 Strona 18 z 31 Muhammad ibn Musa al-chorezmi (al- Khwãrizmi) (VIII-IX wiek (prawdopodobnie ok.780 ok. 850). (łacińska transkrypcja nazwiska Algoritmus) arabski matematyk i astronom; prekursor metod obliczeniowych; autor wielu prac z matematyki i astronomii mających ogromny wpływ na naukę europejską; od tytułu jednego z jego traktatów o równaniach powstał termin algebra; wprowadził system dziesiętny w krajach arabskich; od jego przekształconego nazwiska powstał termin algorytm, który w wiekach średnich oznaczał regułę wykonywania czterech działań arytmetycznych w systemie dziesiętnym.

19 Strona 19 z 31 Alan Turing ( ) udowodnił. że obliczenia można zautomatyzować maszyna Turinga (1936), 1. nieskończona taśma z zaznaczonymi kwadratami, z których każdy zawierać może pojedyńczy symbol, 2. ruchoma głowica odczytująco - zapisująca, która może wędrować wzdłuż taśmy przesuwając się na raz o jeden kwadrat, 3. skończony alfabet symboli, 4. skończony zbiór stanów na oprzykład czytanie, zapis, zmiana pola itp., itd., 5. diagram przejść między stanami, zawierający instrukcje powodujące, że zmiany następują przy każdym zatrzymaniu się głowicy. 6. w zależności od stanu maszyny oraz pola, maszyna może zapisać nową wartość w polu, zmienić stasn lub przesunąć się o jedno pole w prawo lub lewo, Maszyna Turinga to najprostszy matematyczny model komputera.

20 Strona 20 z 31 John von Neumann ( ) matematyk amerykański węgierskiego pochodzenia; współtwórca pierwszej amerykańskiej maszyny cyfrowej; zaproponował współczesną architekturę komputera (1945): 1. pamięć zawierająca dane oraz program, złożona z elementów przyjmujących stan 0 lub 1, 2. arytmometr wykonujący działania arytmetyczne, logiczne i inne, 3. sterowanie, 4. wprowadzanie danych, 5. wyprowadzanie wyników obliczeń.

21 Strona 21 z 31 Komputery I generacji lampowe; Komputery II generacji tranzystorowe; Komputery III generacji układy scalone; Komputery IV generacji układy o wielkiej skali integracji.

22 Strona 22 z 31 Podstawowe pojęcia Bit (z ang. binary digit). Jest to najmniejsza jednostka informacji przyjmująca jedną z dwóch wartości określanych zwykle jako 0 (zero) lub 1 (jeden). Bajt (ang. byte). Jest to najmniejsza adresowalna jednostka informacji pamięci komputera, składająca się z 7 lub 8 bitów. Słowo maszynowe to podstawowa porcja informacji, na której operuje system komputerowy. W komputerach PC słowem jest zwykle 2-bajtowy (16-bitowy) element danych. Procesor obsługuje także słowo podwójne: 4-bajtowe (32-bitowe), jak również słowo poczwórne czyli 8-bajtowe (64-bitowe).

23 Strona 23 z 31 Kod ASCII (z ang. American Standard Code for Information Interchange) 7 bitowy kod liczbowy przyporządkowujący liczby z zakresu literom cyfrom znakom i innym symbolom. Podstawowy zestaw 95 znaków o kodach podstawowe znaki alfabetu (a z, A Z), - cyfry (1 9 i 0), - znaki interpunkcyjne - wybrane znaki matematyczne i specjalne (np. [, # i inne). 32 dwa znaki sterujące o kodach 0-31

24 Strona 24 z 31 Kod ASCII (American Standard Code for Information Interchange) Rozszerzony zestaw znaków - ośmiobitowy bajt (ciąg ośmiu zer i jedynek), - kody liczbowe od 128 do 255, - znaki semigraficzne (np.,,,,,,,, i inne), - znaki alfabetu greckiego, - znaki matematyczne (np.,,, i inne) - znaki alfabetów narodowych (np. polskie znaki diakrytyczne: ą, ę, ć, ń, ł, ó, ś, ń, ź, ż).

25 Strona 25 z 31 Operacje elementarne Przerzuć ten bit Wyzeruj ten bit Jeśli ten bit jest w stanie 1, przerzuć ten bit Przerzuć ten bit Wyzeruj ten bit Jeśli ten bit jest w stanie 1, przerzuć ten bit Przerzucenie Wyzerownie Sprawdzenie

26 Strona 26 z 31 Proces i algorytm Komputer wykonując działania, realizuje pewien proces, w którym korzystając z danych wejściowych uzyskuje się dane wyjściowe, czyli określony i oczekiwany przez nas wynik. Każdy z tych procesów realizowany jest zgodnie ze zbiorem określonych przepisów, czyli algorytmów. Formalnie i precyzyjnie zapisana w specjalnych językach czytelnych dla komputerów wersja przepisu odpowiada programowi komputerowemu.

27 Strona 27 z 31 Poziom szczegółowości - To jak szczegółowo przedstawiamy dany algorytm zależy od możliwości dostępnego sprzętu. - Poziom szczegółowości musi być dostosowany do zdolności pojmowania potencjalnego użytkownika danego algorytmu.

28 Strona 28 z 31 Sumowanie zarobków Problem: Obliczyć sumę zarobki pracowników podaną w formie listy płac: Lp. Imię Nazwisko Płaca 1 Adam A Ewa B Ola C Krzysztof D. 211 Suma 681 placa_ 1+ placa_ 2 + placa_ 3 + placa_ 4 + K+ = N placa_ nr_pracownika= 1 ( nr_pracownika) placa_n =

29 Strona 29 z 31 Sumowanie zarobków Algorytm 1. zanotuj na boku" liczbę 0; 2. sprawdź kolejne pozycje, dodając zarobki każdego z pracowników do liczby na boku"; 3. kiedy osiągniesz koniec listy, przedstaw wartość liczby na boku" jako wynik.

30 Strona 30 z 31 Uniwersalność algorytmu specyfikacja danych - Algorytm możemy zastosować niezależnie od wielkości zadania. - Należy zdefiniować zestaw dopuszczalnych danych wejściowych precyzyjnie określając ich formę i postać.

31 Strona 31 z 31 Zadanie algorytmiczne i jego rozwiązanie dowolne poprawne dane scharakteryzowanie wszystkich poprawnych danych wejściowych i algorytm A scharakteryzowanie oczekiwanych wyników jako funkcji danych wejściowych oczekiwane wyniki Zadanie algorytmiczne Rozwiązanie zadania algorytmicznego