Примеры решения типовых задач курсового проекта

Постановка задачи 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) в схеме алгоритма равны соответствующим выражениям в постановке задачи.

 


Ввод A (aaa.dat)

 

 

 


Решение:

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