binary 206 – Fd. Medlem
Postad: 13 sep 2020 16:45

For-loop

Hej.

Jag ska skriva ett program där användaren ska knappa in valfritt positivt heltal. Detta heltal ska sedan skrivas ut i samma antal O, där varannan är stor och varannan liten.
Dvs; om jag knappar in 6 ska "OoOoOo" skrivas ut.

Jag har testat att lösa denna på lite olika sätt, men kommer inte fram till hur jag ska göra.
Än så länge har jag kommit fram till att det antagligen är bäst att använda en for-loop eftersom jag vet exakt hur många gånger det ska loopas. 

Jag fastnar sedan på hur jag ska få varannan stor och varannan liten. Jag har testat att använda if-satser i loopen, men där blir det fel antal som skrivs ut, men alla har rätt storlek.

Hur ska jag tänka för att komma fram till hur jag ska skriva denna kod?

Aerius 504 – Fd. Medlem
Postad: 13 sep 2020 16:57

Det låter som du tänker rätt. Vilket programmeringsspråk gäller det? Hur ser koden ut?

binary 206 – Fd. Medlem
Postad: 13 sep 2020 17:25

Detta är i Ada.

Koden ser ut såhär, just denna fungerar inte som den ska, men det är den senaste jag testade:

A:Integer;
B:integer;


Put("Mata in antal: ");
Get(A);

B=0;
for I in 1..A loop

if A=B+1 then
put ("O");
end if;

if A=B+2 ten
put("Oo");

end if;

B:=2
end loop;

Jag tänker att jag måste multiplicera "Oo" med B på något sätt, men samtidigt blir det då fel om det är ett udda tal som skrivits in. 

Laguna Online 30500
Postad: 13 sep 2020 17:56

Hur kan den koden skriva ut någonting alls? B är bara 0 eller 2, och A är t.ex. 6.

Lindehaven 820 – Lärare
Postad: 13 sep 2020 18:01

Prova operatorn mod. Har ingen Ada-kompilator i mobilen men nånting ungefär såhär:

for I in 1..A loop

  if I mod 2 = 0 then

    put ("O");

  else

    put("o")

  end if;

binary 206 – Fd. Medlem
Postad: 13 sep 2020 18:11
Laguna skrev:

Hur kan den koden skriva ut någonting alls? B är bara 0 eller 2, och A är t.ex. 6.

Ah, ser nu att jag ändrat lite för mycket. Tidigare hade jag att det hela tiden las på 1 på B för varje varv som gick. 

Prova operatorn mod. Har ingen Ada-kompilator i mobilen men nånting ungefär såhär:

Det funkade! Dock skrivs det ut i fel ordning enligt din kod, ändrade så lilla o ligger först i loopen, då blev det rätt.  Har haft svårt att förstå hur modulus fungerat tidigare då jag inte hittat någon bra förklaring, men det verkar ju trots allt inte vara så komplicerat.

Svara
Close