Jak działa komputerKomputer może być traktowany jako urządzenie służące do przechowywania i przetwarzania informacji Działanie komputera jest kontrolowane przez wykonywany przez niego program
3.
Podstawowe elementy komputeraProcesor - „mózg” komputera zawiera element nadzorujący i koordynujący działania komputera (CU – control unit ) oraz element odpowiedzialny za operacje arytmetyczne i logiczne (ALU – arithmetic logic unit ) Pamięć (wewnętrzna) przechowuje m.in. uruchamiany program, dane, tymczasowe struktury danych niezbędne do poprawnego działania uruchamianego programu itp.
4.
Pamięć Pamięć komputeramoże być traktowana jako ciąg komórek pamięci (nazywanych czasami słowami ). Każda komórka pamięci ma pewien adres , określający jej pozycję w pamięci.
5.
Pamięć - cdKażda komórka pamięci składa się z pewnej liczby bitów (zazwyczaj 8, 16, 32 lub 64). Każdy bit zawiera cyfrę dwójkową (0 lub 1) Grupę 8 bitów nazywamy bajtem kilobajt (1 Kb) – 1024 bajty (2 10 ) megabajt (Mb) - 2 20 , gigabajt (Gb) – 2 30 bajtów
6.
Wykonywany program zajmujegrupę powiązanych z sobą komórek pamięci Komórki lub grupy komórek zawierają poszczególne instrukcje programu różne instrukcje są reprezentowane przez różne kombinacje bitów w komórkach pamięc instrukcja „mówi” komputerowi, że powinien wykonać jakieś zadanie (np. przenieść zawartość komórki pamięci do procesora albo dodać dwie liczby w ALU)
7.
program – ciąginstrukcji podczas wykonywania programu CU czyta kolejne instrukcje z pamięci i zapewnia, że są one wykonywane w tym samym porządku
8.
Postać programu Instrukcjamoże byc traktowana jako pewien ciąg zer i jedynek instrukcja o takiej samej roli może mieć różną postać na różnych modelach komputerów Program przechowywany w ten sposób może być wykonywany przez komputer. Mówimy, że jest w postaci kodu maszynowego
9.
Początkowo programy byłypisane w kodzie maszynowym Obecnie programy pisze się w językach wysokiego poziomu przykładowe języki: Ada, Pascal, C, C++ Programy napisane w jęz. wysokiego poziomu są następnie tłumaczone na kod maszynowy za pomocą specjalnego translatora
10.
Jeszcze o językachKod maszynowy (przykład): 1100111101011000 100000011111010 1100110011001010 Język asembler: LOAD A ADD B STORE C każda instrukcja odpowiada jednej instrukcji kodu maszynowego. Program jest następnie tłumaczony na kod maszynowy przy użyciu programu – asemblera Język wysokiego poziomu: C := A + B
11.
Części komputera -cd Aby komunikować się z otoczeniem, komputer musi być wyposażony w jednostki wejścia/wyjścia (ang. input, output units ), jak ekran, klawiatura, mysz itp Komputer musi być w stanie przechować np. różnorodne dane, programy które nie są wykonywane itp. Służy do tego pamięć pomocnicza (np. dysk twardy, dyskietka itp)
12.
Zawartość pamięci pomocniczejjest zazwyczaj zorganizowana w pliki (ang. files ) Plik jest zbiorem danych powiązanych z sobą w jakiś sposób (np. zawiera dane czy kod jednego programu). Do plików odwołujemy się poprzez ich nazwy. Można usuwać i tworzyć pliki oraz modyfikować ich zawartość
13.
Etapy tworzenia programuAby napisać program, musimy: określić zadania programu (faza analizy wymagań i specyfikacji) zaprojektować sposób rozwiązania problemu (faza projektowa) zapisać w/w projekt w wybranym języku programowania (faza implementacji) skompilować i uruchomić program sprawdzić, czy program działa poprawnie (faza testowania)
Algorytmy Aby napisaćprogram, musimy znaleźć odpowiedni algorytm – czyli opisać, jak rozwiązać konkretny problem algorytmy można zapisywać na różne sposoby: w języku naturalnym w postaci schematu blokowego w postaci instrukcji programu ............................................
16.
Przykłady algorytmów Przepisna ciasto Instrukcja składania mebli Metoda rozwiązywania równania kwadratowego itd ............. oczywiście nie wszystkie są przydatne w programowaniu
17.
Elementy algorytmów Sposóbopisu algorytmów musi pozwalać na wyrażenie: sekwencyjności opisujemy kolejne kroki. Kroki muszą być wykonywane w takiej kolejności, w jakiej zostały zapisane: weź 4 jajka, szklankę cukru i cukier waniliowy utrzyj żółtka z cukrem przygotuj szklankę mąki z łyżeczką proszku do pieczenia dodaj część mąki do ucieranej masy ubij pianę z białek dodaj do ucieranej masy pianę i resztę mąki ...
18.
wyboru opisujemy faktkonieczności podjęcia decyzji, którą z alternatywnych „ścieżek” wybrać: jeśli ucierana masa jest zbyt gęsta, należy dodać łyżkę wody jeżeli ciasto odkleja się od łyżki, to zakańczamy wyrabianie; w przeciwnym wypadku kontynuujemy jeżeli delta jest mniejsza od zera, to piszemy, że równanie kwadratowe nie ma rozwiązań. W przeciwnym wypadku: jeśli delta jest równa zero, to piszemy, że równanie ma jedno rozwiązanie, a jeśli delta jest dodatnia, to piszemy, że równanie ma dwa rozwiązania
19.
iteracji musimy byćw stanie wyrazić fakt, że pewna część algorytmu może być powtarzana – albo określoną ilość razy, albo do momentu zajścia pewnego warunku podgrzewaj masę mieszając, dopóki cukier się nie rozpuści idź 100 kroków na północ (stukrotne powtórzenie instrukcji „idź krok na północ”) rekursji (rekurencji) problem dzielimy na mniejsze (zagnieżdżone) podproblemy o podobnej strukturze. Każdy z nich rozwiązujemy stosując ten sam allgorytm
20.
Prosty przykład algorytmuAby tworzyć algorytmy, musimy rozumieć jak będą one wykonywane przez komputer: obliczenie trzeciej potęgi liczby: pobierz liczbę (i zapamiętaj w jakiejś komórce pamięci – musimy wiedzieć jak się do niej później odwołać, musimy wiedzieć jak duża ma być ta komórka, bo komputer musi ją zarezerwować) oblicz iloczyn liczby przez nią samą (i zapamiętaj w jakiejś innej komórce pamięci, odwołanie i rozmiar jak wyżej) oblicz iloczyn powyższego iloczynu i podanej liczby (i zapamiętaj w jakiejś innej komórce pamięci, odwołanie i rozmiar jak wyżej) wypisz wynik (czyli zawartość tej komórki pamięci, w której umieszczono powyższy iloczyn)
21.
dodanie dwóch liczb:pobierz liczbę 1 (i zapamiętaj w jakiejś komórce pamięci – musimy wiedzieć jak się do niej później odwołać, musimy wiedzieć jak duża ma być ta komórka, bo komputer musi ją zarezerwować) pobierz liczbę 2 (i zapamiętaj w jakiejś innej komórce pamięci, możliwość odwołania i określenia rozmiaru jak wyżej) oblicz ich sumę (i zapamiętaj w jakiejś innej komórce pamięci, odwołanie i rozmiar jak wyżej) wypisz wynik (czyli zawartość tej komórki pamięci, w której umieszczono sumę)
„ Trzecia potęga” w języku Pascal (* program obliczajacy trzecia potege liczby *) program prog1; uses crt; var a,p2,p3: integer; begin writeln('program oblicza trzecia potege podanej liczby'); write('podaj a:'); read(a); p2 := a * a; p3 := p2 * a; write('wynik wynosi ', p3); repeat until keypressed; end.
24.
„ Trzecia potęga”w języku C++ /* program obliczajacy trzecia potege liczby */ #include <iostream> int main() { int a,p2,p3; std::cout << "Program oblicza trzecia potege podanej liczby \n"; std::cout << "Podaj a: " ; std::cin >> a; p2 = a * a; p3 = p2 * a; std::cout << "wynik wynosi " << p3 << "\n"; system("pause"); }
25.
„ Trzecia potęga”w języku Ada -- program obliczajacy trzecia potege liczby with ada.text_io, ada.integer_text_io; use ada.text_io, ada.integer_text_io; procedure potega is a,p2,p3: integer; begin put_line("program oblicza trzecia potege podanej liczby"); put("podaj a: "); get(a); p2 := a * a; p3 := p2 * a; put("wynik wynosi ");put(p3,0); end potega;
26.
Etapy Program piszemyposługując się edytorem tekstu (powstaje tekst źródłowy, inaczej kod źródłowy , programu)
27.
Etapy - cdWersja źródłowa programu musi zostać przetłumaczona na język maszyny (procesora) – służy do tego kompilator danego języka programowania (etap – kompilacja ) kompilator sprawdza przy tym błędy składniowe skompilowana wersja (zazwyczaj zapisywana w pliku na dysku jako tzw. plik obiektowy - object file ) jest już w języku maszynowym, ale jest jeszcze niepełna – musi zostać połączona z bibliotekami
28.
Etapy - cdBiblioteki zawierają dodatkowe instrukcje programu, napisane wcześniej bądź przez kogoś innego i oddzielnie skompilowane. Proces łączenia programu z bibliotekami wykonywany jest przez program zwany linkerem (etap – linkowanie ) inna, polska nazwa – konsolidacja w wyniku otrzymujemy program gotowy do uruchomienia