Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
198 / 10 / 3
Регистрация: 30.04.2016
Сообщений: 732

Числа возрастают или в беспорядке

11.11.2018, 10:24. Показов 4109. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
«Числа возрастают или в беспорядке».
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
CLS
INPUT  “ A = “; A
   FOR I = 1 TO 3
      B = A
INPUT “ A = “; A
    IF A < = B THEN
PRINT “  Числа в беспорядке “
    GOTO 800
     END IF
   NEXT 
PRINT “ Числа возрастают”
   800
При первом запуске:
QBasic/QuickBASIC
1
2
3
А = ?  8
А = ?  4
Числа в беспорядке
При втором запуске:
QBasic/QuickBASIC
1
2
3
4
5
А = ? 4
А ? = 7
А ? = 12
А ? = 15
Числа возрастают
Почему то при первом запуске выполняется два цикла,
а при втором – надо делать четыре цикла. Почему же так.
Но главная проблема не решена – чтобы Числа в бес-
порядке и Числа возрастают, выходили бы при одном
запуске, а не при двух.
Чтобы было так, как при двух циклах:
QBasic/QuickBASIC
1
2
3
4
Ввести число:   4
Ввести числа:    7
Ввести число:   12
Числа возрастают
QBasic/QuickBASIC
1
2
3
4
Ввести число:   8
Ввести число:   4
Ввести число:   12
Числа в беспорядке
И та же проблема с циклом WHILE. Можно это сделать
в одной программе. В двух отдельных программах это
было сделано.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2018, 10:24
Ответы с готовыми решениями:

Числа в беспорядке
И опять двадцать пять! Всё об том же. CLS WHILE A &lt;= 0 INPUT “ Ввести число: “, A WEND IF A &lt; 0 THEN PRINT “ Числа...

Найти количество строк матрицы, числа в которых возрастают
Найти количество строк матрицы, числа в которых возрастают.

Определить, возрастают или убывают значения массива
Доброго времени суток Имеется массив чисел - например Если массив такого вида т.е. элементы возрастают - выдать сообщение что массив...

46
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
05.05.2019, 13:28
Студворк — интернет-сервис помощи студентам
Можно из длинной строки с условием
IF = 0 и т. д. сделать две короткие строки?
Можно, но зачем? В одну строку проще и не нужен END IF

Useringo,
Но лучше их там поставить.
Кто вам сказал такую глупость? Или Вы это сами придумали?

Вам бы матчасть подучить. END IF ставится при блоковом использовании оператора IF, а при записи условия в одну строку END IF не пишется, потому что условие кончилось вместе со строкой и дополнительно сообщать об этом компьютеру не надо, он не дурак в отличие от некоторых программистов
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 33
06.05.2019, 11:18
кот Бегемот,
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Или Вы это сами придумали?
1)Из-за таких записей страдает читаемость кода.
PureBasic
1
Dim a As Integer:Dim b As Integer:Input "A = ",a:Input "B = ",b:If (a > b)Then Print A;"+";B;"=";A+B:Sleep:Else Print A;"-";B;"=";A-B:sleep
Очень читаемо, не так ли?
Если делать IF так, как Вы говорите:
QBasic/QuickBASIC
1
2
3
4
5
DIM a AS INTEGER
DIM b AS INTEGER
INPUT "A = ",a
INPUT "B = ",b
IF (a > b)THEN PRINT A;"+";B;"=";A+B:SLEEP:ELSE PRINT A;"-";B;"=";A-B:SLEEP
И если немножко поаккуратнее:
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
DIM a AS INTEGER
DIM b AS INTEGER
INPUT "A = ",a
INPUT "B = ",b
IF (a > b)THEN 
    PRINT A;"+";B;"=";A+B       
ELSE
    PRINT A;"-";B;"=";A-B
EndIf
SLEEP
2)Если вдруг Вам придется увеличивать количество операторов после IF, то ENDIF все равно придется ставить. Лучше уж сразу - да и читать код станет проще.

