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

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

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы
Старый Вчера, 15:18   #11
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,938
По умолчанию

У вас в примере есть goto FINISH; для прыжка к финализации функции. Можно добавить еще goto START; для перехода к началу функции. Ну и еще может пригодиться goto MIDDLE; для переходов куда-то там в середину функции.

P.S. Забыл еще один полезный гоу-ту: goto END; чтобы перейти к концу функции, то есть за финализацию. Почти return получается, но через goto!
Arigato на форуме Ответить с цитированием
Старый Вчера, 15:35   #12
DeepFlake
Форумчанин
 
Регистрация: 16.05.2024
Сообщений: 228
По умолчанию

без goto и ни туда и ни сюда
(как и без культуры разработки)
DeepFlake вне форума Ответить с цитированием
Старый Вчера, 16:12   #13
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,938
По умолчанию

Достаточно красивая реализация сигнума:

Код:
#include <iostream>

// действие функции очевидно из ее реализации
// потому назову просто f
int f(double a) {
    goto check;
down:
    int result;
    return result;
check_1:
    if (a == 0) {
        goto f_3;
    f_2:
        goto down;
    }
check_3:
    if (a > 0) {
        goto f_2;
    f_3:
        result--;
        goto down;
    check_2:
        if (a < 0) {
            goto f_1;
        check:
            result = 1;
            goto check_2;
        }
        goto perehod;
    f_1:
        return -1;
    }
    goto check_1;
perehod:
    goto check_3;
}

int main()
{
    goto vvod;
otvet:
    double a;
    std::cout << "f(a) = ";
    goto schet;
konec:
    return 0;
perehod:
    goto otvet;
otvet_2:
    int s;
    std::cout << s;
    goto perevod;
vvod:
    std::cin >> a;
    goto perehod;
perevod:
    std::cout << std::endl;
    goto konec;
schet:
    s = f(a);
    goto otvet_2;
}
dejkstra.png

Последний раз редактировалось Arigato; Вчера в 23:18.
Arigato на форуме Ответить с цитированием
Старый Сегодня, 07:52   #14
Алексей1153
фрилансер, препод.
Участник клуба
 
Регистрация: 11.10.2019
Сообщений: 1,059
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
красивая
не очень подходящее слово. Тут больше подходит ****ец :D

goto оказался снова не нужен

Код:
#include <iostream>

// действие функции нихрена не очевидно из ее реализации
// потому назовём таки её signum
int signum(double a)
{
    if(a<0)return -1;
    if(a>0)return 1;
    return 0;
}

int main()
{
    double a{};
    std::cin>>a;
    std::cout << "signum(a) = " << signum(a);
}
Алексей1153 вне форума Ответить с цитированием
Старый Сегодня, 13:30   #15
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,705
По умолчанию

так goto это ж из ассемблера, или там тоже не нужен? ))
Alar вне форума Ответить с цитированием
Старый Сегодня, 13:37   #16
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,764
По умолчанию

В ассемблере goto нет, есть jmp
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" billiejean78 JavaScript, Ajax 1 03.09.2021 08:58
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" Бахтиёр1916 Windows 1 05.04.2017 12:53
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" Sandakan01 Помощь студентам 1 24.02.2016 03:20