Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверка условия, без повторного использования IF 
:(
    Опции темы
ZAVS
Дата 25.2.2004, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



Как написать программму каторая без повторного использования if оператора могла определить
что например n достигло 5-и

--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
acp
Дата 25.2.2004, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Видимо, алгоритм подразумевается следующий smile.gif

Код

if n = 1 ...
if n = 2 ...
...
if n = 5 ...


2 ZAVS
Делай что-то подобное

Код

for i = 1 to 5
 if n = i then
   ...
 end if
next i

PM WWW ICQ   Вверх
val
Дата 25.2.2004, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: 1
Всего: 7



Код

n = 0;
while ( n != 5 )
 n++;



--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
ZAVS
Дата 26.2.2004, 01:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



biggrin.gif Спасибо за ответы.
Но дело в другом,нужно чтобы программа сама по себе узнавала это,как на пример бывет во
время деления на 0.(Она же после каждого хода не проверяет произашло ли деление на 0,или нет.
Заранее Спосибо

Это сообщение отредактировал(а) ZAVS - 26.2.2004, 01:49
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
acp
Дата 26.2.2004, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



А-а-а-а... В этом смысле... smile.gif

Под что пишешь? ОС какой?

Это сообщение отредактировал(а) acp - 26.2.2004, 01:57
PM WWW ICQ   Вверх
ZAVS
Дата 26.2.2004, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 25.2.2004
Где: ЕРЕВАН

Репутация: нет
Всего: 1



Borland C++(под dos)
хочу принцып понятьsmile.gif

Это сообщение отредактировал(а) ZAVS - 26.2.2004, 02:27
--------------------
Учись студент доцентом станешь :)
PM MAIL ICQ   Вверх
Дрон
Дата 26.2.2004, 02:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 93



Цитата
Она же после каждого хода не проверяет произашло ли деление на 0,или нет

Почему не проверяет?
Во время любого деления необходимо проверять операнды.
Я что-то понять не могу чего именно ты хочешь добиться?

Или ты хочешь что-то вроде исключений сделать?
Но, по-моему, в BC++ для dos исключений нет.

Это сообщение отредактировал(а) Дрон - 26.2.2004, 02:59


--------------------
Да. Именно так.
PM   Вверх
acp
Дата 26.2.2004, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Реализовать что-то подобное исключениям кажется можно.

Поэкспериментируй так.

1. Пишешь функцию, в которой обрабатываешь эту ситуацию.

Код

void f(void)
{
 if(n=5)
 {
   ...
 }
}


2. Перехватываешь таймерное прерывание 1Ch. Ставишь на него вышенаписаную функцию.

3. Всё. Возможно заработает. smile.gif
PM WWW ICQ   Вверх
sergejzr
Дата 9.3.2004, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 4
Всего: 360



есть возможность. Теоретически хорошая, практически 'if' лучше.

Допустим нужен сигнал, если счётчик достиг 5.

1) Создаётся вектор из указателей на функции типа void(). myFunks[];
2) все указатели кроме 5 указывают на функцию void empty{}. Пятый на функцию void five{printf("5\n");}
3) В Loop(Как по русски loop?) со счётчиком вызывается соответственно myFunks[счётчик];

ПС: проверку на 0 и ещё кое какие действия процессор может делать параллельно(одновременно)с делением.
По иронии судьбы это немного похоже на вышеописанное решение.

Я бы использовал switch(n){ case 5: printf("5\n"); }
По моему быстрее switch/case не получится.

Это сообщение отредактировал(а) sergej.z - 9.3.2004, 23:32


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0594 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.