2. Övningar

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
(Ny sida: '''Vad får a för värde om inmatningen från tangentbordet är 22 <retur> 42 <retur>? <pre>a = float(input())</pre> '''Svar:'''<span style="color:white"> 22</span> '''Vad får a för v...)
Rad 1: Rad 1:
 +
==Inläsning==
 +
'''Vad får a för värde om inmatningen från tangentbordet är 22 <retur> 42 <retur>?
'''Vad får a för värde om inmatningen från tangentbordet är 22 <retur> 42 <retur>?
<pre>a = float(input())</pre>
<pre>a = float(input())</pre>
Rad 20: Rad 22:
a = float(input())</pre>
a = float(input())</pre>
'''Svar:'''<span style="color:white"> 67</span>
'''Svar:'''<span style="color:white"> 67</span>
 +
 +
 +
==Villkor==
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 12 och b = 12?'''
 +
<pre>if a < b:
 +
print("X", end=" ")
 +
print("Y")</pre>
 +
'''Svar:'''<span style="color:white"> "Y"</span>
 +
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 4 och b = 4?'''
 +
<pre>if a <= b:
 +
print("X", end=" ")
 +
print("Y")</pre>
 +
'''Svar:'''<span style="color:white"> "X Y"</span>
 +
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 12 och b = 17?'''
 +
<pre>if a < b:
 +
print("X", end=" ")
 +
print("Y", end=" ")
 +
print("Z")</pre>
 +
'''Svar:'''<span style="color:white"> "X Y Z"</span>
 +
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 8 och b = 6?'''
 +
<pre>if a <= b:
 +
print("X", end = " ")
 +
print("Y", end = " ")
 +
print("Z")</pre>
 +
'''Svar:'''<span style="color:white"> "Z"</span>
 +
 +
 +
==Else-del i if-sats==
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 13 och b = 7?'''
 +
<pre>if a <= b:
 +
print("A", end=" ")
 +
print("B", end=" ")
 +
else:
 +
print("C", end=" ")
 +
print("D")</pre>
 +
'''Svar:'''<span style="color:white"> "C D"</span>
 +
 +
 +
'''Vad kommer att skrivas ut av följande program om a = 36?'''
 +
<pre>MITTEN = 42
 +
if a <= MITTEN:
 +
print("A", end=" ")
 +
print("B", end=" ")
 +
else:
 +
print("C", end=" ")
 +
print("D")</pre>
 +
'''Svar:'''<span style="color:white"> "A B D"</span>
 +
 +
 +
==Flera villkor==
 +
 +
'''Vad kommer min, max och b att ha för värden efter följande satser om a = -2?'''
 +
<pre>min = 5
 +
max = 10
 +
b = 0
 +
 +
if a < min:
 +
min = a
 +
elif a > max:
 +
max = a
 +
else:
 +
b += 1</pre>
 +
'''Svar:''' min =<span style="color:white"> -2 </span>, max =<span style="color:white"> 10 </span>samt b =<span style="color:white"> 0</span>
 +
 +
 +
==Likhet==
 +
 +
''Vad skrivs ut om x = 5 och y = 3?'''
 +
<pre>if x > 2:
 +
if y > 4:
 +
print("blå")
 +
elif x == y:
 +
print("gul")
 +
else:
 +
print("röd")
 +
else:
 +
print("grön")</pre>
 +
'''Svar:'''<span style="color:white"> "röd"</span>
 +
 +
 +
==While-slingor==
 +
 +
'''Vad skrivs ut av följande program?'''
 +
<pre>i = 0
 +
v = 1
 +
while i < 5:
 +
v = i * v
 +
print(v)
 +
i += 1</pre>
 +
'''Svar:'''<span style="color:white"> 0 0 0 0 0</span>
 +
 +
 +
==Hur exekveras programmet?==
 +
 +
'''I vilken ordning exekveras följande program?'''
 +
<pre>A
 +
while B:
 +
C
 +
D</pre>
 +
Vi antar följande förutsättningar:
 +
* Programmet går endast tre varv.
 +
* A är en godtycklig tilldelningssats.
 +
* B är en godtycklig villkorssats som är sann i tre varv.
 +
* C och D är godtyckliga utskriftssatser.
 +
 +
 +
# ABCD
 +
# ACCCD
 +
# ABCCCD
 +
# ABCBCBCD
 +
# ABCBCBCBD
 +
# ABCABCABCD
 +
 +
'''Svar:'''<span style="color:white"> 5. ABCBCBCBD</span>
 +
 +
 +
==En oändlig while-slinga==
 +
 +
'''Hur många gånger skrivs texten "hej" när man kör följande program?'''
 +
<pre>v = 5
 +
while v > 5:
 +
print("hej")
 +
v += 1
 +
print("hej")</pre>
 +
'''Svar:'''<span style="color:white"> En gång</span>
 +
 +
 +
'''Kommer följande program skriva ut texten "hej då"? Om inte, varför?'''
 +
<pre>i = 0
 +
while i < 10:
 +
print("hej")
 +
print("hej då")</pre>
 +
'''Svar:'''<span style="color:white"> Nej, eftersom while-satsen är en oändlig slinga och print "hej då" är inte en del av while-satsen.</span>
 +
 +
 +
==Struktur på while-sats==
 +
 +
'''Vad är det som är fel i följande while-sats? Programmet ska skriva ut "hej" oändligt antal gånger.'''
 +
