-
Notifications
You must be signed in to change notification settings - Fork 0
/
zahlenraten.f95
54 lines (40 loc) · 1.44 KB
/
zahlenraten.f95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
program zahlenraten
implicit none
real :: IntervallAnfang, IntervallEnde, IntervallMitte, IntervallMitteOld
integer :: Zaehler
character(len=1) :: Eingabe, weiteresSpiel
aussen:do
Zaehler = 0
Eingabe = ""
write(*,*) "Bitte das offene Intervall angeben"
read(*,*) IntervallAnfang, IntervallEnde
do while(IntervallEnde < IntervallAnfang)
write(*,*) "Bitte neues Intervallende eingeben"
read(*,*) IntervallEnde
end do
do while(Eingabe /= "=")
IntervallMitte = IntervallAnfang + nint((IntervallEnde - IntervallAnfang)/2)
if(IntervallMitte == IntervallMitteOld .OR. IntervallMitte == IntervallEnde .OR. IntervallMitte == IntervallAnfang) then
write(*,*) "Deine Eingaben widersprechen sich!"
exit aussen
end if
Zaehler = Zaehler + 1
write(*,*) "Ist deine Zahl kleiner, groesser oder gleich ", IntervallMitte
read (*,*) Eingabe
IntervallMitteOld = IntervallMitte
if(Eingabe == "<") then
IntervallEnde = IntervallMitte
end if
if(Eingabe == ">") then
IntervallAnfang = IntervallMitte
end if
if(Eingabe == "=") then
write(*,*) "Deine Zahl war die ", IntervallMitte
write(*,*) "Ich habe ", Zaehler, "Versuche gebraucht"
end if
end do
write(*,*) "Willst du noch einmal spielen? (y oder n)"
read(*,*) weiteresSpiel
if(weiteresSpiel == "n") exit
end do aussen
end program zahlenraten