LINUX.ORG.RU

История изменений

Исправление ilammy, (текущая версия) :

ну переменные обявляются лишь в начале (в старом стандарте Си точно так же было. Что, не знал?)

4.2

В Сишечке всегда можно было открыть блок и наделать ещё переменных:

void foo(int a, int b)
{
    int i;
    /* ... */
    if (a == b) {
        int d;
        /* ... */
        {
            char x;
            /* ... */
        }
    }
}

А в Паскале необходимо тащиться в начало подпрограммы и там прописывать все нужные переменные. Хотя в этом есть определённый педагогический аспект: СТРАДАНИЯ при объявлении переменных мягко подталкивают к необходимости более аккуратного разбиения программ на подпрограммы. После этого необходимость вводить переменные посреди подпрограмм пропадает сама собой. Единственное, что не лечится: есть в подпрограмме несколько циклов, то всякие i, j, k торчат наружу. Хотя, может, это подталкивает к тому, чтобы называть счётчики подлиннее.

Исходная версия ilammy, :

ну переменные обявляются лишь в начале (в старом стандарте Си точно так же было. Что, не знал?)

4.2

В Сишечке всегда можно было открыть блок и наделать ещё переменных:

void foo(int a, int b)
{
    int i;
    /* ... */
    if (a == b) {
        int d;
        /* ... */
        {
            char x;
            /* ... */
        }
    }
}

А в Паскале необходимо тащиться в начало подпрограммы и там прописывать все нужные переменные. Хотя в этом есть определённый педагогический аспект: СТРАДАНИЯ при объявлении переменных мягко подталкивают к необходимости более аккуратного разбиения программ на подпрограммы. После этого необходимость вводить переменные посреди подпрограмм пропадает сама собой. Единственное, что не лечится: есть в подпрограмме несколько циклов.