- •Достоинства
- •Недостатки
- •Отчет по лабораторным работам. Лабораторная работа№1
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5.1
- •Лабораторная работа № 5.2
- •Лабораторная работа № 6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Лабораторная работа № 9
- •Лабораторная работа № 10
Лабораторная работа №5.1
1) Возведение числа n в степень р — это умножение числа n на себя р раз.
Напишите функцию с именем power(), которая в качестве аргументов принимает значение типа double для n и значение типа int для р и возвращает значение типа double. Для аргумента, соответствующего степени числа, задайте значение по умолчанию, равное 2, чтобы при отсутствии показателя степени при вызове функции число n возводилось в
квадрат. Напишите функцию main(), которая запрашивает у пользователя ввод аргументов для функции power(), и отобразите на экране результаты ее работы.
# include <iostream>
using namespace std;
void power (double=1,int=2);
int main ()
{
double q;
int w;
char e;
cout<<" chislo "<< endl;
cin>>q;
cout<<" stepen? (y/n)"<< endl;
cin>>e;
if (e=='y')
{
cout<<" stepen"<< endl;
cin >>w;
power(q,w);
}
else power(q);
return 0;}
void power(double q, int w)
{double a=1;
int i=0;
while(i<w)
{a=a*q;
i++;}
cout<<"recultat "<<a<<endl;
}
2) Напишите программу, складывающую два структурных значения типа time. Теперь программа должна включать в себя две функции. Первая, time_to_secs(), принимает в качестве аргумента значение типа time и возвращает эквивалентное значение в секундах типа int. Вторая, secs_to_time(), в качестве аргумента принимает число секунд, имеющее тип int, а возвращает эквивалентное значение типа time.
# include <iostream>
using namespace std;
void time();
void sec();
struct vremia
{
int ch;
int m;
int s;
};
int a;
int main()
{
cout<<" vvedite vremia"<<endl;
time();
sec();
return 0;
}
void time()
{
vremia q;
cin>>q.ch>>q.m>>q.s;
vremia w;
cin>>w.ch>>w.m>>w.s;
a=(q.ch+w.ch)*3600+(q.m+w.m)*60+(q.s+w.s);
}
void sec()
{
vremia e;
e.s=a;
e.m=0;
e.ch=0;
while (e.s>=60)
{
e.s=e.s-60;
e.m++;
};
while (e.m>=60)
{
e.m=e.m-60;
e.ch++;
};
cout<<e.ch<<" "<<e.m<<" "<<e.s<<endl;
}
Лабораторная работа № 5.2
1) Даны длины отрезков A, B, C, D. Для каждой тройки этих отрезков, из которой можно построить треугольник, напечатать площадь этого треугольника.
# include <iostream>
# include <cmath>
using namespace std;
void proverka(double, double,double);
void area(double,double, double);
double main()
{cout<<" 4 chisla"<<endl;
double a,b,c,d;
cin>>a>>b>>c>>d;
cout<<" a,b,c"<<endl;
proverka(a,b,c);
cout<<" d,b,c"<<endl;
proverka(d,b,c);
cout<<" a,d,c"<<endl;
proverka(a,d,c);
cout<<" a,b,d"<<endl;
proverka(a,b,d);
return 0;}
void proverka(double a, double b, double c)
{if ((a+b>c) &&(b+c>a) && (a+c>b))
area(a,b,c);
else
cout<<" Net treugolnika"<<endl;
}
void area(double a, double b, double c)
{double s,p;
p=(a+b+c)/2;
s=sqrt((p-a)*(p-b)*(p-c)*p);
cout<<" ploschad ="<<s<<endl;
}
2) Написать функцию возвращающую наименьшее общее кратное трех заданных чисел.
#include <iostream>
using namespace std;
int nod(int, int);
int main()
{
cout<<" 3 chisla"<<endl;
int a; int b; int c,q;
cin>>a>>b>>c;
q = nod(a,b);
int nok;
nok=a*b/q;
q= nod(nok,c);
nok=nok*c/q;
cout<<"nok="<<nok<<endl;
return 0;
}
int nod( int a, int b)
{int i;
while (a*b!=0)
{if(a>b)
a=a%b;
else
b=b%a;
}
i=a+b;
return i;}
3) Написать и протестировать функцию, определяющую полярные координаты точки по ее декартовым координатам.
# include <iostream>
# include <cmath>
using namespace std;
void xord(float, float);
void yord(float, float);
int main ()
{cout<<"VVedite koordinaty"<<endl;
int z,w;
cin>> w>>z;
xord(w,z);
yord(w,z);
return 0;}
void xord(float w, float z)
{ float y;
y=sqrt( pow(w,2)+pow(z,2));
cout<<" novie koordinaty=("<<y<<",";
}
void yord(float w, float z)
{float q,c;
q=w/z;
c= atanf( q );
cout<<c<<")";
}