Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I...

105
Oprogramowanie komputerw wer. 9 Wojciech Myszka, Maciej Panek listopad 2014 r.

Transcript of Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I...

Page 1: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Oprogramowanie komputerówwer. 9

Wojciech Myszka, Maciej Paneklistopad 2014 r.

Page 2: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowo

I prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 3: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowo

I prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 4: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.

3. Długość słowa:

I krótkie skowo

I prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 5: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowo

I prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 6: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowo

I prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 7: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowa

I szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 8: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięci

I dłuzsze operacja na długich liczbachI długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 9: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 10: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowo

I bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 11: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowa

I czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 12: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowaI czasami marnotrawstwo zasobów

I szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 13: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 14: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputera

I liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 15: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputeraI liczba jednostek arytmetycznych

I sposób wykonywania operacji

Page 16: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy szybkość komputerów?

1. Częstość zegara.

2. Szybkość pamięci.3. Długość słowa:

I krótkie skowoI prostsza budowaI szybsze przesyłanie do pamięciI dłuzsze operacja na długich liczbach

I długie słowoI bardziej złozona budowaI czasami marnotrawstwo zasobówI szybkie wykonywanie operacji na długich liczbach

4. Wewnętrzna konstrukcja komputeraI liczba jednostek arytmetycznychI sposób wykonywania operacji

Page 17: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Przetwarzanie potokowePipeline

IF — pobieranie instrukcji, ID — dekodowanie instrukcji, EX —wykonanie, MEM — zapis wyników (cache), WB — zapis dopamięci

Page 18: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Przetwarzanie potokowePipeline

IF — pobieranie instrukcji, ID — dekodowanie instrukcji, EX —wykonanie, MEM — zapis wyników (cache), WB — zapis dopamięci

Page 19: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Przetwarzanie potokowePipeline + dwa procesory

IF — pobieranie instrukcji, ID — dekodowanie instrukcji, EX — wykonanie, MEM — zapis wyników (cache), WB — zapisdo pamięci

Page 20: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy jeszcze szybkość?Procesory wektorowe

1. Procesor wektorowy (tablicowy) to CPU skonstruowane wtaki sposób, ze zawiera polecenia wykonania operacjimatematycznej na wielu elementach danych(w przeciwieństwie do procesora skalarnego).

2. SIMD — Single Instruction, Multiple Data

3. Podstawa „superkomputerów” z lat 80 i 90.

4. W roku 2000 IBM, Toshiba i Sony współpracowały nadstworzeniem procesora Cell zawierającego jeden procesorskalarny (odwrotność procesora wektorowego) i osiemprocesorów wektorowych, który znalazł zastosowanie(między innymi) w PlayStation 3.

Page 21: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Od czego zalezy jeszcze szybkość?cd.

1. Wieloprogramowość — wiele programów moze byćuruchomionych jednocześnie, instrukcjenie są wykonywane równolegle.

2. Wielowątkowość — gdy jeden z wątków pozostawianiewykorzystane zasoby, proces przypisany do drugiegowątku moze ich uzyć.

3. Wielordzeniowość — wiele instrukcji wykonywanych jestjednocześnie.

Przykłady: AMD, x86, M68000

Page 22: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimyArchitektura procesorów

1. CISC

Complex Instruction Set ComputerI duza liczba rozkazówI mała optymalizacja — duza liczba cykli procesoraI złozone specjalistyczne rozkazyI operacje bezpośrednio na pamięci — np. pobranie

z pamięci, operacja arytmetyczna i zapisanie do pamięciI duza liczba trybów rozkazówI powolne działanie dekodera rozkazów ...

2. RISC Reduced Instruction Set ComputerI zredukowana liczba rozkazów do niezbędnego minimum.

Ich liczba wynosi kilkadziesiąt (zamiast setek).I rozkazy nie mogą operować bezpośrednio na pamięci tylko

na rejestrach (do przesyłania danych pomiędzy pamięciąa rejestrami słuzą instrukcje load i store)

