Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.69 KB | None | 0 0
  1. #include <stdafx.h>
  2. #include <conio.h>
  3. #include <math.h>
  4. #include <stdio.h>
  5.  
  6. using namespace std;
  7.  
  8. int Assemb(int z1, int z2, int z3, int z4)
  9. {
  10.     double P=0;
  11.     double U1h=1-((double)z3*(double)z4)/((double)z2);
  12.     double k=3;
  13.    
  14.     double B=0.1;
  15.    
  16.     int Pr=B*10000;
  17.     while ((Pr%10000!=0)&&(P<1000))
  18.    
  19.     {
  20.         P++;
  21.         B=(1+P*k)*(double)z1*U1h/k;
  22.         Pr=B*10000;
  23.     }
  24.     if (Pr%10000==0)
  25.     return 0;
  26.     else return 1;
  27. }
  28.  
  29. int Coax(int z1, int z2, int z3, int z4)
  30. {
  31.     double rw1=(double)z1/2, rw2=(double)z2/2, rw3=(double)z3/2, rw4=(double)z4/2;
  32.    
  33.     double a=rw1+rw3, b=rw4+rw2;
  34.     if ((a==b)&&(z1>17)&&(z3>17))
  35.    
  36.     return 0;
  37.     else return 1;
  38. }
  39.  
  40.  
  41. int Neigh(int z1, int z2, int z3)
  42. {
  43.     double k=3;
  44.     if (sin(3.1415926/k)>(((double)z2+2)/((double)z1+(double)z3)))
  45.    
  46.     return 0;
  47.     else return 1;
  48. }
  49.  
  50.  
  51. int Precis(int z1, int z2, int z3, int z4)
  52. {
  53.     double U1h=1-((double)z3*(double)z4)/((double)z1*(double)z2);
  54.    
  55.     if((13*0.95<abs(U1h))&&(abs(U1h)<13*1.05))
  56.      return 0;
  57.      else return 1;
  58. }
  59.  
  60.  
  61.  
  62.  
  63. int main(array<std::String^>^args)
  64. {
  65.     int z1=17, z2=18, z3=18, z4=18;
  66.    
  67.     int Z1=0, Z2=0, Z3=0, Z4=800;
  68.    
  69.     int fl=0, proc=0;
  70.     printf("\rIn progress, %d%%", proc);
  71.     while(z4<100)
  72.    
  73.     {
  74.        
  75.         while(Assemb(z1, z2, z3, z4)||Coax(z1, z2, z3)||Neigh(z1, z2, z3)||Precis(z1, z2, z3, z4)||f1)
  76.        
  77.         {
  78.             f1=0;
  79.             if(z1<100)
  80.            
  81.             {
  82.                 z1++;
  83.                 continue;
  84.                
  85.             }
  86.            
  87.             if(z2<100)
  88.            
  89.             {
  90.                
  91.                 z1=17;
  92.                 z2++;
  93.                 continue;
  94.             }
  95.            
  96.             if(z3<100)
  97.            
  98.             {
  99.                 z1=17;
  100.                 z2=20;
  101.                 z3++;
  102.                 continue;
  103.                
  104.             }
  105.            
  106.             if(z4<100)
  107.            
  108.             {
  109.                 z1=17;
  110.                 z2=20;
  111.                 z3=17;
  112.                 z4++;
  113.                 proc++;
  114.                 printf("\rIn progress, %d%%", proc);
  115.                 continue;
  116.                
  117.             }
  118.            
  119.             break;
  120.            
  121.         }
  122.        
  123.        
  124.         if(z4+z3+z2<Z2+Z3+Z4)
  125.        
  126.         {
  127.             Z1=z1; Z2=z2; Z3=z3; Z4=z4;
  128.         }
  129.        
  130.         fl=1;
  131.  
  132.     }
  133.    
  134.     double U1h=1-((double)Z3*(double)Z4)/((double)Z1*(double)Z2);
  135.    
  136.     printf("\nNumbers of teeth: \n z1 = %u; \n z3 = %u; \n z4 = %u; \n U1h = %f;", Z1, Z2, Z3, Z4, U1h);
  137.    
  138.     getch();
  139.    
  140.  
  141.     return 0;
  142. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement