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

> Правила раздела!

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

 
 Ответить  Открыть новую тему 
> Переход из процедуры в главную прогу, по меткам
>hamka<
сообщение 25.02.2005 19:57
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Женский

Репутация: -  0  +


Можно из процедуры прыгнуть на метку, кот. в главной программе. Или ее надо описывать в параметрах передаваемой процедуры. А если нельзя, то нет ли каких нибудь приемчиков, чтобы перейти на метку не процедурную?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 25.02.2005 19:59
Сообщение #2


Гость






Цитата(>hamka< @ 25.02.05 18:57)
Можно из процедуры прыгнуть на метку, кот. в главной программе. Или ее надо описывать в параметрах передаваемой процедуры. А если нельзя, то нет ли каких нибудь приемчиков, чтобы перейти на метку не процедурную?


А Вы в курсе, что использование меток в паскале ВООБЩЕ не приветствуется? Да и по определению этого сделать нельзя ... Опишите проблему, возможно ее удастся решить другими методами...
 К началу страницы 
+ Ответить 
>hamka<
сообщение 25.02.2005 20:02
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Женский

Репутация: -  0  +


Цитата(volvo @ 25.02.05 19:59)
А Вы в курсе, что использование меток в паскале ВООБЩЕ не приветствуется?

а почему ? =((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 25.02.2005 20:04
Сообщение #4


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


А потому что это противоречит принципам структурного программирования.
Есть желание поспорить? идите к Вирту, Дейкстре и прочим "динозаврам" программирования!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
>hamka<
сообщение 25.02.2005 20:11
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Женский

Репутация: -  0  +


Цитата(Oleg_Z @ 25.02.05 20:04)
А потому что это противоречит принципам структурного программирования.

а как же асм ;)
а чем заменять метки? Неужели флажками?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 25.02.2005 20:19
Сообщение #6


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


А АСМ - эт оязык НИЗКОГО УРОВНЯ!
и методы программирвоания на языках ВЫСОКОГО уровня к нему не относятся!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 25.02.2005 20:21
Сообщение #7


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


p.s. Да и в АСМЕ без них не обойдешься - фон-неймановская модуль работает там - переход на произвольный участок (памяти например) - а это и есть скачок! переход!

Но цель развития программирвоания - свести все команды ближе к человеческому языку, и от безусловных переходов решили отказаться!

Если вам так мил АСМ, вам на несклолько разделов ниже в форум АССЕМБЛЕР.

Так какие проблеммы в задаче?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
>hamka<
сообщение 25.02.2005 20:28
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Женский

Репутация: -  0  +


Цитата(Oleg_Z @ 25.02.05 20:21)
Так какие проблеммы в задаче?

Хочу проверку на число оформить как процедуру. А так у меня все в программе разбросано на метки. ( если не число _>переход на введение числа)Как переоформить не знаю. Флажки не работали и в программе без разбиения на процедуры. Только по меткам я добилась хоть какой-то корректной работы. Теперь я понимаю, что надо делать как-то по-другому. Как не знаю. И сроки уже поджимают =))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 25.02.2005 20:29
Сообщение #9


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


убрать ВСЕ МЕТКИ ИЗ ПРОГРАММЫ.

А вы можете сказать задание вообще глобальное которое вы делаете?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 27.02.2005 3:13
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Цитата(Oleg_Z @ 25.02.05 17:19)
Но цель развития программирвоания - свести все команды ближе к человеческому языку, и от безусловных переходов решили отказаться!



На ловца и зверь бежит smile.gif Недавно ковырялся в настройках ГТА вай сити(рульная фановая игра, если кто не слышал или не играет) и залез в скрипты. Уж насколько скрипты к человеческому языку приближены, а вот оказалось что там всё через GOTO работает lol.gif Ведь что есть гото, это машинный вариант человеческой команды-приветствия "да пошёл ты на... в..." только без мата. А уж сколько этими короткими фразами в человеческом языке можно сказать. Но неприятие нецензурной (отнюдь не нормативной smile.gif) лексики этого не позволяет. Тут же цивильно - ну не обидится же комп если на регистр его пошлют smile.gif Вывод, иногда lol.gif в некоторых прогах без этого обойтись сложно, если специально не подгонять задачу под возможности решения без гото.
То о чём ты спрашиваешь, уже когда-то обсуждалось на форуме, конкретно система "сушняк турбо" - моё извращение над турбовизион. Там приведён работающий макет проги с оконным интерфейсом. Естественно пупырится всё через гото, управление объектами тоже через гото. Можешь поискать на форуме инфу или скачать исходники с моего сайта. Принцип такой. Ядро программы состоит из бесконечного цикла на гото типа:

