IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Inputshortint, нада помощь
StrongS@t
сообщение 20.05.2005 15:56
Сообщение #1


Гость






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
сообщение 20.05.2005 16:09
Сообщение #2


Гость






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

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

Кстати, если бы ты привел задание, я уверен, что нашелся бы способ проще сделать это... Уж очень все закручено...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.07.2025 16:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"