Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 14:51   #1
Van-89
Пользователь
 
Регистрация: 06.12.2011
Сообщений: 23
По умолчанию В чём проблема?((

В общем делаю регулятор скорости для гонок...
Управление им клавишами Вверх-Вниз...
1 число может быть только о 0 до 100 и обратно... счёт другого числа с 70 до 100 и обратно...

проблема в том что второе число не ограничивается 30'м... а счёт идут дальше...

мне стыдно просить о помощи(((

Код:
uses crt;
VAR  c, x, down, up: integer;
    n: char;

LABEL m1, m2;

Begin

x:=0;
c:=0;

m1:

n:=readkey;
case n of

     #72 :begin up:=x+1;
         if (up>=0) and (up<=100) then x:=up;
         if (x>70) and (x<=100) then c:=c+1;
     end;
     #80 :begin down:=x-1;
         if (down>=0) and (down<=100) then x:=down;
         if (x>=70) and (x<100) then c:=c-1;
     end;
     else GOTO m2;

end;

writeln('‚ўҐае-‚*Ё§... ', x, ' ђҐЈг«пв®а... ', c);

m2:
GOTO m1;

readln;
end.

Последний раз редактировалось Stilet; 11.12.2011 в 15:28.
Van-89 вне форума Ответить с цитированием
Старый 11.12.2011, 15:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На твоем месте я бы писал примерно так:
Код:
x:=0;
c:=0;

repeat
n:=readkey;
case n of

     #72 :begin
         if x<100 then inc(x);
         if x in [70..100] then inc(c);
     end;
     #80 :begin
         if x>0 then dec(x);
         if x in [70..100] then dec(c);
     end;

end;

writeln(c);

until условие окончания;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.12.2011, 22:41   #3
Van-89
Пользователь
 
Регистрация: 06.12.2011
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
На твоем месте я бы писал примерно так:
#72 :begin
if x<100 then inc(x);
if x in [70..100] then inc(c);
end;
#80 :begin
if x>0 then dec(x);
if x in [70..100] then dec(c);
[/CODE]
Гугл сказал что 'inc' увеличение переменной на +1...
'dec' Уменьшение на -1...

А что делает "in"?...

В книге которую читаю ничего про это нету...
Van-89 вне форума Ответить с цитированием
Старый 11.12.2011, 22:47   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Как это великий гугл и не ответил ?) И даже книга не сказала ?)

Код:
if x in [70..100] then dec(c);
Отвечу пророческим голосом гугла, "Если икс находится в диапазоне ( или же принадлежит отрезку ) от 70 и до 100 то уменьшить параметр "с" на единицу.

То что отмечено черным есть твой "in".
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 12.12.2011, 00:01   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В книге которую читаю ничего про это нету...
Читай книгу где описаны множества языка Паскаль
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2011, 13:02   #6
Van-89
Пользователь
 
Регистрация: 06.12.2011
Сообщений: 23
По умолчанию

Спс всем)... вроде более менее сделал...

Последний раз редактировалось Van-89; 12.12.2011 в 13:26.
Van-89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не пойму в чём проблема Winterwolf93 Помощь студентам 0 31.03.2011 18:19
В чём проблема? (смотрите внутри) KuckaMAXHATKA Общие вопросы C/C++ 2 20.02.2011 21:56
в чём проблема? zetr0 Помощь студентам 7 04.10.2010 20:02
Не знаю в чём проблема Castro Паскаль, Turbo Pascal, PascalABC.NET 5 24.12.2008 01:38