• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Nie wiem jak uzupełnić kod w języku ADA

Object Storage Arubacloud
–1 głos
75 wizyt
pytanie zadane 5 czerwca 2020 w Inne języki przez Nice guy Nowicjusz (160 p.)
zamknięte 6 czerwca 2020 przez HaKIM

W pewnej firmie klienci zlecają zadania do wykonania określając ich
priorytet (od 0 do 9, im wyższy tym bardziej pilne) a wykonawcy realizują
te zlecenia. Zadaniem dyspozytora jest przekazanie wykonawcy do
realizacji odpowiedniego zadania - o aktualnie najwyższym priorytecie.
Wątki klientów zgłaszają zadania wraz z ich priorytetami wywołując
odpowiednie entry wątku Dyspozytor (do zdefiniowania przez Państwa;
wątek o numerze id powinien zgłaszać zadanie o priorytecie id i
unikalnym numerze). Wątki wykonawców wywołują entry nastepne i
otrzymują w parametrze wyjściowym numer niezrealizowanego jeszcze
zadania o najwyższym priorytecie, po czym przystępują do jego
wykonania. Rozwiazać ten problem przy założeniu, że zadania o równych
priorytetach powinny być realizowane w kolejności zgłaszania (FIFO).
Uwaga: istnieje możliwość zdefiniowania ”rodziny” wejść, np. pisząc:
task AAA is
entry Z(0..9)(parametry)
end AAA;
otrzymamy w zadaniu AAA dziesięć wejść: Z(0), Z(1),. . . , Z(9), każde o
tych samych parametrach, które następnie można wykorzystać w bloku
select (a nawet w pętli for, np. for i ... accept Z(i) ... ).

with Ada.Text_IO;
use Ada.Text_IO;


procedure Przydzial is 

----- watek nadzorujacy przydzial zadan -----
task Dyspozytor is

--<-- TU DODATKOWE WEJSCIA

  entry nastepne(nr: out Integer); -- zwraca numer nastepnego zadania do wykonania (o najwyzszym priorytecie)
end Dyspozytor;

task body Dyspozytor is

begin

--<-- TU KOD -->--

end Dyspozytor;      
----- koniec watku nadzorujacego -----


----- watek klienta -----
task type Klient(id: Integer);

task body Klient is
begin 
  loop

--<-- TU KOD -->--

    delay Duration(Float(id)); -- aby zadania o wyzszym priorytecie pojawialy sie rzadziej
  end loop;
end Klient;
----- koniec klienta -----


----- watek wykonawcy -----
task type Wykonawca(id: Integer);

task body Wykonawca is
  nrZadania: Integer;
begin 
  loop
    Put_Line("Wykonawca" & Integer'Image(id) & " oczekuje na zamowienia.");
    delay 0.5;
    Dyspozytor.nastepne(nrZadania);
    Put_Line("Wykonawca" & Integer'Image(id) & " realizuje zamowienie nr" & Integer'Image(nrZadania));
    delay 2.0;
  end loop;
end Wykonawca;
----- koniec wykonawcy -----

  
-- INICJALIZACJA
  a: Klient(1);
  b: Klient(2);
  c: Klient(8);
  d: Klient(5);

  e: Wykonawca(1);
  f: Wykonawca(2);

begin 
  null; -- instrukcja pusta ale watki (zadania) klientow, wykonawcow oraz dyspozytora zostaly utworzone i dzialaja
end przydzial;

 

komentarz zamknięcia: Regulamin II.2.G
komentarz 5 czerwca 2020 przez DragonCoder Nałogowiec (36,500 p.)
edycja 5 czerwca 2020 przez DragonCoder

Czy zadajac 3 pytania odnosnie Twojej pracy domowej pomyslales raz, zeby okreslic gdzie lezy Problem, czy ktos ma zgadnac?

P.S

Powod zgloszenia: 

Paragraf 2, podpunkt B:

temat pytania powinien zwięźle i dokładnie określać problem,

Podpunkt D

w treści pytania należy dokładnie opisać swój problem i podać jak najwięcej szczegółów,

Podpunkt G

zabronione jest proszenie o gotowe rozwiązanie danego zadania/problemu,

A ze nie zostalo nic do precyzowana, tylko wstawiona tresc zadania, nie wiadomo jakie Autor ma intencje

Podobne pytania

–2 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 5 czerwca 2020 w Inne języki przez Nice guy Nowicjusz (160 p.)
–1 głos
0 odpowiedzi 87 wizyt
pytanie zadane 5 czerwca 2020 w Inne języki przez Nice guy Nowicjusz (160 p.)
0 głosów
1 odpowiedź 208 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...