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

9.8. Программы циклических алгоритмов

Задача. Написать программу вычисления и вывода таблицы значений функции y=cos(x). Переменная хизменяется в интервале отx1=0 доxk= 2 с шагомdx= 0,2.

Пример 18.

В данной программе используется оператор цикла с параметрами.

PROGRAM PR18;

Var

x,y,dx,x1,xk:real;

i, n :integer;

begin

{циклический алгоритм}

writeln (‘ввести начальное – x1, конечное – xk, шаг – dx’);

read (x1,xk,dx);

n:=trunc((xk-x1)/dx+1);

x:=x1;

{оператор цикла с параметрами}

for i:=1 to n do

begin

y:=cos(x);

Writeln (‘x= ’, x:8:5, ‘y= ’, y:8:5);

x:=x+dx;

End; {конец оператора цикла с параметрами}End.

9.9. Массивы

9.9.1. Понятие и описание массива

Массивом называются упорядоченная последовательность однотипных объектов, обозначаемая одним именем. Чтобы выделить один из объектов (элемент) массива, надо указать имя массива и номер элемента в нем. Номер элемента называется индексом, индекс указывается в квадратных скобах и может быть числом, переменной, выражением. Имя массива образуется по правилам образования имен переменных. Пример: А [10], B [J,1], SVM [1,J+5].

Если для выделения элемента нужен 1 индекс, массив называется одномерным, два – двумерным и т.д. Число элементов массива называется длиной или размером массива.

Массивы относятся к структурированным типам данных. В программе массив можно описать двумя способами:

а) непосредственно в разделе описаний переменных:

Пример 19.

var

a,b: array [1..10] of real;

с: array [-10..10] of char;

d,y: array [1..5,1..5] of integer ;

б) объявлением типа-массива (удобно, когда надо ввести несколько одинаковых массивов)

Пример 20.

type

mas=array [1..10] of real;

var

c,d:mas; {описание двух массивов типа mas}

Элементы массива могут быть любого типа, а индексы могут быть любого порядкового типа (например, типа integer, char, …). Но обычно используется тип – диапазон: 1..10, N..M и т. п.

Число элементов массива и его границы фиксируются при его описании и не могут быть изменены в процессе выполнения программы. Границы N..M могут быть заданы константами в разделе описания констант.

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

Ввод и вывод массивов осуществляется поэлементно. Часто это делают с помощью циклов (обычно используется цикл FOR).

Пример 21.

Ввести с клавиатуры значения элементов одномерного массива вещественного типа состоящего из 10 элементов. Вывести на экран массив.Написать программу.

program PR22;

var

A: array[1..10] of real;

k: integer;

begin

for k:=1 to 10 do

readln (A[k]);

for k:=1 to 10 do

writeln (A[k]); end.

Двумерные массивы (матрицы) можно вводить по строкам или по столбцам.

Пример 22.

Пусть требуется ввести массив А (3;4):

2-й столбец

а) ввод и вывод по строкам:

program PR22;

var

a:array [1..3, 1..4] of real;

i,j:integer;

begin

for i:=1 то 3

for j:=1 то 4

read (a[i,j]);

for i:=1 то 3

for j:=1 то 4

writeln (a[i,j]);

end.

б) ввод по столбцам

begin

for i:=1 то 4

for j:=1 то 3

read (а[j,i]); {изменён порядок индексов}

Пусть, например, требуется ввести матрицу

1 2 3 4

5 6 7 8

В варианте а) вводим числа в порядке 1,2,3,4,5,6,7,8 (после набора каждого числа нажимаем ENTER, запятые не вводятся)

В варианте б) вводим числа так: 1,5,2,6,3,7,4,8. Если этот порядок нарушить, то получатся разные матрицы, что в математических задачах приведет к ошибкам.