Pascal

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:P.S. То что я привел в качестве примера выше на сях пишется так: a=b[i++];a+=b[i++];
Вот тут, те кто знает математику со школы и будут чесать репу: как так а+ будет равно b[i++].... Потом, новичек прознает, что "=" имеет исконно сравнивающую функцию только в условиях, а в остальных случаях это оператор присваивания. Тогда остается непонятным следующее: как b[i++] (с чем более-менее понятно) может быть записано в а+? И только спустя годы тренировок написания на С и тонны перечитанных манов дадут новичку понять, что это значит. Но тогда, он уже будет далеко не новичек.....
bar
Senior
Posts: 185
Joined: 07 Aug 2006 10:18

Post by bar »

HardWareMan wrote:
Shaos wrote:P.S. То что я привел в качестве примера выше на сях пишется так: a=b[i++];a+=b[i++];
Вот тут, те кто знает математику со школы и будут чесать репу: как так а+ будет равно b[i++].... Потом, новичек прознает, что "=" имеет исконно сравнивающую функцию только в условиях, а в остальных случаях это оператор присваивания.
Угу. А новичёк в паскале будет думать как это в выражении a:=2, можно положить 2 на диск a: [:)]
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

bar wrote:
HardWareMan wrote:
Shaos wrote:P.S. То что я привел в качестве примера выше на сях пишется так: a=b[i++];a+=b[i++];
Вот тут, те кто знает математику со школы и будут чесать репу: как так а+ будет равно b[i++].... Потом, новичек прознает, что "=" имеет исконно сравнивающую функцию только в условиях, а в остальных случаях это оператор присваивания.
Угу. А новичёк в паскале будет думать как это в выражении a:=2, можно положить 2 на диск a: [:)]
БУЯ. В паскале сразу определяется: "=" - равно и ":=" - присвоение. Так что новичек будет думать как же сделать дискетку флешкой и писать код типо a:=flash. %)
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
Shaos wrote:P.S. То что я привел в качестве примера выше на сях пишется так: a=b[i++];a+=b[i++];
Вот тут, те кто знает математику со школы и будут чесать репу: как так а+ будет равно b[i++].... Потом, новичек прознает, что "=" имеет исконно сравнивающую функцию только в условиях, а в остальных случаях это оператор присваивания...
в условиях это называется == :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
bar wrote:
HardWareMan wrote:
Shaos wrote:P.S. То что я привел в качестве примера выше на сях пишется так: a=b[i++];a+=b[i++];
Вот тут, те кто знает математику со школы и будут чесать репу: как так а+ будет равно b[i++].... Потом, новичек прознает, что "=" имеет исконно сравнивающую функцию только в условиях, а в остальных случаях это оператор присваивания.
Угу. А новичёк в паскале будет думать как это в выражении a:=2, можно положить 2 на диск a: [:)]
БУЯ. В паскале сразу определяется: "=" - равно и ":=" - присвоение. Так что новичек будет думать как же сделать дискетку флешкой и писать код типо a:=flash. %)
ну и в сях тоже - "==" это равно, а "=" это присваивание :)

