Выполнение арифметических действий над элементами массива

Изучить §4 "Выполнение арифметических действий над элементами массива"

Внимательно изучите примеры.

Пример 4.2.

Задан одномерный массив из целых чисел. Найти сумму и произведение элементов этого массива.

var a: array[1..10] of integer;

n, S, P: integer;

begin

write('Введите n = ');

readln(n);

writeln('Вводите элементы ');

for var i := 1 to n do

read(a[i]);

S := 0;

P := 1;

for var i := 1 to n do

begin

S := S + a[i];

P := P * a[i];

end;

writeln('Сумма = ', S);

writeln('Произведение = ', P);

end.

Тестирование

Введите n = 5

Вводите элементы

3 2 44 -1 3

Сумма = 51

Произведение = -792

Пример 4.3.

Известны отметки по информатике всех учащихся 10 Б класса за первую четверть. Успеваемость в классе будем считать хорошей, если средний балл больше 7, плохой, если средний балл ниже 4, в остальных случаях — успеваемость средняя. Определить успеваемость класса по заданным отметкам.

var a: array[1..30] of integer;

n, S: integer; Sr: real;

begin

write('Количество учащихся ');

readln(n);

writeln('Вводите отметки ');

for var i := 1 to n do read(a[i]);

S := 0;

for var i := 1 to n do S := S + a[i];

Sr := S / n;

if Sr > 7 then writeln('Хорошая ')

else

if Sr < 4 then writeln('Плохая ')

else writeln('Средняя ');

end.

Тестирование

Количество учащихся 5

Вводите отметки

10 5 6 8 9

Хорошая

Пример 4.4.

На складе хранятся товары. Для каждого вида товара известно количество единиц товара и цена за единицу товара. Определить суммарную стоимость всех товаров, хранящихся на складе.

var Kol, Cen: array[1..50] of

integer;

n, Sum: integer;

begin

write('Введите количество

видов товаров ');

readln(n);

for var i := 1 to n do

begin

writeln('Введите количество

товара ', i, ' и его цену ');

read(Kol[i], Cen[i]);

end;

Sum := 0;

for var i := 1 to n do

Sum := Sum + Kol[i]*Cen[i];

writeln('Суммарная стоимость

товаров = ', Sum);

end.

Тестирование.

Введите количество видов товаров 3

Введите количество товара 1 и его цену

5 2

Введите количество товара 2 и его цену

7 3

Введите количество товара 3 и его цену

4 5

Суммарная стоимость товаров =51

Пример 4.5.

Задано натуральное число n (n < 5000). Определить, является ли это число простым.

const s_n: array of integer = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71);

var n,i: integer;

begin

writeln('Введите число ');

read(n);

i := 0;

while (s_n[i] * s_n[i] <= n)

and (n mod s_n[i] <> 0) do

i := i + 1;

if s_n[i]*s_n[i] > n

then writeln('Простое ')

else writeln('Составное ')

end.

Тестирование.

Введите число

2027

Простое


Введите число

2021

Составное

Пример 4.6.

Задан одномерный массив из целых чисел. Построить круговую диаграмму по числовым данным, хранящимся в массиве. Например, для 5 элементов массива — 60, 80, 75, 90, 55.

uses graphABC;

var a: array[1..10] of integer;

n, S, u0, u1: integer;

begin

write('Количество n ='); readln(n);

writeln(n);

writeln('Элементы массива');

for var i := 1 to n do read(a[i]);

for var i := 1 to n do write(a[i], ' ');

S := 0;

for var i := 1 to n do S := S + a[i];

u0 := 0;

for var i := 1 to n do begin

u1:= u0+trunc(a[i]*360/S);

SetBrushColor(clRandom);

Pie(150,150,100,u0,u1);

u0 := u1;

end;

end.

Тестирование.

Упражнения

  1. Для задачи из примера 4.2 выполните перечисленные задания.

1. Заполните таблицу.


Таблицу можно оформить в начале программы в виде комментариев. Например:// n a S P
// 3 -2 -3 -5
// 5 1 2 3 4 5
// 10 1 -3 -2 3 4 3 2 4 3 2
Для S и P записать результаты вычислений программы для каждого из тестов.

2. Добавьте в таблицу свои значения n и a.

3. Попытайтесь подобрать такие значения элементов массива, чтобы S = P, для n = 2,5.

4. Для n = 10 ввели все элементы массива, равные 9. Какой результат получили? Почему? Что нужно исправить в программе для получения правильного результата?

2. Для задачи из примера 4.3 добавьте вывод среднего балла.

3. В ходе хоккейного матча удалялись игроки обеих команд. Для каждого удаленного игрока известно время его отсутствия на поле. Определите, какая из команд провела больше времени на скамейке штрафников.

 4. Для задачи из примера 4.5 выполните следующее задание:

Введите число 5557. Почему появилась ошибка? Дополните массив констант простыми числами так, чтобы программа могла выдавать ответ для чисел, меньших 10 000. (Для этого можно воспользоваться самой программой или таблицей простых чисел.)

5.  Для задачи из примера 4.6 выполните перечисленные задания.

  1. Расставьте комментарии к программе:

//задание цвета кисти случайным значением

//ввод элементов массива

//ввод количества элементов массива

//включение графического модуля

//вычисление суммы элементов массива

//описание массива

//прорисовка сектора окружности

//изменение значения начального угла

//вычисление конечного угла сектора

  1. Внесите в программу изменения так, чтобы цвет сектора выбирался из массива констант.

  2. *Измените программу так, чтобы диаграмма всегда строилась в центре графического окна. Диаметр круга определяется меньшей из двух величин — шириной или высотой окна.

6. * В массивах X и Y хранятся координаты точек. Постройте многоугольник, заданный этими координатами. Запросите у пользователя номера двух точек и постройте диагональ многоугольника, соединяющую эти точки.