ПРОГРАММИРОВАНИЕ ЗАДАЧ С ОДНОМЕРНЫМИ МАССИВАМИ

  • docx
  • 26.12.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л3-0025371.docx

ПРОГРАММИРОВАНИЕ ЗАДАЧ С ОДНОМЕРНЫМИ МАССИВАМИ

Цель работы: научиться составлять программы  на языке Pascal для программирования задач с одномерными массивами.

Оборудование: персональный компьютер типа IBM PC с процессором не ниже Intel Pentium I.

Дидактический материал: плакаты, раздаточный материал.

Одномерные массивы

Массив упорядоченный набор нумерованных величин одинакового типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), дву- мерные (матрица) и многомерные (тензор).

Вектор-строка имеет вид: A = {a1; a2 ;; an }.

Пример 1. A = {1; 2; 3; 4; - 7,3}.


Вектор-столбец имеет вид:


æ a1 ö


ç        ÷

A = ç a2 ÷ .

ç ÷


 

 

 

Пример 2.


æ          1   ö

ç               ÷

ç.A = ç    2   ÷

10 ÷


ç                ÷

è an ø


ç- 7,3÷

è                                           ø

Элемент массива – величина, входящая в состав массива. Индекс по- рядковый номер элемента в одномерном массиве (целое число типа inte- ger). Размерность массива – количество элементов в массиве.


Одномерные массивы обычно обозначаются так:


A = (ai ) ;


A(n), где A


массив; n размерность массива; i индекс элемента; ai

сива A .


   i-тый элемент мас-


Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:

Mas : array [ IMin .. IMax ] of T

где array массив, of из, Mas имя массива, IMin минимальное

значение индекса, IMax максимальное значение индекса, T тип элемен- тов.

Это означает, что переменная Mas является массивом, который мо- жет иметь индексы от IMin до IMax у элементов типа T .

Пример 3. Var A:array[1..100] of real;

Это означает, что переменная A массив, который может содержать от 1 до 100 элементов вещественного типа.

Доступ к элементу массива на языке Pascal имеет вид:

Mas [ Ind ]

где Mas – имя массива, Ind – индекс.

Это означает доступ к элементу массива Mas с индексом Ind . Пример 4. a[1]; b[3]; c[i]; d[n]; f[k+1].

Это означает 1-й элемент массива A и т.д.

Порядок выполнения

1.   Зайти в Borland Pascal (или Pascal ABC).

2.   Набрать текст программы для решения задачи 1 и получить ответ для контрольного примера.

3.   Исправить программу так, чтобы она находила сумму и количество поло- жительных элементов.


4. Исправить программу так, чтобы она находила произведение и среднее значение всех элементов.

5. Исправить программу так, чтобы она находила максимальное и минималь- ное значение в массиве.

Пример задачи

 

Задача 1.

Дан одномерный массив A из n элементов. Найти сумму элементов массива:

n

s = åai  = a1  + a2  ++ an .

i=1

Program Lab7a; Var

A:array[1..100] of real; i,n:integer;

s:real;

Begin

writeln('Введи n'); read(n);

s:=0;

writeln('Введи массив A'); for i:=1 to n do

begin read(A[i]);

s:=s+A[i]; end;

writeln('s=',s:10:3);

End.

Контрольный пример.

Исходные данные:       n = 5 ;      A = {1;2;3;5;-1}. Ручной счёт:        s =1+ 2 + 3 + 5 -1 =10.

Результат:        s =10 .

Экран пользователя.

Введи n 5

Введи массив A 1 2 3 5 -1

s=        10.000

Дополнительное задание

1.   Дан массив L(n). Найти количество элементов, больших корня из суммы положительных элементов.

2.   Дан массив G(q). Найти произведение неотрицательных элементов и сум- му элементов в диапазоне от 10 до 20.

3.   Дан массив A(n). Найти сумму и количество элементов, равных среднему значению.

4.   Дан массив C(m). Найти отношение максимального к минимальному эле- менту.


5.   Дан массив D(n). Найти минимальный среди элементов, больших суммы, и найти количество элементов, не равных максимальному.

