Воскресенье, 16 Июня 2019, 20:38

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Turbo Pascal 7.0 Ошибка в переменной.
Turbo Pascal 7.0 Ошибка в переменной.
NaigelgogДата: Среда, 07 Декабря 2011, 17:22 | Сообщение # 1
частый гость
Сейчас нет на сайте
Code
pr2=10 ..40

Итак. Есть некая переменная pr2 и есть диапазон значений, который я хочу придать этой переменной.
Однако, после компиляции Turbo Pascal выдал мне, что после 10 должна быть точка с запятой.
Ответьте мне пожалуйста, с какого ей там быть? Оо


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
noTformaTДата: Среда, 07 Декабря 2011, 17:33 | Сообщение # 2
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Naigelgog)
Итак. Есть некая переменная pr2 и есть диапазон значений, который я хочу придать этой переменной.
Однако, после компиляции Turbo Pascal выдал мне, что после 10 должна быть точка с запятой.
Ответьте мне пожалуйста, с какого ей там быть? Оо

Code
program Hello;
type
MyType = 10..40;
var pr2:MyType;
begin
pr2 = 10;
end.


@noTformaT
NaigelgogДата: Среда, 07 Декабря 2011, 17:39 | Сообщение # 3
частый гость
Сейчас нет на сайте
Code
pr2 = 10;

Разве дальше pr2 будет принимать значение диапазона?


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.


Сообщение отредактировал Naigelgog - Среда, 07 Декабря 2011, 17:39
noTformaTДата: Среда, 07 Декабря 2011, 17:41 | Сообщение # 4
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Naigelgog)
Разве дальше pr2 будет принимать значение диапазона?

да, оно может принять одно значение из диапазона 10...40

type
Index = 1..25;
var
i : Index;
{переменная принимает значения}
{только в диапазоне от 1 до 25}


@noTformaT
NaigelgogДата: Среда, 07 Декабря 2011, 17:49 | Сообщение # 5
частый гость
Сейчас нет на сайте
Нет, дело в том, что мне надо, что-бы оно просматривало, равна ли другая переменная переменной pr2.

Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
noTformaTДата: Среда, 07 Декабря 2011, 17:51 | Сообщение # 6
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Naigelgog)
Нет, дело в том, что мне надо, что-бы оно просматривало, равна ли другая переменная переменной pr2.

условие чтоли?
что-типа находится ли значение переменной в этом диапазоне???


@noTformaT
NaigelgogДата: Среда, 07 Декабря 2011, 17:51 | Сообщение # 7
частый гость
Сейчас нет на сайте
А значением pr2 должен быть диапозон от 10 до 40.
Code
pr2=10 ..40;
if vozrast=pr2 then goto m3
                      else  goto m2;

Что-то вроде этого...

Добавлено (07.12.2011, 17:51)
---------------------------------------------

Quote
что-типа находится ли значение переменной в этом диапазоне???

Именно.


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
VinchensooДата: Среда, 07 Декабря 2011, 17:52 | Сообщение # 8
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Блин.

Code
var pr2:integer;
begin
randomize;
pr2:= random(31)+10;
end;

Не проще?


NaigelgogДата: Среда, 07 Декабря 2011, 17:55 | Сообщение # 9
частый гость
Сейчас нет на сайте
Не катит.

Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
GameMixДата: Среда, 07 Декабря 2011, 18:32 | Сообщение # 10
старожил
Сейчас нет на сайте
Naigelgog, а почему бы не сделать так:
Code
if ((vozrast >= 10) and (vozrast <=40))
  then
    goto m3
  else
    goto m2;


Steel Standoff - 2D аркада.
Мои статьи
masb8ly-GCДата: Среда, 07 Декабря 2011, 21:17 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
goto лучше не используй. В высших учебных этого совсем не приветствуют. Да и на олимпиадах не очень любят его.
Почему бы не написать эти m3 и m2 прямо в цикле? Или через функцию сделать?


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders


Сообщение отредактировал masb8ly-GC - Среда, 07 Декабря 2011, 21:18
NaigelgogДата: Четверг, 08 Декабря 2011, 16:06 | Сообщение # 12
частый гость
Сейчас нет на сайте
Это не для школы. Просто програмку делаю. (Только она сырая ужасно, но...)

