Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Литерный ввод

Автор: JOKER 15.09.2005 19:26

Задали нам такую задачку "Используя только литерный ввод, ввести вещественное число, записаное в виде: d.ddE-d,
и присвоить его вещественной переменной У"
ответ нужен до завтра мне в обед уходить ответьти плиз желательно исходником и пояснениями я в долгу не останусь пиво обещаю поставить первому давшему конструктивный ответ но не пойже чем завтра до абеда (к сведению время +5 от гринвича)

Автор: virt 15.09.2005 19:59

Код
var ch : char;
   r : real;
   i : integer;
......................
read(ch);
  r := ord(ch) - ord('0');
read(ch);
read(ch);
  r := r * 10 + ord(ch) - ord('0');
read(ch);
  r := r * 10 + ord(ch) - ord('0');
  r := r / 100;
read(ch);
read(ch);
readln(ch);
  i := ord(ch) - ord('0');
  while i > 0 do
     begin
        r := r / 10;
        i := i - 1;
     end;
writeln(r:0:11);

Автор: kent 15.09.2005 20:11

Другой вариант:


uses Crt;
var lit : Char;
y : Real;
S : String;
code,count : Integer;
point : Integer;
begin
Clrscr;
S := '';
count := 0;
point := 0;
repeat
Write('Введите символ:');
ReadLn(lit);
if not (lit in ['0'..'9','.','-','+','E']) then begin
WriteLn('Error');
Halt;
end;
if (lit = '.') then
inc(point);
S := S + lit;
if (point = 1) then
if (lit = '-') or (lit = '+') then
inc(count)
else if (count > 0) then
inc(count);
until count = 5;
Val(S,y,code);
WriteLn('Полученное число: ',y);
ReadKey;
end.


Автор: Joker 16.09.2005 10:28

большое спасибо как теперь с вами связаться надо же всё таки пиво поставить за помощь putnik-13#@narod.ru(please remove # and sand me письма) :thanks: :flowers: :yes: :low: ;)