WP - Notatki

22
2010-02-26 Plik - dowolna informacja zakodowana binarnie; składa się z nazwy i rozszerzenia; plik bez rozszerzenia to plik niezdefiniowany. * - symbol zastępujący dowolny ciąg znaków; ? - symbol zastępujący jeden znak graficzny (*.* - wyszuka wszystkie pliki). Pulpit - specyficzny folder, katalog, zbiór plików, dowolna informacja zakodowana binarnie. Elementy jednostki centralnej (podzespoły): 1. Płyta główna. 2. Procesor - przetwarza dane (CPU) + wentylator (ok. 370 օ ). 3. Pamięć RAM - tymczasowa, ulotna, krótkotrwała; dostęp swobodny. 4. Pamięć ROM - przechowuje dane rozruchowe komputera; zasilana z baterii na 1. 5. Dysk twardy (HDD). 6. Karty: graficzna, dźwiękowa, sieciowa, inne. Systemy liczbowe: dziesiętny (decymalny), dwójkowy (binarny), szesnastkowy (heksadecymalny). Ćwiczenie 1. Zamień liczby: H D: 4C2 H =2*16^0+C*16^1+4*16^2=2*1+12*16+4*256=2+192+1024=1218 D D H: 2123 D =84B H B H: 1001011010 B =1*16^1+1*16^3+1*16^4+1*16^6+1*16^9=FFFFFFFE5A H H B: 7CD5 H =0111 1100 1101 0101 B Do zamiany liczby z systemu szesnastkowego można wykorzystać tabelę poniżej: cyfra HEX liczba BIN cyfra HEX liczba BIN 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 Bit - dwuwersowy symbol (0 (0V), 1 (ok. 5V); fałsz, prawda). {napięcie} Kodowanie grafiki: bit 0 - kolor biały; bit 1 - kolor czarny. Piksel - najmniejszy widoczny element obrazu (grafiki). zapis: 101 (przy dwóch kolorach) 00 - biały; 01 - czerwony; 10 - różowy; 11 - czarny (kodowanie palety barw) Pliki graficzne: *.gif, *.png - dodatkowo posiadają opcję przezroczystości, *.jpg, *.bmp - pliki rastrowe. Czcionka w wordzie to grafika wektorowa
  • date post

    21-Oct-2014
  • Category

    Education

  • view

    4.208
  • download

    2

description

Kategoria: Informatyka Dział: Programowanie Miejsce: Bielsko-Biała Czas: semestr letni 2010 Przedmiot: Wprowadzenie do programowania Programy: Magiczne bloczki (na razie)

Transcript of WP - Notatki

Page 1: WP - Notatki

2010-02-26

Plik - dowolna informacja zakodowana binarnie; składa się z nazwy i rozszerzenia; plikbez rozszerzenia to plik niezdefiniowany.* - symbol zastępujący dowolny ciąg znaków; ? - symbol zastępujący jeden znakgraficzny (*.* - wyszuka wszystkie pliki).

Pulpit - specyficzny folder, katalog, zbiór plików, dowolna informacja zakodowanabinarnie.

Elementy jednostki centralnej (podzespoły):1. Płyta główna.2. Procesor - przetwarza dane (CPU) + wentylator (ok. 370օ).3. Pamięć RAM - tymczasowa, ulotna, krótkotrwała; dostęp swobodny.4. Pamięć ROM - przechowuje dane rozruchowe komputera; zasilana z baterii na 1.5. Dysk twardy (HDD).6. Karty: graficzna, dźwiękowa, sieciowa, inne.

Systemy liczbowe: dziesiętny (decymalny), dwójkowy (binarny), szesnastkowy(heksadecymalny).

Ćwiczenie 1. Zamień liczby:• H D:

4C2H=2*16^0+C*16^1+4*16^2=2*1+12*16+4*256=2+192+1024=1218D• D H: 2123D=84BH• B H:

1001011010B=1*16^1+1*16^3+1*16^4+1*16^6+1*16^9=FFFFFFFE5AH• H B: 7CD5H=0111 1100 1101 0101B

Do zamiany liczby z systemu szesnastkowego można wykorzystać tabelę poniżej:

cyfra HEX liczba BIN cyfra HEX liczba BIN

0 0000 8 1000

1 0001 9 1001

2 0010 A 1010

3 0011 B 1011

4 0100 C 1100

5 0101 D 1101

6 0110 E 1110

7 0111 F 1111

Bit - dwuwersowy symbol (0 (0V), 1 (ok. 5V); fałsz, prawda). {napięcie}Kodowanie grafiki: bit 0 - kolor biały; bit 1 - kolor czarny.Piksel - najmniejszy widoczny element obrazu (grafiki).

