Oprogramowanie komputerów

Podobne dokumenty
Oprogramowanie komputerów wer. 9

Technologie Informacyjne Wykład 2

Mój pierwszy program. wer. 3 z drobnymi modyfikacjami! Wojciech Myszka :58:

Architektura mikroprocesorów TEO 2009/2010

2.8. Algorytmy, schematy, programy

Technologie informacyjne wykład 2 wer. 1.2

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Obliczenia Wysokiej Wydajności

Algorytm. a programowanie -

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Budowa komputera Komputer computer computare

Technologie Informacyjne Wykład 3

Wstęp do Informatyki

SYSTEM OPERACYJNY. Monika Słomian

, " _/'--- " ~ n\l f.4e ' v. ,,v P-J.. ~ v v lu J. ... j -:;.",II. ,""", ",,> I->~" re. dr. f It41I r> ~ '<Q., M-c 'le...,,e. b,n '" u /.

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

PROGRAMOWANIE WSPÓŁCZESNYCH ARCHITEKTUR KOMPUTEROWYCH DR INŻ. KRZYSZTOF ROJEK

ALGORYTMY MATEMATYCZNE Ćwiczenie 1 Na podstawie schematu blokowego pewnego algorytmu (rys 1), napisz listę kroków tego algorytmu:

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Zadanie 1. Potęgi (14 pkt)

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Podstawy programowania. Wykład: 13. Rekurencja. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Dr inż. Robert Wójcik, p. 313, C-3, tel Katedra Informatyki Technicznej (K-9) Wydział Elektroniki (W-4) Politechnika Wrocławska

Podstawy Informatyki Systemy sterowane przepływem argumentów

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Instrukcje sterujące. wer. 11 z drobnymi modyfikacjami! Wojciech Myszka :53:

Wykład 4. Określimy teraz pewną ważną klasę pierścieni.

Budowa Mikrokomputera

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Algorytmy i struktury danych. Wykład 4

Introduction to Computer Science

Funkcje i instrukcje języka JavaScript

Technologie Informacyjne Mechatronika 2012/2013 Algorytmy. Podstawy programowania

Architektura potokowa RISC

Od programowania wizualnego do tekstowego

Przykładowe zadania z teorii liczb

Programowanie w Baltie klasa VII

Funkcja kwadratowa. f(x) = ax 2 + bx + c = a

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

PRZEWODNIK PO PRZEDMIOCIE

Wykład 2. Mikrokontrolery z rdzeniami ARM

Największy wspólny dzielnik Algorytm Euklidesa (także rozszerzony) WZAiP1: Chińskie twierdzenie o resztach

Podstawy Techniki Mikroprocesorowej

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Teoria liczb. Zajmuje się własnościami liczb, wszystkim całkowitych

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura systemów komputerowych. Przetwarzanie potokowe I

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Jeszcze o algorytmach

Architektura systemów komputerowych

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Przetwarzanie potokowe pipelining

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Architektura komputerów wer. 7

Komputer i urządzenia z nim współpracujące.

Wojewódzki Przedmiotowy Konkurs z informatyki dla uczniów szkół gimnazjalnych ETAP REJONOWY 2010/2011 TEST

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Projektowanie. Projektowanie mikroprocesorów

Programowanie niskopoziomowe

Praktyka Programowania

Organizacja typowego mikroprocesora

Procesory firmy ARM i MIPS

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Etap I V Gminnego Konkursu Informatycznego.

Podstawy programowania. Wykład 1 Wstęp. Krzysztof Banaś Podstawy programowania 1

Środowiska programistyczne dla szkoły podstawowej Jak zachęcić uczniów do startu w konkursach informatycznych

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Algorytm i złożoność obliczeniowa algorytmu

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

Programowanie. wer. 7 z drobnymi modyfikacjami! Wojciech Myszka :39:

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH. Klasyczny cykl pracy procesora sekwencyjnego. współczesne architektury. c Dr inż.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

Informatyka kl. 1. Semestr I

Wykład 1. Na początku zajmować się będziemy zbiorem liczb całkowitych

Obliczenia Wysokiej Wydajności

Warunki i sposoby realizacji podstawy programowej kształcenia ogólnego w klasie IV i VII szkoły podstawowej z informatyki.

Przegląd architektury PlayStation 3

Wymagania - informatyka

Makropolecenia w Excelu

Architektura komputerów

EGZAMIN MATURALNY 2011 INFORMATYKA

1. Liczby wymierne. x dla x 0 (wartością bezwzględną liczby nieujemnej jest ta sama liczba)

Architektura mikroprocesorów z rdzeniem ColdFire

Programowanie i techniki algorytmiczne

Spis treści. Podstawy posługiwania się komputerem

Technologie informacyjne - wykład 12 -

WHILE (wyrażenie) instrukcja;

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PODSTAWOWY.

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

Rekurencja (rekursja)

WHILE (wyrażenie) instrukcja;

Podstawy technologii informacyjnej. Beata Kuźmińska

System komputerowy. System komputerowy

EGZAMIN MATURALNY Z INFORMATYKI. 10 maja 2017 POZIOM ROZSZERZONY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I

Programowanie w C++ 1 Opis procesora Sextium II. Opis procesora Sextium. materiały dydaktyczne udostępnione przez Tomasza Wierzbickiego

Transkrypt:

Oprogramowanie komputerów wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2018-11-04 20:13:59 +0100

Od czego zależy szybkość komputerów?

Od czego zależy szybkość komputerów? 1. Częstość zegara.

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci.

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa:

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo:

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo:

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa, czasami marnotrawstwo zasobów,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa, czasami marnotrawstwo zasobów, szybkie wykonywanie operacji na długich liczbach.

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa, czasami marnotrawstwo zasobów, szybkie wykonywanie operacji na długich liczbach. 4. Wewnętrzna konstrukcja komputera:

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa, czasami marnotrawstwo zasobów, szybkie wykonywanie operacji na długich liczbach. 4. Wewnętrzna konstrukcja komputera: liczba jednostek arytmetycznych,

Od czego zależy szybkość komputerów? 1. Częstość zegara. 2. Szybkość pamięci. 3. Długość słowa: krótkie słowo: prostsza budowa, szybsze przesyłanie do pamięci, dłuższe operacja na długich liczbach, długie słowo: bardziej złożona budowa, czasami marnotrawstwo zasobów, szybkie wykonywanie operacji na długich liczbach. 4. Wewnętrzna konstrukcja komputera: liczba jednostek arytmetycznych, sposób wykonywania operacji.

Przetwarzanie potokowe I Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci Rysunek: Przetwarzanie danych przez procesor

Przetwarzanie potokowe II Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci Rysunek: Przetwarzanie danych przez współczesny procesor (pipeline)

Przetwarzanie potokowe Pipeline + dwa procesory IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci Rysunek: Przetwarzanie potokowe w przypadku wielu procesorów

Od czego zależy jeszcze szybkość? Procesory wektorowe Procesor wektorowy (tablicowy) to CPU skonstruowane w taki sposób, że zawiera polecenia wykonania operacji matematycznej na wielu elementach danych. SIMD Single Instruction, Multiple Data Podstawa superkomputerów z lat 80 i 90. W roku 2000 IBM, Toshiba i Sony współpracowały nad stworzeniem procesora Cell zawierającego jeden procesor skalarny (odwrotność procesora wektorowego) i osiem procesorów wektorowych, który znalazł zastosowanie (między innymi) w PlayStation 3.

Różne akronimy 1. CISC

Różne akronimy 1. CISC Complex Instruction Set Computer 2. RISC

Różne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW

Różne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW Very Long Instruction Word 4. EPIC

Różne akronimy 1. CISC Complex Instruction Set Computer 2. RISC Reduced Instruction Set Computer 3. VLIW Very Long Instruction Word 4. EPIC Explicitly Parallel Instruction Computing

Różne akronimy 1. x86

Różne akronimy 1. x86 Najpopularniejsza (do niedawna) architektura komputerów PC. 2. x86-64

Różne akronimy 1. x86 Najpopularniejsza (do niedawna) architektura komputerów PC. 2. x86-64 Architektura 64 bitowa wprowadzana przez AMD dominująca dziś na rynku. 3. ARM architektura, która zdominowała rynek współczesnych urządzeń mobilnych.

NVIDIA CUDA Rysunek: Wewnętrzna architektura karty graficznej Tesla

Zadanie domowe Zapoznać się z wymienionymi skrótowcami.

Co trzeba żeby komputer działał? 1. Co to jest komputer?

Co trzeba żeby komputer działał? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor).

Co trzeba żeby komputer działał? 1. Co to jest komputer? 2. Rodzaj kalkulatora (ma arytmometr/procesor). 3. Ma pamięć...

Co trzeba żeby 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?

Co trzeba żeby 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

Co trzeba żeby 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

Co trzeba żeby 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?

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamięci. 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamięci. 2. W tym miejscu pamięci musi być jakiś program... 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamię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). 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamię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 1 (Basic Input Output System). 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamię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 1 (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamię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 1 (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. 6. BIOS ładuje z dysku system operacyjny. 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

Włączamy komputer......i co się dzieje 1. Jak wszystko jest OK procesor automatycznie próbuje wykonać program znajdujący się w ustalonym miejscu pamię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 1 (Basic Input Output System). 5. BIOS sprawdza wszystkie komponenty komputera. 6. BIOS ładuje z dysku system operacyjny. 7. System operacyjny uruchamia aplikacje użytkowe. 1 BIOS to nazwa własna tłumacząca się jako Basic Input Output System, ale też ogólna nazwa każdego oprogramowania uruchamianego zaraz po starcie komputera.

BIOS

Programy Oprogramowanie (i jego jakość) wpływa bardzo mocno na efektywną szybkość komputerów. Na czym polega programowanie komputera?

Przykładowy program C 1 i n t main ( ) 2 { 3 i n t a = 1 ; 4 i n t b = 2 ; 5 i n t c ; 6 c =a+b ; 7 r e t u r n 0; 8 }

Przykładowy program I Assembler. f i l e " p. c ". t e x t. g l o b l main. type main, @function main :. LFB0 :. c f i _ s t a r t p r o c pushq %rbp #. c f i _ d e f _ c f a _ o f f s e t 16. c f i _ o f f s e t 6, 16 movq %rsp, %rbp #,. c f i _ d e f _ c f a _ r e g i s t e r 6 # p. c : 3 : i n t a = 1 ; movl $1, 12(% rbp ) #, a # p. c : 4 : i n t b = 2 ; movl $2, 8(%rbp ) #, b # p. c : 6 : c =a+b ; movl 12(% rbp ), %edx # a, tmp93 movl 8(%rbp ), %eax # b, tmp94 addl %edx, %eax # tmp93, tmp92 movl %eax, 4(%rbp ) # tmp92, c # p. c : 7 : r e t u r n 0; movl $0, %eax #, _4 # p. c : 8 : }

Przykładowy program II Assembler. LFE0 : popq %rbp #. c f i _ d e f _ c f a 7, 8 r e t. c f i _ e n d p r o c. s i z e main,. main. ident "GCC : ( Ubuntu 7.3.0 27 ubuntu1 ~18. 04) 7. 3. 0 ". s e c t i o n. note. GNU s t a c k, " ", @progbits

Czy umiejętność programowania jest ważna? Języki programowania 30 TIOBE Programming Community Index Source: www.tiobe.com 25 Ratings (%) 20 15 10 Java C C++ Python Visual Basic.NET C# PHP JavaScript SQL Swift 5 0 2002 2004 2006 2008 2010 2012 2014 2016 2018 Rysunek: TIOBE programming community index, źródło: https://www.tiobe.com/tiobe-index/

Proste zadania Suma liczb Zadanie polega na tym, że mamy dodać, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robić:

Proste zadania Suma liczb Zadanie polega na tym, że mamy dodać, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robić: ręcznie,

Proste zadania Suma liczb Zadanie polega na tym, że mamy dodać, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robić: ręcznie, ręcznie z użyciem kalkulatora,

Proste zadania Suma liczb Zadanie polega na tym, że mamy dodać, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robić: ręcznie, ręcznie z użyciem kalkulatora, za pomocą gotowego programu,

Proste zadania Suma liczb Zadanie polega na tym, że mamy dodać, powiedzmy, 1000 liczb (dostarczonych na papierku). Jak to robić: ręcznie, ręcznie z użyciem kalkulatora, za pomocą gotowego programu, za pomocą programu napisanego przez siebie?

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g Mamy, powiedzmy, 100 wartości l, mamy policzyć okresy drgań wahadła; jak to zrobić

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g Mamy, powiedzmy, 100 wartości l, mamy policzyć okresy drgań wahadła; jak to zrobić ręcznie?? (bez kalkulatora będzie trudno)

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g Mamy, powiedzmy, 100 wartości l, mamy policzyć okresy drgań wahadła; jak to zrobić ręcznie?? (bez kalkulatora będzie trudno) pisać program?

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g Mamy, powiedzmy, 100 wartości l, mamy policzyć okresy drgań wahadła; jak to zrobić ręcznie?? (bez kalkulatora będzie trudno) pisać program? skorzystać z gotowca (arkusz kalkulacyjny)

Bardziej zaawansowany program techniczny Okres drgań wahadła matematycznego l T = 2π g Mamy, powiedzmy, 100 wartości l, mamy policzyć okresy drgań wahadła; jak to zrobić ręcznie?? (bez kalkulatora będzie trudno) pisać program? skorzystać z gotowca (arkusz kalkulacyjny) narysować wykres funkcji?

Wykres 6 4 2 0 0 2 4 6 8 10 Rysunek: Wykres funkcji T = 2π l g

Labirynt Postawienie problemu mamy labirynt (najprostszy),

Labirynt Postawienie problemu mamy labirynt (najprostszy), mamy wejście (i jesteśmy przy wejściu),

Labirynt Postawienie problemu mamy labirynt (najprostszy), mamy wejście (i jesteśmy przy wejściu), jest jedno wyjście,

Labirynt Postawienie problemu mamy labirynt (najprostszy), mamy wejście (i jesteśmy przy wejściu), jest jedno wyjście, trzeba znaleźć drogę prowadzącą do wyjścia.

Bardziej złożony problem labirynt Rysunek: Labirynt z Google games

Język programowania Google Blockly Dalsze przykłady będę programował w języku Google Jest to visual programming editor...

Język programowania Google Blockly Dalsze przykłady będę programował w języku Google Jest to visual programming editor... Można korzystać on-line: https://blockly-demo.appspot.com/static/demos/code/index.html Można ściągnąć na komputer https://github.com/google/blockly/zipball/master rozpakować w jakiejś kartotece znaleźć w tej kartotece podkartotekę google-blockly-xxxxxx (gdzie xxxxxx to będzie wyglądający na losowy ciąg znaków; przemianować tę kartotekę na google-blockly wejść do podkartoteki demos/code, znaleźć plik index.html i otworzć go w ulubionej przeglądarce.

Prosty program

Prosty program Losowe ruchy: idź do skrzyżowania i podejmij losową decyzję w którą stronę skręcić.

Prosty program Losowe ruchy: idź do skrzyżowania i podejmij losową decyzję w którą stronę skręcić. Zadanie domowe: jak tę ideę zaprogramować w Blockly? I czy się da?

Prosty program Losowe ruchy: idź do skrzyżowania i podejmij losową decyzję w którą stronę skręcić. Zadanie domowe: jak tę ideę zaprogramować w Blockly? I czy się da? Reguła lewej/prawej ręki: posuwaj się, żeby mieć ścianę zawsze po lewej/prawej stronie.

Największy Wspólny Dzielnik Mamy dwie liczby całkowite, dodatnie i różne od zera m i n.

Największy Wspólny Dzielnik Mamy dwie liczby całkowite, dodatnie i różne od zera m i n. Szukamy takiej liczby x która jest podzielnikiem i m i n i jest to największa liczba wśród wszystkich takich podzielników.

Największy Wspólny Dzielnik Prosty algorytm z definicji znajdź wszystkie podzielniki pierwszej liczby,

Największy Wspólny Dzielnik Prosty algorytm z definicji znajdź wszystkie podzielniki pierwszej liczby, znajdź wszystkie podzielniki drugiej liczby,

Największy Wspólny Dzielnik Prosty algorytm z definicji znajdź wszystkie podzielniki pierwszej liczby, znajdź wszystkie podzielniki drugiej liczby, znajdź wszystkie wspólne podzielniki,

Największy Wspólny Dzielnik Prosty algorytm z definicji znajdź wszystkie podzielniki pierwszej liczby, znajdź wszystkie podzielniki drugiej liczby, znajdź wszystkie wspólne podzielniki, znajdź największy wśród nich.

Znajdowanie wszystkich podzielników liczby czy liczba n dzieli się przez 1 czy liczba n dzieli się przez 2... czy liczba n dzieli się przez n 1

Znajdowanie wszystkich podzielników czy można to uprościć? Wystarczy startować od dwójki (wszystkie liczby dzielą się przez 1)

Znajdowanie wszystkich podzielników czy można to uprościć? Wystarczy startować od dwójki (wszystkie liczby dzielą się przez 1) Kiedy skończyć?

Znajdowanie wszystkich podzielników czy można to uprościć? Wystarczy startować od dwójki (wszystkie liczby dzielą się przez 1) Kiedy skończyć? Wystarczy kontynuować do n

Wspólna część dwu zbiorów N i M 1. Weź pierwszy element ze zbioru N

Wspólna część dwu zbiorów N i M 1. Weź pierwszy element ze zbioru N 2. Sprawdź czy znajduje się w zbiorze M?

Wspólna część dwu zbiorów N i M 1. Weź pierwszy element ze zbioru N 2. Sprawdź czy znajduje się w zbiorze M? 3. Jeżeli tak zapisz w zbiorze wynikowym.

Wspólna część dwu zbiorów N i M 1. Weź pierwszy element ze zbioru N 2. Sprawdź czy znajduje się w zbiorze M? 3. Jeżeli tak zapisz w zbiorze wynikowym. 4. Jeżeli nie przejrzałeś wszystkich elementów w zbiorze N, weź element następny i przejdź do kroku 2

Szukanie wartości największej w zbiorze

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem 2. czy został jakiś element w zbiorze? jeżeli nie KONIEC

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem 2. czy został jakiś element w zbiorze? jeżeli nie KONIEC 3. weź następny element ze zbioru

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem 2. czy został jakiś element w zbiorze? jeżeli nie KONIEC 3. weź następny element ze zbioru 4. czy większy od wzoru?

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem 2. czy został jakiś element w zbiorze? jeżeli nie KONIEC 3. weź następny element ze zbioru 4. czy większy od wzoru? 5. jeżeli nie przejdź do punktu 2

Szukanie wartości największej w zbiorze 1. weź pierwszy element: będzie wzorem 2. czy został jakiś element w zbiorze? jeżeli nie KONIEC 3. weź następny element ze zbioru 4. czy większy od wzoru? 5. jeżeli nie przejdź do punktu 2 6. jeżeli tak wstaw w miejsce wzoru

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

Algorytm Euklidesa E1. Niech r będzie resztą z dzielenia m przez n E2. Jeżeli r = 0 koniec

Algorytm Euklidesa E1. Niech r będzie resztą z dzielenia m przez n E2. Jeżeli r = 0 koniec E3. W przeciwnym razie m = n n = r przejdź do E1

NWD Program w Blockly

NWD Program w Blockly

Zadanie domowe Znaleźć inne warianty algorytmu Euklidesa Zaprogramować w Blockly?

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 gdy przynajmniej jedna z liczb u i v przestanie być parzysta. 2. Jeśli u jest nieparzyste to przyjmij t v i przejdź do kroku 4. W przeciwnym razie przyjmij t u. 3. (W tym miejscu t jest parzyste i różne od zera). Przyjmij t 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 0 to wróć do kroku 3. W przeciwnym razie algorytm zatrzymuje się z wynikiem u 2 k.

Zadanie domowe? Algorytm B w Blockly?

Zadanie domowe? Algorytm B w Blockly? Yyyyy... za trudne

Zadanie domowe? Algorytm B w Blockly? Yyyyy... za trudne Rozwiązać ręcznie dla wybranych u i v (mniejszych niż 1000).

Bibliography Suits D.B., Playing with mazes, URL http://people.rit.edu/dbsgsh/ 1994. Suits D.B., Solving mazes, [w:] Playing With Mazes 1994, URL http://people.rit.edu/dbsgsh/mazes3.pdf.