Другие языки программирования и технологии

Помогите с паскалем пожалуйста

написать 2 проги :
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале от xmin до xmax с шагом dx с точностью e.
ссылка на пример : http://physics.herzen.spb.ru/library/03/01/pp/lev1th7/task-23.gif
http://physics.herzen.spb.ru/library/03/01/pp/lev1th7/task-24.gif
Каждая строка таблицы должна содержать значение аргумента, значение функции и количество просуммированных членов ряда. Операции ввода исходных данных, вычисления функции с помощью ряда Тейлора и табулирования функции реализовать в виде отдельных подпрограмм (процедур и функций) .

и 2я прога

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

A = 7·(B+С) + 5·(C+D),

где B, C и D - квадратные матрицы размером (n x n).

Ввод и вывод элементов матриц, а также вычисление cуммы двух матриц и умножение матрицы на константу оформите в виде процедур.
2 задача
{ИСПОЛЬЗОВАНИЕ ПРОЦЕДУР И ФУНКЦИЙ ДЛЯ РАБОТЫ С МАССИВАМИ
Составьте программу, вычисляющую следующее выражение:
A = 7·(B+С) + 5·(C+D),
где B, C и D - квадратные матрицы размером (n x n).
Ввод и вывод элементов матриц, а также вычисление cуммы двух матриц и
умножение матрицы на константу оформите в виде процедур.
}

{uses crt;}
Const max = 10;
Type
matrix = array[1..max, 1..max] of integer;

var kmax, ch : byte;
A, B, C, D, Y, Z : matrix;

{Печать матрицы}
Procedure PrintMatrix(matr:Matrix);
var i, j : byte;

begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Write(matr[i, j]:6);
end;
WriteLn;
end;
WriteLn;

end;

{Ввод матрицы}
Procedure InputMatrix(var matr:Matrix);
var i, j : byte;

begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
WriteLn('Input M[',i, ',', j,']');
ReadLn(matr[i,j]);
end;
WriteLn;
end;
WriteLn;

end;

{Заполнение матрицы случайными числами}
Procedure CreateMatrix(var matr:matrix);
var i, j : byte;

begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
matr[i, j] := Random(10);
end;
end;

end;

{Суммирование матриц }
Procedure SumMatrix(m1, m2: matrix; var Resul : matrix);
var i, j : byte;

begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Resul[i, j] := m1[i, j] + m2[i, j] ;
end;
end;
end;

{Перемножает две матрицы: m1, m2,результат в Resul}
Procedure MultMatrix(m1, m2: matrix; var Resul : matrix);
var i, j, k : byte;
begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Resul[i, j] := 0;
for k := 1 to kmax do begin
Resul[i, j] := Resul[i, j]+ m1[i, k] * m2[k, j] ;
end;
end;
end;
end;

{Произведение числа num на матрицу m1,результат в Resul}
Procedure NumMultMatrix(m1 : matrix; num : integer; var Resul : matrix);
var i, j, k : byte;
begin
for i:= 1 to kmax do begin
for j := 1 to kmax do begin
Resul[i, j] := num * m1[i, j];
end;
end;
end;

{Возводит матрицу в куб }
Procedure kub(var m:matrix);
var TempM : matrix;
begin
MultMatrix(m, m, TempM);
MultMatrix(m, TempM, m);
end;

BEGIN
{clrscr;}
Randomize;

Write('Введите размер матриц 2 < n < 10');
ReadLn(kmax);

WriteLn('Введите 1,для автоматического формирования матриц или 2 для ввода с клавиатуры');
ReadLn(ch);
if ch = 1 then begin
CreateMatrix(D);
CreateMatrix(B);
CreateMatrix(C);
end
else begin
WriteLn('B = ');
InputMatrix(B);
WriteLn('C = ');
InputMatrix(C);
WriteLn('D = ');
InputMatrix(D);
end;

WriteLn('B = ');
PrintMatrix(B);
WriteLn('C = ');
PrintMatrix(C);
WriteLn('D = ');
PrintMatrix(D);

SumMatrix(B, C, Y);
WriteLn('B +C = ');
PrintMatrix(Y);

NumMultMatrix(Y, 7, Z);
WriteLn('7*(B +C) = ');
PrintMatrix(Z);

SumMatrix(C, D, A);
WriteLn('C +D = ');
PrintMatrix(A);

NumMultMatrix(A, 5, Y);
WriteLn('5*(C +D) = ');
PrintMatrix(Y);

SumMatrix(Z, Y, A);
WriteLn('A = 7·(B+С) + 5·(C+D) = ');
PrintMatrix(A);

{readkey;}
END.
Александр Голубев
Александр Голубев
7 015
Лучший ответ
Откуда у Вас у всех одинаковые задания?
Первая
Program Taylor;

Procedure VVOD (var x1,x2,delta,epsil:real);
begin
write('Vvedite xmin ');readln(x1);
write('Vvedite xmax ');readln(x2);
write('Vvedite dx ');readln(delta);
write('Vvedite e ');readln(epsil);
end;

Procedure F_Taylor (xx,epsil:real; var ff:real; var ks:Integer);
var y:real;
begin
ff:=0;
y:=xx;
ks:=-1;
repeat
ks:=ks+2;
y:=y/(ks*xx*xx);
ff:=ff+y;
until y<=epsil;
ff:=2*ff*abs(xx);
end;

Procedure TAB(x1,x2,delta,epsil:real);
var j,kp,k:integer;y:real;
begin
kp:=Round(abs(x2-x1)/delta)+1;
writeln('x':3,'y':10,'k':7);
writeln('----------------------');
for j:=1 to kp do
begin
F_Taylor(x1,epsil,y,k);
writeln(x1:5:2,y:10:4,k:6);
x1:=x1+delta;
end;
writeln('----------------------');
end;

var xmin,xmax,e,dx:real;
begin
VVOD(xmin,xmax,dx,e);
TAB(xmin,xmax,dx,e);
end.

Вторую некогда сейчас.