Код

BEGIN

A:=0;

1:
............................
GOTO 3;
2:
.............................


3:

CASE A OF
0: PROCEDUR1;
1: GOTO 2;
2: PROCEDUR2;
3: PROCEDUR3;
END;

IF A=100 THEN GOTO 100;
GOTO 1;

100:
END.



Цикл на гото и есть тело проги, он запускает объекты, процедуры, да всё что угодно. Каждая процедура или объект при запуске считывает данные и номер команды из массива глобальных переменных, туда же всё и сохраняет. Выполнив действие объект записывает команду в переменную и отрубается(сохраняет завещание с которым далее работает адвокат). Это может быть команда запустить что-то ещё, или предоставить дополнительную инфу и запуститься снова - зависит от вашей фантазии. Объект в данном случае становится как бы обычной процедурой, а не основой проги. Команда считывается в операторе CASE или IF THEN, и опять по кругу. Бесконечная мясорубка перемалывающая инфу. Основной прикол в том, что любые объекты не живут слишком долго и используются по очереди, а
значит обеспечивается совместимость несовместимых сабжей.

Сообщение отредактировано: SKVOZNJAK - 27.02.2005 3:17
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Martyr
сообщение 27.02.2005 3:47
Сообщение #11





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Stop flaming!

В BP запрещено обращение к идентификаторам-меткам вне текущего блока (т. е. из процедуры к метке основной программы).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 27.02.2005 4:16
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Невнимательно читал, если вообще дочитал. В этой концепции описывается альтернативный подход, запреты для которого ещё не написали smile.gif И есть работающие по этой схеме проги, в частности игра, разновидность шахмат. Жалко со временем туго, былоб прикольно и над дельфи так приколоться smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Martyr
сообщение 27.02.2005 10:29
Сообщение #13





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Вообще этот подход называется асинхронной обработкой событий (сейчас широко применяется при построении пользовательских интерфейсов) smile.gifСовременная альтернатива: использование иерархии классов и полиморфизма (аппарата виртуальных функций). Впрочем, все это смутно связано с ответом на вопрос сабжа <_<

P. S. Примерчик активного использования GOTO... smile.gif

Сообщение отредактировано: Martyr - 27.02.2005 10:40


Прикрепленные файлы
Прикрепленный файл  menu.zip ( 2.52 килобайт ) Кол-во скачиваний: 143
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Altair
сообщение 28.02.2005 15:36
Сообщение #14


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Вы отклоняетесь от темы... GOTO - ПЛОХОЙ СТИЛЬ ПРОГРАММИРОВАНИЯ
... вообще-то тема себя исчерпала, .т.к. вопрос автора темы относился к задачам. Думаю обсуждать больше нечего.


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 2.03.2005 22:56
Сообщение #15


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Может и плохой, но придумай ему адекватную замену, если таковая вообще существует.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dark
сообщение 3.03.2005 1:50
Сообщение #16


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Олежка, если вопрос относился к задачам то почему он в теории? А поскольку он находится в теории - то его можно здесь обсуждать, независимо от направления первого вопроса

Мне лично тема интересна =) но со стороны


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Romtek
сообщение 3.03.2005 3:01
Сообщение #17


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Цитата(>hamka< @ 25.02.05 20:28)
Хочу проверку на число оформить как процедуру.


Код
Procedure InputN (var N: integer);
var
 erс: integer;
begin
 repeat
   write ('Введите целое число: ');
   {$I-}
   readln (N);
   {$I+}
   erc :=IOresult;
   if erc <> 0 then
      writeln ('Число должно быть *целым*');
 until erc = 0;
end;


Сообщение отредактировано: Romtek - 3.03.2005 3:01


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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