Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 8
1

Вычислить сумму элементов одномерного массива

24.10.2013, 17:05. Показов 1428. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вычислить сумму элементов одномерного массива с числом элементов n (n вводится пользователем) и, если эта сумма больше 100, переписать элементы с нечетными номерами в другой массив. По завершению работы программы освободить память.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2013, 17:05
Ответы с готовыми решениями:

Вычислить сумму элементов одномерного массива
Написать программу с рекурсивной функцией, вычисляющей сумму элементов одномерного массива. Решите...

Вычислить сумму не повторяющихся элементов одномерного массива
Вычислить сумму не повторяющихся элементов массива A.

Вычислить сумму положительных элементов одномерного массива
Вычислить сумму положительных элементов А(70)

Вычислить сумму элементов полученного одномерного массива
Задан двумерный массив А из 6-и строк и 3-х столбцов. Составить программу, которая организует...

3
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
24.10.2013, 17:27 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
type
  vector = array [1..1] of integer;
 
var
  x, y: ^vector;
  k, i, n, s, t: integer;
 
begin
  {$R-}
  Write('Введите N = ');
  Readln(n);
  GetMem(x, sizeof(integer) * n);
  Randomize;
  Writeln('Исходный массив:');
  for i := 1 to n do
  begin
    x^[i] := Random(10);
    s := s + x^[i];
    Write(x^[i], #32);
  end;
  if s > 100 then
  begin
    if Odd(n) then
      k := n div 2 + 1
    else
      k := n div 2;
    GetMem(y, sizeof(integer) * k);
    for i := 1 to n do
      if Odd(i) then
      begin
        t := t + 1;
        y^[t] := x^[i];
      end;
    Writeln;
    Writeln('Полученный массив: ');
    for i := 1 to t do
      Write(y^[i], #32);
    FreeMem(x, sizeof(integer) * n);
    FreeMem(y, sizeof(integer) * k);
  end
  else
  begin
    Writeln;
    Writeln('Сумма элементов меньше 100');
  end;
  Readln
end.
1
0 / 0 / 0
Регистрация: 25.09.2013
Сообщений: 8
24.10.2013, 17:31  [ТС] 3
Пишет ошибку в этой строчке
38 FreeMem(x, sizeof(integer) * n);
Неверное количество фактических параметров
0
3030 / 1916 / 1649
Регистрация: 30.04.2011
Сообщений: 3,060
24.10.2013, 17:53 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Это потому, что у тебя PascalABC. Я писал на Turbo.

Добавлено через 6 минут
Немного исправил. Память, занятую для X надо было освобождать так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
type
  vector = array [1..1] of integer;
 
var
  x, y: ^vector;
  k, i, n, s, t: integer;
 
begin
  {$R-}
  Write('Введите N = ');
  Readln(n);
  GetMem(x, sizeof(integer) * n);
  Randomize;
  Writeln('Исходный массив:');
  for i := 1 to n do
  begin
    x^[i] := Random(10);
    s := s + x^[i];
    Write(x^[i], #32);
  end;
  if s > 100 then
  begin
    if Odd(n) then
      k := n div 2 + 1
    else
      k := n div 2;
    GetMem(y, sizeof(integer) * k);
    for i := 1 to n do
      if Odd(i) then
      begin
        t := t + 1;
        y^[t] := x^[i];
      end;
    Writeln;
    Writeln('Полученный массив: ');
    for i := 1 to t do
      Write(y^[i], #32);
    FreeMem(y, sizeof(integer) * k);
  end
  else
  begin
    Writeln;
    Writeln('Сумма элементов меньше 100');
  end;
  FreeMem(x, sizeof(integer) * n);
  Readln
end.
Добавлено через 3 минуты
В PascalABC, у FreeMem только один параметр. Надо так:
Pascal
1
2
FreeMem(x);
FreeMem(y);
Но, даже если исправить эту ошибку, вылезет другая. Директива {$R} в PascalABC не пашет, поэтому, если тебе нужен код именно для ABC, то вот:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
type
  vector = array [1..1000] of integer;
 
var
  x, y: ^vector;
  k, i, n, s, t: integer;
 
begin
  Write('Введите N = ');
  Readln(n);
  GetMem(x, sizeof(integer) * n);
  Randomize;
  Writeln('Исходный массив:');
  for i := 1 to n do
  begin
    x^[i] := Random(10);
    s := s + x^[i];
    Write(x^[i], #32);
  end;
  if s > 100 then
  begin
    if Odd(n) then
      k := n div 2 + 1
    else
      k := n div 2;
    GetMem(y, sizeof(integer) * k);
    for i := 1 to n do
      if Odd(i) then
      begin
        t := t + 1;
        y^[t] := x^[i];
      end;
    Writeln;
    Writeln('Полученный массив: ');
    for i := 1 to t do
      Write(y^[i], #32);
    FreeMem(y);
  end
  else
  begin
    Writeln;
    Writeln('Сумма элементов меньше 100');
  end;
  FreeMem(x);
  Readln
end.
1
24.10.2013, 17:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.10.2013, 17:53
Помогаю со студенческими работами здесь

Вычислить сумму элементов одномерного массива с числом элементов
Помогите пожалуйста! Вычислить сумму элементов одномерного массива с числом элементов n (n...

Для одномерного массива Х(N) вычислить сумму квадратов положительных элементов и среднее арифметическое отрицательных элементов.
помогите плиз. вот задание 1. Для одномерного массива Х(N) вычислить сумму квадратов положительных...

Составить подпрограмму определения суммы элементов одномерного массива. Используя ее, вычислить сумму элементов матрицы
Помогите, пожалуйста написать программу в TP. Составить подпрограмму определения суммы элементов...

Вычислить сумму всех положительных элементов одномерного массива
помогите решить пжста в Pascal...желательно с блок-схемой


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru