end;
{----------------------------------------------------------------}
Begin N:= 10; { создание симметричной матрицы }
for i:= 1 to N do for j:= i to N do
x[i, j]:= 0.5 + random(50); { заполнение верхней треугольной матрицы }
for i:= 1 to N do for j:= i to N do
x[j,i]:= x[i,j]; { заполнение нижней, симметричной части матрицы }
Wr_M(x, 'file_1.out', N, N); { вызов процедуры записи массива в файл }
End.
Для правильного считывания данных, записанных в файл бесформатным выводом необходима запись пробела для разделения чисел.
Практическое задание N 1. 28
Написать и отладить программы с использованием процедур:
1. Вывести на экран визитную карточку программиста с указанием текущей даты.
2. Вывести на экран визитную карточку программиста с указанием времени.
Примечание к п. п. 1, 2: рассмотреть случаи задания фамилии разработчика в качестве глобального, локального и формального параметра.
3. Рассчитать массив из N значений функции Y= ex + Cos(x) при изменении аргумента с постоянным шагом в диапазоне x1.. x2, и записи массива в файл. Значения N, x1, x2 и имя файла задаются оператором ввода
|
|
4. Рассчитать массив из N значений функции Y=ln(x) - x3 при изменении аргумента с постоянным шагом в диапазоне x1.. x2, и записи массива в файл. Значения N, x1, x2 и имя файла задаются оператором ввода.
5. Создать единичную матрицу NxN (N<=50). Элементы матрицы на главной диагонали равны единице, остальные - нулю. Вывести на экран массив 20х20.
6. Заменить элементы матрицы NxN (N<=30), расположенных в строках на элементы, расположенные в столбцах, т. е. a[i, j] на a[j, i]. Вывести на экран исходный и транспонированный массивы размером 10х10.
Приведем пример функции для расчета высоты треугольника по заданным значениям его сторон.
Program TR;
Var a, b, c, ha, hb, hc: real;
{----------------------------------------------------------------}
Function H_TR(a, b, c: real): real; { a, b, c - Стороны треугольника }
Var p, s: real;
Begin
If (a<0) or (b<0) or (c<0) Then begin
Writeln('Стороны треугольника >0?'); readln; Halt end;
If (a>(b+c)) or (b>(a+c)) or (c>(a+b)) Then begin
Writeln('a<(b+c), b<(a+c), c<(a+b)?'); readln; Halt end;
p:= (a+b+c)/2; { полупериметр }
s:= Sqrt(p*(p-a)*(p-b)*(p-c)); { площадь }
H_TR:= 2*s/a; { Присвоение функции значения }
End;
{----------------------------------------------------------------}
Begin
Writeln('Введите значения сторон треугольника a,b,c'); Readln(a,b,c);
ha:= H_TR(a, b, c); hb:= H_TR(b, a, c); hc:= H_TR(c, b, a);
Writeln('Высоты треугольника:');
Writeln('ha=',ha:-10:4, 'hb=',hb:-10:4, 'hc=',hc:-10:4); Readln
End.
В программе трижды вызывается функция расчета высоты треугольника для различных комбинаций фактических параметров, что позволяет вычислить все высоты треугольника.