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

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

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

 
 Ответить  Открыть новую тему 
> Inputshortint, нада помощь
сообщение
Сообщение #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.

=======================
"Наш путь труден, но
перспективы - светлые !"
Мао Цзедун
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 16.05.2024 8:04
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name