Не по теме:

3)

Цитата Сообщение от кот Бегемот Посмотреть сообщение
вам
,
Цитата Сообщение от кот Бегемот Посмотреть сообщение
сами придумали
,
Цитата Сообщение от кот Бегемот Посмотреть сообщение
не дурак в отличие от некоторых программистов
.
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Прежде, чем хамить
...



0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.05.2019, 12:49
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Забудьте про GOTO, это каменный век.
А вот я считаю, и с каждым днём всё больше и больше, что за ним будущее. Каменный век это использовать флаги.
Переписал ваш код и получил более правильный алгоритм, без костылей.
QBasic/QuickBASIC
1
2
3
4
5
6
7
8
INPUT "vvedite chislo: ", a
FOR i = 1 TO 3
b = a
INPUT "vvedite chislo: ", a
IF a <= b THEN PRINT "ne vozrastaet" : GOTO E 
NEXT
PRINT "vozrastaet"
E: SLEEP
Добавлено через 2 минуты
Добавлю. Бэйсик без goto быть не может, иначе это не бейсик, а незнамо что.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
06.05.2019, 13:58
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А вот я считаю, и с каждым днём всё больше и больше, что за ним будущее.
Да, да. Я Вас понимаю. Именно о таких как Вы, любителях GOTO Дейкстра в своё время сказал:

Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные
программисты они подверглись необратимой умственной деградации.

Полностью его мнение о GOTO Вы можете почитать в статье «О вреде оператора GO TO». Ну, для Вас ведь Дейкстра не указ...

Добавлено через 3 минуты
Цитата Сообщение от Useringo Посмотреть сообщение
IF (a > b)THEN PRINT A;"+";B;"=";A+B:SLEEP:ELSE PRINT A;"-";B;"=";A-B:SLEEP
Ещё раз настойчиво призываю Вас вместо того, чтобы огрызаться, учить матчасть. Тогда Вы не будете писать ересь с кучей SLEEPов.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.05.2019, 14:31
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Полностью его мнение о GOTO Вы можете почитать в статье «О вреде оператора GO TO». Ну, для Вас ведь Дейкстра не указ...
Советую ознакомиться со статьей Дональда Кнута "Structured Programming with go to Statements"(Стрктурное программирование с операторами goto).
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Ещё раз настойчиво призываю Вас вместо того, чтобы огрызаться, учить матчасть. Тогда Вы не будете писать ересь с кучей SLEEPов.
Причём здесь slleepы? Это можно заменить и на end, да на что угодно. В моём случае я использую free basic поэтому без слипа окошко пропадает. К алгоритму это не имеет никакого отношения

Добавлено через 14 минут
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Вас вместо того, чтобы огрызаться
Просто меня задело за живое про goto, вот и огрызнулся кодом.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
06.05.2019, 15:31
CoderHuligan, если Вы внимательно посмотрите на мой предыдущий пост, то увидите, что последнее замечание относилось не к Вам, а к Useringo, или он это Вы?
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
06.05.2019, 16:03
Цитата Сообщение от кот Бегемот Посмотреть сообщение
последнее замечание относилось не к Вам
Принято. Проглядел.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
06.05.2019, 21:15
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Именно о таких как Вы, любителях GOTO Дейкстра в своё время сказал
Т.е. он мол любитель, а ты значит стало быть профи? Ага...
Ну как бы от тебя ещё ни одной софтины не видел, с чего человеку который вообще не программирует,
(т.е. никак, совсем), рассуждать о тонкостях данной сферы. Делом то оно подкреплено будет или нет?
Уже ведь был точно такой же базар, с очевидными результатами, зачем повторять? Или что-то поменялось?