I redukcja trybów adresowaniaI przetwarzanie potokowe (pipelining) i superskalarność

Page 23: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimyArchitektura procesorów

1. CISC Complex Instruction Set ComputerI duza liczba rozkazówI mała optymalizacja — duza liczba cykli procesoraI złozone specjalistyczne rozkazyI operacje bezpośrednio na pamięci — np. pobranie

z pamięci, operacja arytmetyczna i zapisanie do pamięciI duza liczba trybów rozkazówI powolne działanie dekodera rozkazów ...

2. RISC

Reduced Instruction Set ComputerI zredukowana liczba rozkazów do niezbędnego minimum.

Ich liczba wynosi kilkadziesiąt (zamiast setek).I rozkazy nie mogą operować bezpośrednio na pamięci tylko

na rejestrach (do przesyłania danych pomiędzy pamięciąa rejestrami słuzą instrukcje load i store)

I redukcja trybów adresowaniaI przetwarzanie potokowe (pipelining) i superskalarność

3. VLIW Very Long Instruction Word4. EPIC Explicitly Parallel Instruction Computing

Page 24: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimyArchitektura procesorów

1. CISC Complex Instruction Set ComputerI duza liczba rozkazówI mała optymalizacja — duza liczba cykli procesoraI złozone specjalistyczne rozkazyI operacje bezpośrednio na pamięci — np. pobranie

z pamięci, operacja arytmetyczna i zapisanie do pamięciI duza liczba trybów rozkazówI powolne działanie dekodera rozkazów ...

2. RISC Reduced Instruction Set ComputerI zredukowana liczba rozkazów do niezbędnego minimum.

Ich liczba wynosi kilkadziesiąt (zamiast setek).I rozkazy nie mogą operować bezpośrednio na pamięci tylko

na rejestrach (do przesyłania danych pomiędzy pamięciąa rejestrami słuzą instrukcje load i store)

I redukcja trybów adresowaniaI przetwarzanie potokowe (pipelining) i superskalarność

3. VLIW

Very Long Instruction Word4. EPIC Explicitly Parallel Instruction Computing

Page 25: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimyArchitektura procesorów

1. VLIW Very Long Instruction Word

2. EPIC Explicitly Parallel Instruction Computing

Page 26: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimyArchitektura procesorów

1. VLIW Very Long Instruction Word

2. EPIC Explicitly Parallel Instruction Computing

Page 27: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimy

1. x86

Najpopularniejsza architektura komputerów PC

2. x86-64 Architektura 64 bitowa wprowadzana przez AMD

Page 28: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimy

1. x86 Najpopularniejsza architektura komputerów PC

2. x86-64

Architektura 64 bitowa wprowadzana przez AMD

Page 29: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Rózne akronimy

1. x86 Najpopularniejsza architektura komputerów PC

2. x86-64 Architektura 64 bitowa wprowadzana przez AMD

Page 30: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

NVIDIA CUDA

Page 31: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Zadanie domowe

Zapoznać się z wymienionymi skrótowcami.

Page 32: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 33: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 34: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 35: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 36: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 37: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program

?

Page 38: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Co trzeba zeby komputer działał?

1. Co to jest komputer?

2. Rodzaj kalkulatora (ma arytmometr/procesor).

3. Ma pamięć. . .

4. . . . ale co „popycha” go do działania?

5. Program?

Page 39: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 40: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 41: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 42: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 43: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 44: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 45: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Włączamy komputer. . .. . . i co się dzieje

1. Jak wszystko jest OK procesor automatycznie próbujewykonać program znajdujący się w ustalonym miejscupamięci.

2. W tym miejscu pamięci musi być jakiś program. . .

3. Zazwyczaj w tym obszarze pamięci znajduje się „pamięćstała” (Read Only Memory — ROM).

4. W tym miejscu znajduje się program zwany BIOS (BasicInput Output System).

5. BIOS sprawdza wszystkie komponenty komputera.

