Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kniga_Turbo_Pascal_7_0.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.18 Mб
Скачать

Создание массива

Рассмотрим два примера.

Пример 1

Даны два одномерных массива одинаковой размер­ности. Получить третий массив такой же размерности, каждый элемент которого равен сумме соответствующих элементов данных массивов.

Решение

Пусть даны два массива − А и В, состоящие из пяти элементов. Получим из них массив С, тоже состоящий из пяти элементов, причем пер­вый элемент этого массива ра­вен сумме первых элементов массивов А и В, второй − сум­ме вторых элементов данных массивов − и так далее.

i

1

2

3

4

5

A

14

2

7

8

9

B

3

6

5

12

4

C

17

8

12

20

13

Для решения этой задачи опишем процедуру, которой передаются три параметра. Первые два − это два исходных одномерных массива, третий − это одномерный массив той же размерности, который является результатом и заполняется по указан­ному правилу.

Program Example_100;

Procedure Sum_Ar(a, b: myarray;

Var с: myarray);

Var i: Integer;

Begin

For i:=1 To n Do c[i]:=a[i]+b[i];

End;

Пример 2

Даны первый член арифметической прогрессии и ее разность. Записать в массив первые n членов прог­рессии.

Решение

Пусть а1 − первый член прогрессии, a k − ее разность, тогда i−й член можно найти по следующему правилу: a[i]:=a[i-1]+k, или

a[i]:=a1+k*(i-1); если i=1, тo a[i]:=a1. Опишем процедуру, в которую передаются два параметра, а результатом является одно­мерный массив. Его первый элемент равен первому чле­ну прогрессии, второй − второму − и так далее.

Program Example_101;

Procedure Progress (a1, k: Integer;

Var a: myarray);

Var i: Integer;

Begin

a[1]:=a1;

For i:=2 To n Do

Begin

a[i]:=a[i-1]+k;

Write(a[i]:5);

End;

End;

Работа с несколькими массивами Пример

Даны два одномерных массива − А и В. Найти их скалярное произведение.

Решение

Скалярным произведением двух массивов одинако­вой размерности называется сумма произведений соот­ветствующих элементов:

a[1]*b[1]+a[2]*b[2]+...+a[n-1]*

*b[n-1]+...+а[n]*b[n],

где n − количество элементов в массивах.

Program Example_102;

Function Sp (a, b: myarray): longint;

Var i: Integer;

s: Longint;

Begin

s:=0;

For i:=1 To n Do s:=s+a[i]*b[i];

Sp:=s;

End;

§38. Удаление элементов из одномерного массива Пример 1

Удалить из массива, в котором все элементы различ­ны, максимальный элемент. После удаления максималь­ного элемента массив "уплотнить", сдвинув все следую­щие за ним элементы влево. Последнему (самому право­му) элементу массива присвоить 0.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]