Вложенные циклы с разветвлениями. Использование массивов.
В языке ТР имеются три различных оператора с помощью которых можно запрограммировать повторяющиеся фрагменты программ.
Счетный оператор цикла: 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 вычисляется по формуле
i=1,2,... , n (n £ 9).
Исходные данные: n=3;
Вариант 2. Составить программу для вычисления элементов матрицы С={cij}, являющейся произведением матрицы А={aij} размера m*n на матрицу В={bij} размера n*q. Каждая компонента матрицы С вычисляется по формуле
j=1,2,..., q
k=1,2, ... , m (n £ 6, q £ 8, m £ 10).
Исходные данные: m=3; n=4; q=3.
Вариант 3. Составить программу для вычисления компонент вектора d={d1,d2,...,dn}, равного произведению матрицы A={aij} на вектор b={b1,b2,...,bm}. Каждая компонента вектора d вычисляется по формуле
i=1,2, ..., n (n£8, m£9).
Исходные данные: n=8; m=4;
.
Оглавление - содержание
Вариант 4. Составить программу для вычисления элементов матрицы С={cij}, являющиеся суммой матриц A={aij} и B={bij}. Каждый элемент матрицы С вычисляется по формуле
cij=aij+bij (i,j = 1,2,..., n).
причем матрица A задана, а элементы матрицы В вычисляются по формуле:
Исходные данные: n=4;
Вариант 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;
Вариант 7. Составить программу для вычисления коэффициентов аппроксимирующего многочлена P(x)=a1+a2x.
Коэффициенты а1 и а2 многочлена находятся из решения системы управлений
S1a1+S2a2=t1,
S2a1+S3a2=t2,
где k=1, 2, 3,
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. Составить программу для вычисления величины
где матрица A={aij}, i,j=1, 2, ... , n задана. Для решения задачи составить вектор z={z1, z2, ..., zn}, i=1, 2, ... , n, и затем найти максимальный элемент этого вектора. Это и есть N(n£6).
Исходные данные: n=6;
Вариант 9. Составить программу для нахождения наименьшей компоненты вектора S={s1, s2, ... , sm}, где каждая компонента sj вычисляется по формуле
Элементы матрицы A={aij}, i=1, 2, ... , n, j= 1, 2, ... , m заданы (m£8, n£6).
Исходные данные: n=3; m=4;
Оглавление - содержание
Вариант 10. Составить программу для вычисления величины:
где функция z для значения аргумента tk вычисляется по формуле, линейной интерполяции:
причем 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 по формуле
Значения 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) по формуле
Заданные значения y1,y2,...,yn соответствуют значениям аргумента х1,х2,...,х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оставить программу для вычисления значения полинома
для x=x1, x2, ..., xm по схеме Горнера, т.е. представляя полином в виде
Исходные данные: 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 по формулам:
n чисел a1, a2,..., an, образующих выборку, вычисляются по формуле
Исходные данные: n=23
Оглавление - содержание
Вариант 15. Составить программу для вычисления производной функции y(x) в точках х1, х2, ..., хn по формуле численного дифференцирования:
Функция y(x) задана таблично, т.е. значениям аргумента х1,х2,..., х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. Составить программу, вычисляющую сумму ряда:
Значения a0 и b0 заданы. Вычисление следует закончить когда будет выполнено условие a2n-b2n<q.
Исходные данные: a0=3; b0=2; q=10-6.
Оглавление - содержание
Вариант 17. Составить программу вычисления коэффициента корреляции, выражающего меру зависимости между упорядоченными наборами чисел {x1, x2, ... , xn} и {y1, y2, ..., yn} по формуле
Исходные данные: 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}, каждый элемент которой вычисляется по формуле
Матрица B={bij} и C={cij} заданы (n£6, m£12).
Исходные данные: n=3; m=3;
Вариант 19. Составить программу для вычисления суммы
Значения величины 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
Если 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. Составить программу для вычисления бинома Ньютона
Для вычисления воспользоваться рекуррентным соотношением:
( через сi обозначено ) (m£10).
Исходные данные: m=8; x=0,26
Оглавление - содержание
Вариант 22. Составить программу для вычисления матрицы S={sij} (i, j=1, 2,3). Каждый элемент sij вычисляется по формуле
Значения 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),
Исходные данные: 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};
Оглавление - содержание
Вариант 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}, который можно определить из выражения
Исходные данные: 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.
Составить программу для вычисления и печати выражения
где a - максимальное из чисел x, y, z, A={aij} - заданная матрица (n£8).
Исходные данные: n=5; x=22; y=-9,1; z=0,02;
Оглавление - содержание
Вариант 28.
Cоставить программу для вычисления билинейной формы
где 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};
Оглавление - содержание
Вариант 29.
Составить программу для вычисления компонент вектора
z={z1, z2, ... , zn}, равного произведению заданной матрицы A={aij} на вектор x={x1, x2, ... , xn}. Каждая компонента вектора z вычисляется по формуле.
Компоненты вектора х в свою очередь вычисляется по формуле
Исходные данные: n=4;
Вариант 30.
Составить программу для решения следующей задач. Считая заданный вектор y={y1, y2, ... , yn} первым столбцом матрицы A={aij}, т.е. aij=yi (i=1, 2, ... , n), вычислить остальные элементы матрицы по формуле
В соответствии с приведенной формулой элементы матрицы, расположенные ниже диагонали, на которой находятся элементы an1, ... , a1n, будут нулевыми (n£ 10).
Исходные данные: n=5; y={0,0998; 0,1987; 0,2955; 0,3894; 0,4794}.
Оглавление - содержание
Процедуры и функции
Оглавление - содержание
В языке Паскаль, как и в большинстве языков программирования, предусмотрены средства, позволяющие оформлять вспомогательный алгоритм как подпрограмму. Это бывает необходимо тогда, когда какой-либо подалгоритм неоднократно повторяется в программе или имеется возможность использовать некоторые фрагменты уже разработанных ранее алгоритмов. Кроме того, подпрограммы применяются для разбиения крупных программ на отдельные смысловые части в соответствии с модульным принципом в программировании.
Для использования подалгоритма в качестве подпрограммы ему необходимо присвоить имя и описать алгоритм по правилам языка Паскаль. В дальнейшем, при необходимости вызвать его в программе, делают вызов подпрограммы упоминанием в нужном месте имени соответствующего подалгоритма со списком входных и выходных данных. Такое упоминание приводит к выполнению входящих в подпрограмму операторов, работающих с указанными данными. После выполнения подпрограммы работа продолжается с той команды, которая непосредственно следует за вызовом подпрограммы.
В языке Паскаль имеется два вида подпрограмм - процедуры и функции.
Процедуры и функции помещаются в раздел описаний программы. Для обмена информацией между процедурами и функциями и другими блоками программы существует механизм входных и выходных параметров. Входными параметрами называют величины, передающиеся из вызывающего блока в подпрограмму (исходные данные для подпрограммы), а выходными - передающиеся из подрограммы в вызывающий блок (результаты работы подпрограммы).
Одна и та же подпрограмма может вызываться неоднократно, выполняя одни и те же действия с разными наборами входных данных. Параметры, использующиеся при записи текста подпрограммы в разделе описаний, называют формальными, а те, что используются при ее вызове - фактическими.