6. BIOS ładuje z dysku system operacyjny.

7. System operacyjny uruchamia aplikacje uzytkowe.

Page 46: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

BIOS

Page 47: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Programy

I Oprogramowanie (i jego jakość) wpływa bardzo mocno naefektywną szybkość komputerów.

I Na czym polega programowanie komputera?

Page 48: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Przykładowy programC

in t main ( ){

in t a=1;in t b=2;in t c ;c=a+b ;return 0;

}

Page 49: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Przykładowy programAssembler

. f i l e " p . c "

. text

. g l ob l main

. type main , @functionmain :. LFB0 :

. c f i _ s t a r t p r ocpushq %rbp. c f i _de f_c fa_o f f se t 16. c f i _ o f f s e t 6 , −16movq %rsp , %rbp. c f i _de f_c fa_ reg i s te r 6movl $1 , −12(%rbp )movl $2 , −8(%rbp )movl −8(%rbp ) , %eaxmovl −12(%rbp ) , %edxaddl %edx , %eaxmovl %eax , −4(%rbp )movl $0 , %eaxpopq %rbp. c f i_def_cfa 7 , 8ret. cf i_endproc

. LFE0 :. s i ze main , .−main. ident "GCC: ( Ubuntu/ Linaro 4.6.3−1ubuntu5 ) 4 .6 .3 ". sect ion . note .GNU−stack , " " , @progbits

[language=x86masmAssembler]

Page 50: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Czy umiejętność programowania jest wazna?Języki programowania

Page 51: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Proste zadaniaSuma liczb

Zadanie polega na tym, ze mamy dodać, powiedzmy, 1000 liczb(dostarczonych na papierku). Jak to robić:

I ręcznieI ręcznie z uzyciem kalkulatoraI za pomocą gotowego programuI za pomocą programu napisanego przez siebie

Page 52: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Proste zadaniaSuma liczb

Zadanie polega na tym, ze mamy dodać, powiedzmy, 1000 liczb(dostarczonych na papierku). Jak to robić:

I ręcznie

I ręcznie z uzyciem kalkulatoraI za pomocą gotowego programuI za pomocą programu napisanego przez siebie

Page 53: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Proste zadaniaSuma liczb

Zadanie polega na tym, ze mamy dodać, powiedzmy, 1000 liczb(dostarczonych na papierku). Jak to robić:

I ręcznieI ręcznie z uzyciem kalkulatora

I za pomocą gotowego programuI za pomocą programu napisanego przez siebie

Page 54: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Proste zadaniaSuma liczb

Zadanie polega na tym, ze mamy dodać, powiedzmy, 1000 liczb(dostarczonych na papierku). Jak to robić:

I ręcznieI ręcznie z uzyciem kalkulatoraI za pomocą gotowego programu

I za pomocą programu napisanego przez siebie

Page 55: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Proste zadaniaSuma liczb

Zadanie polega na tym, ze mamy dodać, powiedzmy, 1000 liczb(dostarczonych na papierku). Jak to robić:

I ręcznieI ręcznie z uzyciem kalkulatoraI za pomocą gotowego programuI za pomocą programu napisanego przez siebie

Page 56: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości l

I ręcznie?? (bez kalkulatora będzie trudno)I pisać program?I skorzystać z „gotowca” (arkusz kalkulacyjny)I narysować wykres funkcji (gnuplot)?

Page 57: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości l

I ręcznie?? (bez kalkulatora będzie trudno)I pisać program?I skorzystać z „gotowca” (arkusz kalkulacyjny)I narysować wykres funkcji (gnuplot)?

Page 58: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości lI ręcznie?? (bez kalkulatora będzie trudno)

I pisać program?I skorzystać z „gotowca” (arkusz kalkulacyjny)I narysować wykres funkcji (gnuplot)?

Page 59: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości lI ręcznie?? (bez kalkulatora będzie trudno)I pisać program?

I skorzystać z „gotowca” (arkusz kalkulacyjny)I narysować wykres funkcji (gnuplot)?

Page 60: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości lI ręcznie?? (bez kalkulatora będzie trudno)I pisać program?I skorzystać z „gotowca” (arkusz kalkulacyjny)

I narysować wykres funkcji (gnuplot)?

Page 61: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej zaawansowany program technicznyOkres drgań wahadła matematycznego

T = 2π

√lg

I Mamy, powiedzmy, 100 wartości lI ręcznie?? (bez kalkulatora będzie trudno)I pisać program?I skorzystać z „gotowca” (arkusz kalkulacyjny)I narysować wykres funkcji (gnuplot)?

Page 62: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Wykres

0

1

2

3

4

5

6

7

-10 -5 0 5 10

2*3.14*sqrt(x/9.81)

Page 63: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntPostawienie problemu

I mamy labirynt (najprostszy)

I mamy wejścieI jest jedno wyjścieI trzeba znaleźć drogę prowadzącą do wyjścia

Page 64: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntPostawienie problemu

I mamy labirynt (najprostszy)I mamy wejście

I jest jedno wyjścieI trzeba znaleźć drogę prowadzącą do wyjścia

Page 65: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntPostawienie problemu

I mamy labirynt (najprostszy)I mamy wejścieI jest jedno wyjście

I trzeba znaleźć drogę prowadzącą do wyjścia

Page 66: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntPostawienie problemu

I mamy labirynt (najprostszy)I mamy wejścieI jest jedno wyjścieI trzeba znaleźć drogę prowadzącą do wyjścia

Page 67: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bardziej złozony problemlabirynt

Page 68: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Język programowania Google Blockly

Dalsze przykłady będę programował w języku GoogleJest to visual programming editor. . .

I Mozna korzystać on-line:http://code.google.com/p/blockly/

I Mozna ściągnąć na komputerhttp://xeon4.immt.pwr.wroc.pl/~myszka/blockly.zip

I rozpakować w jakiejś kartoteceI znaleźć w tej kartotece plik

/blockly-read-only/demos/index.html i otworzyć go wprzeglądarce firefox (z innymi nie bardzo działa lokalnie).Szczegółowa instrukcja instalacji:http://code.google.com/p/blockly/wiki/Installation

Page 69: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Język programowania Google Blockly

Dalsze przykłady będę programował w języku GoogleJest to visual programming editor. . .

I Mozna korzystać on-line:http://code.google.com/p/blockly/

I Mozna ściągnąć na komputerhttp://xeon4.immt.pwr.wroc.pl/~myszka/blockly.zip

I rozpakować w jakiejś kartoteceI znaleźć w tej kartotece plik

/blockly-read-only/demos/index.html i otworzyć go wprzeglądarce firefox (z innymi nie bardzo działa lokalnie).Szczegółowa instrukcja instalacji:http://code.google.com/p/blockly/wiki/Installation

Page 70: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntJak rozwiązać?

I Prosty program (przykład w Blockly)

I Losowe ruchy: idź do skrzyzowania i podejmij losowądecyzję w którą stronę skręcić.

I Zadanie domowe: jak zaprogramować w Blockly?I Reguła lewej/prawej ręki: posuwaj się, zeby mieć ścianę

zawsze po lewej/prawej stronie (Przykład w Blockly)

Page 71: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntJak rozwiązać?

I Prosty program (przykład w Blockly)I Losowe ruchy: idź do skrzyzowania i podejmij losową

decyzję w którą stronę skręcić.

I Zadanie domowe: jak zaprogramować w Blockly?I Reguła lewej/prawej ręki: posuwaj się, zeby mieć ścianę

zawsze po lewej/prawej stronie (Przykład w Blockly)

Page 72: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntJak rozwiązać?

I Prosty program (przykład w Blockly)I Losowe ruchy: idź do skrzyzowania i podejmij losową

