Использование программирования в математике
СОДЕРЖАНИЕ: Содержание Задание 1. Вычисление значения арифметического выражения Задание 2. Использование условного оператора Задание 3. Использование циклических структурСодержание
Задание 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 XA+C then X:=A+C;
if XB+C then X:=B+C;
Y:=A;
if Y2*B then Y:=2*B;
if Y3*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 yyk;
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 maxabs(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 k0 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.
Результат работы:
Входной файл
Выходной файл