Отрезюмирую:
Дейкстра нёс "словесный понос" потому что надо было как-то заявить о себе, выкручиваться и конкурировать,
тогда были совсем другие времена, но в итоге его последователь Вирт обосрался со своим Паскалем и что
самое главное сам признал что из-за "недостаточности" инструментальных средств пришлось таки его(GOTO)
добавить, т.е. он сам признал, что теория Эдсгера всё ещё остаётся теорией и отчасти является полной
лажей, т.к. сектанты и коренные лохи обречены писать в режиме "ВУ only" и пожизненно засирать экологию
нашей планеты посредством адской тупости, вместо рационального мышления(применять НУ и ВУ там, где
это уместнее). В действительности количество совсем тухлых кодеров реально на Бейсике больше,
что и послужило затравкой к подобного рода высказываниям. На деле же нормальные прогеры себя не
ограничивают изречениями того или иного персонажа, а смотрят по ситуации. Нужен GOTO - ставят,
не видят явной необходимости - не ставят. Нужно уметь и так и так.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Бэйсик без goto быть не может, иначе это не бейсик, а незнамо что.
Не зацикливайся на этом.
2
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
07.05.2019, 14:12
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Не зацикливайся на этом.
Да вот зациклился со вчерашнего дня, да так зациклился, что начал перевод статьи Кнута. К сожалению в рунете не нашёл никакого перевода этой статьи, фундаментальной статьи по данному вопросу, а уровень знания английского теперь уже позволяет выполнить эту работу. Кнут мой Бог в теории программирования и так им и останется. Кнут, а не Дейкстра с Виртом..
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
07.05.2019, 22:43
Цитата Сообщение от CoderHuligan Посмотреть сообщение
фундаментальной статьи по данному вопросу
По какому вопросу? В каких ситуациях использовать или не использовать GOTO? Тут боги не нужны,
нужен свой собственный опыт. "Не боги горшки обжигают".
Всем стараюсь донести очень простую и понятную мысль: люди могут сколь угодно дофига
философствовать и теоретизировать, холиварить, скрывать свои жопы за Дейкстрами, Кнутами и прочими
авторитетами, но одни пишут проекты, а другие только философствуют. Это очень показательно.

Поэтому определяйтесь мужики, чтобы не получилось как с 98%, кому задавал и буду задавать
этот каверзный вопрос. Потому что "пустой ответ" автоматом ставит на колени. И всем уже
становится насрать на "крышу", концепции и значимость слов мессий, ибо результата нет,
либо же он отстойный настолько, что стыдно показать.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
08.05.2019, 10:02
Цитата Сообщение от Quiet Snow Посмотреть сообщение
По какому вопросу? В каких ситуациях использовать или не использовать GOTO? Тут боги не нужны,
нужен свой собственный опыт. "Не боги горшки обжигают".
Понятно, что для программиста нет авторитетов, по себе знаю. Однако всё же должна быть некая теоретическая база, наука. И такая наука существует, просто не многие о ней знают. Это прежде всего теория конечных автоматов, основа кибернетики. Об этом помнят только профессора на кафедрах. Насчёт данной статьи, то Кнут там иисчерпывающе освещает как историю вопроса про goto, его возникновение, так и сравнивает его применение со структурной парадигмой приводя многочисленные примеры. Это фундаментальный научный труд на несколько десятков страниц. Жаль, что его не читают. Это основа основ. У меня уже давно была попытка его перевода, но она была заброшена. Сейчас опыта поболее, и думаю я сумею это осуществить. Кнут как всегда великолепен и жжёт правду-матку иногда с юмором, как это он любит.
Опыт опытом, но постоянно наступать на грабли тоже пустая трата времени, должна быть строга теоретическая подготовка.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Всем стараюсь донести очень простую и понятную мысль: люди могут сколь угодно дофига
философствовать и теоретизировать, холиварить, скрывать свои жопы за Дейкстрами, Кнутами и прочими
авторитетами, но одни пишут проекты, а другие только философствуют. Это очень показательно.
Есть и другие, которые любят как философию, так и практику. Например я не чистый теоретик, а скорее практик и у меня ни дня не проходит чтобы я не написал хотя бы несколько строк кода. Философия нужна для практической работы, чтобы не садится в лужу с самого начала, и особенно считать её джакузи, а не грязной лужой. Надо уметь создавать что-то новое, а не собирать из готового. Это скушно. По крайней мере для меня. А чтобы генерить нечто новое, надо уметь думать, размышлять, а тут, уж, без философии и особенно истории вопроса, ну, никуда не деться.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
08.05.2019, 16:43
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Однако всё же должна быть некая теоретическая база, наука.
Должна, только слабо понятно с чего вдруг решено, что это не информатика(и её подраздел программирование),
а внезапно кибернетика?
Про профессорах на кафедрах и фундаментальность я бы молчал, это всё пыль в глаза.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
ни дня не проходит чтобы я не написал хотя бы несколько строк кода.
Не про это говорю, а про то что всю жизнь можно радостно всем пудрить мозги на форумах про авторитетов
и великие знания, которые никто не читает(по глупости конечно) и нифига в итоге не сделать. Учить то
никто не запрещает, но покажи что оно даёт в реале и соотнеси с другими программистами, которые тоже на
чём-то базируют свои навыки. Тут расклад простой. Иначе кто тебя слушать будет.
Меня то не загипнотизируешь терминами кибернетика и сам могу правду матку рубануть, один вопрос
и она рубится.
0
Эксперт по электронике
6991 / 3307 / 341
Регистрация: 28.10.2011
Сообщений: 12,985
Записей в блоге: 7
09.05.2019, 14:33
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Переписал ваш код и получил более правильный алгоритм, без костылей.
Но с Goto.
Код можно написать без Goto (правда не QB).
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
OpenConsole()
Print("Введите число:") : a = Val(Input())
For i=1 To 3
  b=a
  Print("Введите число:") : a = Val(Input())
  If a <= b
    Print("Не возрастает") : Delay(2000)
    End
  EndIf
Next
Print("Возрастает")
Delay(2000)
Вложения
Тип файла: zip Test.zip (2.6 Кб, 2 просмотров)
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2019, 02:31
locm, оператор END есть в QB. В ситуации если дальше ветка 7 строки
должна выходить в общий код типа без перехода никак, хотя можно предложить вариант
обернуть в модуль и использовать EXIT SUB\FUNCTION, но я бы за бездумные такие штуки
в коде - жестоко бы брил на лысо пациента, потому что надо быть совсем извращенцем
от структурщины, она нужна, но это уже перегиб.

В школьных задачах не имеет смысла говорить о GOTO. Одно дело, школьная задача,
где ничего толком не требуется и совсем другое критический кусок кода или
необходимость держать код в чистоте и порядке для других людей(да и самому приятно
с таким кодом работать).
CoderHuligan, типа пытается нам открыть глаза на классическую алгоритмизацию
50-х годов, хотя и так понятно как оно было, почему и зачем нужно. Я вот рылся уже
в таком коде, он грамотный, работает, спору нет, но нафиг нужен этот геморой, один раз
отгребёшь по самое не хочу и уже мозг понимает, мол нафига там где не надо, крутить барсетки
из переходов, праведный гнев Дейкстры понятен, он видать тоже наелся в своё время.
С одной стороны да, таким образом алгоритм проработан лучше, ни с фигу его не напишешь,
тут по-любому большая аналитическая работа, но с другой мы получаем абсолютно
несопроводимый кирдык вида - написал и сразу похоронил. Помню один дядька попросил
доработать такой код(с GWBasic порт на FB), я глянул, а там бешеная макаронина с дофига GOTO,
я ему говорю - не, нафиг, откомпилировал в QB режиме и сказал "хочешь нормально, тогда
переписывай в процедурку, тогда легко сделать и ввод\вывод нормальный и по всякому доработать".
Код просто старый годов 70-х, но там не было потребности что-то ускорять или оптимизировать,
просто тогда все писали по классике, не было языковых средств нормальных, область только
развивалась, люди строили свои концепции, ну т.е. жопа была. С другой стороны и полезного
много было понаписано в таком виде, что ничего уже не сделаешь.