decyzję w którą stronę skręcić.I Zadanie domowe: jak zaprogramować w Blockly?

I Reguła lewej/prawej ręki: posuwaj się, zeby mieć ścianęzawsze po lewej/prawej stronie (Przykład w Blockly)

Page 73: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

LabiryntJak rozwiązać?

I Prosty program (przykład w Blockly)I Losowe ruchy: idź do skrzyzowania i podejmij losową

decyzję w którą stronę skręcić.I Zadanie domowe: jak zaprogramować w Blockly?I Reguła lewej/prawej ręki: posuwaj się, zeby mieć ścianę

zawsze po lewej/prawej stronie (Przykład w Blockly)

Page 74: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikpostawienie problemu

I Mamy dwie liczby całkowite, dodatnie i rózne od zera m i n.

I Szukamy takiej liczby x która jest podzielnikiem i m i n ijest to największa liczba wśród wszystkich takichpodzielników.

Page 75: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikpostawienie problemu

I Mamy dwie liczby całkowite, dodatnie i rózne od zera m i n.I Szukamy takiej liczby x która jest podzielnikiem i m i n i

jest to największa liczba wśród wszystkich takichpodzielników.

Page 76: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikprosty algorytm z definicji

I znajdź wszystkie podzielniki pierwszej liczby,

I znajdź wszystkie podzielniki drugiej liczby,I znajdź wszystkie wspólne podzielniki,I znajdź największy wśród nich.

Page 77: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikprosty algorytm z definicji

I znajdź wszystkie podzielniki pierwszej liczby,I znajdź wszystkie podzielniki drugiej liczby,

I znajdź wszystkie wspólne podzielniki,I znajdź największy wśród nich.

Page 78: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikprosty algorytm z definicji

I znajdź wszystkie podzielniki pierwszej liczby,I znajdź wszystkie podzielniki drugiej liczby,I znajdź wszystkie wspólne podzielniki,

I znajdź największy wśród nich.

Page 79: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Największy Wspólny Dzielnikprosty algorytm z definicji

I znajdź wszystkie podzielniki pierwszej liczby,I znajdź wszystkie podzielniki drugiej liczby,I znajdź wszystkie wspólne podzielniki,I znajdź największy wśród nich.

Page 80: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Znajdowanie wszystkich podzielników

I czy liczba n dzieli się przez 1I czy liczba n dzieli się przez 2I . . .I czy liczba n dzieli się przez n− 1

Page 81: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Znajdowanie wszystkich podzielnikówczy mozna to uprościć?

I Wystarczy startować od dwójki (wszystkie liczby dzielą sięprzez 1)

I Kiedy skończyć?I Wystarczy kontynuować do

√n

Page 82: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Znajdowanie wszystkich podzielnikówczy mozna to uprościć?

I Wystarczy startować od dwójki (wszystkie liczby dzielą sięprzez 1)

I Kiedy skończyć?

I Wystarczy kontynuować do√n

Page 83: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Znajdowanie wszystkich podzielnikówczy mozna to uprościć?

I Wystarczy startować od dwójki (wszystkie liczby dzielą sięprzez 1)

I Kiedy skończyć?I Wystarczy kontynuować do

√n

Page 84: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Wspólna część dwu zbiorów

1. Weź pierwszy element ze zbioru N

2. Sprawdź czy znajduje się w zbiorze M?

3. Jezeli tak — zapisz w zbiorze wynikowym.

4. Jezeli nie przejrzałeś wszystkich elementów w zbiorze N,weź element następny i przejdź do kroku 2

Page 85: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Wspólna część dwu zbiorów

1. Weź pierwszy element ze zbioru N

2. Sprawdź czy znajduje się w zbiorze M?

3. Jezeli tak — zapisz w zbiorze wynikowym.

4. Jezeli nie przejrzałeś wszystkich elementów w zbiorze N,weź element następny i przejdź do kroku 2

Page 86: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Wspólna część dwu zbiorów

1. Weź pierwszy element ze zbioru N

