Вложенные циклы с разветвлениями. Использование массивов.

В языке ТР имеются три различных оператора с помощью которых можно запрограммировать повторяющиеся фрагменты программ.

Счетный оператор цикла: FOR <параметр цикла>:=<нач.знач.> TO <кон.знач.> DO <оператор>.

Оператор цикла с предпроверкой условия: WHILE <условие> DO <оператор>.

Оператор цикла с постпроверкой условия: REPEAT <тело цикла> UNTIL <условие>.

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

Массив-это набор объектов одного типа, у каждого из которых имеется индекс (номер).Элементы массива длины 20 могут иметь, например, индексы 1,2,…,20 или 0,1,…,19 и т. д. Способ индексации, тип элементов, длина массива фиксируются в описании его типа, к которому принадлежит массив.

Описание типа массива задается следующим образом: <имя типа> = ARRAY[<список индексных типов>] OF <тип>. Например, t=array[1..20] of real. Это описание типа, имя которого t. Объектами типа t будут упорядоченные наборы по 20 элементов, имеющих тип real; диапазон изменения значения индекса- от 1 до 20. Это описание типа, предваренное служебным словом type , помещается в программу перед совокупностью описаний переменных.

Требования к работе

1. Записать расчетные формулы для решения задачи.

2. Cоставить блок-схему алгоритма.

3. Составить программу для решения задачи.

4. Отладить программу.

Лабораторные задания

Вариант1. Составить программу для вычисления элементов матрицы С={cij}, являющейся разностью заданных матриц A={aij} и B={bij}. Каждый элемент матрицы С вычисляется по формуле:

cij=aij-bij, i, j=1,2,..., n.

Затем вычислить компоненты вектора z={z1,z2,..., zn}, равного произведению матрицы С={cij} на заданный вектор x={x1,x2,..., xn}. Каждая компонента вектора z вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru i=1,2,... , n (n £ 9).

Исходные данные: n=3;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 2. Составить программу для вычисления элементов матрицы С={cij}, являющейся произведением матрицы А={aij} размера m*n на матрицу В={bij} размера n*q. Каждая компонента матрицы С вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru j=1,2,..., q

k=1,2, ... , m (n £ 6, q £ 8, m £ 10).

Исходные данные: m=3; n=4; q=3.

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 3. Составить программу для вычисления компонент вектора d={d1,d2,...,dn}, равного произведению матрицы A={aij} на вектор b={b1,b2,...,bm}. Каждая компонента вектора d вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru i=1,2, ..., n (n£8, m£9).

Исходные данные: n=8; m=4;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru .

Оглавление - содержание

Вариант 4. Составить программу для вычисления элементов матрицы С={cij}, являющиеся суммой матриц A={aij} и B={bij}. Каждый элемент матрицы С вычисляется по формуле

cij=aij+bij (i,j = 1,2,..., n).

причем матрица A задана, а элементы матрицы В вычисляются по формуле:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=4;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 5. Составить программу для нахождения наибольшего элемента прямоугольной матрицы z={zij}, i=1,2,..., n, j=1,2,..., m.

Каждый элемент матрицы z вычисляется по формуле

zij = xiyj, i=1,2, ...,n, j=1,2, ..., m.

Векторы x={x1, x2, ..., xn} и y={y1, y2, ...,ym} заданы (n£10, m£9).

Исходные данные: n=3; m=4; x={-1,1; 2,6; 1,0}; y= {3,2; 2,1; -2,0; 1,1}.

Вариант 6. Составить программу для вычисления вектора x={x1,x2, ...., xm}, равного р-й строке матрицы A={aij} (xj=apj, j=1,2, ..., m) и вектора y={y1,y2, ..., yn}, равного q-му столбцу матрицы A={aij}(yi=aiq, i=1,2,... ,n) (n£6, m£8). Исходные данные n=3; m=4; p=2; q=2;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 7. Составить программу для вычисления коэффициентов аппроксимирующего многочлена P(x)=a1+a2x.

