Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.013 c
3-43373
va
2004-02-17 18:13
2004.03.14
Отладка в interbase


3-43286
BUJHM
2004-02-12 15:36
2004.03.14
Перенос изменений в БД


3-43405
Alexander Smith
2004-02-13 01:22
2004.03.14
TTable, TTable.Filter


1-43662
DDA
2004-03-01 22:25
2004.03.14
RDTSC


1-43627
AloneAli
2004-03-02 15:09
2004.03.14
Мигание в Systme Tray





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский