Министерство образования Республики Беларусь
Отчёт по лабораторной работе №5
«Оператор цикла for. Логические и поразрядные операции.»
Выполнила: Студентка гр. АСОИ-101
Игнатушко Татьяна
Могилев 2010
Цель работы
1.1 Получение навыков в использовании оператора цикла for.
1.2 Знакомство с итерационными процессами.
Постановка задачи
Вариант 9
1. Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX.
где a, b, с — действительные числа.
Функция F должна принимать действительное значение, если выражение
НЕ(Ац ИЛИ Вц) И (Вц ИЛИ Сц)
не равно нулю, и целое значение в противном случае. Через Ац, Вц и Сц обозначены целые части значений a, b, с, операции НЕ, И и ИЛИ — поразрядные. Значения a, b, с, Хнач., Хкон., dX ввести с клавиатуры.
2. Вычислить значение конечного произведения: .
Текст программы
#include<stdio.h>
#include<windows.h>
#include<math.h>
main1()
{
double a,b,c,x1,x2,dX,f;
printf("Задание 1\n");
printf("Введите a,b,c:\n");
scanf("%lf%lf%lf",&a,&b,&c);
printf("Введите x-начальное, x-конечное и шаг(dX):\n");
scanf("%lf%lf%lf",&x1,&x2,&dX);
for(;x1<=x2;x1=x1+dX){
if (a<0&&x1!=0)
f=a*pow(x1,2)+pow(b,2)*x1;
else if (a>0,x1==0) f=x1-(a/(x1-c));
else f=1+x1/c;
if ((~(int(a)|int(b)))&(int(b)|int(c))!=0) printf("x=%lf,F=%lf\n",x1,f);
else printf("x=%lf,F=%d\n",x1,int(f+0.5));}}
main2()
{
int n;
double pr=1,x;
printf("Задание 2\n");
printf("Введите натуральное число и угол в радианах:\n");
scanf("%d%lf",&n,&x);
for(;n>0;n--)
pr*=cos(x/pow(2,n));
printf("Конечное произведение равно %.6lf\n",pr);
}
main()
{
SetConsoleOutputCP(1251);
int n;
while(n==n)
{
printf("\nВведите номер задания(1,2,3 - выход)\n");
scanf("%d",&n);
if (n==1) main1();
if(n==2) main2();
if(n==3) exit(0);
}
}
Результаты выполнения программы.
Задание 1
НЕ(Ац ИЛИ Вц) И (Вц ИЛИ Сц) равно 0:
Введите номер задания(1,2,3 - выход)
Задание 1
Введите a,b,c:
3.1
Введите x-начальное, x-конечное и шаг(dX):
x=1.000000,F=1
x=2.000000,F=2
x=3.000000,F=2
x=4.000000,F=2
x=5.000000,F=2
x=6.000000,F=3
x=7.000000,F=3
x=8.000000,F=3
x=9.000000,F=3
x=10.000000,F=4
Введите номер задания(1,2,3 - выход)
Press any key to continue
НЕ(Ац ИЛИ Вц) И (Вц ИЛИ Сц) не равно 0:
Введите номер задания(1,2,3 - выход)
Задание 1
Введите a,b,c:
Введите x-начальное, x-конечное и шаг(dX):
x=1.000000,F=1.083333
x=2.000000,F=1.166667
x=3.000000,F=1.250000
x=4.000000,F=1.333333
Введите номер задания(1,2,3 - выход)
Press any key to continue
а<0 и х не равен 0:
Введите номер задания(1,2,3 - выход)
Задание 1
Введите a,b,c:
-10
Введите x-начальное, x-конечное и шаг(dX):
x=1.000000,F=54.000000
x=2.000000,F=88.000000
x=3.000000,F=102.000000
x=4.000000,F=96.000000
Введите номер задания(1,2,3 - выход)
Press any key to continue
а>0 и х равен 0:
Введите номер задания(1,2,3 - выход)
Задание 1
Введите a,b,c:
Введите x-начальное, x-конечное и шаг(dX):
-1
x=-1.000000,F=0.916667
x=0.000000,F=0.833333
x=1.000000,F=1.083333
x=2.000000,F=1.166667
x=3.000000,F=1.250000
x=4.000000,F=1.333333
x=5.000000,F=1.416667
Введите номер задания(1,2,3 - выход)
Press any key to continue
Задание 2
Введите номер задания(1,2,3 - выход)
Задание 2
Введите натуральное число и угол в радианах:
1.57
Конечное произведение равно 0.959662
Введите номер задания(1,2,3 - выход)
Press any key to continue
Блок-схема алгоритма программы.
main2():