По GOTO вообще толковых мало примеров. Вот Анатолий как-то приводил, он там прыгал
для инициализации, чтобы код не вырастал в ширину, потому что это реально удобнее.
В основном это по удобству. Обычно использую его уже в готовой программе при её
модификации, чтобы перепрыгнуть относительно небольшой кусок кода, в основном
для соблюдения последовательности операций(когда добавляется функционал в
недостаточно гибкую архитектуру). Потому что поставить например 1 GOTO и переписать
500 строк программы в логически плотном коде - такая манипуляция может в принципе
похерить проект. Для оптимизации на ВУ применяю крайне редко, проще уйти на ASM
и там уже делать что требуется, имхо так корректнее. И вот именно если надо,
а если не надо, то и как-бы нафиг надо. 2GL это ж не прогулка с ветерком, а сопутствующая
боль спины, жопы и коры головного.
0
Эксперт по электронике
6991 / 3307 / 341
Регистрация: 28.10.2011
Сообщений: 12,985
Записей в блоге: 7
10.05.2019, 10:56
Quiet Snow, можно обойтись без End.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
OpenConsole()
Print("Введите число:") : a = Val(Input())
For i=1 To 3
  b=a
  Print("Введите число:") : a = Val(Input())
  If a <= b
    Print("Не возрастает") : Delay(2000)
    Break
  EndIf
Next
If i>3
  Print("Возрастает")
EndIf
Delay(2000)
Или так.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
OpenConsole()
Print("Введите число:") : a = Val(Input())
Repeat
  For i=1 To 3
    b=a
    Print("Введите число:") : a = Val(Input())
    If a <= b
      Print("Не возрастает") : Delay(2000)
      Break 2
    EndIf
  Next
  Print("Возрастает")
  Break
ForEver
Delay(2000)
Или.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
OpenConsole()
Print("Введите число:") : a = Val(Input())
For i=1 To 3
  b=a
  Print("Введите число:") : a = Val(Input())
  If a <= b
    Print("Не возрастает") : Delay(2000)
    OnErrorGoto(?Err)
    x=0 : x/x
  EndIf