Коэффициенты а1 и а2 многочлена находятся из решения системы управлений

S1a1+S2a2=t1,

S2a1+S3a2=t2,

где Вложенные циклы с разветвлениями. Использование массивов. - student2.ru k=1, 2, 3,

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru j=1, 2.

Значения x={x1,... , xn} и y={y1, ... , yn} заданы (n£20).

Исходные данные: n=8; x={0,58; 0,84; 1,14; 2,44; 3,16; 4; 5; 6};

y={0,8; -0,97; -0,98; 1,07; 3,66; 8; 15; 24}.

Вариант 8. Составить программу для вычисления величины

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru где матрица A={aij}, i,j=1, 2, ... , n задана. Для решения задачи составить вектор z={z1, z2, ..., zn}, Вложенные циклы с разветвлениями. Использование массивов. - student2.ru i=1, 2, ... , n, и затем найти максимальный элемент этого вектора. Это и есть N(n£6).

Исходные данные: n=6;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 9. Составить программу для нахождения наименьшей компоненты вектора S={s1, s2, ... , sm}, где каждая компонента sj вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Элементы матрицы A={aij}, i=1, 2, ... , n, j= 1, 2, ... , m заданы (m£8, n£6).

Исходные данные: n=3; m=4;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Оглавление - содержание

Вариант 10. Составить программу для вычисления величины:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

где функция z для значения аргумента tk вычисляется по формуле, линейной интерполяции:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

причем xi£tk£xi+1, i=1,2,..., n, k+1,2,...,m.

Исходные данные: n=7; m=4; x={0; 0,5; 1,0; 1,5; 2,0; 2,5; 3,0}; y={0; 0,125; 1,0; 3,375; 18; 15,625; 27,0}; a={3; -6; -5; 12}; t={0,8; 1,65; 2,1; 2,85}

Оглавление - содержание

Вариант 11. Составить программу для вычисления значения функции z для значения аргумента t по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Значения t, а1,..., аn заданы (n£12).

Исходные данные: n=5; t=0,85; a={3; -4,2; 5,3; -6,1; 2,8}

Оглавление - содержание

Вариант 12. Составить программу для вычисления коэффициентов ak (k=1,2,..., n) по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Заданные значения y1,y2,...,yn соответствуют значениям аргумента х12,...,хn (n£12).

Исходные данные: n=7; x={-0,9; -0,6; -0,3; 0; 0,4; 0,7; 0,9};

y={-0,729; -0,216; -0,027; 0; 0,064; 0; 0,343; 0,729}

Оглавление - содержание

Вариант 13. Cоставить программу для вычисления значения полинома

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

для x=x1, x2, ..., xm по схеме Горнера, т.е. представляя полином в виде

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=5; m=4;

a={32,0; -16,0; -32,0; 8,0; -6,0; 15,0}; x={-1; 0,5; 1; 1,5}.

Оглавление - содержание

Вариант 14. Составить программу для вычисления математического ожидания М и дисперсии D по формулам:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

n чисел a1, a2,..., an, образующих выборку, вычисляются по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=23

Оглавление - содержание

Вариант 15. Составить программу для вычисления производной функции y(x) в точках х1, х2, ..., хn по формуле численного дифференцирования:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Функция y(x) задана таблично, т.е. значениям аргумента х12,..., хn соответствуют заданные значения функции y1, y2, ... , yn (n£20).

Исходные данные: n=8; x={0; 0,5; 1,0; 1,5; 2,0; 2,5; 3,0; 3,5};

y={0; 0,125; 1,0; 3,375; 8,0; 15,625; 27,0; 42,575}

Вариант 16. Составить программу, вычисляющую сумму ряда:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Значения a0 и b0 заданы. Вычисление следует закончить когда будет выполнено условие a2n-b2n<q.

Исходные данные: a0=3; b0=2; q=10-6.

Оглавление - содержание

Вариант 17. Составить программу вычисления коэффициента корреляции, выражающего меру зависимости между упорядоченными наборами чисел {x1, x2, ... , xn} и {y1, y2, ..., yn} по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=7; x={0,56; 0,84; 1,14; 2,44; 3,16; 4; 5};

y={-0,8; -0,97; -0,98; 1,07; 3,66; 8; 15}

Оглавление - содержание

Вариант 18. Составить программу для вычисления элементов матрицы A={aij}, каждый элемент которой вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Матрица B={bij} и C={cij} заданы (n£6, m£12).

Исходные данные: n=3; m=3;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 19. Составить программу для вычисления суммы

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Значения величины x1, x2, ... , xn заданы (n£20).

Исходные данные: n=6; x={0,1; 0,2; 0,6; 1,2; 1,6; 2,0}.

Оглавление - содержание

Вариант 20. Составить программу для вычисления полинома Qp(x)=c1xp+c2xp-1+...+cpx+cp+1,

равного сумме полиномов степени n Pn(x)=a1xn+a2xn-1+...+anx+an+1,

и степень m Pm(x)=b1xm+b2xm-1+...+bmx+bm+1,

Результатом считать коэффициенты и степень полученного полинома Qp(x). Если n>m, то p=n

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Если p=m=n, то ci=ai+bi при i=1, 2, ... , n+1. Полученный полином вычислить для заданного x( n£20, m£20).

Исходные данные: n=7; m=4; a={2,0; -6,0; -8,0; -9,0; 10,0; 12,0; 17,0; 30,0}; b={1,0; -2,0; 6,0; -8,5; 20,5); x=-3,3.

Вариант 21. Составить программу для вычисления бинома Ньютона

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Для вычисления Вложенные циклы с разветвлениями. Использование массивов. - student2.ru воспользоваться рекуррентным соотношением:

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru ( через сi обозначено Вложенные циклы с разветвлениями. Использование массивов. - student2.ru ) (m£10).

Исходные данные: m=8; x=0,26

Оглавление - содержание

Вариант 22. Составить программу для вычисления матрицы S={sij} (i, j=1, 2,3). Каждый элемент sij вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Значения a1, a2, ... , an заданы (n£20).

Исходные данные n=7; a={0,1; 0,28; 0,8; 1,38; 2,56; 4,10; 8}

Оглавление - содержание

Вариант 23.

Составить программу для вычисления вектора z={z1, z2, ... , zn}, каждая компонента которого определяется по формуле zk=xk+myk, где xk, yk компоненты векторов x={x1, ... , xn} и y={y1,... , yn} (n£10),

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=8; x={1,2; 1,0; -3,0; 2,5; 4; 3,2; 0,5; 0,4};

y={2,4; 2; -6; 5; 8; 6,4; 1; 1,2}

Оглавление - содержание

Вариант 24.

Составить программу для вычисления матрицы В={bij}, равной произведению числа l на матрицу А={aij}. Каждый элемент матрицы В вычисляется по формуле bij=laij, i, j=1, 2, ... , n, где l - наибольший элемент заданного вектора z={z1, z2, ... , zm} (n£6, m£10).

Исходные данные : n=3; m=5; z={11; -5; -0,01; 0,273; -3};

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Оглавление - содержание

Вариант 25.

Составить программу для вычисления площади многоугольника с вершинами

P1(x1,y1), P2(x2,y2), ... , Pn(xn,yn) по формуле:

S=[(x1-x2)(y1+y2)+(x2-x3)(y2+y3)+...+(xn-xn+1)(yn+yn+1)]/2,

где xn+1=x1, yn+1=y1 (n£20).

Исходные данные: n=11;x={1,2; 1; -3; 2,5; 4; 3,2; 0,5; 0,4; 0,4; -0,2; 11}; y={-0,01; 0,274; 0,031; -245; 23; 80; -22; -1; -13,5; -42; -22}

