М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
orynbasar2001
orynbasar2001
15.12.2021 09:06 •  Информатика

1. Определите, какие числа будут выведены в результате выполнения следующего фрагмента программы: k := 1;
m := dat[k];
for i := 2 to 10 do if dat[i] < m then
begin
m := dat[i]; k := i;
end; writeln('m = ', m);
writeln('k = ', k);
(это фрагмент программы!)
2. Программисту было поручено написать программу нахождения суммы отрицательных элементов одномерного массива. Программист разработал программу, но допустил в ней одну ошибку. Текст программы с ошибкой представлен ниже:
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.

👇
Ответ:
макс190
макс190
15.12.2021

ьфьбйбыддыдыы

4,6(20 оценок)
Ответ:
1. Для выполнения данного фрагмента программы, нужно анализировать значения в массиве dat и определить значения переменных m и k.

Начинаем со строки "k := 1;", где присваиваем переменной k значение 1.
Затем в строке "m := dat[k];" переменной m присваиваем значение из массива dat по индексу k, то есть dat[1].

Далее идет цикл "for i := 2 to 10 do if dat[i] < m then", который будет повторяться с i от 2 до 10 с шагом 1. Внутри цикла проверяем условие "if dat[i] < m", где сравниваем значение элемента dat[i] с текущим минимальным значением m.

Если условие истинно, то выполняется код внутри блока "begin...end;", где присваиваем переменной m значение dat[i] и переменной k значение i. То есть, если dat[i] < m, то m принимает значение dat[i] и k принимает значение i.

После окончания цикла выводим значения переменных m и k на экран с помощью "writeln('m = ', m);" и "writeln('k = ', k);".

Таким образом, результат выполнения программы будет выводить на экран минимальное значение из массива dat в переменной m и соответствующий индекс этого значения в переменной k.

2. В данном фрагменте программы есть ошибка, которая приводит к некорректному результату. Найдем эту ошибку и объясним почему программа работает неправильно.

- Сначала программа объявляет переменные k, s, a.
- Затем идет цикл "for k := 1 to 8 do readln(a[k]);", где вводятся значения элементов массива a.
- После этого присваивается переменной s значение 0, то есть начальное значение для суммы.
- Далее идет цикл "for k := 1 to 8 do", где проверяется каждый элемент массива a.
- Внутри цикла проверяется условие "if a[k] < 0", то есть проверяется, является ли текущий элемент отрицательным.
- Если условие истинно, то выполняется код внутри блока "begin...end;", где к переменной s прибавляется значение a[1].
- Затем программа выводит значение переменной s на экран с помощью "writeln(s);".

Ошибкой в данной программе является то, что вместо a[k], внутри цикла, прибавляется значение a[1]. Это означает, что при каждом выполнении цикла, к сумме s прибавляется значение первого элемента массива a, а не текущего элемента a[k].

Чтобы исправить ошибку и получить правильный результат, необходимо заменить "s := s + a[1];" на "s := s + a[k];". Тогда программа будет корректно складывать только отрицательные элементы массива и выводить правильную сумму на экран.
4,8(82 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