Jaki będzie wynik tego pseudokodu?

Odpowiedz Nowy wątek
2019-05-15 10:37
0

Cześć
Chce się upewnić czy dobrze go rozumiem.

  1. Krok = 1, wynik = 0.5
  2. Krok = 2, wynik = 1.5
  3. Krok = 3, wynik = 5
  4. Krok = 4, wynik = 20.5
  5. Zatrzymaj = True
  6. Wynik = 16.5
  7. Goto i wyjście z fora.
    A więc na koniec krok = 4, wynik = 16.5
    Mam rację?
    Kod w załączniku
    Dzięki

Pozostało 580 znaków

2019-05-15 10:53
0

Byłoby miło gdybyś przepisał pseudokod do treści posta. Przełączanie się pomiędzy zakładkami nie zawsze jest proste.
Wg mnie masz rację (wynik = 16.5).

Przepisany:

BOOL zatrzymaj
INT krok, wynik_
REAL wynik
zatrzymaj = FALSE
wynik = 0
FOR krok = 1 TO 5
  wynik = (wynik * krok) + 0.5
  IF wynik > 16.5 THEN
    zatrzymaj = TRUE
  ENDIF
  IF zatrzymaj = TRUE THEN
    wynik = wynik - krok
    GOTO lbl010
  ENDIF
NEXT krok
lbl010:

Nie widzę użycia wynik_ więc nie jest to test na spostrzegawczość. Niedopatrzenie czy będzie użyte później?

edytowany 1x, ostatnio: Delor, 2019-05-15 11:17

Pozostało 580 znaków

2019-05-15 11:00
0

Nie chce siać zamętu, ale czy For nie ma być wykonany 5 razy?
to znaczy, że zatrzymaj nie zatrzymuje pętli, ale zmienia wartość 20,5 na 16.5 w czwartym kroku.

To zależy czy GOTO 1b1010 przerywa pętle? czy tylko wykonuje 1b1010 i wraca do 5 kroku

w 5 kroku :
wynik = (16.5 * 5) +0,5
// wynik = 83
if zatrzymaj true // tak
wynik = 83 - 5
// 78
i znów wykonuje GOTO 1b1010

Pomogło by mi ENDFOR - ale nie znam tego języka programowania, a chciałbym być pomocny

ENDFOR to NEXT krok. - Delor 2019-05-15 11:05

Pozostało 580 znaków

2019-05-15 11:03
0

To już działający pseudokod (Python) i, rzeczywiście daje takie wyniki, jak Przewidywałeś:

    stop = False
    wynik = 0.0
    wynik_ = 0
    krok = 1
    while krok <= 5:
        wynik = (wynik * krok) + 0.5
        if wynik > 16.5:
            stop = True
        if stop == True:
            wynik -= krok
            break
        krok += 1
    print(krok, wynik) # -> 4 16.5

Ciekawe po co ktos ustawia flage stop i sprawdza flage nizej buahahah powinn byc if wynik > 16.5 to wynik -= krok break - fporzo 2019-05-16 17:50
Nad tym się nie zastanawiam, podążam za instrukcjami:) - lion137 2019-05-16 18:05
Racja pytanie bylo na inny temat :) tak tylko sie zastanowilem po co dodtakowa opereacja na stosie - fporzo 2019-05-16 18:33
No, ten pseudokod, to w ogóle jest jak na odwal się, niepotrzebna zmienna, no i jest trywialny aż w oczy szczypie; nie na uczelnię:) - lion137 2019-05-16 18:35

Pozostało 580 znaków

2019-05-15 12:10
0

Jesteście pewni? Żebym przypału nie miał

Nie martw się najwyżej się czegoś nauczysz - jak to, że błędy zawsze można poprawić, albo że się TESTuje kod ;p - Ł Mar (born-kes) 2019-05-15 14:52

Pozostało 580 znaków

2019-05-15 14:56
1

Odnośnie przypału - tak naprawdę to nie jest aż tak istotne, jaki dasz wynik, ale jak będziesz umiał wyjaśnić nauczycielowi/wykładowcy, w jaki sposób ten algorytm działa.

Nawet, jak podasz błędną odpowiedź, ale jednocześnie pokażesz kolesiowi, że to rozumiesz i czaisz, to raczej "przypału" nie powinno być, a jeśli koleś jest w miarę ogarnięty, to powinien ocenić Cię wyżej, niż kogoś, kto po prostu poda odpowiedź, ale bez zrozumienia tego, w jaki sposób do niej doszedł.


That game of life is hard to play
I'm gonna lose it anyway
The losing card I'll someday lay
So this is all I have to say
edytowany 1x, ostatnio: cerrato, 2019-05-15 14:57

Pozostało 580 znaków

2019-05-15 15:08
0

Akurat w tym przypadku liczy się tylko wynik, nie ma możliwości wyjaśnienia

Wynik jest OK. Brawo sam policzyłeś. Statystyka pokazuje, że trujkowy uczeń ma 85% większe szanse na osiągnięcie sukcesu. Oceny nie liczą się aż tak bardzo jak umiejętność radzenia sobie ze stresem. Luzz :-) - Ł Mar (born-kes) 2019-05-15 16:10

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0