Оглавление - содержание

Вариант 26.

Составить программу для вычисления угла j между векторами a={a1, a2, ... , an} и b={b1, b2, ... , bn}, который можно определить из выражения

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=12; a={1,2; 1; -3; 2,5; 4; 3,2; 0,5; 0,4; 0,4; -0,2; 11; -6};

b={-0,01; 0,274; 0,031; -245; 23; 80; -22; -1; -13,5; -42; -22; 31}

Оглавление - содержание

Вариант 27.

Составить программу для вычисления и печати выражения

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

где a - максимальное из чисел x, y, z, A={aij} - заданная матрица (n£8).

Исходные данные: n=5; x=22; y=-9,1; z=0,02;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Оглавление - содержание

Вариант 28.

Cоставить программу для вычисления билинейной формы

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

где m - максимальный элемент вектора x={x1, x2, ... , xn}. Матрица A={aij}, i, j=1, 2, ... , n, вектор x и вектор y={y1, y2, ..., yn}, заданы (n£6).

Исходные данные: n=5; x={11; -5; -0,01; 0,274; 0,031}; y={-245; 23; 80; -22; -1};

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Оглавление - содержание

Вариант 29.

Составить программу для вычисления компонент вектора

z={z1, z2, ... , zn}, равного произведению заданной матрицы A={aij} на вектор x={x1, x2, ... , xn}. Каждая компонента вектора z вычисляется по формуле. Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Компоненты вектора х в свою очередь вычисляется по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Исходные данные: n=4;

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

Вариант 30.

Составить программу для решения следующей задач. Считая заданный вектор y={y1, y2, ... , yn} первым столбцом матрицы A={aij}, т.е. aij=yi (i=1, 2, ... , n), вычислить остальные элементы матрицы по формуле

Вложенные циклы с разветвлениями. Использование массивов. - student2.ru

В соответствии с приведенной формулой элементы матрицы, располо­­женные ниже диагонали, на которой находятся элементы an1, ... , a1n, будут нулевыми (n£ 10).

Исходные данные: n=5; y={0,0998; 0,1987; 0,2955; 0,3894; 0,4794}.

Оглавление - содержание

Процедуры и функции

Оглавление - содержание

В языке Паскаль, как и в большинстве языков программирования, предусмотрены средства, позволяющие оформлять вспомогательный алгоритм как подпрограмму. Это бывает необходимо тогда, когда какой-либо подалгоритм неоднократно повторяется в программе или имеется возможность использовать некоторые фрагменты уже разработанных ранее алгоритмов. Кроме того, подпрограммы применяются для разбиения крупных программ на отдельные смысловые части в соответствии с модульным принципом в программировании.

Для использования подалгоритма в качестве подпрограммы ему необходимо присвоить имя и описать алгоритм по правилам языка Паскаль. В дальнейшем, при необходимости вызвать его в программе, делают вызов подпрограммы упоминанием в нужном месте имени соответствующего подалгоритма со списком входных и выходных данных. Такое упоминание приводит к выполнению входящих в подпрограмму операторов, работающих с указанными данными. После выполнения подпрограммы работа продолжается с той команды, которая непосредственно следует за вызовом подпрограммы.

В языке Паскаль имеется два вида подпрограмм - процедуры и функции.

Процедуры и функции помещаются в раздел описаний программы. Для обмена информацией между процедурами и функциями и другими блоками программы существует механизм входных и выходных параметров. Входными параметрами называют величины, передающиеся из вызывающего блока в подпрограмму (исходные данные для подпрограммы), а выходными - передающиеся из подрограммы в вызывающий блок (результаты работы подпрограммы).

Одна и та же подпрограмма может вызываться неоднократно, выполняя одни и те же действия с разными наборами входных данных. Параметры, использующиеся при записи текста подпрограммы в разделе описаний, называют формальными, а те, что используются при ее вызове - фактическими.

Наши рекомендации