zapis: 101 (przy dwóch kolorach)

00 - biały; 01 - czerwony; 10 - różowy; 11 - czarny (kodowanie palety barw)

Pliki graficzne:• *.gif, *.png - dodatkowo posiadają opcję przezroczystości,• *.jpg, *.bmp - pliki rastrowe.

Czcionka w wordzie to grafika wektorowa

Page 2: WP - Notatki

2010-03-05

Algebra Boole'a - dane przyjmują dwie wartości (0,1) {wg praw logiki matematycznej}Zobacz też: bramka logiczna według Wikipedii.

Bramki logiczne (cyfrowe) - budulec obecnych palmtopów, laptopów, tranzystorów,oporników, itp.; na wejściu dwa poziomy logiczne (element, za pomocą którego tworzy/robi się układy scalone):

• 0 (zero), L (low), F (false) - napięcie w przedziale 0,...,0.8 V,• 1 (jeden), H (high), T (true) - napięcie w przedziale 2,...,5 V.

Rodzaje bramek logicznych:1. Bramka NOT (negator, inwerter) - odwraca poziomy napięcia 0 1, 1 0.2. Bramka AND - realizuje operację koniunkcji logicznej.3. Bramka OR - realizuje operację alternatywy logicznej.4. Bramka EX-OR (EXclusive-OR) - realizuje funkcje różnicy symetrycznej.5. Bramka EX-NOR (negacja powyższej) - realizuje funkcję zaprzeczonej różnicy

symetrycznej.6. Bramki nAND i nOR (uniwersalne) - jako zaprzeczenia poszczególnych bramek.7. Bramka TS (trójstalowa) - służy, by napięcie nie działało na dwóch tak jakby

frontach.

Algorytm - skończony ciąg czynności, przekształcający zbiór danych wejściowych nazbiór danych wyjściowych (wyników):

1. Algorytmy numeryczne - wykonują działania matematyczne na danychliczbowych.

2. Algorytmy sekwencyjne (liniowe) - kolejność wykonywania w nich czynnościjest zawsze taka sama (niezależna od wartości danych wejściowych).

Etapy rozwiązywania zadania za pomocą algorytmu:

1. Sformułowanie zadania - ustalenie jaki problem.2. Określenie danych wejściowych - typ (liczby całkowite, rzeczywiste, itd.).3. Określenie wyniku i sposobu jego prezentacji.4. Ustalenie metody wykonania zadania.5. Zapisanie algorytmu za pomocą wybranej metody.6. Analiza poprawności zadania.7. Testowanie rozwiązywania dla różnych danych.8. Ocena skuteczności algorytmu (np. wybranie metody najszybszej).

SPOSOBY ZAPISYWANIA ALGORYTMU

I Lista kroków - charakteryzuje się numeracją wierszy:

1. Algorytm podziału odcinka na cztery równe części:1. Podziel odcinek na dwie równe części: lewą i prawą.2. Podziel część lewą na dwie równe części.3. Podziel część prawą na dwie równe części.4. Zakończ.

Page 3: WP - Notatki

II Pseudojęzyk (pseudokod) - metoda pośrednia między zapisem za pomocą listykroków a zapisem w języku programowania.

1. Algorytm wypisujący wartość bezwzględną liczby x:1. Początek;2. Rzeczywiste x;3. Jeżeli x>=0 Wypisz (x);4. Jeżeli x<x Wypisz (-x);5. Koniec.

III Schemat blokowy - przedstawia algorytm w postaci symboli graficznych. Podajeszczegółowo wszystkie operacje arytmetyczne, logiczne, przesyłania, sterujące ipomocnicze wraz z kolejnością ich wykonywania. Jest on podstawą do napisaniaprogramu.

Przykład 1. Algorytm, którego zadaniem jest zrobienie herbaty.

Podstawowe elementy schematu blokowego. {notka z LO - wkrótce odnośnik}

IV Zapis w języku programowania - by skutecznie zapisać algorytm, należy znaćjęzyk programowania i jego reguły.

Specyfikacja problemu algorytmicznego - dokładny opis problemu algorytmicznego,który ma zostać rozwiązany oraz podanie danych wejściowych i danych wyjściowychwraz z ich typami.

Page 4: WP - Notatki

Przykład 2.

Problem algorytmiczny: obliczanie potęgi liczby naturalnej owykładniku naturalnym

Dane wejściowe: a należy do N - podstawa potęgi,b należy do N - wykładnik potęgi

Dane wyjściowe: w należy do N - wartość a^b

