Примеры решения типовых задач курсового проекта
Постановка задачи 1. Разработать алгоритм и программу вычисления f=f(y,A), где Y изменяется от 1 до 20 с шагом 0.5 . Величина A задана массивом из 10-ти элементов в виде столбца и записана в файл AAA.Dat. Функция f(y,A) имеет следующий вид:
f(y,A)= ,
где , (b) , Z(y)=sin(y) (a).
Результаты счета функции f=f(y,A), а также значения Y и A выводить в файл 1) AAA1.LST, если f>0 , 2) AAA2.LST, если f£0.
Обозначения (a), (b) в схеме алгоритма равны соответствующим выражениям в постановке задачи.
|
|
Решение:
program task1;
uses crt; {подключение модуля для работы
с экраном в текстовом режиме}
var
a : array[1..10] of real;
z,y : array[1..39] of real;
mas_az : array [1..10,1..39] of real;
i,j : integer;
x,s: real;
f1,f2 : text;
Begin {н.п.}
clrscr; {очистка экрана}
assign(f1,’aaa.dat’); {связывание файловой
переменной f1 с именем файла}
reset(f1); {открытие файла aaa.dat}
for i:=1 to 10 do
readln(f1,a[i]); {считывание данных из файла aaa.dat}
close(f1); {закрытие файла aaa.dat}
for i:=1 to 39 do begin {н.б.1} {организация цикла для расчета
всех значений Y}
y[i]:=i*0.5+0.5;
z[i]:=sin(i*0.5+0.5);
end; {к.б.1}
s:=0; {обнуление s для расчета суммы}
for i:=1 to 10 do begin{н.б.2}
x:=i*i+i-1;
s:=s+x*x-x ; {расчет суммы}
end;{к.б.2}
assign(f1,’aaa1.lst’);
rewrite(f1);
assign(f2,’aaa2.lst’);
rewrite(f2);
for i:=1 to 10 do
for j:=1 to 39 do begin{н.б.3}
mas_az[i,j]:=a[i]*s-z[j]*s*s; {рассчет результирующей функции}
if mas_az[i,j]>0 then writeln(f1,mas_az[i,j]:7:2,’ ‘,y[j]:5:2,’ ‘,a[i]:6:2) else writeln(f2, mas_az[i,j]:7:2,’ ‘,y[j]:5:2,’ ‘,a[i]:6:2);
end;{к.б.3}
close(f1);
close(f2);
End. {к.п.}
Результаты задачи 1:
Файл ААА.DAT :
32.4
11.7
42.9
78.5
0.35
Файл AAA1.LST :
326618891.10 3.50 32.40 703526180.96 4.00 32.40 908427417.36 4.50 32.40
891155631.46 5.00 32.40 655939558.82 5.50 32.40 260368297.47 6.00 32.40
70749874.98 9.50 32.40 506001429.48 10.00 32.40 817607878.60 10.50 32.40
929277095.95 11.00 32.40 813668562.52 11.50 32.40 499087279.28 12.00 32.40
62553715.78 12.50 32.40 268247531.08 16.00 32.40 661736801.82 16.50 32.40
893451516.59 17.00 32.40 906659831.86 17.50 32.40 698127891.41 18.00 32.40
318911587.06 18.50 32.40 325988203.50 3.50 11.70 702895493.36 4.00 11.70
...
269758743.88 16.00 82.00 663248014.62 16.50 82.00 894962729.39 17.00 82.00
908171044.66 17.50 82.00 699639104.21 18.00 82.00 320422799.86 18.50 82.00
325642391.70 3.50 0.35 702549681.56 4.00 0.35 907450917.96 4.50 0.35
890179132.06 5.00 0.35 654963059.42 5.50 0.35 259391798.07 6.00 0.35
69773375.58 9.50 0.35 505024930.07 10.00 0.35 816631379.20 10.50 0.35
928300596.55 11.00 0.35 812692063.12 11.50 0.35 498110779.88 12.00 0.35
61577216.38 12.50 0.35 267271031.68 16.00 0.35 660760302.42 16.50 0.35
892475017.19 17.00 0.35 905683332.46 17.50 0.35 697151392.01 18.00 0.35
317935087.66 18.50 0.35
Файл AAA2.LST:
-780149530.72 1.00 32.40 -924986459.31 1.50 32.40 -843112750.65 2.00 32.40
-554573944.06 2.50 32.40 -130014402.55 3.00 32.40 -198708511.79 6.50 32.40
-608892855.18 7.00 32.40 -869757299.75 7.50 32.40 -917433131.52 8.00 32.40
-740247644.12 8.50 32.40 -381582024.42 9.00 32.40 -389053487.01 13.00 32.40
-745165135.47 13.50 32.40 -918592678.26 14.00 32.40 -866875004.38 14.50 32.40
-602674404.13 15.00 32.40 -190676398.77 15.50 32.40 -138143704.25 19.00 32.40
...
-136632491.45 19.00 82.00 -559623694.06 19.50 82.00 -844987809.22 20.00 82.00
-781126030.12 1.00 0.35 -925962958.71 1.50 0.35 -844089250.05 2.00 0.35
-555550443.46 2.50 0.35 -130990901.95 3.00 0.35 -199685011.19 6.50 0.35
-609869354.58 7.00 0.35 -870733799.16 7.50 0.35 -918409630.92 8.00 0.35
-741224143.52 8.50 0.35 -382558523.82 9.00 0.35 -390029986.41 13.00 0.35
-746141634.87 13.50 0.35 -919569177.66 14.00 0.35 -867851503.79 14.50 0.35
-603650903.53 15.00 0.35 -191652898.17 15.50 0.35 -139120203.65 19.00 0.35
-562111406.27 19.50 0.35 -847475521.42 20.00 0.35
Постановка задачи 2. Написать программу обработки матрицы A(4 на 4). В программе должны быть реализованы следующие функции:
1) ввод матрицы A из файла AB.DAT; 2) запись в файл IND.LST индексов матрицы, удовлетворяющих условиям i-2j>0 (1) и A[i,j]-cos(A[i,j])>0 (2) и фраз “Условие 1 выполняется ”, “Условие 2 выполняется” соответственно. 3) запись в файл USL.LST индексов элементов и фраз “Условие 1 не выполняется”, “Условие 2 не выполняется”, “Условие 1 и 2 не выполняются”, если не выполняется условие (1), если не выполняется условие (2), если не выполняются условия (1) и (2) соответственно.
Обозначения (Условие 1), (Условие 2), (Условие 3) в схеме алгоритма равны соответствующим условиям (1+2), (1) и (2) в постановке задачи.
| |||
program task2;
uses crt;
var
A: array[1..4,1..4] of real;
i,j : integer;
f1,f2,f3,f4 : text;
Begin{н.п.}
clrscr;
assign(f1,'ab.dat');
reset(f1);
for i:=1 to 4 do begin{н.б.1}
for j:=1 to 4 do
read(f1,a[i,j]);
readln(f1);
end;{к.б.1}
close(f1);
assign(f1,'a12.lst');
rewrite(f1);
assign(f2,'a1.lst');
rewrite(f2);
assign(f3,'a2.lst');
rewrite(f3);
assign(f4,'a00.lst');
rewrite(f4);
for i:=1 to 4 do
for j:=1 to 4 do begin{н.б.2}
if ((i-2*j)>0) and (a[i,j]-cos(a[i,j])<=0) then writeln(f1,'i=',i,' j=',j)
else if (i-2*j)<0 then writeln(f2,'i=',i,' j=',j)
else if (a[i,j]-cos(a[i,j]))>0 then writeln(f3,'i=',i,' j=',j) else writeln(f4,'i=',i,' j=',j);
end;{к.б.2}
close(f1);
close(f2);
close(f3);
close(f4);
End.{к.п.}
Результаты задачи 2 :
Файл AB.DAT :
1 24 53 67
8 44 2.2 4.5
9 8.7 62.1 -7
90 110 13 1.9
Файлы A12.lst и A00.lst пусты;
Файл A1.lst: Файл A2.lst:
i=1 j=1 i=2 j=1
i=1 j=2 i=3 j=1
i=1 j=3 i=4 j=1
i=1 j=4 i=4 j=2
i=2 j=2
i=2 j=3
i=2 j=4
i=3 j=2
i=3 j=3
i=3 j=4
i=4 j=3
i=4 j=4
Постановка задачи 3. Написать алгоритм и программу для вычисления функции Z трех переменных ,
, (1)
=2,1; 7.3 (0.1); =10.1; 15.7 (0.7); =7,1 ;8; 0; 9
где переменные и изменяются с постоянными шагами 0.1 и 0.7 соответственно. Переменная дается в виде массива.
Обозначение (a) в схеме алгоритма соответствует выражению (1) в постановке задачи.
program task3;
uses crt;
var
x1p,x2p,x3p,z:real;
i, j, k, y,ix1,ix2:integer;
x3 : array[1..4] of real;
x1n,x2n,x1k,x2k,h1,h2 : real;
Begin {н.п}
clrscr; {очистка экрана}
x1n:=2.1;x2n:=10.1;
x1k:=7.3;x2k:=15.7;
h1:=0.1;h2:=0.7;
x3[1]:=7.1;x3[2]:=8;
x3[3]:=0; x3[4]:=9;
ix1:=trunc((x1k-x1n)/h1)+1;
ix2:=trunc((x2k-x2n))+1;
y:=0;
x1p:=x1n;
for i:=1 to ix1 do begin {н.б.1}
x2p:=x2n;
for j:=1 to ix2 do begin {н.б.2}
for k:=1 to 4 do begin {н.б.3}
z:=2*x1p*x1p*x1p+cos(exp(ln(x2p)*(3/4)))
+ln(abs(sin(x3[k])));
y:=y+1;
writeln('i=',y,' x1=',x1p:5:2,' x2=',x2p:5:2,' x3=',x3[k]:5:2,' Z=',z:7:2); {вывод на экран результатов}
end; {к.б.3}
x2p:=x2p+h2;
end; {к.б.2}
x1p:=x1p+h1;
end; {к.б.1}
readln;
End. {к.п.}
Результаты задачи 3:
i=1 x1= 2.10 x2=10.10 x3= 7.10 Z= 19.02
i=2 x1= 2.10 x2=10.10 x3= 8.00 Z= 19.33
i=3 x1= 2.10 x2=10.10 x3= 1.00 Z= 19.16
i=4 x1= 2.10 x2=10.80 x3= 7.10 Z= 19.15
...
i=51 x1= 2.60 x2=10.80 x3= 1.00 Z= 35.93
i=52 x1= 2.60 x2=11.50 x3= 7.10 Z= 35.84
i=53 x1= 2.60 x2=11.50 x3= 8.00 Z= 36.14
i=54 x1= 2.60 x2=11.50 x3= 1.00 Z= 35.98