Jaki będzie wynik tego pseudokodu?

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
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?

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

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
0

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

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ł.

0

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

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