P.S. то что меня бесило в паскале, когда в начале 90-х нас им мучили на первых курсах университета, так это полная нелогичность в расстановке ; после разных конструкций - типа надо было зазубривать после каких сочетаний if then else оно положено, а после каких - нет, ну а begin-ы/end-ы это просто песня - столько времени на это угрохано было :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:P.S. то что меня бесило в паскале, когда в начале 90-х нас им мучили на первых курсах университета, так это полная нелогичность в расстановке ; после разных конструкций - типа надо было зазубривать после каких сочетаний if then else оно положено, а после каких - нет, ну а begin-ы/end-ы это просто песня - столько времени на это угрохано было :)
Чего тут нелогичного? ";" не ставится перед ELSE и все. Причем это может быть только одна команда между THEN и ELSE, либо это должен быть END. Далее, касаемо BEGIN/END - а разве в С отменили {}? Такая же нелогичность, только писать меньше.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
Shaos wrote:P.S. то что меня бесило в паскале, когда в начале 90-х нас им мучили на первых курсах университета, так это полная нелогичность в расстановке ; после разных конструкций - типа надо было зазубривать после каких сочетаний if then else оно положено, а после каких - нет, ну а begin-ы/end-ы это просто песня - столько времени на это угрохано было :)
Чего тут нелогичного? ";" не ставится перед ELSE и все. Причем это может быть только одна команда между THEN и ELSE, либо это должен быть END. Далее, касаемо BEGIN/END - а разве в С отменили {}? Такая же нелогичность, только писать меньше.
{} против BEGINEND - си в ЧЕТЫРЕ раза компактнее ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:
HardWareMan wrote:
Shaos wrote:P.S. то что меня бесило в паскале, когда в начале 90-х нас им мучили на первых курсах университета, так это полная нелогичность в расстановке ; после разных конструкций - типа надо было зазубривать после каких сочетаний if then else оно положено, а после каких - нет, ну а begin-ы/end-ы это просто песня - столько времени на это угрохано было :)
Чего тут нелогичного? ";" не ставится перед ELSE и все. Причем это может быть только одна команда между THEN и ELSE, либо это должен быть END. Далее, касаемо BEGIN/END - а разве в С отменили {}? Такая же нелогичность, только писать меньше.
{} против BEGINEND - си в ЧЕТЫРЕ раза компактнее ;)
А я и говорю - С язык для ЛЕНИВЫХ. Все сокращают до 1 буквы, а потом ломай голову, как оно работает (когда изучаешь чужие исходники).
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Если ты не знаешь языка, то голову ломать будешь при чтении любых исходников.
Extreme Entertainment
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Mac Buster wrote:Если ты не знаешь языка, то голову ломать будешь при чтении любых исходников.
Это крайнесть. С другой стороны я хорошо знаю асм, но это мне не помогало хорошо разобраться в исходниках, которые написаны другим человеком, особенно если он не приучен к порядку в исходниках, не приучен комментировать (хъотябы не каждую команду а блоки), не приучен структуризировать и пишет сплошняком. В таком тексте даже мега-проггер, папа языка сломает голову. Не так ли? Так вот, ИМХО пропустить при разборе исходника { или } легче, чем BEGIN или END, потому как 1 символ быстрее выпадет с поля зрения чем слово. С другой стороны, есть куча прог и скриптов, тематической и структурной подсветки, что конечно поможет.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
Mac Buster wrote:Если ты не знаешь языка, то голову ломать будешь при чтении любых исходников.
Это крайнесть. С другой стороны я хорошо знаю асм, но это мне не помогало хорошо разобраться в исходниках, которые написаны другим человеком, особенно если он не приучен к порядку в исходниках, не приучен комментировать (хъотябы не каждую команду а блоки), не приучен структуризировать и пишет сплошняком. В таком тексте даже мега-проггер, папа языка сломает голову. Не так ли? Так вот, ИМХО пропустить при разборе исходника { или } легче, чем BEGIN или END, потому как 1 символ быстрее выпадет с поля зрения чем слово. С другой стороны, есть куча прог и скриптов, тематической и структурной подсветки, что конечно поможет.
если для чтения текста программы на языке нужна тулза с подсветками, автоматическим выравниванием, схлопыванием-расхлопыванием и т.д. - то это как бы уже и не язык программирования получается, ибо на настоящем языке программирования можно писать в любом текстовом редакторе :)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

HardWareMan wrote:В таком тексте даже мега-проггер, папа языка сломает голову. Не так ли?
Опять же, если ты не знаешь языка и не понимаешь что должно быть сделано в результате, то тебе никакое форматирование не поможет. Я сейчас работаю с людьми, которые читают, понимают и правят ошибки в тексте, написанном на неизвестном им языке (будь то С, С++, Objective C, F#, Рефал, Пролог или Лисп) и для малоизвестной или вовсе неизвестной архитектуры. Причем всё это требует не более часа.
Extreme Entertainment
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Mac Buster wrote:
HardWareMan wrote:В таком тексте даже мега-проггер, папа языка сломает голову. Не так ли?
Опять же, если ты не знаешь языка и не понимаешь что должно быть сделано в результате, то тебе никакое форматирование не поможет. Я сейчас работаю с людьми, которые читают, понимают и правят ошибки в тексте, написанном на неизвестном им языке (будь то С, С++, Objective C, F#, Рефал, Пролог или Лисп) и для малоизвестной или вовсе неизвестной архитектуры. Причем всё это требует не более часа.
Смысл такой "правки", если они не знают что делают?
User avatar
Error404
Maniac
Posts: 269
Joined: 05 Oct 2006 04:45
Location: Moscow

Post by Error404 »

Mac Buster wrote:
HardWareMan wrote:В таком тексте даже мега-проггер, папа языка сломает голову. Не так ли?
Опять же, если ты не знаешь языка и не понимаешь что должно быть сделано в результате, то тебе никакое форматирование не поможет. Я сейчас работаю с людьми, которые читают, понимают и правят ошибки в тексте, написанном на неизвестном им языке (будь то С, С++, Objective C, F#, Рефал, Пролог или Лисп) и для малоизвестной или вовсе неизвестной архитектуры. Причем всё это требует не более часа.
Такое возможно только в очень хорошо структурированном коде (для понимания которого достаточно уметь читать). Если код функций сплошь и рядом, к примеру, заканчивается так:

Code: Select all

  ...........................................
           }
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
}
, из названия функций ничего не следует о их действиях (ааа, cc13, qwerty), компилятор ругается на не пойми что (как бывает когда поехала вся структура кода от недостающей скобки), то найти ошибки или вставить свои дополнения в такой код без применения спец. редакторов не сможет даже ас этого языка, не говоря уже о "людях с улицы".
Всем добра!
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Error404 wrote:то найти ошибки или вставить свои дополнения в такой код без применения спец. редакторов не сможет даже ас этого языка, не говоря уже о "людях с улицы".
См. выше - язык и архитектура не имеют значения.
Extreme Entertainment