Next
Print("Возрастает")
Err:
Delay(2000)
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.05.2019, 15:29
Цитата Сообщение от Quiet Snow Посмотреть сообщение
один раз
отгребёшь по самое не хочу и уже мозг понимает, мол нафига там где не надо, крутить барсетки
из переходов, праведный гнев Дейкстры понятен, он видать тоже наелся в своё время.
Кстати, Дейкстра по этому поводу писал(из статьи Кнута):
"Пожалуйста, не попадите в ловушку, уверовав в то, что я ужасно догматичен [по поводу оператора goto]. У меня есть стойкое чувство дискомфорта по поводу того, что люди делают из этого религию, полагая, что все концептуальные проблемы программирования могут быть решены лишь одним единственным трюком, или простейшей формой дисциплины кодирования." Перевод мой (абсолютно точный).
Дейкстра был умным мужиком, и много чего полезного в комп-мире сделал, достаточно посмотреть на его рабочий архив: http://www.cs.utexas.edu/users/EWD/indexChron.html Именно он предложил до сих пор недооценённую идею иметь единственную переменную, которая бы описывала все допустимые состояния программы в реальном времени, что открывает большие перспективы, с точки зрения верификации и документации программного кода. Его идеи ещё предстоит осуществить.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
С одной стороны да, таким образом алгоритм проработан лучше, ни с фигу его не напишешь,
тут по-любому большая аналитическая работа, но с другой мы получаем абсолютно
несопроводимый кирдык вида - написал и сразу похоронил.
Я обьясню почему так(и не так..).
Алгоритм не просто лучше проработан, - он создаётся точно в соответствии с требованиями задачи, не отклоняясь в сторону.
А почему код кажется макаронным? Вот мне, к примеру макаронным кажется код, в котором десятки вложенных if-ов
с циклами и пр.. На мой взгляд достаточно сложную программу таким образом вообще не возможно читать. Обычно её декомпозируют, но это не меняет дела.
Вы правильно пишете, что такой код сложно сопровождать. Я скажу больше: его невозможно сопровождать. Но!! Только если мы пытаемся сам код использовать вместо документации на этот код! Дело в том, что Дейкстра, Вирт и пр. хотели использовать текст программы за место документации, чтобы код можно было читать сверху вниз не прыгая в стороны. Для этого и придумали структурное программирование, которое тестировали поначалу на Алголоподобных языках. Но даже они понимали, что невозможно точно реализовать требуемый алгоритм без флагов, дублирования блоков и пр. С этим приходится мириться.
Профессор Шалыто, который предложил автоматную свитч технологию, говорит, что с этим мириться нельзя. https://www.youtube.com/watch?v=tUo9ssPVa4c&t=308s
Он предлагает, помимо самого программного кода иметь на него ещё 4 документа, которые и описывают сам код. По этим документам его и понимают. В код вообще лазить не требуется, разве что если нужно что-то там изменить.
Но прежде чем изменять его нужно понять, и понять БЫСТРО. Там много приятных плюшек, особенно для рускоязычных(и других) программистов. Теперь у программы есть проектная документация, а не лапшеобразный код с комментариями, которые ни о чём не говорят.
Далее.
Как по мне, то код с goto более понятен, чем лапша из вложенных if. Это вопрос воспитания и привычки. Не я сказал, что язык определяет мышление. Если человек с самого начала привык мыслить структурными конструкциями, то для него сложно будет понять алгоритм с переходами. Код с переходами по определению более чист, так как не имеет костылей, которые ни каким боком к задаче. Степанов назвал goto "красивым" оператором. Он красив потому, что позволяет совершенно определённо и точно решать поставленные задачи. То есть думать о задачах, а не о том, как уложить задачу в прокрустово ложе структурной парадигмы.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2019, 16:50
locm, в QB всё те же способы, в первом случае EXIT FOR, во-втором, EXIT DO
и в третьем ON ERROR GOTO метка с последующем RESUME на нужную метку.
Единственное чего нету - это Break. В FB кстати по факту выпилили ON ERROR,
он там работает только в режиме QB и в строке компиляции надо дописывать -ex.
Режим QB - только для портирования, поэтому можно считать что выпилили.

Разумеется использовал бы первый вариант и флаг, но если циклов несколько
- можно и GOTO. Тут уж какие языковые средства, то и юзаем. Не стоит формальная корректность
последующих конфузов. Мозг всё равно видит все эти переходы.

