В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
yukodraw
yukodraw
17.02.2020 00:19 •  Информатика

Программисту было поручено написать программу нахождения суммы отрицательных элементов одномерного массива. Программист разработал
программу, но допустил в ней одну ошибку. Текст программы с ошибкой
представлен ниже:
program n1;
var
k, s: integer;
a: array [1..8] of integer;
begin
for k := 1 to 8 do readln(a[k]);
s := 0;
for k := 1 to 8 do
if a[k] < 0 then s := s + a[1];
writeln(s);
end.
1) Каким окажется ответ после исполнения этой программы, если в качестве
элементов массива будут введены числа 1, 2, 3, 4, -1, -2, -3, -4?
2) Как исправить программу, чтобы она решала поставленную перед
программистом задачу?

Показать ответ
Ответ:
Krank09
Krank09
17.01.2021 22:35

1.

program n1;

var

k, s: integer;

a: array [1..8] of integer;

begin

for k := 1 to 8 do readln(a[k]);  // с клавиатуры вводится массив из 8

s := 0;                                           элементов

for k := 1 to 8 do

if a[k] < 0 then s := s + a[1];  // в цикле 4 раза к s прибавляют 1-ый элемент

writeln(s);                             // выводится s

end.

ответ: 4(т.к 1-ый элемент массива 1 и в нём 4 отрицательных элемента)

2.  

Надо строку if a[k] < 0 then s := s + a[1];

Заменить на строку if a[k] < 0 then s := s + a[k];

Объяснение:

0,0(0 оценок)
Ответ:
janamelnik10
janamelnik10
18.01.2024 19:51
1) После исполнения этой программы при вводе чисел 1, 2, 3, 4, -1, -2, -3, -4 ответом будет 1.

Объяснение:
В данной программе определяется одномерный массив a, содержащий 8 элементов. Затем с помощью цикла for используется команда readln для ввода значений чисел в массив. Далее инициализируется переменная s, равная 0, которая будет использоваться для хранения суммы отрицательных элементов. Затем с помощью второго цикла for и условного оператора if проверяется каждый элемент массива a. Если элемент меньше нуля, то значение этого элемента прибавляется к переменной s. Однако здесь программа содержит ошибку: вместо прибавления текущего отрицательного элемента, прибавляется a[1] (первый элемент массива).

2) Для исправления программы, чтобы она решала поставленную задачу, нужно заменить a[1] на a[k] (текущий элемент массива) в цикле, который суммирует отрицательные элементы. Правильная версия программы выглядит следующим образом:

program n1;
var
k, s: integer;
a: array [1..8] of integer;
begin
for k := 1 to 8 do
readln(a[k]);

s := 0;

for k := 1 to 8 do
if a[k] < 0 then
s := s + a[k];

writeln(s);
end.

Теперь программа будет работать правильно и вычислит сумму отрицательных элементов массива.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота