Программирование циклических вычислительных структур
Стр 1 из 2Следующая ⇒ Лабораторная работа №1 ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ Задание №1. Используя таблицу 1.1, разработать и отладить программу для организации ввода и вывода данных определенных типов. Сделать в ней соответствующие заголовки. Исходные Данные. 1) Целые числа: а) количество чисел – 2 б) формат чисел – 3. 2) Вещественные числа: а) количество чисел – 3. б) общее количество знаков – 5. в) количество знаков после точки – 1. 3) количество символов – 3. 4) значение логической константы TRUE. Текст программы к заданию №1: Program m111116; Uses Crt; Const D=True; Var A1, A2: Integer; B1, B2, B3: Real; C1, C2, C3: Char; Begin ClrScr;
WriteLN ('Введите значение целочисленных переменных A1, A2:'); ReadLN (A1, A2); WriteLN ('Введите значение вещественных переменных B1, B2, B3:'); ReadLN (B1, B2, B3); WriteLN ('Введите значение символьных переменных С1, С2, С3:'); ReadLN (C1, C2, C3);
WriteLN (Значение целочисленных переменных:'); WriteLN ('À1=', A1:3, ', A2=', A2:3); WriteLN ('Значение вещественной переменной:'); WriteLN ('B1=', B1:5:1, ', B2=', B2:5:1, ', B3=', B3:5:1); WriteLN ('Значение символьной переменной:'); WriteLN ('Ñ1=', C1, ', Ñ2=', C2, ', Ñ3=', C3); WriteLN ('Значение логической переменной:'); WriteLN ('D=', D); End. Результаты работы программы к заданию №1: Введите значения целочисленных переменных A1, A2: 1 23 Введите значения вещественных переменных B1, B2, B3: 1.2 34.56 789.012 Введите значения символьных переменных С1, С2, С3: ~!@ Значения целочисленных переменных: А1= 1, A2= 23 Значение вещественной переменной: B1= 1.2, B2= 34.6, B3=789.0 Значение символьной переменной: С1=~, С2=!, С3=@ Значение логической переменной: D=TRUE
Задание №2. По заданным формулам и наборам исходных данных составить программу для вычислений значений переменных, указанных в таблице 1.2. Вывод осуществлять с их именами.
Исходные данные S=X3tg2*(A+B)3+(A/(X+B)1/2)) Q=(BX2-A)/(eAX-1) Текст программы к заданию №2:
Program m111126; Uses Crt; Const A=16.5; B=3.4; X=0.5; Var S, Q: Real; Begin ClrScr;
S:=X+B; S:=Sqr(S)*S; S:=Sqr(X)*X*Sqr(Sin(S)/Cos(S))+(A/(Sqrt(X+B))); Q:=(B*Sqr(X)-A)/(Exp(X*A)-1);
WriteLN(‘Значение переменной S:',S:7:4); WriteLN(‘Значение переменной Q:',Q:7:4); End.
Результаты работы программы к заданию №2:
Значение переменной S: 8.3740 Значение переменной Q:-0.0041
Лабораторная работа №2 ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ С ПРОВЕРКОЙ ЛОГИЧЕСКОГО УСЛОВИЯ В ЦИКЛЕ Задание №1. Составить программу для вычисления значений функции Z=X+Y. Исходные данные X Y Константы T=5,47 S= -1,243
Текст программы к заданию №1: Program m111216; Uses Crt; Const T= 5.47; S=-1.243; Var X, Y, Z: Real; Begin ClrScr;
If T>0 Then X:=4+Sqr(T) Else X:=3*T;
If T-S>2*X Then Y:=12 Else Y:=T+Sqr(X);
Z:=X+Y;
WriteLN('Ïðè X=', X:6:3, ', Y=', Y:6:3, ', Z=',Z:6:3); End. Результаты работы программы к заданию №1: При X=33.921, Y=1156.097, Z=1190.018 Задание №2. Составить программу для определения заданной в таблице функции с помощью оператора варианта с шагом ∆x при заданных коэффициентах. Построить таблицу результатов полученной функции. Исходные данные
Текст программы к заданию №2: Program m111226; Uses Crt; Var S: Real; X: Integer; Const a=2; b=-3.7; c=1.2; h=2; x0=1; x1=14; Begin ClrScr;
X:=1; Writeln('+----------------+'); Writeln('| X | S |'); Writeln('+----------------+'); Repeat Case X Of 1..8: S:=A*Sqrt(Sqr(X)*X)+B*Exp(2/3*Ln(X)); 9..10: s:=A*Sqr(X)*X+0.9; 11..14: s:=(A*Sqrt(Sqr(X)*X)+B*Exp(2/3*Ln(X)))*C; End; WriteLN('| ',X:2, ' | ', S:8:3, ' |'); X:=X+H; Until X>=X1; Writeln('+----------------+');
End.
Результаты работы программы к заданию №2: +----------------+ | X | S | +----------------+ | 1 | -1.700 | | 3 | 2.696 | | 5 | 11.542 | | 7 | 23.501 | | 9 | 1458.900 | | 11 | 65.598 | | 13 | 87.945 | +----------------+
Задание №3. Составить программу для вычисления значений функции Y=F(X) при изменении X от 0 до 1 с шагом H. Определить количество отрицательных значений функции. Данные приведены в таблице.
Исходные данные F(X) Константы H= 0.1
Текст программы к заданию №3: Program m111236; Uses Crt; Const H=0.1; Var I: Integer; Y, X, F: Real; Begin ClrScr;
I:=0; X:=0; While X<=1 Do Begin F:=X*Sqr(X)-4*Sqr(X)+12.78;
WriteLN ('X=', X:3:1, ', F(X)=', F:6:3);
If F<0 Then I:=I+1;
X:=X+H; End;
WriteLN ('количество отрицательных значений:',I); End.
Результаты работы программы к заданию №3: X=0.0, F(X)=12.780 X=0.1, F(X)=12.741 X=0.2, F(X)=12.628 X=0.3, F(X)=12.447 X=0.4, F(X)=12.204 X=0.5, F(X)=11.905 X=0.6, F(X)=11.556 X=0.7, F(X)=11.163 X=0.8, F(X)=10.732 X=0.9, F(X)=10.269 X=1.0, F(X)= 9.780 Количество отрицательных значений:0 Задание №4. Составить программу для вычисления всех действительных корней квадратного уравнения AX2 + BX + C = 0, в котором параметр A = A(T) изменяется по закону, указанному в таблице. Исходные данные A(T) Отрезок изменения T [0;2] Шаг 0.2 Константы B = 3 C = 5 Текст программы к заданию №4:
Program m111246; Uses Crt; Const B=0.41; C=3.5; H=0.2; Var A, T, X1, X2, D: Real; Begin ClrScr;
T:=0; While T<=2 Do Begin A:=3*Sqr(T)+14*T;
Write ('T=', T:3:1, ', A=', A:5:2, ', ');
If A<>0 Then Begin D:=B*B-4*A*C;
If D<0 Then WriteLN('Действительных корней нет') Else If D>0 Then Begin X1:=(-B+Sqrt(D))/(2*A); X2:=(-B-Sqrt(D))/(2*A); WriteLN('X1=', X1:6:4, ', X2=', X2:6:4); End Else Begin X1:=-B/(2*A); WriteLN('X1=X2=', X1:6:4); End; End Else If B<>0 Then WriteLN('X=', -C/B:6:4) Else If C<>0 Then WriteLN('Корней нет') Else WriteLN('X-Любое число'); T:=T+H; End;
End.
Результаты работы программы к заданию №4: T=0.0, A= 0.00, X=-8.5366 T=0.2, A= 2.92, Действительных корней нет T=0.4, A= 6.08, Действительных корней нет T=0.6, A= 9.48, Действительных корней нет T=0.8, A=13.12, Действительных корней нет T=1.0, A=17.00, Действительных корней нет T=1.2, A=21.12, Действительных корней нет T=1.4, A=25.48, Действительных корней нет T=1.6, A=30.08, Действительных корней нет T=1.8, A=34.92, Действительных корней нет T=2.0, A=40.00, Действительных корней нет Задание №5. Составить программу для вычисления значений функции Y = ex + U + V, где X изменится от 0 с шагом H. Цикл заканчивается при первом отрицательном значении Y. Функции U, V и шаг H даны в таблице. Исходные данные Константы A=29 H=0,4 Текст программы к заданию №5: Program m111256; Uses Crt; Const A=17; H=0.5; Var U, V, X, Y: REAL; Begin ClrScr;
X:=0; Repeat If X<=10 Then U:=X+5 Else U:=Sqr(X);
If U>A Then V:=11*X Else V:=20-X;
Y:=-EXP(X)+U+V;
WriteLN ('Ïðè X=', X:3:1, ', Y=', Y:6:3);
X:=X+H; Until Y<0; End. Результаты работы программы к заданию №5:
При X=0.0, Y=24.000 При X=0.5, Y=23.351 При X=1.0, Y=22.282 При X=1.5, Y=20.518 При X=2.0, Y=17.611 При X=2.5, Y=12.818 При X=3.0, Y= 4.914 При X=3.5, Y=-8.115 Задание №6. Составить программу для вычисления суммы членов ряда, указанного в варианте задания. Вычисление прекращается, если найден член ряда, по абсолютной величине не превосходящей ɛ. Первоначально N = 1. Использовать рекуррентные формулы для перехода от предыдущего члена ряда к последующему. Исходные данные
Текст программы к заданию №6: Program m111266; Uses Crt; Const Epsilon=0.0001; X=-0.564; Var Summ, T: Real; N: Integer; Begin ClrScr;
Summ:=0; N:=0; T:=X;
Repeat WriteLN ('Итерация: ', N, ', Член ряда: ', T:8:5); N:=N+1; Summ:=Summ+T; T:=T*Sqr(X)*(2*N+1)/(2*N+3); Until ABS(T)<Epsilon; WriteLN ('Итерация: ',N, ', Член ряда: ', T:8:5);
WriteLN ('Число итераций: ',N); WriteLN ('Сумма ряда: ', Summ:8:5); End.
Результаты работы программы к заданию №6: Итерация: 0, Член ряда: -0.56400 Итерация: 1, Член ряда: -0.10764 Итерация: 2, Член ряда: -0.02446 Итерация: 3, Член ряда: -0.00605 Итерация: 4, Член ряда: -0.00157 Итерация: 5, Член ряда: -0.00042 Итерация: 6, Член ряда: -0.00012 Итерация: 7, Член ряда: -0.00003 Число итераций: 7 Сумма ряда: -0.70427 Лабораторная работа №3 Программирование циклических вычислительных структур Задание №1. Составить программу для вычисления значений функции на отрезке в точках , где . Исходные данные , , , . Текст программы к заданию №1: Program m111316; Uses Crt; Const A=0; B=1; M=20; Var F,X,H: Real; I: Integer; Begin ClrScr; H:=(B-A)/M; For I:=0 TO M DO Begin X:=A+I*H; F:=Arctan(X); WriteLN ('X=', X:5:2, ', F(X)=', F:4:3); End; End. Результаты работы программы к заданию №1: X= 0.00, F(X)=0.000 X= 0.05, F(X)=0.050 X= 0.10, F(X)=0.100 X= 0.15, F(X)=0.149 X= 0.20, F(X)=0.197 X= 0.25, F(X)=0.245 X= 0.30, F(X)=0.291 X= 0.35, F(X)=0.337 X= 0.40, F(X)=0.381 X= 0.45, F(X)=0.423 X= 0.50, F(X)=0.464 X= 0.55, F(X)=0.503 X= 0.60, F(X)=0.540 X= 0.65, F(X)=0.576 X= 0.70, F(X)=0.611 X= 0.75, F(X)=0.644 X= 0.80, F(X)=0.675 X= 0.85, F(X)=0.704 X= 0.90, F(X)=0.733 X= 0.95, F(X)=0.760 X= 1.00, F(X)=0.785
Задание №2. В соответствии с данными, заданными по варианту, составить программу для вычисления функции двух аргументов , в которой изменяется от до с шагом Значение изменяется от до с шагом Используя заданные коэффициенты, построить двумерную таблицу.
Исходные данные . 1 аргумент () изменяется в интервале с шагом 0,5. 2 аргумент () изменяется в интервале с шагом 0,5. Коэффициент . Текст программы к заданию №2: Program m111326; Uses Crt; Const A = 1.9; X1= 2; X2= 5; Y1=-1; Y2= 1; Hx= 0.5; Hy= 0.5; Var X, Y, S: Real; I, J, Imax, Jmax: Integer; Begin ClrScr;
Imax:=trunc((X2-X1)/Hx); Jmax:=trunc((Y2-Y1)/Hy); X:=X1; For I:=0 to Imax do Begin Y:=Y1; For J:=0 to Jmax do Begin S:=Exp(1/5*Ln(A*X*Sqr(Y)+1.3))*Sin(X-A); Write (S:5:3,' '); Y:=Y+Hy; End;
X:=X+Hx; WriteLN; End; End. Результаты работы программы к заданию №2: 0.138 0.117 0.105 0.117 0.138 0.809 0.678 0.595 0.678 0.809 1.315 1.089 0.939 1.089 1.315 1.513 1.242 1.053 1.242 1.513 1.337 1.089 0.910 1.089 1.337 0.815 0.660 0.543 0.660 0.815 0.067 0.054 0.044 0.054 0.067 Задание №3. Составить программу для вычисления ряда для каждого значения х с точностью . Значение x изменяется в указанном диапазоне с шагом h, который определяется так: . Исходные данные ; . х принадлежит интервалу с шагом Текст программы к заданию №3: Program m111336; Uses Crt; Const Epsilon=0.000001; X0=1; X1=2; H=(X1-X0)/15; Var Summ, X, T: Real; N, I: Integer; Begin ClrScr; For I:=0 to 15 do Begin N:=0; X:=X0+H*I; T:=1; Summ:=0; Repeat {WriteLN('èòåðàöèÿ:',N,'×ëåí ðÿäà:',T:7:4);} Summ:=Summ+T; T:=T*X/(N+1); N:=N+1; Until ABS(T)<Epsilon; WriteLN('X=', X:3:1,' сумма ряда:', Summ:7:5, ', Exp(X)=', Exp(X):7:5); End; End. Результаты работы программы к заданию №3: X=1.0 сумма ряда:2.71828, Exp(X)=2.71828 X=1.1 сумма ряда:2.90568, Exp(X)=2.90568 X=1.1 сумма ряда:3.10599, Exp(X)=3.10599 X=1.2 сумма ряда:3.32012, Exp(X)=3.32012 X=1.3 сумма ряда:3.54900, Exp(X)=3.54900 X=1.3 сумма ряда:3.79367, Exp(X)=3.79367 X=1.4 сумма ряда:4.05520, Exp(X)=4.05520 X=1.5 сумма ряда:4.33476, Exp(X)=4.33476 X=1.5 сумма ряда:4.63360, Exp(X)=4.63360 X=1.6 сумма ряда:4.95303, Exp(X)=4.95303 X=1.7 сумма ряда:5.29449, Exp(X)=5.29449 X=1.7 сумма ряда:5.65949, Exp(X)=5.65949 X=1.8 сумма ряда:6.04965, Exp(X)=6.04965 X=1.9 сумма ряда:6.46670, Exp(X)=6.46670 X=1.9 сумма ряда:6.91251, Exp(X)=6.91251 X=2.0 сумма ряда:7.38906, Exp(X)=7.38906
Лабораторная работа №4
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|