Добавлено через 51 минуту
Цитата Сообщение от CoderHuligan Посмотреть сообщение
в котором десятки вложенных if-ов
Издержки современного кодирования. Это может негативно сказаться только на codestyle.
Никто в общем-то и не говорил что будет легко.
При правильной организации модульности и архитектуры - от этого можно уйти в основном коде.
Во всяком случае это не выглядит как уход от проблемы, а всякие супер пупер теоретики с
супер пупер методиками, которые нихрена не умеют кодить - как раз выглядят, именно так.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
На мой взгляд достаточно сложную программу таким образом вообще не возможно читать.
Если программу невозможно читать, значит её писал лошара.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
В код вообще лазить не требуется, разве что если нужно что-то там изменить.
В код лезут по разным причинам, посмотреть как сделано, изменить, отрефакторить.
Что значит не требуется? Когда у тебя исходних на 5k строк тебе в него лезть не требуется,
чтобы посмотреть те или иные нюансы при кодировании? Конечно не знаю может есть люди
с феноменальной памятью, которым да не требуется, но есть подозрение что их не больше
пары человек на всей планете, т.е. это полнейшая чушь.
Это всё равно что писателю сказать, пиши всё без остановки, не перечитывай что написал.
Когда ты разрабатываешь что-либо, документацию, архитектуру, код тебе по любому потребуется
овер дофига раз лезть в это дело, чтобы сверяться, находить и править косяки, улучшать
и дорабатывать.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
https://www.youtube.com/watch?v=tUo9ssPVa4c&t=308s
С чего мне должна быть интересна эта презентация? Он сам говорит что он программист никакой.
В его годы он должен быть офигенным программистом, а он "никакой". Мне не интересны теоретики,
которые своими руками ничего не делают, а только разглагольствуют. Хоть какое у них там признание,
в гробу их видал.


Вижу что всё таки кому-то тут запудрили мозги эти философы грёбаные, объясняю: абсолютно начихать
чем оперируешь, автоматы, низкий уровень, процедурное, функциональное, ООП, этого дерьма можно
навыдумывать много. Задача от этого не становится легче, всё равно надо вкалывать как бес,
нет волшебной кнопки, а те кто думают, что она есть - лохи и шарлатаны, которые нагибают экологию,
экономику и прочие факторы своим пофигизмом и паразитированием на готовом, с тотальной неспособностью
предложить что-либо лучше.
Да разумеется скорее всего есть задачи предрасположенные чисто к автоматам, но всё решает
практика и только. В арсенале программиста должны быть разные способы и методы. Работать
нужно на задачу, что она требует, а не на непонятного с горы свалившегося дядьку
теоретика, который коня всю жизнь валял.

Добавлено через 11 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если человек с самого начала привык мыслить структурными конструкциями, то для него сложно будет понять алгоритм с переходами.
Весь бред состоит в том, что насрать как ты привык мыслить, если тебе дают GOTO\GOSUB макаронину
из неизвестной тебе прикладной области - ты обосрёшься. Это просто факт.
В известной же области тебе придётся разобрать алгоритм на атомы и пересобирать его полностью
при каждой модификации. При том отдав этот код куда-нибудь другим людям, ты услышишь лютые матюки
и полный отказ с ним работать. Если тебя это устраивает - ради бога.

