Muszę na sobotę napisać program - niestety brak czasu jak i umiejętności mnie "bardzo powstrzymuje"
Może ktoś z dobrych ludzi zlituje się i pomoże.
Treść programu to:
Dany jest ciąg liczb, które stanowią wyniki pomiarów. Napisz program współbieżny wyznaczający histogram, tj. liczebność pomiarów w przedziałach <0,h), <h,2*h), ...
<(n-1)*h, n*h) dla danych n i h. Jeden proces zliczający wyznacza liczebność dla jednego przedziału. Pomiarów nie wolno przechowywać w tablicy. Zadanie pierwsze otrzymuje liczby (wartości pomiarów) od zadania czytającego dane, zlicza i zatrzymuje te, które należą do jego przedziału, tzn. <0,h), a pozostałe liczby przesyła do zadania drugiego. Zadanie drugie zlicza i zatrzymuje swoje liczby, tzn. te z przedziału <h, 2*h>, a pozostałe przesyła do zadania trzeciego itd. Każde z zadań wyświetla swój wynik. Zadbaj o to, aby wyniki były wyświetlane we właściwej kolejności. Do synchronizacji procesów wykorzystaj spotkania. Zastosuj tablicę zadań.
Uwaga: Przyjmij że sygnałem końca danych przesyłanych od jednego zadania do drugiego jest liczba -1.
Posiadam jeszcze "zarys" programu który trzeba zmodyfikować.
with Ada.text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure histogram is
k,n:integer;
begin
put("k="); get(k);
declare
task type licz is
entry numer(nr:integer);
entry przekaz(a,b: integer);
end licz;
P: array(1..k-1) of licz;
task body licz is
i: integer:=0;
liczba_n, liczba: integer;
begin
accept numer(nr: integer) do
i:=nr;
-- end numer;
a:=
b:=
loop
accept numer(x: integer) do
i:=nr;
end numer;
loop
accept przekaz(a,b:integer) do
liczba_n:=a;
liczba:=b;
end przekaz;
if liczba=0 then
put (liczba_n); put("mod"); put(k)
put("="); put(i); new_line;
else
-- przekazac do nastepnego zadania
end if;
end loop;
end licz;
put (--wydrukuj wynik
--przekaż -1 do procesu nastepnego
end licz;
begin --poczatek bloku
for i in 1..k-1 loop
P(i). numer(i);
end loop;
put("podaj ciag pomiarow, zakończ dane -1");
loop
get(n);
p(0).przekaz(n);
exit when n=-1;
end loop;
end;
end histogram;
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Nie możesz ściągać załączników na tym forum