Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - ilovb

Страницы: 1 ... 3 4 [5] 6 7 ... 170
61
Общий раздел / Re: ANDIF aka and then
« : Июнь 29, 2014, 08:09:36 pm »
А еще у меня была мысль делать отступы для ANDIF:

IF cond1 THEN

  ANDIF cond2 THEN
   
  ANDIF cond3 THEN

ELSEIF cond4 THEN

  ANDIF cond6 THEN
 
ELSIF cond5 THEN

END;

Так вроде невозможно запутаться.

62
Общий раздел / Re: ANDIF aka and then
« : Июнь 29, 2014, 08:07:47 pm »
1. Вот потому и спрашиваю мнения со стороны. У меня тоже есть подозрения что можно будет пропустить чего...
2. Как раз этот частный случай и нужен на практике.

Например когда выполняешь некие функции, возвращающие код ошибки.

Есть только два варианта:
1.
err := F1();
IF ~err THEN
err := F2();
  IF ~err THEN
    err := F3();
      IF ~err THEN
        F4();
      END;
  END;
END;
При длинной цепочке это превращается в адЪ

Можно делать иначе:
err := F1();
IF ~err THEN
  err := F2();
END;
IF ~err THEN
  err := F3();
END;
IF ~err THEN
  F4();
END;

Так гораздо лучше, но коробит от лишних проверок.

А вот как это будет с ANDIF:

err := F1();
IF ~err THEN
  err := F2();
ANDIF ~err THEN
  err := F3();
ANDIF ~err THEN
  F4();
END;

Линейный код без лишних проверок. И шаблон цепочки явно выражен с помощью ключевого слова ANDIF.

63
Синдром утенка как есть, ага. Я вначале пробовал Basic на ZX Spectrum'e - оказалась какая-то фигня, не впечатлился, и программировать не начал. Потом щупал этот самый Quick Basic - аналогично. Недоубно, криво, и программировать после общения с этой средой совсем не хотелось. Хотя книжки по бейсику я читал, да. Язык вызывал некое отторжение. Да и подходы и среда...

Странно. QBasic - это первая программа, с которой я работал на компьютере. Что-куда я довольно быстро разобрался (буквально за час) вбил код и запустил. При этом никто ничего не показывал и не объяснял. Книжек тоже не было (но до этого я читал книгу по GW-BASIC). Среда и язык осваивались не отходя от кассы. Автокапс и замечательная справка позволяли быстро двигаться вперед не отвлекаясь и не теряя контекста. Т.е. реально не нужно было ничего кроме твоих мозгов, клавиатуры и среды QBasic. Все было здесь и сейчас.
Вот это низкий порог вхождения. Все было просто и интуитивно понятно. При этом в QBasic достаточно возможностей для новичка (даже перебор типа PEEK POKE)

2 Geniepro:
TP да, из той же оперы. Но я бы таки его на второе место поставил. Все таки там среда посерьезней и без посторонней помощи сложнее разобраться.

ps Ах да. Думаю, что еще сыграло то, что среда QBasic была на русском.

64
Общий раздел / ANDIF aka and then
« : Июнь 29, 2014, 02:34:25 pm »
Есть такая плюшка в аде (в выражениях). Еще была тема на oberoncore (искать лень), где Илья Ермаков возжелал такой механизьм для последовательности действий.

В обсчем я тут покодил на Go, прочуйствовал обработку ошибок, и задался вопросом:
А что мешает добавить ANDIF по аналогии с ELSIF?

IF cond1 THEN

ANDIF cond2 THEN

ANDIF cond3 THEN

ELSIF cond4 THEN

ANDIF cond5 THEN

ELSE

END;

ветка ANDIF выполняется тогда и только тогда, когда истинно условие предыдущей ветки (IF, ANDIF или ELSIF)

Структурно это замена вложенного IF:

IF cond1 THEN

  IF cond2 THEN (* это ANDIF *)
   
    IF cond3 THEN (* еще ANDIF *)

    END;
  END;
ELSE

  IF cond4 THEN (* это ELSIF *)
    IF cond6 THEN (* следующий ANDIF *)

    END;
  ELSE 
    IF cond5 THEN (* еще ELSIF *)

    END;
  END;
END;

Этот код транслируется в:

IF cond1 THEN

ANDIF cond2 THEN
   
ANDIF cond3 THEN

ELSEIF cond4 THEN

ANDIF cond6 THEN
 
ELSIF cond5 THEN

END;

Мне кажется, что это совершенно естественный сахарок как и ELSIF. Какие тут могут быть проблемы? (Укажите если кто видит)

С другой стороны можно сделать более явную конструкцию:

