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?
Det låter som du tänker rätt. Vilket programmeringsspråk gäller det? Hur ser koden ut?
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.
Hur kan den koden skriva ut någonting alls? B är bara 0 eller 2, och A är t.ex. 6.
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;
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.