Programowanie z pętlą

2011-09-11 17:32
wawpom
0

Mam problem z stworzeniem programu. Ma to polegać na tym, iż komputer pyta się np. "O jakim znaku myślę?" osoba wpisuje znak i jeśli zgadnie to będzie komunikat, że ci się udało a jak nie to ma tak wpisywać różne znaki, aż do odgadnięcia. Znak wpisany przez osobę ma byc porównany ze znakiem, który znajduje się w pamięci komputera. Trzeba tutaj uzyć pętli until bądź while. Osobiście wolałabym tą pierwszą.

edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-09-11 17:35
0

Znaczy, zlecasz nam napisanie tego programu? Ile płacisz? Czy też może masz kod, który nie działa i prosisz o radę? Jeśli to pierwsze, to temat powinien być w dziale praca, a jeśli drugie, to pokaż kod.

Pozostało 580 znaków

2011-09-11 17:42
wawpom
0
USES CRT;
VAR
znak:longint;
BEGIN
REPEAT
clrscr;
writeln('Zgadnij znak.')
read(znak)
UNTIL znak=$
writeln(Gratulacje, odgadles znak!)
readln;
END

myślałam nad czymś takim tylko, że tutaj to ja wybieram znak, który ma byc odgadnięty, nie wiem jak zrobic, żeby skorzystać "z pamięci komputera"

edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-09-11 17:49
0

losujesz kod ascii w zakresie np. kodów ascii znaków a-z, zamieniasz ten kod ascii na literę i przechowujesz ją w zmiennej typu char, następnie robisz tą pętlę dokładnie jak wyżej tylko zamiast $ wstawiasz nazwe tej zmiennej


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-09-11 17:57

Pozostało 580 znaków

2011-09-11 17:56
wawpom
0

dziękuję

Pozostało 580 znaków

2011-09-11 17:58
0

funkcje: Ord,Chr,Random,Randomize mogą okazać się bardzo pomocne :P


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-09-11 21:18
wawpom
0

czy taki program będzie odpowiedni? nie mam wgranego delphi, sprawdzę to dopiero w szkole

uses

Forms;

uses crt;
var znak_komputera:char
znak:char;

begin

znak_komputera:=chr(random(255)+1);
repeat
clrscr;
writeln('Zgadnij o jakim znaku mysli komputer. ');
read(znak);
until znak=znak_komputera;
writeln(‘Gratulacje, odgadles znak! ‘);
readln;

end.

ideone.com - kompilujesz i uruchamiasz online :) - piternet 2011-09-11 21:44

Pozostało 580 znaków

2011-09-11 21:37
0

znak_komputera:=chr(random(255)+1);
a jak ci wylosuje znak ktorego nie da się zapisać? lepiej np stablicuj znaki ktore da sie wpisac i losuj index z tej tablicy


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-09-11 23:17
0

Kolega się starał więc 'lekko' pomogę.

 uses crt;
 var znak,znak_komputera:char;

begin
 randomize;
 repeat
 znak_komputera:=chr(random(256));//FIXED
 until znak_komputera in ['a'..'z'];

 repeat
 clrscr;
 writeln('Zgadnij o jakim znaku mysli komputer. ');
 znak:=readkey;
 until znak=znak_komputera;
 writeln('Gratulacje, odgadles znak! ');
 readln;
end.

Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
edytowany 2x, ostatnio: payl, 2011-09-12 13:53
Trochę mało wydajne, ale najprostsze rozwiązanie - Sarrus 2011-09-12 08:02
nie jestem pewien czy to sie skompiluje, z tego co pamietam to pascal mial dosc scisla kontrole typow, wiec rzutowanie integer na char nie koniecznie musi sie udac. ja bym polecal raczej cos takiego znak_komputera:=Chr(random(Ord('z')-Ord('a')+1)+Ord('a')); - krwq 2011-09-12 13:46
Masz rację, zapomniałem o chr :-] . Ale rozwiązanie miało być proste, i w ten sposób można też łatwo zwiększyć zakres.Co do wydajności: Jeżeli boicie się wykonać 1000 razy random to znaczy że macie Pentium I 60Mhz. - payl 2011-09-12 13:53
ja takie coś robiłem, ale nie przy losowaniu liczb z zakresu. randoma użyłem np do rozwiązywania układanki "Piętnastka" - krwq 2011-09-12 14:00

Pozostało 580 znaków

2011-09-12 16:51
wawpom
0

dzięki :)

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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