4 / 3 / 0 Регистрация: 08.12.2009 Сообщений: 63 |
|
1 |
|
Сумма отрицательных элементов массива.21.02.2010, 11:47. Показов 47432. Ответов 3
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
0 |
WolfCF 3310 / 1372 / 110 Регистрация: 28.04.2009 Сообщений: 4,822 |
||||
21.02.2010, 13:20 |
2 |
|||
Сумму отрицательных элементов массива.
0 |
Snoopy 1915 / 1065 / 384 Регистрация: 06.12.2008 Сообщений: 2,802 |
||||
21.02.2010, 13:41 |
3 |
|||
0 |
3310 / 1372 / 110 Регистрация: 28.04.2009 Сообщений: 4,822 |
|
21.02.2010, 13:44 |
4 |
0 |
+13
Дан одномерный массив A[n]. Найти сумму отрицательных элементов. Получить новый массив B[n] путем замены нулевых элементов на полученную сумму.
pascal
5 лет назад120 Следить
Ответы на вопрос | 2
Александра
Const
n=10;
var
A: array[1..n] of integer;
B:array[1..n] of integer;
i: integer;
sum: integer;
begin
{Заполнение массивов случайными числами}
randomize;
for i:=1 to n do begin
A[i]:=random(100)-50;
B[i]:=random(100)-50; {или B[i]=A[i];, если значения массива B должны совпадать со значениями массива A }
end;
{Поиск суммы отрицательных элементов}
sum:=0;
for i:=1 to n do
if A[i]<0 then sum:=sum+A[i];
{Замена нулевых элементов массива B на полученную сумму}
for i:=1 to n do
if B[i]=0 then B[i]:=sum;
{Вывод значений массива A}
writeln(‘массив A’);
for i:=1 to n do
write(A[i],’,’);
writeln(»);
writeln(‘Массив B’);
{Вывод значений массива B}
for i:=1 to n do
write(B[i],’,’);
{Ожидание нажатия клавиши return от пользователя.}
readln;
end.
5 лет назад
Любовь
// PascalABC.NET 3.2, сборка 1509 от 27.07.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger(‘n=’),-10,10); a.Println;
var s:=a.Where(x->x<0).Sum; // сумма отрицательных элементов
var b:=a.Select(x->x=0?s:x).ToArray; b.Println
end.
Пример
n= 20
1 6 2 4 2 3 5 -8 2 -6 0 1 -7 0 -7 8 -4 -8 -1 -8
1 6 2 4 2 3 5 -8 2 -6 -49 1 -7 -49 -7 8 -4 -8 -1 -8
5 лет назад
+18
3
Окружающий мир5 лет назад
var
i,sum : integer; // объявляем переменные целочисленного типа.
arr : array [1..100] of integer; // объявляем массив.
Begin
for i:= 1 to 100 do // начало цикла.
begin
arr[i] := random(-100,100); // заполняем элемент массива числом от -100 до 100.
if arr[i] < 0 then // если элемент отрицательный.
sum := sum + arr[i]; // считаем сумму элементов.
end;
writeln(‘Сумма отрицательных элементов массива: ‘, sum); //вывод строки на экран.
End.
На занятии разбираются разного уровня сложности задачи в Pascal для работы с одномерными массивами
Задача сайта labs-org.ru — получение пользователями практических навыков работы с языком. Уроки по Паскалю, изложенные по мере увеличения их сложности и подкрепляемые наглядными решенными примерами, позволят с легкостью освоить изучаемый материал.
Для начала рассмотрим не сильно сложную задачу с одномерными массивами в Pascal:
Пример: Найти максимальный элемент численного массива и его индекс.
Результат:
Подумайте, пригодится ли в программе счетчик или нет, нужны ли дополнительные переменные.
Показать листинг программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
const m = 20; var arr: array[1..m] of byte; max_index: byte; i: byte; begin randomize; for i := 1 to m do begin arr[i] := random(100); write (arr[i]:3); end; max_index := 1; for i := 2 to m do if arr[i] > arr[max_index] then begin max_index := i; end; writeln; writeln ('Max = ',arr[max_index]); writeln ('position: ', max_index); end. |
Задача Array 15. Требуется заполнить массив числами, которые вводит пользователь, и вычислить их сумму. Если пользователь вводит ноль или превышен размер массива, то запросы на ввод должны прекратиться. Использовать цикл с постусловием (repeat)
Результат:
Число: 3 Число: 2 Число: 5 Число: 0 3 2 5 0 sum = 10
[Название файла: task15.pas
]
Задача Array 16. Дан массив из 50 элементов, значения которых формируются функцией random и лежат в диапазоне от -50 до 49 включительно. Требуется из одного массива скопировать в другой массив значения в диапазоне от -5 до 5 включительно и подсчитать их количество.
[Название файла: task16.pas
]
Задача Array 17. В одномерном массиве (заполнение массива случайными числами от -50 до 49) найти сумму отрицательных элементов. Если эта сумма меньше -100, то необходимо прибавить к ней минимальный положительный элемент.
Следующую сложную задачу с одномерными массивы следует разобрать подробно.
Пример: Имеется одномерный массив, содержащий числа от 0 до 49 включительно. Требуется исключить из него все элементы, значения которых меньше 15.
Сложность этого задания состоит в том, что нужно не просто удалять элементы, значения которых < 15, а требуется при этом передвигать остальные элементы, стоящие за удаляемым, на позицию влево. Как бы сжимая массив, чтобы не оставались «пустые» элементы.
Показать решение
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 |
const n=20; var arr: array[1..n] of integer; i,j,m:integer; begin randomize; for i:=1 to n do begin arr[i]:=random(50); write(arr[i]:4); end; writeln; m:=n; i:=1; while i<=m do if arr[i]<15 then begin for j:=i to m-1 do arr[j]:=arr[j+1]; m:=m-1 end else i:=i+1; writeln('Результат:'); for i:=1 to m do write(arr[i]:4) end. |
Рассмотрим представленный алгоритм решения данной сложной задачи с одномерным массивом:
- строка 12: Здесь присваивание значения
n
переменнойm
требуется, т.к.n
— константа и не может быть изменена. Поскольку при «просмотре» массива в циклеwhile
некоторые элементы будут удаляться, то значениеm
, обозначающее длину массива, будет уменьшаться. - строка 21: Если очередной элемент не удаляется, то переходим к просмотру следующего элемента (
i := i + 1
) и не уменьшаем массив (m
не меняется).
Задача Array 18. Дан массив из N элементов в диапазоне [100;300]. Сжать массив, оставив в нем только те элементы, сумма цифр которых четная.
101 245 167 295 133 >>> 101(2) 167(14) 295(16)
[Название файла: task18.pas
]
Задача Array 19. Заполнить массив из 10 элементов случайными числами в интервале [0..4] и определить, есть ли в нем одинаковые соседние элементы.
Пример:
Исходный массив: 4 0 1 2 0 1 3 1 1 0 Ответ: есть
[Название файла: task19.pas
]
Задача Array 20.
- Определите в массиве
A
номер первого элемента, равногоX
. - Определите номер первого элемента, равного
X
, в первой половине массиваA
(массив имеет чётное число элементов). - Определите номер первого элемента, равного
X
, во второй половине массиваA
(массив имеет чётное число элементов).
[Название файла: task20.pas
]
Задача Array 21. Найти количество различных чисел в одномерном массиве.
[Название файла: task21.pas
]
Рассмотрим алгоритм решения:
Задача Array 22. Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и сделать реверс отдельно для 1-ой и 2-ой половин массива.
Пример:
[Название файла: task22.pas
]
Задача Array 23. Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить циклический сдвиг ВПРАВО на 4 элемента.
Пример:
[Название файла: task23.pas
]
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Дано 10 чисел вывести сумму отрицательных элементов массива.
На этой странице находится вопрос Дано 10 чисел вывести сумму отрицательных элементов массива?, относящийся к категории
Информатика. По уровню сложности данный вопрос соответствует знаниям
учащихся 10 — 11 классов. Здесь вы найдете правильный ответ, сможете
обсудить и сверить свой вариант ответа с мнениями пользователями сайта. С
помощью автоматического поиска на этой же странице можно найти похожие
вопросы и ответы на них в категории Информатика. Если ответы вызывают
сомнение, сформулируйте вопрос иначе. Для этого нажмите кнопку вверху.