Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja.

Slides:



Advertisements
Podobne prezentacje
Session 6 Case Study – Elektrim SA Saturday, January 15, 2011 SAL Wroclaw Lectures on Corporate Governance Geoffrey Mazullo Principal Emerging Markets.
Advertisements

Introduction to SystemC
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Pomysł Sukces Wstępne rozwiązanie Symulacja Wynik zadowala? Poprawa rozwiązania Nie Tak Podstawowa pętla projektowania.
Analiza wywołania i przebiegu przerwań w systemie Linux
Wskaźniki repetytorium Wskaźniki int Y = 1, X = 2; X = 5; int *p = &X; Y X p 4 4 p = &Y; *p = 4; 5.
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Projekt Do kariery na skrzydłach – studiuj Aviation Management Projekt współfinansowany ze ś rodków Europejskiego Funduszu Społecznego. Biuro projektu:
Wstęp do geofizycznej dynamiki płynów. Semestr VI. Wykład
Obiekty i zdarzenia w środowisku Delphi
Software Engineering 0. Information on the Course Leszek J Chmielewski Faculty of Applied Informatics and Mathematics (WZIM) Warsaw University of Life.
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Rekursja Teoretyczne podstawy informatyki Wykład 5
Team Building Copyright, 2003 © Jerzy R. Nawrocki Requirements Engineering Lecture.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Dzielenie relacyjne / Relational Division
Ernest Jamro Kat. Elektroniki AGH, Kraków Dep. Of Electronics, AGH
Parallel Processing, Pipelining, Flynn’s taxonomy
Spójność i replikacja Wykład 7.
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Polaryzacja światła.
22 listopada 2000Regula konkatenacji II1 Dziedziczenie (cd.) Reguła konkatenacji II przykład - heapsort Reguła konkatenacji III.
142 JAVA – sterowanie i wątki public class A20 extends javax.swing.JApplet implements ActionListener { private int licznik = 0; private JTextField t =
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Networking Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Objects classes,
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Exceptions Prezentacja.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Tworzenie aplikacji sieciowych w języku Java Threads Prezentacja.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
REKURENCJA.
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
BLOOD DONATION.
Zbiory i rekordy mgr inż. Agata Pacek. Deklaracja typu zbiorowego (określa ilość elementów w zbiorze) type biegi=set of 0..6; Definiowanie zmiennej typu.
Warsztaty C# Część 2 Grzegorz Piotrowski Grupa.NET PO
A. Jędryczkowski – 2006 ©. Tablica to struktura danych zawierająca zbiór obiektów tego samego typu i odpowiada matematycznemu pojęciu wektora (tablica.
Turbo Pascal umożliwia wykorzystanie w programach zbiorów teoriomnogościowych, których elementy muszą należeć do pewnego określonego typu. Typ zbiorowy.
Instrukcje sterujące: W instrukcjach sterujących podejmowane są decyzje o wykonaniu tych czy innych instrukcji programu. Decyzje te podejmowane są w zależności.
Preface 2.General characteristics of the problem 3.Classical and non-classical approaches 4.Griffith-Irwin concept and linear fracture mechanics.
Introduction to Numerical Analysis
TROCHĘ HISTORII Marek Zając PO CO UŻYWAĆ OPENCL? Marek Zając.
Polish cadastral system Land Administration Domain Model
1.
Ogólna struktura programu w TP
An island nation located in the south-west Pacific
NIEPUBLICZNA SZKOŁA PODSTAWOWA
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 6.
Wydział Elektroniki Kierunek: AiR Zaawansowane metody programowania Wykład 5.
Współprogramy Andrzej Salwicki 5 stycznia Współprogramy I Plan: ● Motywacja ● Składnia ● Scenariusz obiektu współprogramu ● Przykłady ● Producent.
Wykład 4: Systemy nawigacji satelitarnej
Krakowskie Sympozjum Naukowo-Techniczne
Box Behnken Design w optymalizacji procesu biosyntezy β-karotenu w hodowlach drożdży Rhodotorula rubra Ludmiła Bogacz-Radomska(1), Joanna Harasym(1,2,3),
GOSPODAROWANIE ZASOBAMI W ORGANIZACJI
Stan Wojenny.
Wykład 8: Złożone problemy przetwarzania mobilnego
Zagadnienie prawdy Andrzej Łukasik Zakład Ontologii i Teorii Poznania
Potencjał chemiczny Potencjał chemiczny ma charakter siły uogólnionej,
Parki krajobrazowe na Podlasiu
Moje dziecko i jego potrzeby.
GMINA RUDZINIEC.
Bezpieczeństwo gospodarcze strefy Schengen – walka z korupcją, doskonalenie wiedzy i działań Policji Mazowsza sierż. szt. mgr Bartosz Alot LK KWP zs.
Katedra Mikroelektroniki i Technik Informatycznych
Andrzej Salwicki 2 październik 2010
Współprogramy IV.
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
Previously discusses: different kinds of variables
Zapis prezentacji:

Współprogramy Plan: Motywacja Składnia Scenariusz obiektu współprogramu Przykłady Producent – konsument ( instrukcja attach ) Czytelnik -pisarze ( instukcja detach ) Łączenie drzew binarnych poszukiwań ( pojęcie łańcucha dynamicznego )

Składnia unit : { } coroutine( ); begin ; return; end ; W instrukcjach współprogramu można używać instrukcji przełączania: attach(obCoroutiny) i detach.

Semantyka – scenariusz

program prodcons; var prod:producer,cons:consumer,n:integer,mag:real,last:bool; unit producer: coroutine;... end producer; unit consumer: coroutine(n:integer);... end consumer; begin (* MAIN program *) prod:=new producer; read(n); cons:=new consumer(n); attach(prod); (* R *) writeln; end prodcons;

unit producer: coroutine; begin return; (* 1 *) do read(mag); (* mag-nonlocal variable, common store*) if mag=0 then (* end of data *) last:=true; exit fi; attach(cons); (* A *) od; attach(cons) (* B *) end producer;

unit consumer: coroutine(n:integer); var Buf:arrayof real; var i,j:integer; begin new_array Buf dim(1:n); return; (* 2*) do for i:=1 to n do Buf(i):=mag; attach(prod); (* C *) if last then exit exit fi; od; for i:=1 to n do (* print Buf *) write(' ',Buf(i):10:2) od; writeln; od; for j:=1 to i do write(' ',Buf(j):10:2) od; writeln; (* print the rest of Buf *) attach(main); (* D *) end consumer;

program reader_writers; (* In this example a single input stream consisting of blocks of numbers, each ending with 0, is printed on two printers of different width. The choice of the printer is determined by the block header which indicates the desired number of print columns. The input stream ends with a double 0. m1 = the width of printer_1, m2 = the width of printer_2 *) end;

program reader_writers; const m1=10,m2=20; var reader:reading,printer_1,printer_2:writing; var n:integer,new_sequence:boolean,mag:real; unit writing:coroutine(n:integer);... end writing; unit reading:coroutine ;... end reading; begin reader:=new reading; printer_1:=new writing(m1); printer_2:=new writing(m2); do read(n); case n when 0: exit when m1: attach(printer_1) when m2: attach(printer_2) otherwise write(" wrong data"); exit esac od end;

unit writing:coroutine(n:integer); var Buf: arrayof real, i,j:integer; begin new_array Buf dim (1:n); (* array generation *) return; (* return terminates coroutine initialization *) do attach(reader); (* reactivates coroutine reader *) if new_sequence then (* a new sequence causes buffer Buf to be cleared up *) for j:=1 to i do write(' ',Buf(j):10:2) od; writeln; i:=0; new_sequence:=false; attach(main) else i:=i+1; Buf(i):=mag; if i=n then for j:=1 to n do write(' ',Buf(j):10:2) od; writeln; i:=0; fi fi od end writing; end;

unit reading: coroutine; begin return; do read(mag); if mag=0 then new_sequence:=true; fi; detach; (* detach returns control to printer_1 or printer_2 depending which one reactivated reader *) od end reading;

Zadania Napisz klasę coroutine w Javie, jako rozszerzenie klasy threads. Napisz klasę coroutine w C++. Napiszcie z kolegą grę strategiczną (tzn. nie strzelankę, nie karcianą) np. kółko i krzyżyk, warcaby,