Вариант 1 Самостоятельная работа 4 ГДЗ Самостоятельные и контрольные работы Босова 9 класс (Информатика)
ОДНОМЕРНЫЕ МАССИВЫ ЦЕЛЫХ ЧИСЕЛ
ВАРИАНТ 1
1. Дан одномерный массив а из шести элементов:
-125 200 10 6 43 11
1) Как объявить этот массив в программе, записанной на языке Паскаль?
2) Чему равно значение элемента массива с индексом 4?
3) Чему равно значение элемента массива а [а [4] ]?
1)
Паскаль:
Переменный массив:
var
a: array [1..6] of integer=(-125,200,10,6,43,11);
Если массив постоянный:
const
a: array [1..6] of integer = (-125,200,10,6,43,11)
Python:
from array import*
a = array (‘i’, [-125, 200, 10, 6, 43,11])
Или списком:
a = [-125, 200, 10, 6, 43,11]
2)
6
3)
11
2. Программа обрабатывает одномерный целочисленный массив Dat:
і 1 2 3 4 5 6 7 8 9 10
Dat [і] 70 80 90 100 80 40 40 70 80 90
Заполните трассировочную таблицу и определите, какие числа будут выведены в результате выполнения следующего фрагмента программы.
Ответ: m=40 k=6
3. Дополнительное задание. Программисту было поручено написать программу нахождения суммы отрицательных элементов одномерного целочисленного массива. Программист разработал программу, но допустил в ней одну ошибку. Текст программы с ошибкой представлен ниже:
program nl;
var а: array [1..8] of integer;
s, k: 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[l];
writein(s)
end
Каким окажется ответ после исполнения этой программы, если в качестве элементов массива будут введены числа 1, 2, 3, 4, -1, -2, -3, -4?
Как исправить программу, чтобы она решала поставленную перед программистом задачу?
Вывод программы по представленному варианту:
4 (четыре раза сложит первый элемент массива, который равен 1)
Ошибка: s:=s+a[1]
Исправление: s:=s+a[k]
1) Массив из шести элементов можно объявить в Паскале так:
var
a: array [1..6] of integer = (-125, 200, 10, 6, 43, 11);
Если массив задаётся как константа, то:
const
a: array [1..6] of integer = (-125, 200, 10, 6, 43, 11);
2) Элемент с индексом 4 равен $$a[4]=6$$.
3) Тогда $$a[a[4]] = a[6] = 11$$.
2. По трассировочной таблице видно, что после выполнения программы получаются значения $$m=40$$ и $$k=6$$.
3. В программе ошибка в строке сложения: вместо текущего элемента массива используется первый элемент. Поэтому при данных $$1, 2, 3, 4, -1, -2, -3, -4$$ программа сложит отрицательные элементы, но каждый раз прибавит $$a[1]=1$$. Таких элементов четыре, значит результат будет:
$$s=1+1+1+1=4$$
Исправленная строка:
s := s + a[k];
Ответ
1)
var
a: array [1..6] of integer = (-125, 200, 10, 6, 43, 11);
2) $$6$$
3) $$11$$
2. $$m=40,\ k=6$$
3. Вывод программы: $$4$$. Исправление: s := s + a[k];