Zadanie 1.Zapisz specyfikację problemu i schemat blokowy algorytmu służącego do obliczaniaśredniej arytmetycznej dwóch liczb podanych na wejściu i wypisaniu wyniku na ekranie.

Rozwiązanie (pobierz)

Specyfikacja problemu:

Problem algorytmiczny:Obliczenie średniej arytmetycznejdwóch podanych liczb i wypisaniewyniku na ekranie

Dane wejściowe: a, b należy do R

Dane wyjściowe: w należy do R - wartość (a+b)/2

Schemat blokowy:

Stosowane operatory:• Wyrażenie = zmienne i stałe połączone operatorami.• Zmienne i stałe występują w wyrażeniu nazywanym operandem.• Klasyfikacja operatorów. {ksero}• Operatory arytmetyczne, logiczne, przypisania i inne (Pascal vs C++).

Instrukcja warunkowa umożliwia wykonywanie lub nie wykonywanie innych instrykcjitzw. instrukcji wewnętrznych A i B (zależna od wartości warunku logicznegoumieszczonego w tej instrukcji).

Algorytm rozgałęziony - algorytm w którym występują instrukcje warunkowe.

Page 5: WP - Notatki

Zadanie 2.Zapisz specyfikację problemu oraz schemat blokowy algorytmu podejmowania decyzji,czy pobrana liczba jest dodatnia.

Rozwiązanie (pobierz)

Specyfikacja problemu:

Problem algorytmiczny: Podjęcie decyzji czy podana liczbajest dodatnia

Dane wejściowe: a należy do R

Dane wyjściowe: ?

Schemat blokowy:

Zadanie 3.Zmodyfikuj algorytm z zadania 2. tak, aby otrzymać dodatkowo informacje o wartościzerowej, jeżeli taka została pobrana.

Rozwiązanie (pobierz)

Specyfikacja problemu:

Problem algorytmiczny: Podjęcie decyzji czy podana liczba jestdodatnia, ujemna, czy jest zerem

Dane wejściowe: a należy do R

Dane wyjściowe: ?

Page 6: WP - Notatki

Schemat blokowy:

INSTRUKCJA ITERACJI

Iteracja - instrukcja powtarzania danego ciągu operacji. Liczba powtórzeń może byćustalona przed wykonywaniem instrukcji lub może zależeć od spełnienia pewnegowarunku, który jest sprawdzany w każdej iteracji. Iteracja to inaczej pętla.

Wskazówka 1.Jeśli lista kroków jest zbyt długa, to zmiennej [n] należy przypisać stałą wartość [10],tym samym zapis kodu i czas trwania operacji się zmniejsza.

Przykład 3. Generowanie algorytmu, który wypisuje wszystkie liczby dwucyfrowe i czasjego działania jest zbyt czasochłonne. Dobrze jest korzystać ze wskazówki 1.(zob. zadanie 5)

Zadanie 4.Zapisz specyfikację problemu i schemat blokowy algorytmu służącego do pobrania dwóchliczb rzeczywistych i obliczenia ich ilorazu. Wynik ma zostać wypisany na ekranie.

Rozwiązanie (pobierz)

Page 7: WP - Notatki

Specyfikacja problemu:

Problem algorytmiczny: Obliczenie ilorazu dwóch liczbrzeczywistych i wypisanie ich na ekranie

Dane wejściowe: a należy do R - dzielnab należy do R\0 - dzielnik

Dane wyjściowe: w należy do R - wartość a/b

Schemat blokowy:

Zadanie 5.Zapisz schemat blokowy algorytmu, który wypisuje wszystkie liczby dwucyfrowe.(zob. przykład 3)

Rozwiązanie (pobierz)

Specyfikacja problemu:

Problem algorytmiczny: Wypisanie wszystkich liczb dwucyfrowych

Dane wejściowe: brak

Dane wyjściowe: wszystkie liczby dwucyfrowe

Page 8: WP - Notatki

2010-03-12

Zadanie 6. Zapisz schemat wypisujący piętnaście razy znak "*".

Rozwiązanie:• za pomocą tablic (pobierz):

Podstawowe przypadki iteracji stosowanej w algorytmach:• P1 - najpierw sprawdzany jest warunek, potem wykonywana instrukcja:

• P2 - najpierw jest wykonywana instrukcja, potem warunek:

Page 9: WP - Notatki

• P3 - operacja wykonywana jest max razy:

Złożoność obliczeniowa algorytmu:1. Złożoność pamięciowa - wynika z liczby i rozmiaru danych wykorzystywanych

