Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

С++ ЕНФ / LABA 5 / 52

.CPP
Скачиваний:
12
Добавлен:
25.05.2014
Размер:
3.72 Кб
Скачать
#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);
}
Соседние файлы в папке LABA 5