2. Sprawdź czy znajduje się w zbiorze M?

3. Jezeli tak — zapisz w zbiorze wynikowym.

4. Jezeli nie przejrzałeś wszystkich elementów w zbiorze N,weź element następny i przejdź do kroku 2

Page 87: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Wspólna część dwu zbiorów

1. Weź pierwszy element ze zbioru N

2. Sprawdź czy znajduje się w zbiorze M?

3. Jezeli tak — zapisz w zbiorze wynikowym.

4. Jezeli nie przejrzałeś wszystkich elementów w zbiorze N,weź element następny i przejdź do kroku 2

Page 88: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 89: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 90: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 91: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 92: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 93: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 94: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Szukanie wartości największej

1. weź pierwszy element: będzie „wzorem”

2. czy został jakiś element w zbiorze? jezeli nie — KONIEC

3. weź następny element ze zbioru

4. czy większy od „wzoru?”

5. jezeli nie — przejdź do punktu 2

6. jezeli tak — wstaw w miejsce „wzoru”

Page 95: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Algorytm Euklidesa

E1. Niech r będzie resztą z dzielenia m przez n

E2. Jezeli r = 0 koniec

E3. W przeciwnym raziem = nn = rprzejdź do E1

Page 96: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Algorytm Euklidesa

E1. Niech r będzie resztą z dzielenia m przez n

E2. Jezeli r = 0 koniec

E3. W przeciwnym raziem = nn = rprzejdź do E1

Page 97: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Algorytm Euklidesa

E1. Niech r będzie resztą z dzielenia m przez n

E2. Jezeli r = 0 koniec

E3. W przeciwnym raziem = nn = rprzejdź do E1

Page 98: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

NWDProgram w Blockly

Page 99: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

NWDProgram w Blockly

Page 100: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Zadanie domowe

I Znaleźć inne warianty algorytmu EuklidesaI Zaprogramować w Blockly?

Page 101: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Algorytm B

1. Przyjmij k← 0, a następnie powtarzaj operacje: k← k+ 1,u← u/2, v ← v/2 zero lub więcej razy do chwili gdyprzynajmniej jedna z liczb u i v przestanie być parzysta.

2. Jeśli u jest nieparzyste to przyjmij t← −v i przejdź dokroku 4. W przeciwnym razie przyjmij t← u.

3. (W tym miejscu t jest parzyste i rózne od zera). Przyjmijt← t/2.

4. Jeśli t jest parzyste to przejdź do 3.5. Jeśli t > 0, to przyjmij u← t, w przeciwnym razie przyjmij

v ← −t.6. Przyjmij t← u− v. Jeśli t 6= 0 to wróć do kroku 3.

W przeciwnym razie algorytm zatrzymuje się z wynikiemu · 2k.

Page 102: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Zadanie domowe?

Algorytm B w Blockly?

Yyyyy. . . za trudne

Rozwiązać ręcznie dla wybranych u i v (mniejszych niz 1000).

Page 103: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Zadanie domowe?

Algorytm B w Blockly?

Yyyyy. . . za trudne

Rozwiązać ręcznie dla wybranych u i v (mniejszych niz 1000).

Page 104: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Zadanie domowe?

Algorytm B w Blockly?

Yyyyy. . . za trudne

Rozwiązać ręcznie dla wybranych u i v (mniejszych niz 1000).

Page 105: Oprogramowanie komputerów - wer. 9 · I prostsza budowa I szybsze przesy“anie do pamiƒci I d“uzsze operacja na d“ugich liczbach I d“ugie s“owo I bardziej z“ozona budowa

Bibliography

MakerFaire.http://code.google.com/p/blockly/wiki/MakerFaire,Pa/xdziernik 2012.

David B. Suits.Playing with mazes.http://people.rit.edu/dbsgsh/, 1994.

David B. Suits.Solving mazes.Playing With Mazes. 1994.http://people.rit.edu/dbsgsh/MAZES3.pdf.