Добавил:
Kolobok
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
void f1(float *x01,float *y01,float *z01,float *x02,float *y02,float *z02)
//funkciya1 : Zadacha
{cout<<"Rabota s vectorami:summa,raznost,"
<<"skalyarnoe i vectornoe proizvedenie \n"
<<"dvuh vectorov v trehmernom prostranstve \n";
if(*x01==0. && *y01==0. && *z01==0. && *x02==0. && *y02==0. && *z02==0.)
{cout<<"Vvedite dannie v punkte 2-vvod dannih";};
getch();
}
void f2(float *x01,float *y01,float *z01,float *x02,float *y02,float *z02)
//funkciya vvoda dannih
{float x1=0,x2=0,y1=0,y2=0,z1=0,z2=0;
cout<<"vv. koordinati 1 vectora \n";
cout<<"vv. x1 \n";cin>>x1;
cout<<"vv. y1 \n";cin>>y1;
cout<<"vv. z1 \n";cin>>z1;
cout<<"vv. koordinati 2 vectora \n";
cout<<"vv. x2 \n";cin>>x2;
cout<<"vv. y2 \n";cin>>y2;
cout<<"vv. z2 \n";cin>>z2;
*x01=x1; *y01=y1; *z01=z1;
*x02=x2; *y02=y2; *z02=z2;
}
void f3(float *x01,float *y01,float *z01,float *x02,float *y02,float *z02)
//funkciya f3 schitaet summu i raznost'
{ float x3,y3,z3,x4,y4,z4;
if(*x01==0 && *y01==0 && *z01==0 && *x02==0 && *y02==0 && *z02==0)
{cout<<"vv. dannie v punkte 2 .\n\n";}
else {x3=*x02+*x01;y3=*y01+*y02;z3=*z01+*z02;
x4=*x01-*x02;y4=*y01-*y02;z4=*z01-*z02;
cout<<"summa= "<<"("<<x3<<","<<y3<<","<<z3<<") \n";
cout<<"raznost= "<<"("<<x4<<","<<y4<<","<<z4<<")"; };
getch();
}
void f4(float *x01,float *y01,float *z01,float *x02,float *y02,float *z02)
//raschet scalyarnogo proizvedeniya
{ float x3,y3,z3;
if(*x01==0. && *y01==0 && *z01==0 && *x02==0 && *y02==0 && *z02==0)
{cout<<"vv. dannie.\n\n";}
else {x3=*x01**x02;y3=*y01**y02;z3=*z01**z02;
x3*=x3;y3*=y3;z3*=z3;
cout<<"{"<<(x3+y3+z3)<<"}";};
getch();
}
void f5(float *x01,float *y01,float *z01,float *x02,float *y02,float *z02)
//raschet vectornogo proizvedeniya
{ float x3,y3,z3;
if (*x01==0 && *y01==0 && *z01==0 && *x02==0 && *y02==0 && *z02==0)
{cout<<"vv. dannyye v punkte 2 \n\n";}
else { x3=(*y01)*(*z02)-(*y02)*(*z01);
y3=-*x01**z02+*x02**z01;
z3=*x01**y02-*x02**y01;
cout<<"("<<x3<<","<<y3<<","<<z3<<")";};
getch();
}
void main()
{
clrscr();
float a=0.;
float *x01,*x02,*y01,*y02,*z01,*z02;
*x01=a;*x02=a;*y01=a;*y02=a;*z01=a;*z02=a;
float ch;
void (*f[5])(float*,float*,float*,float*,float*,float*)={f1,f2,f3,f4,f5};
//massiv ukazateley na funkcii
//textbackground(15);textcolor(9);
do
{
begin:
clrscr();
cout<<"\n\n MENU.\n\n";
cout<<" 1-Zadacha.\n";
cout<<" 2-Vvod dannyh.\n";
cout<<" 3-Raschet cummi i raznosti.\n";
cout<<" 4-Raschet skalyarnogo proizvedeniya.\n";
cout<<" 5-Rashet vectornogo proizvedeniya.\n";
cout<<" 6-Vyhod.\n";
cout<<" Viberite punkt menu:";
cin>>ch;
if ((ch<0)||((int(ch)-ch)!=0))
{cout<<"\n Vvedennoe chislo dolzno bit N i о[1;6] \n";
getch();
goto begin;};
cout<<"\n";
switch ((int)ch)
{
case 1: (*f[0])(x01,y01,z01,x02,y02,z02);
getch();
break;
case 2: (*f[1])(x01,y01,z01,x02,y02,z02);
getch();
break;
case 3: (*f[2])(x01,y01,z01,x02,y02,z02);
getch();
break;
case 4: (*f[3])(x01,y01,z01,x02,y02,z02);
getch();
break;
case 5: (*f[4])(x01,y01,z01,x02,y02,z02);
getch();
break;
case 6: {
cout<<"Do you want to quit?Press 0 to quit \n\n";
cin>>ch;
switch ((int)ch)
{
case 0: { cout<<" \n\n";
//exit(0);
ch=6;
break; };
//case 9: goto begin;
default: ch=1;break ;
};
};
break;
default: {cout<<"Oshibka vvoda!\n"; getch();break;}
break;
};//switch
}
while(ch!=6);
}