integer, real, boolean, литеры.
Литеры в операторах ветвления, цикла. Ввод/вывод литерных дан-
ных.Ребят...помогите плиз - я эти литеры не проходил и не знаю даж что это...
Используя только литерный ввод, ввести задан-
ное вещественное число (за ним - пробел), записанное по
правилам языка Паскаль, и присвоить его вещественной
переменной X.
ну а кто нить может решитЬ?
Может... А ты можешь сам хотя бы начать? Если за тебя все решить, тебе что, это как-то поможет?
я просто даже не представляю...мы такое не делали...лекция по этой теме будет в понедельник а сдать нужно в субботу...йа чо т даж логически не могу додуматься как это сделать
В цикле пока не пробел
читать символ (readkey)
если символ цифра (in '0'..'9') или точка или 'E' или '+' или '-' то
добавить символ в строку
конец цикла
перевести строку в число (val)
У val есть возможность отследить ошибку. (есть примечание от Volvo по поводу глюков/фичей val'а, но я его подзабцл)
Такая задача уже решалась. Ищите.
Ребят, нужно решить задачу только с использованием того что перечислено. без строк.я не знаю как вообще это решить - завтра сдавать...напишите плис прогу эту...
Можно приблизительно так:
var ch: char;
x,d: real;
f: boolean;
begin
x:=0;
f:=false;
d:=0.1;
while ch<>' ' do
begin
readln(ch);
if ch='-' then d:=d*(-1);
case ch of
'0': x:=x*10+0;
'1': x:=x*10+1;
'2': x:=x*10+2;
'3': x:=x*10+3;
'4': x:=x*10+4;
'5': x:=x*10+5;
'6': x:=x*10+6;
'7': x:=x*10+7;
'8': x:=x*10+8;
'9': x:=x*10+9;
end;
if f then d:=d*10;
if (ch='.') or (ch=',') then f:=true;
end;
if f then x:=x/d; //исправлено
writeln(x:6:4);
end.
x:=x/d;
if f then x:=x/d;
спс.выручили)
uses
CRT;
var
ch: char;
x,d: real;
e,f,g: boolean;
begin
x:=0;
e:=false;
f:=false;
g:=false;
d:=10;
repeat
ch:=ReadKey;
Write(ch);
case ch of
'0'..'9': x:=x*10+Ord(ch)-48;
'.': if f then e:=true else f:=true;
'-': if g then e:=true else d:=-d;
' ': break;
else e:=true
end;
if f then d:=d*0.1;
g:=true;
until false;
if f then x:=x*d;
if e then WriteLn('Error') else WriteLn(x:6:4);
ReadLn
end.