Главная Учебники - Разные Лекции (разные) - часть 34
Отчет по лабораторной работе №1.
Тема:
«Циклические вычислительные процессы».
Дисциплина:
«Языки программирования и методы трансляции».
Цель:
Ознакомление с методами работы организации циклических вычислений при использовании языка программирования С. Задача:
Вычислить и вывести на экран в виде таблицы значения функции F
на интервале от X
нач
до Хкон
с шагом dX
.
где а,
b
,
c
– действительные числа. Функция F
должна принимать действительное значение, если выражение (Ац
МОД2 Вц
) И НЕ (Ац
ИЛИ Сц
) не равно нулю, и целое значение в противном случае. Через Ац
, Вц
и Сц
обозначены целые части значений a
,
b
,
c
, операции НЕ, И, ИЛИ и МОД2 (сложение по модулю два) – поразрядные. Значения a
,
b
,
c
, Хнач
, Хкон
,
dX
ввести с клавиатуры. Листинг
:
#include<stdio.h> #include<conio.h> #include<math.h> int main () { clrscr (); float Xn,Xk,Dx,F,a,b,c,k=0.000001; printf("\n Введите диапазон и шаг изменения аргумента: \n"); scanf ("%f%f%f",&Xn,&Xk,&Dx); printf ("\n Введитеa,b,c: \n"); scanf ("%f%f%f",&a,&b,&c); int Fk,a1,b1,c1; a1=(int)a; b1=(int)b; c1=(int)c; printf ("| X | F |\n"); float X=Xn; while(X<=Xk) { if (fabs(X)<k && fabs (b)>k) F=a*(X+c)*(X+c)-b; else if (fabs(X)<k && fabs(b)<k) if (fabs (c)>k) F=X-a/-c; else { printf ("| %5.2f | /0 |\n",X); goto kon; } else if (fabs (c)>k) F=a+X/c; else { printf ("| %5.2f | /0 |\n",X); goto kon; } if ((a1^b1)&(~(a1|c1))!=0) { Fk=int(F); printf ("| %5.2f | %d |\n",X, Fk); } else printf("| %5.2f | %5.2f |\n",X,F ); kon: X+=Dx; } getch(); return 0; } Тестовая проверка.
Входные данные 1:
Хn=1.2, Хк=4.5, Dx=1, а=3.4,b=2.5,c=0.5 Выходные данные
1:
Входные данные 2:
Хn=1.2, Хк=4.5, Dx=1, а=0, b=0, c=1.0 Выходные данные 2:
Вывод:
В процессе лабораторной работы, решая конкретные задачи на циклические вычислительные процессы с использованием языка программирования С, мы познакомились с общими методами работы с ними.
|