Добавлено через 15 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
а не о том, как уложить задачу в прокрустово ложе структурной парадигмы.
Тоже самое можно сказать про любую парадигму и любую методику в принципе.
Ключевой фактор - это решение. В виде совершённого действия.
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
10.05.2019, 17:11
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Если тебя это устраивает - ради бога.
Меня вообще не устраивает то, что сейчас происходит. И я знаю откуда рожки растут, истоки.
Если тебе дают макаронину где кроме документации сама эта макаронина, то согласен. Но и сейчас точно та же ситуация , и даже хуже, имхо, без готу. Редко кто пишет хотя бы обьяснительную записочку по поводу своих нагромождений. Комментарии не говорят об общей архитектуре. Если есть вменяемая дока, то код будет жить века, если её нет, то НИКТО разбираться с ним НЕ БУДЕТ иначе как за зарплату. Легче написать всё снова. Надо видимо сделать примерный проект, так как надо, сделать некий мастер-класс, с документацией, по шагам и кодом на goto. И посмотреть будет ли это понятно или нет другим. Например пишем с чистого листа игру на free basic, чтобы не влезать в дебри с поддержкой дайрект иксов и опенджиэлов. Всё познаётся на примерах, слова можно произносить бесконечно.. Нам же важно как осуществляется проект с нуля. Как его нужно правильно создавать. Хочу сделать цикл уроков в своём блоге на эту тему, только пока не придумал тему игры..))
0
Эксперт по электронике
6991 / 3307 / 341
Регистрация: 28.10.2011
Сообщений: 12,985
Записей в блоге: 7
10.05.2019, 17:24
Цитата Сообщение от Quiet Snow Посмотреть сообщение
GOSUB
Подпрограммы практически нет смысла использовать. Аргументов нет, переменные в глобальной области (если также усложняет рекурсивные вызовы). Давно уже используют изоляцию участков программы и goto/gosub на этом фоне выглядят сильно устаревшими и неэффективными. От них не просто так отказались. Они не самые подходящие в проектах с десятками или сотнями тысяч строк и при повторном использовании кода в других проектах.
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
10.05.2019, 18:00
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если есть вменяемая дока, то код будет жить века, если её нет, то НИКТО разбираться с ним НЕ БУДЕТ иначе как за зарплату.
Про это регулярно толдычу. И даже за бабки не будут, пока ещё не видел людей которые специально
на свою жопу будут искать адский гемор, а если кто и будет - обычно это идиоты они себе портят мозг,
а потом вырастают в теоретиков, потому что сами нифига накодить не могут.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Легче написать всё снова.
На это всегда нужно много времени и мозгов. Лучше не доводить свои проекты до этого.
Практики это знают очень хорошо и они себя психологически загрызли уже на этих вещах.
Не всё так просто когда годами что-то пишешь, а не за 30 минут.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Надо видимо сделать примерный проект
Что он докажет? Что можно писать с GOTO? Ну да так писали в 50-х 70-х, сейчас избегают.
Напиши проект на 5-10k строк по своей парадигме. Прикладуху, не игру. Тогда будет разговор.
Грамотных и так видно как они пишут и что советуют, все советы от этих ребят убер полезны
проверено.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Нам же важно как осуществляется проект с нуля.
Нет, мне важно, чтобы код можно было дополнять, чтобы он был относительно эффективен,
чтобы блоки и важные нюансы были комментированы, чтобы были отступы где надо для читаемости.
Чтобы не было логического перегиба, т.е. на ВУ - код без НУ элементов, т.е. чистая ВУ логика.
Про документацию вообще речи нет - если её нет, с порога посылаю таких недопрогеров.
Уже насмотрелся на "сидельщиков за компами", с них спросу нет.

Добавлено через 3 минуты
Цитата Сообщение от locm Посмотреть сообщение
Подпрограммы практически нет смысла использовать. Аргументов нет, переменные в глобальной области (если также усложняет рекурсивные вызовы). Давно уже используют изоляцию участков программы и goto/gosub на этом фоне выглядят сильно устаревшими и неэффективными. От них не просто так отказались. Они не самые подходящие в проектах с десятками или сотнями тысяч строк и при повторном использовании кода в других проектах.
Полностью согласен, GOSUB - это днище. Хотя глобалки пока ещё использую, адски аккуратно(c
NAMESPACE-ами получается даже аппетитнее), сложно отказаться, это издержки многолетнего
QB и ASM кодинга.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2019, 18:00
Помогаю со студенческими работами здесь

Проверить, возрастают ли или убывают ли цифры в числе, вводимом с клавиатуры
Добрый день! Решал простую задачу на паскале: &quot;проверить возрастают ли или убывают ли цифры в числе, вводимом с клавиатуры&quot; Я...

Найти количество наборов, элементы которых возрастают или убывают.
Дано целое число K, а также K наборов ненулевых целых чисел.Каждый набор содержит не менее двух элементов, признаком его завершения...

Найти количество наборов, элементы которых возрастают или убывают
&quot;Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком его завершения...

Найти количество наборов, элементы которых возрастают или убывают
дана такая задачка: Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов, признаком...

Найти количество участков на которых числа возрастают и вывести их
Масив задан рандомным количеством рандомных чисел через список. Нужно вывести на экран количество участков на которых эти числа возрастают....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru