Anonym123 píše:učitel říkal, že podprogramy máme udělat jen vedle hlavního VD, do kterého se vloží jméno podprogramu.
Ano, podprogram bude mít vlastní vývojový diagram, který nakreslíš vedle toho hlavního programu. A nebo na další papír, pokud by se ti to dohromady na jeden nevešlo.
Takhle se provádí volání podprogramu a předání parametrů:
Hlavní program s názvem
"program" je jasný, třikrát za sebou v něm voláš proceduru
"vypis", pokaždé s jiným rozsahem číselné řady, kterou má vypsat.
Vedle něj je diagram podprogramu, úvodní terminátor opět obsahuje název, ale ještě navíc proměnné, do kterých se musí předat požadovaný rozsah! Deklarace v Pascalu by vypadala takhle:
(
Pozor! Došlo by k chybě při překladu, protože
"do" je příkaz Pascalu, takže není možné mít proměnnou se stejným názvem.)
Ta procedura obsahuje jen dva bloky, které by bylo potřeba ještě rozkreslit.
Závěrečný terminátor by mohl obsahovat návratovou hodnotu, pokud by šlo o funkci. Tady se nic nevrací.
A teď k tomu tvému obrázku.
Ten terminátor
"Začátek" bych si v tomhle případě odpustil, protože tohle není na úplném začátku programu, a navíc by v něm měl být název toho programu.
Potom tam máš za sebou dva cykly, které nedělají nic. To je blbost, navíc při práci s maticí musíš pracovat po řádcích a v každém řádku po sloupcích, takže to musí být vnořené cykly! Pomohlo by kdybys ten zdroják měl napsaný s klasickým pascalským odsazováním, ono je to pak na první pohled vidět přímo v kódu:
Kód: Vybrat vše
for i:=1 to 5 do
for j:= 1 to 5 do
begin
m1[i,j]:= random(9)+1;
m2[i,j]:= random(9)+1;
if m1[i,j] < m2[i,j] then
begin
m3[i,j]:= m1[i,j];
end
else
begin
m3[i,j]:= m2[i,j];
end;
end;
Index
"i" počítá řádky, index
"j" počítá sloupce, a v každé buňce se provedou dvě volání podprogramu
"random" a jedno podmíněné větvení. Ta volání tam vůbec nemáš. Tenhle kousek programu bych nakreslil takhle nějak:
- 14k29_.png (11.14 KiB) Zobrazeno 1241 x
Vypadá to složitě (pro sebe bych to udělal trochu jinak a použil víc šipek), tak si jeď prstem podle čar a sleduj co přesně se ve kterém místě děje. Místo otazníků bude ještě potřeba něco dopsat, tak popřemýšlej co. Hlavně u té podmínky není jasné která větev je pravdivá a která nepravdivá, takže je označ podle vašich zvyklostí.
Obě volání podprogramu předávají parametry a budou vracet nějaký výsledek, který je potřeba někam přiřadit. Pohled do zdrojáku ti napoví.