Case
код:
Цитата:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,c,d,e,f,g,n,s:integer;
label nachalo;
begin
//Êîìïüþòåð çàãàäûâàåò ÷èñëî.
randomize;
a:=random(9);
b:=random(9);
c:=random(9);
//Îáíóëÿåì ïåðåìåííûå
d:=0;
e:=0;
f:=0;
g:=0;
n:=0;
s:=0;
//Âçàèìîäåéñòâèå ñ ïîëüçîâàòåëåì
//(ïîëüçîâàòåëü ââîäèò ÷èñëî)
nachalo:
writeln('vvedite trehznachnoe chislo:');
readln(d);
//Åñëè ÷èñëî â ðàìêàõ 100-999,òî íà÷èíàåì ðàáîòó:
IF (d<=999)and(d>=100) THEN
BEGIN
//Ðàçáèâàåì ÷èñëî ïîëüçîâàòåëÿ íà 3 ñîñòàâëÿþùèå
e:=d div 100;
f:=(d div 10)-(e*10);
g:=d mod 10;
//Ïðîâåðÿåì,ðàâíû ëè îíè ñîñòàâëÿþùèì ÷èñëà êîìïüþòåðà
case a of
e:begin
s:=s+1;
n:=n+1;
end;
f:s:=s+1;
g:s:=s+1;
end;
case b of
f:begin
s:=s+1;
n:=n+1;
end;
e:s:=s+1;
g:s:=s+1;
end;
case c of
g:begin
s:=s+1;
n:=n+1;
end;
f:s:=s+1;
e:s:=s+1;
end;
//Åñëè ÷èñëî êîìïà=÷èñëó ïîëüçîâàòåëÿ,è îíè
//ñòîÿò íà ñâîèõ ìåñòàõ,òî ïîçäðàâëÿåì åãî.
if (s=n)and(n=3) then
begin
writeln('******** VI UGADALI ! ********');
writeln('Nazmite <Enter> dla zaveshnia.');
readln:
end
else
//Åñëè ÷èñëî åùå íå óãàäàíî,âûâîäèì ðåçóëüòàò
//è ïðîñèì ââåñòè íîâîå ÷èñëî.
begin
writeln('Vash variant -> 'e,f,g,' Ugadano:',s,'. na svoih mestah:',n);
goto nachalo;
end;
END
ELSE
//Åñëè ÷èñëî ìåíüøå 100 èëè áîëüøå 999,òî
//âûâîäèì ñîîáùåíèå îá îøèáêå.
begin
writeln('Dotustimie znachenia:100-999');
readln;
end;
end.
{$APPTYPE CONSOLE}
uses
SysUtils;
var
a,b,c,d,e,f,g,n,s:integer;
label nachalo;
begin
//Êîìïüþòåð çàãàäûâàåò ÷èñëî.
randomize;
a:=random(9);
b:=random(9);
c:=random(9);
//Îáíóëÿåì ïåðåìåííûå
d:=0;
e:=0;
f:=0;
g:=0;
n:=0;
s:=0;
//Âçàèìîäåéñòâèå ñ ïîëüçîâàòåëåì
//(ïîëüçîâàòåëü ââîäèò ÷èñëî)
nachalo:
writeln('vvedite trehznachnoe chislo:');
readln(d);
//Åñëè ÷èñëî â ðàìêàõ 100-999,òî íà÷èíàåì ðàáîòó:
IF (d<=999)and(d>=100) THEN
BEGIN
//Ðàçáèâàåì ÷èñëî ïîëüçîâàòåëÿ íà 3 ñîñòàâëÿþùèå
e:=d div 100;
f:=(d div 10)-(e*10);
g:=d mod 10;
//Ïðîâåðÿåì,ðàâíû ëè îíè ñîñòàâëÿþùèì ÷èñëà êîìïüþòåðà
case a of
e:begin
s:=s+1;
n:=n+1;
end;
f:s:=s+1;
g:s:=s+1;
end;
case b of
f:begin
s:=s+1;
n:=n+1;
end;
e:s:=s+1;
g:s:=s+1;
end;
case c of
g:begin
s:=s+1;
n:=n+1;
end;
f:s:=s+1;
e:s:=s+1;
end;
//Åñëè ÷èñëî êîìïà=÷èñëó ïîëüçîâàòåëÿ,è îíè
//ñòîÿò íà ñâîèõ ìåñòàõ,òî ïîçäðàâëÿåì åãî.
if (s=n)and(n=3) then
begin
writeln('******** VI UGADALI ! ********');
writeln('Nazmite <Enter> dla zaveshnia.');
readln:
end
else
//Åñëè ÷èñëî åùå íå óãàäàíî,âûâîäèì ðåçóëüòàò
//è ïðîñèì ââåñòè íîâîå ÷èñëî.
begin
writeln('Vash variant -> 'e,f,g,' Ugadano:',s,'. na svoih mestah:',n);
goto nachalo;
end;
END
ELSE
//Åñëè ÷èñëî ìåíüøå 100 èëè áîëüøå 999,òî
//âûâîäèì ñîîáùåíèå îá îøèáêå.
begin
writeln('Dotustimie znachenia:100-999');
readln;
end;
end.
Цитата: DarkKnight
Вот.программа,которая загадывает число,пользователь должен его отгадать.Все вроде правильно.Проблема в case.
код:
код:
Если честно, то лично мне ничего не понятно, и что за проблема в case???
Код:
здесь код напиши
Цитата:
Код:
var
a,b,c,d,e,f,g,n,s:integer;
//...
case a of
e: begin
s:=s+1;
n:=n+1;
end;
f: s:=s+1;
g: s:=s+1;
end;
//...
a,b,c,d,e,f,g,n,s:integer;
//...
case a of
e: begin
s:=s+1;
n:=n+1;
end;
f: s:=s+1;
g: s:=s+1;
end;
//...
Так бы сразу и сказал, что компилятор ругается...
Case таким способом не работет. e, f, g - должны быть не переменными, а константами.
жопа,блин.
Цитата: DarkKnight
жопа,блин.
Мало того, в case не запихиваются неперечисляемые типы (string например) :(
да я уже с IF сделал,если кому-то надо,могу выложить исходник...