Использование программирования в математике

Содержание

Задание 1. Вычисление значения арифметического выражения Задание 2. Использование условного оператора Задание 3. Использование циклических структур Задание 4. Работа с двумерными массивами Задание 5. Использование процедур Задание 6. Текстовый файл Задание 1. Вычисление значения арифметического выражения

Вычислить значение переменной z, являющейся функцией двух переменных x и y. Для вычисления x и y требуется определить значения арифметических выражений, зависящих от переменных a и b и констант k и m.

Вычислить

Текст программы:

Program pr_1;

Var x, y, z, a, b:real;

Const k=1; m=2;

Begin

Writeln(‘Vvedite a’);

Readln(a);

Writeln(‘Vvedite b’);

Readln(b);

X:=a*k-(k*sqr(sqr(b))*b)/(1.2+sqr(sin(a+b)));

Y:=(1+sqr(sin(a/2)/cos(a/2))/((a/(a+b)+2.1)*ln(m)/ln(10)));

Z:=m*exp(ln(x)*y)+2*k*x*y-0.81;

Writeln(‘x = ‘,x:5:2);

Writeln(‘y = ‘,y:5:2);

Writeln(‘z = ‘,z:5:2);

End.

Результат работы:

Задание 2. Использование условного оператора

Даны три целых числа A, B, C. Определить значения переменных X, Y, Z. Вывести их на экран. Пусть D1 и D2 – заштрихованные плоскости, и пусть U определяется как функция X и Y. Вывести U на экран дисплея. Вывод результатов оформить пояснительным тестом.

Текст программы:

Program pr_2;

Var

A, B, C, X, Y, Z, U:real;

Begin

Writeln(‘Vvedite A’);

Read(A);

Writeln(‘Vvedite B’);

Read(B);

Writeln(‘Vvedite C’);

Read(C);

X:=A+B;

If X>A+C then X:=A+C;

If X>B+C then X:=B+C;

Y:=A;

If Y<2*B then Y:=2*B;

If Y>3*C then Y:=3*C;

Z:=X/Y;

If ((X>=-3) and (X<=-2)) and ((Y<=1) and (Y>=-2)) then

Begin

U:=ln(X+Y)/ln(10);

End

Else

If X*X+Y*Y<=1*1 then

Begin

U:=X-Y+Z;

End

Else U:=1;

Writeln(‘U = ‘,U:5:2);

End.

Результат работы:

Задание 3. Использование циклических структур

Составить программу расчета значений функций двух переменных z=f(x, y) с использованием оператора цикла. Значение переменных x и y изменяются соответственно от xнач. до xкон. с шагом hx и от yнач. до yкон. с шагом hy и вводятся с клавиатуры. Указанные переменные относятся к вещественному типу. Вывести на экран таблицу значений x, y, z.

Вычислить

Внешний цикл – while, внутренний – repeat.

Текст программы:

Program pr_3;

Var

I, j:integer;

X, xn, xk, hx, y, yn, yk, hy, z:real;

Begin

Writeln(‘Vvedite nachalnoe znachenie x’);

Read(xn);

Writeln(‘Vvedite konechnoe znachenie x’);

Read(xk);

Writeln(‘Vvedite shag izmeneniya znacheniya x’);

Read(hx);

Writeln(‘Vvedite nachalnoe znachenie y’);

Read(yn);

Writeln(‘Vvedite konechnoe znachenie y’);

Read(yk);

Writeln(‘Vvedite shag izmeneniya znacheniya y’);

Read(hy);

Writeln(‘x y z’);

X:=xn;

While x<=xk

Do

Begin

Y:=yn;

Repeat

Z:=(2*sqr(x)*x+cos(y)/sin(y))/sqrt(1+ln(sqr(y))/ln(10));

Writeln(x:5:2,’ ‘,y:5:2,’ ‘,z:5:2);

Y:=y+hy;

Until y>yk;

X:=x+hx;

End;

Readln;

End.

Результат работы:

Задание 4. Работа с двумерными массивами

Составить программу преобразования двумерных массивов.

В целочисленной матрице А(3,4) найти m положительных элементов в четных столбцах. Сформировать матрицу В(3,4) по правилу

(i=1,…,3; j=1,…,4)

В первой строке матрицы А найти максимальный по модулю элемент.

Текст программы:

Program pr_4;

Var

I, j, m:integer;

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

Max:real;

Begin

Writeln(‘Vvod matrici po strokam’);

For i:=1 to 3 do

Begin

For j:=1 to 4 do

Begin

Writeln(‘Vvedite element matrici’);

Readln(A[i, j])

End;

End;

M:=0;

J:=2;

While j<=4 do

Begin

For i:=1 to 3 do

Begin

If A[i, j]>0 then m:=m+1;

End;

J:=j+2;

End;

For i:=1 to 3 do

Begin

For j:=1 to 4 do

Begin

If m=0 then B[i, j]:=A[i, j]

Else B[i, j]:=A[i, j]/m;

End;

End;

Max:=abs(A[1,j]);

For j:=1 to 4 do

Begin

If max<abs(A[1,j]) then max:=abs(A[1,j]);

End;

Writeln(‘Matrica A’);

For i:=1 to 3 do

Begin

Writeln(”);

For j:=1 to 4 do

Begin

Write(A[i, j]:5:0);

End;

End;

Writeln(”);

Writeln(‘Matrica B’);

For i:=1 to 3 do

Begin

Writeln(”);

For j:=1 to 4 do

Begin

Write(B[i, j]:5:2);

End;

End;

Writeln(”);

Writeln(‘m = ‘,m);

Writeln(‘maksimalniy po modulyu element pervosy stroki ‘, max:5:0);

Readln;

End.

Результат работы:

Задание 5. Использование процедур

Даны две вещественные матрицы А(7,7) и В(5,5). Из матрицы А сформировать одномерный массив С по правилу, а из матрицы В сформировать массив D по тому же правилу. Для ввода матрицы, формирования одномерных массивов и вывода одномерных массивов применить три PROCEDURE. При вводе матрицы и выводе одномерных массивов вывести на экран сообщения с указанием соответственно имени вводимой матрицы или имени выводимого одномерного массива.

Правило: Из сумм квадратов элементов четных столбцов.

Текст программы:

Program pr_5;

Type mas=array[1..7,1..7] of integer;

Mas2=array[1..3] of integer;

Var

A, B: mas;

C, D: mas2;

Procedure FillArr(var a:mas; row, col: integer);

Var i, j:integer;

Begin

For i := 1 to row do

For j := 1 to col do readln(a[i, j]);

End;

Procedure ActArr(var a:mas; count1,count2: integer; b:mas2);

Var i, j, S, k:integer;

Begin

K:=1;

For j:=2 to count1 do

Begin

S:=0;

For i:=1 to count2 do S:=S+sqr(a[i, j*2-2]);

B[k]:=S;

K:=k+1;

End;

End;

Procedure OutputArr(var a:mas2; col: integer);

Var i:integer;

Begin

For i:=1 to col do write(a[i]:5);

End;

Begin

Writeln(‘Vvod matrici A’); fillarr(A, 7, 7);

Writeln(‘Vvod matrici B’); fillarr(B, 5, 5);

ActArr(A,4,7,C);

ActArr(B,3,5,D);

Writeln(‘Massiv C’);

OutputArr(C, 3); writeln;

Writeln(‘Massiv D’);

OutputArr(D,2);

Readln;

End.

Результат работы:

Задание 6. Текстовый файл

Дан текстовый файл f. Преобразовать строки файла f по правилам. Преобразованные строки переписать в файл g.

Правило: Создать строку из символов, расположенных после первой запятой. Если запятых нет, то записать пустую строку.

Текст программы:

Program pr_6;

Var

F, g:text;

S:string;

I, k:integer;

Begin

Assign(f,’C:\text. txt’);

Reset(f);

Assign(g,’C:\text2.txt’);

Rewrite(g);

While not eof(f) do

Begin

K:=0;

Readln(f, s);

For i:=1 to length(s) do

Begin

If s[i]=’,’ then

Begin

K:=i+1;

Break;

End;

End;

If k<>0 then

Begin

For i:=k to length(s) do

Begin

Write(g, s[i]);

End;

Writeln(g,”);

End

Else

Writeln(g,”);

End;

Close(f);

Close(g);

Readln

End.

Результат работы:

Входной файл

Выходной файл


Использование программирования в математике