Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
ВнизПаскаль. в чем ошибка? Найти похожие ветки
← →
Troy (2004-02-28 18:04) [0]Первый вариант:
program calc;
uses crt;
label count;
var a,c,result:real;b:char;
begin
clrscr;
count:
write(">");
read(a);read(b);read(c);
if b="+" then result:=a+c;
if b="-" then result:=a-c;
if b="*" then result:=a*c;
if b="/" then result:=a/c;
writeln ("result =",result:5:5);
goto count;
end.
после ввода символа b writeln"ит result = 0.5002 незаваисимо от переменной a.
Второй вариант:
program calc;
uses crt;
label count;
var a,c,result:real;b:char;
begin
clrscr;
count:
write(">");
read(a);read(b);read(c);
case b of
"+": result:=a+c;
"-": result:=a-c;
"*": result:=a*c;
"/": result:=a/c;
end;
writeln ("result =",result:5:5);
goto count;
end.
то же самое.
← →
Palladin (2004-02-28 18:20) [1]попробуй вместо read readln
← →
Gero (2004-02-28 18:30) [2]> read(a);read(b);read(c);
Ошибка здесь, все остальное правильно. Попробуй ReadKey для Char"a.
← →
Sam Stone (2004-02-28 18:42) [3]
> Попробуй ReadKey для Char"a.
readln"а достаточно
Просто после ввода а "проглатывается" ввод b
2Troy
дебаг ;)
← →
TButton (2004-02-28 18:45) [4]интересно. почему проглатывается. вроде бы как read заканчивается с нажатием enter"а...
← →
Troy (2004-02-28 20:34) [5]я думал мож у мя с компилятором беда какая...
ладно сча попробую ридкей
← →
Troy (2004-02-28 20:38) [6]хм. и гдеж этот ReadKey взять?
это в дельфи он наверно есть... мне то паскаль нужен.
← →
Troy (2004-02-28 20:40) [7]вернее ест ьто он есть. как его юзать.
← →
Gero (2004-02-28 21:21) [8]> как его юзать
var C : Char;
C := ReadKey;
Хотя в TP Ctrl + F1 отлично работает...
← →
TButton (2004-02-28 22:33) [9]в Дельфи ридкея нет, ридкей как раз в CRT прописан.
← →
Defunct (2004-02-28 22:35) [10]Не проще сделать синтаксический разбор строки?
или хотя бы посимвольный ввод?
← →
TButton (2004-02-28 22:37) [11]это смотря кто будет делать
← →
Troy (2004-02-28 22:43) [12]эээ. посимвольно не получится...
← →
Gero (2004-02-28 23:16) [13]> Troy ©
Так считывай строку, а потом - Copy, Pos...
← →
Troy (2004-02-28 23:48) [14]хм. как можно на одной консольной строке ввести 3 переменные.
после read(x) курсор вниз спрыгивает... как ему запретить это.
← →
Gero (2004-02-29 00:22) [15]var
C : Char;
S : string;
...
S := "";
repeat
C := Readkey;
if Ord(C) in [32..255] then
S := S + C;
until C = #13;
← →
YurikGl (2004-02-29 00:27) [16]{$A+,B-,D+,E-,F-,G+,I-,L+,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y+}
{$M 1024,0,655360}
uses Crt;
Type
SC=record
C:Char;
A:Byte;
end;
VAR
Ch:Char;
I1,i2:Integer;
Ekr:Array[1..25,1..80]of SC absolute $B800:$0000;
BEGIN
Textmode(3);
ClrScr;
Ekr[1,2].C:="A";
Ekr[1,2].A:=$12;
For i1:=1 to 25 do
For i2:=1 to 80 do begin
Ekr[i1,i2].C:="a";
Ekr[i1,i2].A:=i1+i2;
end;
Ch:=Readkey;
IF Ch=#0 Then Ch:=Readkey;
END.
← →
Германн (2004-02-29 02:09) [17]Хех, давно не писАл "диалоговые" ДОС программы, но в любом случае в них следовало, что типа:
Writeln("Введите что-то");
Readln(переменная);
Если хочется набрать сразу всю строку, то:
Readln(St);
if Pos(St,...)...
else if Pos(St,...)...
...
Val(Copy(St...,1.Pos(St,...)-1,k);
Val(Copy(St...,Pos(St,...)+1,k);
case St[nn] of
"+" : ...
"-" : ...
"*" : ...
"/" : ...
else
...
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c