<pre>i = 1
 +
WHILE i < 10:
 +
print("hej")</pre>
 +
 +
# 'WHILE' och 'print("hej")' måste stå rakt under varandra och ej vara förskjutna.
 +
# i = 1 ska tas bort.
 +
# i < 10 ska ändras till i == 1.
 +
# Ordet 'WHILE' ska stå med små bokstäver.
 +
 +
'''Svar:'''<span style="color:white"> 4. Ordet 'WHILE' ska stå med små bokstäver
 +
</span>
 +
 +
 +
==När ska man använda en while-sats?==
 +
 +
'''I vilka av följande tillfällen kan man med fördel använda sig av while-satser?'''
 +
# När man vill att programmet ska skriva ut samma text flera gånger efter varandra.
 +
# När man vill skriva ut alla tal mellan 5 och 95.
 +
# När man vill utföra en sak 10 gånger.
 +
'''Svar:'''<span style="color:white"> Vid alla tre tillfällena!</span>

Versionen från 5 april 2012 kl. 08.08

Innehåll

Inläsning

Vad får a för värde om inmatningen från tangentbordet är 22 <retur> 42 <retur>?

a = float(input())

Svar: 22


Vad får a för värde om inmatningen från tangentbordet är 17 <retur> 12 <retur>?

a = float(input())
a = float(input())

Svar: 12


Vad får a för värde om inmatningen från tangentbordet är 22 <retur> 35 <retur>?

a = float(input())
b = float(input())

Svar: 22


Vad får a för värde om inmatningen från tangentbordet är 19 <retur> 67 <retur>?

b = float(input())
a = float(input())

Svar: 67


Villkor

Vad kommer att skrivas ut av följande program om a = 12 och b = 12?

if a < b:
    print("X", end=" ")
print("Y")

Svar: "Y"


Vad kommer att skrivas ut av följande program om a = 4 och b = 4?

if a <= b:
    print("X", end=" ")
print("Y")

Svar: "X Y"


Vad kommer att skrivas ut av följande program om a = 12 och b = 17?

if a < b:
    print("X", end=" ")
    print("Y", end=" ")
print("Z")

Svar: "X Y Z"


Vad kommer att skrivas ut av följande program om a = 8 och b = 6?

if a <= b:
    print("X", end = " ")
    print("Y", end = " ")
print("Z")

Svar: "Z"


Else-del i if-sats

Vad kommer att skrivas ut av följande program om a = 13 och b = 7?

if a <= b:
    print("A", end=" ")
    print("B", end=" ")
else:
    print("C", end=" ")
print("D")

Svar: "C D"


Vad kommer att skrivas ut av följande program om a = 36?

MITTEN = 42
if a <= MITTEN:
    print("A", end=" ")
    print("B", end=" ")
else:
    print("C", end=" ")
print("D")

Svar: "A B D"


Flera villkor

Vad kommer min, max och b att ha för värden efter följande satser om a = -2?

min = 5
max = 10
b = 0

if a < min:
    min = a
elif a > max:
    max = a
else:
    b += 1

Svar: min = -2 , max = 10 samt b = 0


Likhet

Vad skrivs ut om x = 5 och y = 3?'

if x > 2:
  if y > 4:
    print("blå")
  elif x == y: 
    print("gul")
  else: 
    print("röd")
else:
  print("grön")

Svar: "röd"


While-slingor

Vad skrivs ut av följande program?

i = 0
v = 1
while i < 5:
  v = i * v
  print(v)
  i += 1

Svar: 0 0 0 0 0


Hur exekveras programmet?

I vilken ordning exekveras följande program?

A
while B:
    C
D

Vi antar följande förutsättningar:

  • Programmet går endast tre varv.
  • A är en godtycklig tilldelningssats.
  • B är en godtycklig villkorssats som är sann i tre varv.
  • C och D är godtyckliga utskriftssatser.


  1. ABCD
  2. ACCCD
  3. ABCCCD
  4. ABCBCBCD
  5. ABCBCBCBD
  6. ABCABCABCD

Svar: 5. ABCBCBCBD


En oändlig while-slinga

Hur många gånger skrivs texten "hej" när man kör följande program?

v = 5
while v > 5:
  print("hej")
  v += 1
print("hej")

Svar: En gång


Kommer följande program skriva ut texten "hej då"? Om inte, varför?

i = 0
while i < 10:
  print("hej")
print("hej då")

Svar: Nej, eftersom while-satsen är en oändlig slinga och print "hej då" är inte en del av while-satsen.


Struktur på while-sats

Vad är det som är fel i följande while-sats? Programmet ska skriva ut "hej" oändligt antal gånger.

i = 1
WHILE i < 10:
  print("hej")
  1. 'WHILE' och 'print("hej")' måste stå rakt under varandra och ej vara förskjutna.
  2. i = 1 ska tas bort.
  3. i < 10 ska ändras till i == 1.
  4. Ordet 'WHILE' ska stå med små bokstäver.

Svar: 4. Ordet 'WHILE' ska stå med små bokstäver


När ska man använda en while-sats?

I vilka av följande tillfällen kan man med fördel använda sig av while-satser?

  1. När man vill att programmet ska skriva ut samma text flera gånger efter varandra.
  2. När man vill skriva ut alla tal mellan 5 och 95.
  3. När man vill utföra en sak 10 gånger.

Svar: Vid alla tre tillfällena!