w algorytmach (cecha). Złożoność ta wyznacza zależność rozmiaru pamiecipotrzebnej do realizacji algorytmu od wielkości danych wejściowych (najczęściejjest to ilość danych wejść).

2. Złożoność czasowa - umożliwia oszacowanie czasu, który jest potrzebny dowykonania algorytmu (najczęściej jest to ich ilość). Służy po to, by uniezależnićocenę szybkości algorytmu od możliwości komputera, na jakim jest onrealizowany.

Operacja dominująca - najczęściej wykonywana operacja; jednostka czasu przyobliczaniu złożoności czasowej, np. + i * w przypadku algorytmów numerycznych lubporównań.

1. Liniowa zależność obliczeniowa - np. f(n)=9n+12 (f. liniowa).2. Kwadratowa zależność obliczeniowa - w praktyce ważny jest typ funkcji

zależności (f. kwadratowa).

Kluczowym zadaniem jest wyznaczenie klasy funkcji zależności czasy od rozmiarudanych.Klasa funkcji - wyznacza ograniczenie funkcji od góry i w przypadku algorytmów jestużywana do szacowania czasu pesymistycznego zestawu danych.Pesymistyczne zestawienie danych - zestaw, który wymaga największej ilościoperacji.Pesymistyczna złożoność obliczeniowa - złożoność obliczeniowa wyznaczana dlapesymistycznego zestawu danych.Do opisu klasy funkcji służy notacja 'O' zwana (O duże)

Praktyczne zastosowanie klasy złożoności algorytmu:• pominięcie wszystkich składników stałych,• pominięcie wszelkich składników funkcji oprócz tego, który ma największy wpływ

(a więc najczęściej składnik n o największej potędze),np. liczba operacji dominujących wynosi 5n^2+6n, to mówimy, że algorytm ten mazłożoność O(n^2) w pesymistycznym przypadku, ponieważ bierzemy pod uwagę tylkonajwiększa zmienną n, pomijając współczynnik (tu: 5).

Wielomianowa złożoność algorytmu - występuje wtedy, jeżeli mamy algorytm,którego złożoność obliczeniowa wynosi odpowiednio O(n^k), gdzie .Złożoności notacji O:

• stała O(1) - algorytm wykonuje stałą liczbę operacji dominujących bez względuna rozmiar danych wejściowych,

Page 10: WP - Notatki

• logarytmiczna O(log n) - np. algorytmy, w których problem postawiony dladanych rozmiaru n da się sprawdzić w pesymistycznym przypadku do danych zrozmiarem o połowę mniejszym,

• liniowa O(n) - taką złożoność mają algorytmy, które dla każdej danejwykorzystują w pesymistycznym przypadku stałą liczbę operacji podstawowych(wzrost ilości danych powoduje wzrost liczby wykonywanych operacji - liniowo),

• liniowo-logarytmiczna O(n log n) - taką zależność mają algorytmy, w którychproblem postawiony dla danych rozmiaru n da się sprawdzić w liniowej liczbieoperacji do rozwiązania dwóch problemów o rozm. n/2,

• kwadratowa O(n^2) - algorytmy, w których dla każdej pary elementówdanych wykonywana jest stała liczba operacji podstawowych (podwójne pętle),

• wykładnicza O(2^n), O(n!) - algorytmy bardzo wolne, których realizacja wpesymistycznym przypadku jest niewykonywalna nawet dla niewielkichrozmiarów danych.

Zadanie 7. Napisz program zamieniający systemy liczbowe w następujący sposób:1. Dec Hex

◦ pobierz2. Hex Dec

◦ pobierz3. Bin Dec

◦ pobierz4. Dec Bin

◦ pobierz

Page 11: WP - Notatki

2010-03-19

Zadanie 8. Napisz program obliczający zużycie paliwa.

Rozwiązanie (pobierz):

Page 12: WP - Notatki

Zadanie 9. Napisz schemat blokowy odpowiadający bramce logicznej AND *

Rozwiązanie {*zawiera też bramkę OR} (pobierz):

Page 13: WP - Notatki

Zadanie 10. Napisz schemat blokowy odpowiadający bramce logicznej NOT

Rozwiązanie (pobierz):

Page 14: WP - Notatki

Zadanie 11. Napisz schemat blokowy odpowiadający bramce logicznej EX-OR

Page 15: WP - Notatki

Zadanie 12. Napisz schemat blokowy odpowiadający bramce logicznej EX-NOR

Page 16: WP - Notatki

Zadanie 13. Napisz schemat blokowy odpowiadający bramce logicznej NAND

Page 17: WP - Notatki