CHAIN cond1 :

| cond2 :

| cond3 :

END;

Смысл в том, что цепочка прерывается, как только не выполнится очередное условие.

65
Ах да, ссылка: GOTO BASIC

66
Цитата: bigfatbrowncat
Я начинал с бейсика. С того самого Quick Basic. Потом был паскаль года до 1997, затем — Delphi, долго собирался с силами, чтобы выучить C — уж очень его синтаксис казался замудрёным после паскалевского. Пересел на C/C++ уже в институте, освоил C# потому, что он показался мне близким и похожим на Delphi. Сейчас занимаюсь Java и Android.

И вот, что я вам скажу. Наблюдая сегодняшнее состояние индустрии, в особенности ее отношение к новичкам, я не перестаю радоваться, как же мне повезло родиться на заре IBM PC.

У меня растет ребенок. Пока еще совсем маленький, но время пролетит незаметно. И иногда я задаю себе вопрос — смогу ли я показать ей, что такое программирование, когда она достигнет возраста заинтересованности в подобных вещах и главное — что именно я ей смогу показать, чтобы она заинтересовалась и не напугалась?

Вопрос считаю не риторическим (во всяком случае, надеюсь, что ответ существует, хотя я его еще не нашел). И где вы сейчас найдете:

1. Простой язык, позволяющий постепенно понять, что такое циклы и условные переходы, операторные скобки, функции и внешние модули
2. Надёжную и элементарную IDE, заточенную строго под этот язык, рассчитанную на написание среднего размера программ, но которая при этом способна, например, вытаскивать одну функцию в рабочую область и скрывать остальные, чтобы большой объем кода не пугал неокрепший мозг

Для всех, кто начнет рассказывать мне про простые и понятные языки для начинающих, которые легко и быстро запускаются из консоли или, прости господи, из какого-нибудь emacs, уточню: второй пункт в этом списке даже важнее первого, потому что человек делает первые шаги за руку.

В каком-то приближении годился бы C# и VS Express, но, вспоминая, сколько всего мне пришлось изучить, чтобы разобраться в Delphi (а ведь я уже в тот момент умел что-то кодить), я понимаю, что он сгодится только как второй шаг, но никак не первый.

В QBasic была даже валидация вводимого кода при его наборе (!) немыслимая по крутизне в те времена фича. Если не помните — валидный оператор превращался в Caps (print -> PRINT), а невалидный оставался как есть, намекая на ошибку.

От себя скажу — если бы я не нашел тогда этот язык и среду, возможно, одним программистом было бы меньше. Убежден, что многие со мной согласятся.

Цитата: TimeCoder
Ого, меня сначала прошиб холодный пот: словно это я написал комментарий и забыл про это. Прошел в точности такой же путь, даже годы совпадают! Кроме Java в итоге.

Вот и у меня мурашки.

Это реально была удобнейшая среда. Даже осмелюсь заявить, что это была лучшая IDE из всех, что я видел.
У меня, возможно, синдром утенка, но я до сих пор мечтаю о столь же удобном инструменте.

QBasic - это пример гениального ПО.

ps Я все сказал и мне не стыдно.

67
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 06:46:56 pm »
Понятно. Меня как раз message bus интересовала.

68
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 06:35:03 pm »
Цитировать
Кроме того похоже что вообще IS нельзя с RECORD использовать
А нет работает.

Но value variable cannot be used меня озадачило.

69
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 06:29:14 pm »
Цитировать
invalid type test: a value variable cannot be used

vlad, ты тут как бы намекаешь, что плюшка только для POINTER?
Кроме того похоже что вообще IS нельзя с RECORD использовать. Это что за прикол?

70
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:59:48 pm »
Дико извиняюсь. Не читаю я все.  ::)

Я бы и в код мог посмотреть, но больно тошнотворен жабаскрипт для моего нежного мозга.

71
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:56:13 pm »
2 valexey_u
Эмм.. в каких? Не Милнер же тут.

72
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:47:36 pm »
vlad, скажем так, профессиональное чутье не позволяет мне доверять такому решению. Если уж в WITH дырка обнаружилась..., то тут я бы крепко подумал перед тем как этим пользоваться.

73
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:37:24 pm »
О, Geniepro, спасибо. Интересный вопрос.

74
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:33:57 pm »
Еще вопросик. Давно хочу сей компилер в Sublime играть. Есть инструкция как прикрутить для нубов?

75
Общий раздел / Re: Oberon-07/13: заметки
« : Июнь 27, 2014, 05:21:42 pm »
Оно уже онлайн?

Страницы: 1 ... 3 4 [5] 6 7 ... 170