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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2013, 20:10   #1
VladimirAvakov
Пользователь
 
Регистрация: 13.03.2013
Сообщений: 33
Восклицание Одномерные массивы

Всем привет. Дано задание:

Даны натуральное число n и действительные a1,…,an, где n≤3000. Получить удвоенную сумму всех положительных членов последовательности a1,…,an.

Вот мне помогли решить:

Код:
const
  nmax = 3000;

var
  a: array[1..nmax] of integer;
  n, i: integer;
  s: longint;

begin
  repeat
    write('Введите размер массива n (n <= 3000): N=');
    readln(n);
  until (n > 0) and (n <= 3000);
  s := 0;
  writeln('Массив:');
  for i := 1 to n do
  begin
    a[i] := random(19) - 9;
    write(a[i]:4);
    if a[i] > 0 then s := s + a[i];
  end;
  writeln;
  writeln('Удвоенная сумма положительных элементов: S=', s * 2);
end.
Но поскольку я новичок и чайник в Паскале, помогите мне, распишите мне каждую строчку зачем она и почему. Заранее огромное спасибо
VladimirAvakov вне форума Ответить с цитированием
Старый 30.09.2013, 21:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:

Это описание констант
const
Константа, которая будет указывать граничное число, до которого программа будет вести отсчет
  nmax = 3000;

Это раздел переменных
var
Описание массива до граничного числа
  a: array[1..nmax] of integer;
И вспомогательных переменных
  n, i: integer;
  s: longint;

begin
Вводим размер массива. Если он не попадает в заданный по условию диапазон
Вводим заново
  repeat
    write('Введите размер массива n (n <= 3000): N=');
    readln(n);
  until (n > 0) and (n <= 3000);
  s := 0;

Потом проходим циклом по массиву до введенного кол-ва
  writeln('Массив:');
  for i := 1 to n do
  begin
Забиваем в массив случайные числа от -9 до... 10 кажись...
    a[i] := random(19) - 9;
Выводим полученное
    write(a[i]:4);
Если оно положительное - суммируем
    if a[i] > 0 then s := s + a[i];
  end;
  writeln;
Выводим итоговую сумму умноженную на два
  writeln('Удвоенная сумма положительных элементов: S=', s * 2);
Все.
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2013, 16:53   #3
HedgehogLu
 
Аватар для HedgehogLu
 
Регистрация: 04.09.2013
Сообщений: 9
По умолчанию

символов комментариев нету, видимо чтобы при копипасте не компилилось
Контактные данные: ICQ - 642431158 e-mail - Hedgehog@ukr.net
Чтобы хорошо писать программы - нужно, как минимум, писать программы
HedgehogLu вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Одномерные массивы Conte Помощь студентам 4 01.12.2011 08:58
Одномерные массивы TigRon Помощь студентам 0 29.11.2011 21:07
одномерные массивы Crazy123 Помощь студентам 0 04.05.2010 13:53
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12