6.   Дан массив A(n). Сформировать новый массив B умножением элементов массива A на 100. В новом массиве переставить местами третий и предпо- следний элементы.

7.   Дан массив A(n). Положительные элементы массива заменить на их сумму, а отрицательные элементы уменьшить на минимальный.

8.   Дан массив A(n). Найти сумму элементов на чётных местах и произведение элементов, кратных 3.

9.   Дан массив A(n). У нечётных элементов отбросить дробную часть числа, а у элементов с индексами, дающими остаток 1 при делении на 3, отбросить целую часть числа.

10.              Сформировать массив случайных чисел в диапазоне от -10 до 20 и округлить значения элементов, по модулю меньших 1.

Фрагменты вычисления характеристик одномерного массива

 

Характеристика

Для всех элементов ai

Для части элементов ai > z

1. Сумма

s

s:=0;

for i:=1 to n do s:=s+A[i];

s:=0;

for i:=1 to n do if A[i]>z then

s:=s+A[i];

2. Количество

k

k:=n;

k:=0;

for i:=1 to n do if A[i]>z then

k:=k+1;

3. Произведение

p

p:=1;

for i:=1 to n do p:=p*A[i];

p:=1;

for i:=1 to n do if A[i]>z then

p:=p*A[i];

4. Максимальное значение

max

max:=A[1];

for i:=2 to n do if A[i]>max then

max:=A[i];

max:=-1E10;

for i:=1 to n do

if      (A[i]>max)    and (A[i]>z) then

max:=A[i];

5. Минимальное зна- чение

min

min:=A[1];

for i:=2 to n do if A[i]<min then

min:=A[i];

min:=1E10;

for i:=1 to n do

if      (A[i]<min)    and (A[i]>z) then

min:=A[i];

6. Среднее значение

sr

s:=0;

for i:=1 to n do s:=s+A[i];

sr:=s/n;

s:=0; k:=0;

for i:=1 to n do if A[i]>z then

begin

s:=s+A[i]; k:=k+1;

end;

sr:=s/k;


Фрагменты операций с одномерными массивами

 

1. Ввод элементов массива

writeln('Введи массив A'); for i:=1 to n do

read(A[i]);

2. Вывод элементов массива

writeln('Массив A'); for i:=1 to n do

writeln(A[i]:10:3);

3. Замена элементов массива на величину z

for i:=1 to n do

A[i]:=z;

4. Увеличение элементов массива на вели- чину z

(аналогично уменьшение, умножение, деление)

for i:=1 to n do A[i]:=A[i]+z;

5. Вычисление нового массива B прибав- лением к элементам массива A величи- ны z

(аналогично вычитанием, умножением, делением)

for i:=1 to n do B[i]:=A[i]+z;

6. Вычисление      индекса     максимального элемента imax

(аналогично минимального)

max:=A[1]; imax:=1; for i:=2 to n do

if A[i]>max then begin

max:=A[i]; imax:=i;

end;

7. Перестановка 1-го   и   2-го   элементов

массива

c:=A[1]; A[1]:=A[2]; A[2]:=c;

Контрольные вопросы

1.   Объясните понятие массива, его элемента, индекса, размерности? Пере- числите виды массивов.

2.   Как обозначаются и описываются массивы и их элементы? Приведите примеры.

3.   Чем отличается вычисление суммы всех элементов от вычисления суммы части элементов?

4.   Чем отличается вычисление суммы части элементов от вычисления коли- чества части элементов?

5.   Чем отличается вычисление суммы элементов от вычисления произведе- ния элементов?

6.   Чем отличается вычисление суммы элементов от вычисления среднего значения элементов?

7.   Чем отличается вычисление максимального элемента от вычисления ми- нимального элемента?

8.   Чем отличается ввод элементов от их вывода?

9.   Чем отличается увеличение элементов на какую-либо величину от замены элементов на эту величину?

10.            Чем отличается увеличение элементов на какую-либо величину от ана- логичного вычисления нового массива?


11.              Чем отличается вычисление максимального элемента от вычисления его индекса?

12.            Почему для перестановки элементов используется три оператора?

13.            Напишите, что означает каждая строка в вышеприведённой программе.

14.            Напишите программу к одной из задач дополнительного задания.