• Nie Znaleziono Wyników

Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej

N/A
N/A
Protected

Academic year: 2022

Share "Przeglad podstawowych pojęć (3) Podstawy informatyki (3) dr inż. Sebastian Pluta. Instytut Informatyki Teoretycznej i Stosowanej"

Copied!
6
0
0

Pełen tekst

(1)

Podstawy informatyki (3)

dr in˙z. Sebastian Pluta

pluta@icis.pcz.pl

Instytut Informatyki Teoretycznej i Stosowanej

Przegl ˛ ad podstawowych poj˛e´c (1)

Program komputerowy to sekwencja instrukcji wykonywanych przez komputer w pewnym ustalonym porz ˛adku

instrukcje programu zapisane s ˛a w kodzie maszynowym Oprogramowanie jest poj ˛eciem szerszym od programu: jest to zbiór jednego lub kilku programów i danych potrzebnych w czasie ich działania

Proces (ang. process) to twór abstrakcyjny, który składa si ˛e z:

wykonywanego (działaj ˛acego) programu zapisanego w sekcji kodu bie˙z ˛acych danych o jego stanie i zasobach:

licznika rozkazów reprezentuj ˛acego bie˙z ˛ac ˛a czynno´s´c stosu przechowuj ˛acego dane tymczasowe

sekcji danych

Podstawy informatyki (3) – p.1

Przegl ˛ ad podstawowych poj˛e´c (2)

W ˛atek (ang. thread) jest podstawow ˛a jednostk ˛a wykorzystania procesora składaj ˛ac ˛a si ˛e z:

licznika rozkazów stosu

w ˛atek współu˙zytkuje wraz z innymi równorz ˛ednymi w ˛atkami:

sekcj ˛e kodu sekcj ˛e danych

niektóre zasoby systemu operacyjnego, np. otwarte pliki i sygnały równorz ˛edne w ˛atki wraz z współdzielonymi zasobami to zadanie

Przegl ˛ ad podstawowych poj˛e´c (3)

System operacyjny (ang. Operating System, OS) to oprogramowanie odpowiedzialne za bezpo´sredni ˛a kontrol ˛e i zarz ˛adzanie zasobami sprz ˛etowymi. OS zapewnia dla innych aplikacji (programów):

mo˙zliwo´s´c ich uruchomienia dost ˛ep do zasobów sprz ˛etowych

w przypadku systemów wieloprocesowych i wielou˙zytkownikowych podział zasobów i ich ochron ˛e.

J ˛adro systemu operacyjnego (ang. kernel) to centralna cz ˛e´s´c systemu operacyjnego, działaj ˛aca zawsze. Realizuje:

zarz ˛adzanie pami ˛eci ˛a zarz ˛adzanie procesami

zarz ˛adzanie urz ˛adzeniami wej´scia–wyj´scia

(2)

Algorytmy (1)

Algorytm– jest to sformalizowany zestaw czynno´sci które nale˙zy wykona´c ˙zeby uzyska´c dany rezultat, w szczególno´sci aby wyliczy´c wynik na podstawie danych, np.:

“Ciasto bananowo-jabłkowe “Pychotka”

4 jajka ubi´c z 1 szklank ˛a cukru na puszyst ˛a pian ˛e, nast ˛epnie mieszaj ˛ac dodawa´c po ły˙zeczce 1 i14szklanki m ˛aki zmieszanej z ły˙zeczk ˛a proszku do pieczenia. 200g margaryny rozpu´sci´c i ostudzi´c, nast ˛epnie doda´c do ciasta. Na blach ˛e tortow ˛a z kominkiem (natłuszczon ˛a i posypan ˛a m ˛ak ˛a) wyla´c połow ˛e ciasta, na to pokrojone w cienkie plasterki 4 jabłka (obrane i pozbawione gniazd nasiennych), na to pokrojonego w plasterki banana, nast ˛epnie rodzynki i wiórki kokosowe (w ilo´sci wedle uznania).

Przykry´c to pozostałym ciastem i posypa´c wiórkami kokosowymi (równie˙z w ilo´sci wedle uznania). Piec 45–60 minut w temp.

200 stopni C.”

Podstawy informatyki (3) – p.4

Algorytmy (2)

poziom szczegółowo´sci algorytmu musi by´c tak dobrany, aby by´c zrozumiałym dla “sprz ˛etu” – algorytm musi si ˛e składa´c z zestawu akcji podstawowych

dane potrzebne do przeprowadzenia procesu musz ˛a by´c dopuszczalne dla algorytmu opisuj ˛acego proces czyli musz ˛a by´c zgodne z pewn ˛a specyfikacj ˛a

algorytm dla “sprz ˛etu” pozbawionego czynnika ludzkiego wymaga precyzyjnego okre´slenia ka˙zdej akcji podstawowej

algorytmys ˛a rozwi ˛azaniami pewnych rodzajów zada ´n zwanych zadaniami algorytmicznymi lub obliczeniowymi

Podstawy informatyki (3) – p.5

Algorytmy (3)

algorytm powinien da´c poprawne rozwi ˛azanie dla ka˙zdych dopuszczalnych danych, w tym niesko ´nczonych

proces opisywany przez bardzo krótki algorytm mo˙ze trwa´c

bardzo długo, np. algorytm sumowania wydatków i przychodów w firmie:

zanotuj “na boku” liczb ˛e 0;

przewertuj kolejno faktury w firmie, dodaj ˛ac kwot ˛e z faktury do liczby “na boku” przyjmuj ˛ac kwot ˛e z faktur wystawionych dla firmy jako ujemne, a kwoty z faktur wystawionych przez firm ˛e jako dodatnie;

kiedy “obsłu˙zysz” ostatni ˛a faktur ˛e, przedstaw warto´s´c “na boku”

jako wynik;

Podstawy informatyki (3) – p.6

Struktury steruj ˛ ace (1)

Bezpo´srednie nast˛epstwo– “wykonajAa potemB

Wybór warunkowy– “je´sliQ, to wykonajA, w przeciwnym razie wykonajB”, lub “je´sliQ, to wykonajA”, gdzieQjest pewnym warunkiem Iteracja:

ograniczona– “wykonajAdokładnieNrazy”, gdzieNjest pewn ˛a liczb ˛a

warunkowa(nieograniczona) – “wykonujAa˙z doQ” lub “dopóki Q, wykonujA”, gdzieQjest pewnym warunkiem

Podstawy informatyki (3) – p.7

(3)

Struktury steruj ˛ ace (2)

Algorytm sumowania wydatków i przychodów w firmie, dla listyNfaktur:

zanotuj “na boku” liczb˛e 0;

wska˙z na pierwsz ˛a faktur˛e z listy;

wykonaj co nast˛epuje N − 1 razy:

sprawd´z, czy wskazana faktura jest wystawiona dla firmy, je´sli tak, to dodaj do liczby “na boku” kwot˛e ze wskazanej faktury pomno˙zon ˛a przez −1;

w przeciwnym razie dodaj do liczby “na boku” kwot˛e ze wskazanej faktury;

wska˙z na nast˛epn ˛a faktur˛e;

Podstawy informatyki (3) – p.8

Struktury steruj ˛ ace (3)

sprawd´z, czy wskazana faktura jest wystawiona dla firmy, je´sli tak, to dodaj do liczby “na boku” kwot˛e z

wskazanej faktury pomno˙zon ˛a przez −1;

w przeciwnym razie dodaj do liczby “na boku” kwot˛e ze wskazanej faktury;

podaj warto´s´c liczby “na boku” jako wynik;

Przedstawiony algorytm działa dla danych wej´sciowych oN > 0

Podstawy informatyki (3) – p.9

Struktury steruj ˛ ace (4)

algorytmy mog ˛a zawiera´citeracje zagnie˙zd˙zone,

np.: “wykonajAdokładnieNrazy”, gdzieAjest w postaci

“wykonujBa˙z doQ

“wykonajAdokładnieNrazy” jest tu p ˛etl ˛azewn˛etrzn ˛a

“wykonujBa˙z doQ” jest p ˛etl ˛awewn˛etrzn ˛a

instrukcja skoku– “skocz doG”, gdzieGoznacza pewne miejsce w algorytmie

Schematy blokowe

Start

zanotuj "na boku" 0;

wskaż na pierwszą fakturę;

czy faktura jest dla

firmy?

dodaj wskazywaną kwotę pomnożoną przez -1

do "na boku"

dodaj wskazywaną kwotę do "na boku"

TAK NIE

czy koniec faktur? NIE wypisz liczbę TAK

"na boku"

(4)

Sortowanie (1)

dane do sortowania:nieuporz ˛adkowanalista elementów rezultat sortowania: lista elementów uporz ˛adkowana w ustalonej kolejno´sci, np. rosn ˛acej

algorytm sortowania b ˛abelkowego dlaNelementów:

wykonaj co nast˛epuje N − 1 razy:

wska˙z na pierwszy element;

wykonaj co nast˛epuje N − 1 razy:

· porównaj wskazany element z nast˛epnym elementem;

· je´sli porównane elementy s ˛a w niewła´sciwej kolejno´sci, zamie´n je miejscami;

· wska˙z nast˛epny element;

Podstawy informatyki (3) – p.12

Sortowanie (2)

algorytm sortowania przez liniowe wstawianie dlaNelementów:

zapisz “na boku” 0;

wykonaj co nast˛epuje N − 1 razy:

znajd´z maksymalny element dla elementów od elementu 1 do elementu N− “na boku”;

zamie´n znaleziony maksymalny element z elementem ostatnim z przedziału poszukiwa´n z poprzedniego punktu;

dodaj do liczby “na boku” 1;

Podstawy informatyki (3) – p.13

Sortowanie (3)

algorytm

znajdowania maksymalnego elementu od elementu 1 do elementu M:

zapisz “na boku” pierwszy element;

wska˙z na pierwszy element;

wykonaj co nast˛epuje M − 1 razy:

wska˙z na nast˛epny element;

je´sli wskazany element jest wi˛ekszy od zapisanego

“na boku”, zapisz wskazany element “na boku”;

Podstawy informatyki (3) – p.14

Podprogramy

algorytm szukania najwi ˛ekszego elementu w odniesieniu do algorytmu sortowania przez liniowe wstawianie jestpodprogramem(procedur ˛a) zalety podprogramów:

mo˙zliwo´s´c wykonania tego samego algorytmu dla ró˙znych danych uproszczenie zapisu wi ˛ekszych algorytmów

znaczne uproszczenie czytania i analizowania algorytmów podprogram jest rozszerzeniem istniej ˛acej listy instrukcji elementarnych

łatwiejszy proces projektowania algorytmów – poprzez zbli˙zanie si ˛e do celu stopniowo poprzez u˙zycie podprogramów jeszcze nieistniej ˛acych

Podstawy informatyki (3) – p.15

(5)

Rekurencja (1)

rekurencjato zdolno´s´c podprogramu do wywołania samego siebie algorytm rekurencyjny obliczanian!(silnia):

n!= n · (n − 1) · (n − 2) · . . . · 2 · 1 n!= n · (n − 1)!

algorytm podprogramu licz ˛acego silni ˛e dla liczbyn podprogram silnia z n

je´sli n jest 0, to wynikiem jest 1

w przeciwnym razie wynikiem jest n pomno˙zone przez warto´s´c podprogramu silna z n − 1 wró´c;

algorytm “główny” obliczaj ˛acy10!: wywołaj silnia z 10

Podstawy informatyki (3) – p.16

Rekurencja (2)

algorytm iteracyjny obliczanian!(silnia):

podprogram silnia z n zapisz “na boku” 1;

zapisz “na drugim boku” 2;

wykonaj co nast˛epuje n − 1 razy:

pomnó˙z “na drugim boku” przez “na boku” i wynik umie´s´c “na boku”;

dodaj do “na drugim boku” 1;

wró´c, wynik jest zapisany “na boku”;

algorytm “główny” obliczaj ˛acy10!: wywołaj silnia z 10

Podstawy informatyki (3) – p.17

Wie˙ze Hanoi (1)

zadanie polega na przeniesieniu wszystkich (N) kr ˛a˙zków ze słupka A na słupek B przy pomocy słupka C w ten sposób, ˙ze na kr ˛a˙zek mniejszy nie mo˙zna poło˙zy´c wi ˛ekszego

algorytm ma za zadanie wypisa´c sekwencj ˛e kroków potrzebnych do wykonania zadania

Wie˙ze Hanoi (2)

po uzyskaniu takiego stanu dalsze zadanie sprowadza si ˛e do “przenie´s wszystkie(N − 1)kr ˛a˙zki ze słupka C na słupek B przy pomocy słupka A”

(6)

Wie˙ze Hanoi (3)

algorytm rekurencyjny podprogramu wypisuj ˛acego sekwencj ˛e kroków stanowi ˛acych rozwi ˛azanie zadania Wie˙z Hanoi:

podprogram przenie´s N z X na Y u˙zywaj ˛ac Z je´sli N jest 1, to wypisz “X -> Y”;

w przeciwnym razie wykonaj:

wywołaj przenie´s N − 1 z X na Z u˙zywaj ˛ac Y; wypisz “X -> Y”;

wywołaj przenie´s N − 1 z Z na Y u˙zywaj ˛ac X; wró´c;

algorytm “główny” dla 3 kr ˛a˙zków:

wywołaj przenie´s 3 z A na B u˙zywaj ˛ac C;

Podstawy informatyki (3) – p.20

Cytaty

Powiązane dokumenty

Czas dziaªania algorytmu jest to funkcja przyporz¡dkowuj¡ca danym wej±cio- wym liczb¦ podstawowych operacji wykonywanych przez algorytm na tych da-

punktów 10 5 15.. Są to takie liczby, które mają dokładnie dwa dzielniki: 1 oraz samą siebie. Nie jest np. liczbą pierwszą liczba 4, ponieważ dzieli się nie tylko przez 1

b) Ile głosów otrzymał każdy uczestnik programu, jaki to procent wszystkich oddanych głosów? Wynik procentowy przedstaw z dwoma miejscami dziesiętnymi.

Pytanie 2. Baza danych zawiera dane uczniów pewnej klasy: imię, drugie imię, nazwisko, datę urodzenia, miejsce urodzenia. Okazało się, że nie jest potrzebne drugie imię.

Na pulpicie komputera powinien znajdować się folder o nazwie KONINF zawierający dwa pliki wojewodztwa.txt oraz herb.jpg.. W folderze o nazwie KONINF utwórz dokument tekstowy, w

 FileMode.Append - otwiera plik w celu dopisywania do pliku, jeżeli żądany plik nie istnieje jest tworzony.. Atrybut ten może pracować tylko w połączeniu z

Uczeniesi ֒ezewzmocnieniem—eksploracja17 Politykaeksploracji Abypo l ֒aczy´cskuteczn֒aeksploracj֒e´swiatazeksploatacj֒aposiadanejwiedzy

• Języki wysokiego poziomu: ADA, Pascal, Fortran, C++, Lisp, B, SmallTalk, Java. "Podstawy informatyki", Tadeusz Wilusz