Помощь - Поиск - Пользователи - Календарь
Полная версия: Inputshortint
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
StrongS@t
Hi! People!
Вот имеем прогу(ниже).
Почему в этой части этой проги:
-----------------------------------------
 str[0]:=chr(3);
  val(ch+str,t,prosto);
  if ((t*10+k)<129)and((t*10+k)>-128  ) then

переменная t не получает никакого значения , что приводит к не выполнению
следущего блока if .. then..
Зарание благодарен.
==========================
program InputShortint;
uses crt;
var  k,j,prosto,t:integer;
ch:char;
str:string;
s:shortint;
begin
clrscr;
j:=0;
str:='';
k:=ord(readkey);
if (k=45)or((k>=48)and(k<=57)) then ch:='-' else
begin
   inc(j);
   str[j]:=chr(k);
   write(str[j]);
end;
repeat
 k:=ord(readkey);
if ((k>=48)and(k<=57)) then
begin

  inc(j);
if j<>3 then
          begin
             str[j]:=chr(k);
              write(str[j]);
           end;
if j=3 then
            begin
            str[0]:=chr(3);
            val(ch+str,t,prosto);
            if ((t*10+k)<129)and((t*10+k)>-128  ) then
            begin
            str[j]:=chr(k);
            write(str[j]);
            end
            else writeln('Fuck it all');
            end;
end;
until (j=3)or(k=13);
 str[0]:=chr(3);
 val(ch+str,S,prosto);
 writeln;
 writeln(s);
 readln;
end.

=======================
"Наш путь труден, но
перспективы - светлые !"
Мао Цзедун
volvo
Цитата(StrongS@t @ 20.05.05 15:56)
Почему ... переменная  t не получает никакого значения , что приводит к не выполнению следущего блока if .. then ..

Все достаточно просто: перед вызовом Val значение str равняется 'XX#0', где X - цифра от 0 до 9... Вот в этом #0 и заключается проблема - Val выполняется, но ты этого не замечаешь, т.к. переменная Prosto на самом деле не должна быть просто так, она все-таки содержит код ошибки... :D Насколько я вижу, проблема в неправильном занесении ПЕРВОГО символа в строку.

Кстати, если бы ты привел задание, я уверен, что нашелся бы способ проще сделать это... Уж очень все закручено...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.