Forum » Programiranje » Diagram poteka, ki x izpiše x-krat
Diagram poteka, ki x izpiše x-krat
SLO_Matej ::
Pozdravljeni!
To šolsko leto imam prvič programiranje in za domačo nalogo moramo napisati diagram poteka, ki št. izpiše tolikokrat, kolikor je njegova vrednost. Sedaj pa me zanima, če mi zna kdo svetovati, kako bi napisal ta diagram poteka in tudi razlaga, bi bila zaželena. Potem pa moramo narediti še sled diagrama poteka za preizkus. To pa mislim, da bo šlo. Problem imam sedaj pri izdelavi diagrama.
LP
Matej
To šolsko leto imam prvič programiranje in za domačo nalogo moramo napisati diagram poteka, ki št. izpiše tolikokrat, kolikor je njegova vrednost. Sedaj pa me zanima, če mi zna kdo svetovati, kako bi napisal ta diagram poteka in tudi razlaga, bi bila zaželena. Potem pa moramo narediti še sled diagrama poteka za preizkus. To pa mislim, da bo šlo. Problem imam sedaj pri izdelavi diagrama.
LP
Matej
ERGY ::
Prvo ti pokaži kako bi naredil, potem ti bodo ostali svetovali naprej.
Zgodovina sprememb…
- spremenilo: ERGY ()
SLO_Matej ::
Najprej v elipso napišeš npr. izpiši, nato v paralelogram vneseš spremenljivko x (je potrebno tukaj tudi pomožno?), nato pa ne vem kako bi nadaljeval. Zdi se mi, da bi bilo potrebno uporabiti zanko, vendar nisem prepričan kako.
SLO_Matej ::
Ok, ampak ne rabim kode. Narediti moram le diagram poteka in sled diagrama. Primer nekega diagrama poteka na spodnji sliki. Torej, narediti moram nekaj takega. Da si lažje predstavljaš kako bi naredil program, kateremu vneseš št., npr. 4 in potem ti program štirikrat izpiše št. 4. Torej, le grafični diagram poteka in ne kode.
Zgodovina sprememb…
- zavaroval slike: Primoz ()
black ice ::
No na tem primeru: daš tam, kjer imaš odgovor ne (i < x - izpiši še enkrat), kjer imaš odgovor da pa (i = x in nadaljuješ).
Samo moje laično mišljenje.
Samo moje laično mišljenje.
SLO_Matej ::
st0jko ::
Kot vidiš sem jaz v svojem primeru na mesto i dal y, in mu na začetku nastavil vrednost 0. Potem vsakič ko izpišeš x, y povečaš za 1(y++). Potem preveriš če je y = x, in če je, zanko zaključiš, sicer ponovno izpišeš x in y povečaš še za 1.
keks?
Zgodovina sprememb…
- spremenil: st0jko ()
WarpedGone ::
Moram te pohvalit, da se vsaj trudiš sam rešit. Prepogosta praksa je, da folk pričakuje komplet rešitev, katero bo lahko oddal.
V tvojem primeru je logika programa po človeško povedana: X izipiši tolikokrat, kolikor je X velik. Vendar če hočeš vedet kdaj končat, moraš vedet kolikokrat si X že izpisal oz. kolikokrat ga še moraš.
Imaš dve enakovredni možnosti:
- ali je števec izpisov na začetku 0 in ga ob vsakem izpisu X povečaš za 1 in nato preveriš, ali si ga že izpisal X-krat
- ali pa je na začetku števec enak Xu in ob vsakem izpisu X-a števec 1 zmanjšaš. Ko prideš na 0 nehaš
V tvojem primeru je logika programa po človeško povedana: X izipiši tolikokrat, kolikor je X velik. Vendar če hočeš vedet kdaj končat, moraš vedet kolikokrat si X že izpisal oz. kolikokrat ga še moraš.
Imaš dve enakovredni možnosti:
- ali je števec izpisov na začetku 0 in ga ob vsakem izpisu X povečaš za 1 in nato preveriš, ali si ga že izpisal X-krat
- ali pa je na začetku števec enak Xu in ob vsakem izpisu X-a števec 1 zmanjšaš. Ko prideš na 0 nehaš
Zbogom in hvala za vse ribe
Lion29 ::
1. zacetek
2. VNESI x
3. i = 0
4. i = i + 1
5. IZPISI x
6. ALI JE i enak x
|
| ---------- NE -> pojdo na 4.
|
DA
|
7. KONEC
To je pravilni algoritem.... v bistvu je logicno zelo preprost... samo sledi diagramu. V prvem koraku recimo vneses za X stevilko 5...
v drugem dolocis I-ju 0;
nato i-ju pristejes 1 (da dobis stevilko 1).... in izpises x (20)... potem preveris ce je i (ki je v tem koraku 1) enak X-u (20)ker ni, mora algoritem izvajanje ponoviti tam ko i-ju pristeje 1. Ker ima sedaj i ZE vrednost 1, bo ob dodatku +1 imel vrednost 2... spet gre preverit ali je i (2) enak X (20) in ker ni, bo spet sel pristevat 1... to bo izvajal toliko casa, dokler i nebo cisto enak X (20)... ko bo pogoj izpolnjen se koda neha izvajat
2. VNESI x
3. i = 0
4. i = i + 1
5. IZPISI x
6. ALI JE i enak x
|
| ---------- NE -> pojdo na 4.
|
DA
|
7. KONEC
To je pravilni algoritem.... v bistvu je logicno zelo preprost... samo sledi diagramu. V prvem koraku recimo vneses za X stevilko 5...
v drugem dolocis I-ju 0;
nato i-ju pristejes 1 (da dobis stevilko 1).... in izpises x (20)... potem preveris ce je i (ki je v tem koraku 1) enak X-u (20)ker ni, mora algoritem izvajanje ponoviti tam ko i-ju pristeje 1. Ker ima sedaj i ZE vrednost 1, bo ob dodatku +1 imel vrednost 2... spet gre preverit ali je i (2) enak X (20) in ker ni, bo spet sel pristevat 1... to bo izvajal toliko casa, dokler i nebo cisto enak X (20)... ko bo pogoj izpolnjen se koda neha izvajat
Founder and CTO @ Article-Factory.ai
Lion29 ::
stojko... tvoj je napacen, ker bo (x+1) krat izpisal x
Founder and CTO @ Article-Factory.ai
st0jko ::
Si prepričan? Meni se zdi prav.
popravek: No.. Prav je samo če za x ne vpišeš 0 :)
popravek: No.. Prav je samo če za x ne vpišeš 0 :)
keks?
Zgodovina sprememb…
- spremenil: st0jko ()
Lion29 ::
pa pejdi delat... torej x=5
0..izpise 5
1. izpise 5
2. izpise 5
3. izpise 5
4. izpise 5
5. izpise 5
kolko krat je to 5?
0..izpise 5
1. izpise 5
2. izpise 5
3. izpise 5
4. izpise 5
5. izpise 5
kolko krat je to 5?
Founder and CTO @ Article-Factory.ai
st0jko ::
Petič ne izpiše več x. Ko vidi da je y=x takoj konča izvajanje, ne izpiše še enkrat.
0) izpiše 5, y = 1; x=y je false
1) izpiše 5, y = 2; x=y je false
2) izpiše 5, y = 3; x=y je false
3) izpiše 5, y = 4; x=y je false
4) izpiše 5, y = 5; x=y je true
end
Edini problem je, če za x daš 0, takrat enkrat že izpiše x, in potem x ne bo več nikoli enak y, in x se bo izpiseval v nedogled. To rešiš tako, da že preden prvič izpišeš x, dodaš pogoj (x=y?) in že takrat končaš program, če sta enaka.
0) izpiše 5, y = 1; x=y je false
1) izpiše 5, y = 2; x=y je false
2) izpiše 5, y = 3; x=y je false
3) izpiše 5, y = 4; x=y je false
4) izpiše 5, y = 5; x=y je true
end
Edini problem je, če za x daš 0, takrat enkrat že izpiše x, in potem x ne bo več nikoli enak y, in x se bo izpiseval v nedogled. To rešiš tako, da že preden prvič izpišeš x, dodaš pogoj (x=y?) in že takrat končaš program, če sta enaka.
keks?
Lion29 ::
problem je, ker ti izpises preden preveris, ce je y=5, torej izpises 6-ic in potem zakljucis
Founder and CTO @ Article-Factory.ai
SLO_Matej ::
Mi zna potem kdo povedati kaj naj popravim pri diagramu poteka ali pa da mi kar on popravi na diagramu (npr. v Slikarju ali čem podobnem)? Da potem vidim, kakšen diagram je in ga z vašo pomočjo poskušam razumeti.
technolog ::
Evo sm ti jst naredu uslugo pa sm ti naredu kako more zgledat:
http://progchart.co.cc/
ime: test1
geslo: ljudje
Potem pa odpri datoteko "Programcek". Lahko tud klikneš "Shrani in zaženi", da vidiš kako deluje. Lah klikneš tud na zavihek spremenljivke, da vidiš kako se program izvaja.
http://progchart.co.cc/
ime: test1
geslo: ljudje
Potem pa odpri datoteko "Programcek". Lahko tud klikneš "Shrani in zaženi", da vidiš kako deluje. Lah klikneš tud na zavihek spremenljivke, da vidiš kako se program izvaja.
Zgodovina sprememb…
- spremenil: technolog ()
SLO_Matej ::
Aha, sedaj mi je tole že nekoliko bolj jasno. Še malo vaje, pa mislim, da bo.
Hvala technolog.
Hvala technolog.
technolog ::
Ni problema :) Sam še preriš tole na list.
Dovolim ti, da še naprej uporabljaš tale account (jst sm itak to zadevo sprogramiral). Mal si poglej še druge programčke, k jih maš. Boš v prednosti pred sošolci :) Pa pod "Pomoč" maš en pdf k razloži zadevo.
Moje mnenje je, da se da prek tega zelo dobro razvit programersko logiko. Mislu sm it enkrat na Vegovo in ponudit zadevo zastonj v uporabo, pa pol nism mel časa. Tako da lah pokažeš sošolcem pa pol men reč, da jim naredim gesla pa račune al pa teb dam šolsko kodo.
Dovolim ti, da še naprej uporabljaš tale account (jst sm itak to zadevo sprogramiral). Mal si poglej še druge programčke, k jih maš. Boš v prednosti pred sošolci :) Pa pod "Pomoč" maš en pdf k razloži zadevo.
Moje mnenje je, da se da prek tega zelo dobro razvit programersko logiko. Mislu sm it enkrat na Vegovo in ponudit zadevo zastonj v uporabo, pa pol nism mel časa. Tako da lah pokažeš sošolcem pa pol men reč, da jim naredim gesla pa račune al pa teb dam šolsko kodo.
Zgodovina sprememb…
- spremenil: technolog ()
SLO_Matej ::
Ok, res ti hvala še enkrat. Sicer mi je eden izmed sošolcev že pomagal ustvariti diagram poteka, ker je bilo za domačo nalogo do včeraj. Vendar sem ga sedaj še nekoliko bolj razumel, ko sem videl tole in tudi v prihodnosti mislim, da mi bo znalo priti prav. Če bo še kdo potreboval pomoč, pa ti bom sporočil za uporabniški račun.
Lep dan želim
Lep dan želim
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12102 (8937) | Ericssony |
» | [C++] Dve malo težji nalogiOddelek: Programiranje | 2242 (1858) | roli |
» | Pomoc pri C++Oddelek: Programiranje | 1293 (1198) | Reliant |
» | čitaj X, izpiši x??? KAJ???Oddelek: Programiranje | 1804 (1469) | Baja |
» | Programerska naloga. A ne vem no.Oddelek: Programiranje | 1262 (1062) | noraguta |