|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Serg Belyaev 2:5015/166.7 08 Jan 2002 01:47:56 To : Miroslav Jorem Subject : Гоpодская олимпиада по инфоpматике -------------------------------------------------------------------------------- 07-Jan-02 04:40:39, Miroslav Jorem wrote to Serg Belyaev Subject: Гоpодская олимпиада по инфоpматике SB>> е секрет, что знать С - признак "крутости". И после этого вы SB>> хотите объективности? Этот убогий язык уже многих лишил SB>> удовольствия от поисков красивых алгоритмов. MJ> while((c = fgetc(File)) != EOF) { MJ> ... MJ> } MJ> Запиши покрасивее, алгоритмист. М-м-да уж... Мне нужно: while <нет конца файла> do <чего-то делаем> Hа паскале это так и пишется: while not eof(File) do ... И зачем мне получение символа оформлять таким образом, чтобы получать такую кашу - мне подобная "краткость" не нужна. Имеются логические выражение, на которых задается естественная для них функция с множеством значений (ложь, истина). Рассмотрим логическое выражение (c = fgetc(File)) != EOF Слева стоит "чудовище". С одной стороны оно похоже на оператор присваивания, но при этом от этого "бедного" оператора требуют еще чего-то, чтобы его можно было засунуть вот таким бесцеремонным способом в другую конструкцию - авторы C наверное "тащились" от своего "изобретения". Hо на этом "странности" не кончаются. Оператор присваивания "отдает" значение "c", т.е. тип этой _штуки_ - это char. Справа стоит EOF - это далеко не типа char. Hо почему бы не "натянуть" для "красоты" - пусть будет типа char. И смотрите, как все хорошо получается! Из файла мы можем читать только символы, так давайте договоримся, что когда из него уже читать будет нечего, мы _будто_бы_ прочитаем спецсимвол EOF. Ах, как ловко все получилось! Hо это же обыкновенный обман. Я прихожу в кассу и мне выдают спецбумажку с нарисованной дулей - говорят это такая денежка. MJ> PS: Эти два языка отличаются только синтаксисом => C не может MJ> стимyлировать MJ> к поискy красивых алгоритмов слабее, чем Паскаль. Объективности в твоём MJ> высказывании тоже маловато как-то. А паскаль и не стимулирует, но меньше мешает, чем C. От языка прежде всего хотелось бы, чтобы его _не_замечал_ пишущий на нем человек. Люди, конечно, разные - некоторым нравится вычурность, другим - простота. MJ> C предлагает более полный набор операций над yказателями и более MJ> гармоничный синтаксис в совокyпности с богатым набором операций; Это, в общем-то, слабо относится к алгоритмам, а на стадии реализации в Turbo Pascal-е достаточно средств для работы с указателями. Кстати, на практике важен конкретный компилятор. То, что было сделано Борландами - это не Виртовский паскаль. Hо идея, во многом улучшенная, именно его. Простота, уважение к _ДАHHЫМ_. Модульность началась с версии 4, ОП с версии 5.5. 6-ой был не очень удачным, но сочетание с ассемблерными вставками было приятным. MJ> Hаличествyет MJ> иерахическая область видимости переменных, в то время как в Паскале всё MJ> надо MJ> объявлять внавалкy в секции var; Есть некоторое подобие микроядерной MJ> архитектyры MJ> (Минимальный набор ключевых слов и операций. Остальное библиотека). Это MJ> объективно. Конкретная реализация такова (TP, BP), что нет никакой разницы между предлагаемым набором операций и вновь создаваемыми - расширяемость языка. Можно вспомнить великолепный расширяемый язык - ФОРТ. Писал бы на нем, но читать плохо. А уж мощь ФОРТА превышает мощь остальных ЯВУ. Всего доброго, <SVB> (Serg Belyaev) --- Terminate 5.00/Pro * Origin: (svb@sandy.ru) or (2:5015/166.7) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/33779f2f15a7.html, оценка из 5, голосов 10
|