Добавлено (08.12.2011, 16:06)
---------------------------------------------
GameMix, при твоём коде он одновременно оба маркера выполняет.


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
masb8ly-GCДата: Четверг, 08 Декабря 2011, 19:48 | Сообщение # 13
постоянный участник
Сейчас нет на сайте
Я понимаю, что не для школы и не для вышки, но всеже искать надо более рациональные пути решения данной задачи!

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
NaigelgogДата: Четверг, 08 Декабря 2011, 21:25 | Сообщение # 14
частый гость
Сейчас нет на сайте
Ну меня сейчас маркеры очень спасают и лично я другого способа перескочить несколько операторов не знаю.)

Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
masb8ly-GCДата: Четверг, 08 Декабря 2011, 21:26 | Сообщение # 15
постоянный участник
Сейчас нет на сайте
Попробуй все эти операторы описать в цикле!

Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
NaigelgogДата: Пятница, 09 Декабря 2011, 17:08 | Сообщение # 16
частый гость
Сейчас нет на сайте
Всем спасибо за помощь, но я сам разобрался.

Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
TimKruzДата: Суббота, 10 Декабря 2011, 12:46 | Сообщение # 17
старожил
Сейчас нет на сайте
Quote (Naigelgog)
pr2=10 ..40;
if vozrast=pr2 then goto m3 else goto m2;

Если ты имел в виду проверку, находится ли значение переменной vozrast в определённом диапазоне, то логичнее и проще сделать так:
Code
if vozrast in [10..40] then //операнд in - проверка на вхождение значения в множество; [10..40] - множество значений.
begin
   //blablabla
end else
begin
   //blablabla
end;

В принципе, можно описать множество как переменную или константу, но, я думаю, тебе это не нужно, т.к. диапазон фиксирован и используется только в одном месте.
Кстати, множество можно описать, скажем, так: [10,20,30..40,44,50..60,70,71], при чём вместо чисел могут быть буквы, строки (в одинарных кавычках) и т.п.

На счёт GoTo: эта вещь конечно, нужная, но используется редко, т.к. сильно снижает читабельность кода (постоянно приходится взглядом искать, где же эта метка расположена, ну и структура "сверху - вниз" нарушается) и, как следствие, усложняет поиск ошибок. Советую использовать этот оператор как можно реже; в абсолютном большинстве случаев можно сделать тоже самое с помощью других приёмов - проще и удобнее.
Quote (Naigelgog)
Прошу прощения, я ещё не разбираюсь в type-ах ^^
Quote (Naigelgog)
создана первая большая программа

blink
Quote (Naigelgog)
я сам разобрался.

Ммм, и не поделишься своим собственным решением проблемы? huh Было бы интересно посмотреть и, возможно, предложить более рациональный вариант.


NaigelgogДата: Суббота, 10 Декабря 2011, 21:56 | Сообщение # 18
частый гость
Сейчас нет на сайте
Уж прошу прощения, но сейчас я пишу с мобильника и дома буду часов в шесть, поэтому код программы привести не могу. Одно скажу, что решил с помощью процедур, ибо понял, что программу я немного неправильно построил. Поэтому в конце и выполнялись оба маркера. Они у меня друг за другом шли.
И да, GameMix, твой метод сработал. ^^ Спасибо ему уж.

Добавлено (10.12.2011, 21:56)
---------------------------------------------
И да, достаточно большую программу на строк сто можно написать и без описания типов.


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
masb8ly-GCДата: Воскресенье, 11 Декабря 2011, 13:43 | Сообщение # 19
постоянный участник
Сейчас нет на сайте
Quote (Naigelgog)
И да, достаточно большую программу на строк сто можно написать и без описания типов.

Ну на счет тайпов это кому как привычнее и удобнее. А вот, что достаточно большая программа умещается в 100 строк для меня сюрприз)
Не поделитесь, что делает ваша программа?


Backend Developer ESIS
Client Side Developer Room8Studio
Technical Leader Lucid Reality Labs
Chief Technology Officer The Intruders
NaigelgogДата: Воскресенье, 11 Декабря 2011, 16:47 | Сообщение # 20
частый гость
Сейчас нет на сайте
Что-то вроде мультфильма списанного с учебника XD
Ладно, признаю- погорячился. Уберу я эту строчку из подписи.)


Никто не ждал, а я вернулся. о.о
Отныне зовите меня Ауткастом (жалко, что нельзя поменять логин...).

С.Н. Лукин. Turbo Pascal 7.0 Самоучитель для начинающих.
Прочитано.
Николай Прохоренок. Html, JavaScript, PHP и MySQL.Джентельменский набор Web-мастера.
Прочитано 57 страниц из 867.
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » Turbo Pascal 7.0 Ошибка в переменной.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг