Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.06.2016, 16:17   #11
Константин_В
Новичок
Джуниор
 
Регистрация: 29.06.2016
Сообщений: 4
По умолчанию

Есть возможность изменить тему, указав PascalABC.NET? Дабы не вводить в заблуждение.
Константин_В вне форума Ответить с цитированием
Старый 30.06.2016, 16:24   #12
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Возьмите лучше FPC + Lazarus или FPC + CodeTyphon. Реально. Лучше день потерять, но потом за 5 минут долететь.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 30.06.2016, 16:44   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Utkin
Возьмите лучше FPC + Lazarus или FPC + CodeTyphon. Реально. Лучше день потерять, но потом за 5 минут долететь.
Согласен.

Константин, рекомендую прислушаться к совету.

Заголовок темы я изменил.

что же касается вашего примера.
Вы всё правильно сделали и разобрались.
Но хочу сделать пару замечаний.
во-первых, стоит использовать модификаторы var и const перед переменной типа массив (в вашем случае - const), почему это лучше сделать, в теме рассказано.

во-вторых, в случае использования динамических массивов нет необходимости передавать N - ведь размерность массива может быть легко получена из самого массива:
Код:
UNIT R1;

INTERFACE
    TYPE MyArray = ARRAY OF INTEGER;
    FUNCTION SUM (const B:MyArray):INTEGER;
    
IMPLEMENTATION
    FUNCTION SUM(const B:MyArray):INTEGER;
    VAR S,I:INTEGER;
    
    BEGIN
        S:=0;
        FOR I:=Low(B) TO High(B) DO S:=S+B[I];
        SUM:=S;
    END;
END.
ну и в третьих, мутант Pascal ABC.NET - это не совсем Паскаль (точнее, это совсем не Паскаль, он только под него подстраивается). Поэтому просуммировать все элементы массива можно вообще без цикла и дополнительных переменных, одной строчкой кода (через LINQ) (сравните:
Код:
    FUNCTION SUM(const B:MyArray):INTEGER;
    BEGIN
        Result := B.Sum();
    END;

Последний раз редактировалось Serge_Bliznykov; 30.06.2016 в 16:47.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal abc.net, нужно составить модуль Pon4is Помощь студентам 0 17.12.2015 23:08
Pascal ABC.NET gogomon93 Помощь студентам 4 01.12.2013 17:56
действительное число с плавающей точкой, его модуль и квадрат (pascal ABC) программирование Помощь студентам 1 01.05.2013 22:15
Pascal ABC.NET BuTaJI Помощь студентам 1 26.04.2011 20:10
Pascal ABC .NET no4_sniper Паскаль, Turbo Pascal, PascalABC.NET 0 17.10.2009 00:21