Zadanie 14. Napisz schemat blokowy odpowiadający bramce logicznej NOR

Page 18: WP - Notatki

Zadanie 15. Napisz schemat blokowy odpowiadający bramce logicznej TS

Page 19: WP - Notatki

2010-03-26

Instrukcje wejścia/wyjścia

Zadanie 16.

Napisz algorytm za pomocą pseudojęzyka i schematów blokowych. Algorytm mawczytywać z klawiatury wartości dwóch liczb, obliczać sumę tych liczb i wyświetlić jejwartość na ekranie monitora.

• Pseudojęzyk:

STARTPodaj (a,b)c:= a + bPisz (c)STOP

• Schemat blokowy:

Page 20: WP - Notatki

Zadanie 17.Napisz algorytm za pomocą pseudojęzyka i schematów blokowych. Algorytm mawczytywać z klawiatury wartości dwóch liczb, obliczać sumę, różnicę oraz iloczyn tychliczb i wyświetlić te wartości na ekranie monitora.

• Pseudojęzyk:STARTPodaj (a,b)c:= a+bd:=a-be=a*bPisz (c)Pisz (d)Pisz (e)STOP

Zadanie 18.Napisz algorytm za pomocą pseudojęzyka i schematów blokowych. Algorytm ma wczytaćz klawiatury wartość zmiennej x oraz obliczać równanie

• Pseudojęzyk:STARTPodaj (x)

Pisz (y)STOP

Zadanie 19.Napisz algorytm za pomocą pseudojęzyka oraz schematów blokowych. Algorytm maobliczać długość boku kwadratu o polu P.

• Pseudojęzyk:STARTPodaj (P)a:=Pisz (a)STOP

Zadanie 20.Napisz algorytm za pomocą pseudojęzyka oraz schematów blokowych. Algorytm maobliczać pole powierzchni i obwód trójkąta prostokątnego. Długość boków przy kącieprostym są podawane podczas działania algorytmu.

• Pseudojęzyk:STARTPodaj (a,b>0)

P:=

O:=Pisz (P,O)STOP

Page 21: WP - Notatki

Zadanie 21.Napisz algorytm za pomocą pseudojezyka oraz schematów blokowych. Algorytm maobliczać średnią arytmetyczną trzech liczb, których wartości są wczytywane podczasdziałania algorytmu. Wynik wyświetl na ekranie monitora.

• Pseudojęzyk:STARTPodaj (a,b,c)

Pisz (x)STOP

Zadanie 22.Napisz algorytm za pomocą pseudojęzyka oraz schematów blokowych. Algorytm maobliczać objętość (V) oraz sumę długości wszystkich krawędzi prostopadłościanu (D).Wartości zminnych długości (a,b,c) są podawane podczas działania algorytmu.

• Pseudojęzyk:STARTPodaj (a,b,c>0)V:= a*b*cD:= 4*a + 4*b + 4*cPisz (V,D)STOP

Zadanie 23.Napisz algorytm za pomocą pseudojęzyka oraz schematów blokowych. Algorytm maobliczać pole i obwód prostokąta o bokach, których wartości są wczytywane podczasdziałania algorytmu.

• Pseudojęzyk:STARTPodaj (a,b >0)P:=a*bO:=2*a + 2*bPisz (P,O)STOP

Zadanie 24.{podobne do 7.} [a nie do 22.? Bo to bodaj siódme z kolei zadanie na tych zajęcia]

Zadanie 25.Napisz algorytm za pomocą pseudojęzyka oraz schematów blokowych. Algorytm maobliczać pole powierzchni i obwód koła.

• Pseudojęzyk:STARTPodaj (r>0)

Pisz (P,O)STOP

Page 22: WP - Notatki

Zadanie 26.Samochód spala 6,5 litra benzyny na 100km. 1 litr benzyny kosztuje 3,29zł. Zzakopanego do Krakowa jest 132km. Napisz algorytm, który oblicza koszt przejazdu zZakopanego do Krakowa (schemat + pseudojezyk).

• Pseudojęzyk:START

koszt:=litry*3,29Pisz (koszt)STOP

Zadanie 27.Babcia powiedziała Bartkowi, że na każde urodziny otrzyma od niej dwa razy więcejzłotych niż będzie miał lat, a dziadek powiedział, że od niego dostanie na każde urodzinyo 20 zł więcej niż liczba jego lat. Napisz algorytm który będzie obliczał ilość pieniędzyjaką otrzyma Bartek od babci i dziadka na x-te urodziny (psudojęzyk + schemat).

• Pseudojęzyk:STARTPodaj (x)y:=3x+20Pisz (y)STOP