macrofish

AD

Apr 19th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 14.61 KB | None | 0 0
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5.  
  6.  
  7.  
  8. const int r = 3;        //rows
  9. const int c = 3;        //colums
  10.  
  11. int main()
  12. {
  13.         char b;
  14.         do
  15.         {
  16.         char a;
  17.  
  18.         printf("stisknete 'M' pro matice, 'V' pro vzorce nebo 'K' pro jednoduchou kalkulacku\n");
  19.         scanf("%c", &a);
  20.  
  21.         switch (a)
  22.         {
  23.         case 'K':
  24.                 {
  25.         double x;
  26.         double y;
  27.         char oper;
  28.  
  29.         double vysledek;
  30.  
  31.                 printf("zadej cislo x, operator (+,-,*,/,^)\n");
  32.                 scanf("%lf", &x);
  33.                 scanf("%c", &oper);
  34.                 scanf("%lf", &y);
  35.  
  36.                 switch (oper)
  37.                 {
  38.                 case '+':
  39.                         {
  40.                                 vysledek=x+y;
  41.                                 printf("vysledek scitani je: %lf\n",vysledek);
  42.                                 break;
  43.                         }
  44.  
  45.                 case '-':
  46.                         {
  47.                                 vysledek = x-y;
  48.                                 printf("vysledek odecitani je: %lf\n",vysledek);
  49.                                 break;
  50.                         }
  51.  
  52.                 case '*':
  53.                         {
  54.                                 vysledek = x*y;
  55.                                 printf("vysledek nasobeni je: %lf\n",vysledek);
  56.                                 break;
  57.                         }
  58.  
  59.                 case '/':
  60.                         {
  61.                                 vysledek = x/y;
  62.                                 printf("vysledek deleni je: %lf\n",vysledek);
  63.                                 break;
  64.                         }
  65.  
  66.                 case '^':
  67.                         {
  68.                                 vysledek=pow(x,y);
  69.                                 printf("vysledek umocneni cisla %lf na %lf je: \n",vysledek);
  70.                         }
  71.                         break;
  72.                 default:
  73.                         {
  74.                                 printf("nespravny vstup.\n");
  75.                         }
  76.                 }
  77.                 break;
  78.         }
  79.  
  80.         case 'M':
  81.         {
  82.                 double M[r][c];
  83.                 double N[r][c];
  84.                 double O[r][c];
  85.  
  86.                 int i;
  87.                 int j;
  88.                 for(i =0; i <r ; i++)
  89.                 {
  90.                         for (j =0; j < c; j++)
  91.                         {
  92.                                 O[i][j]=0;
  93.                         }
  94.                 }
  95.  
  96.  
  97.  
  98.                 printf("pocitani bude v ramci matice %d * %d\n",r,c);
  99.                 printf("zadavejte postupne prvky prvni matice, zleva doprava, shora dolu\n");
  100.  
  101.  
  102.                 for (i =0; i<r;i++)
  103.                 {
  104.                         for(j =0; j<c;j++)
  105.                         {
  106.                                 scanf("%lf", &M[i][j]);
  107.                         }
  108.                 }
  109.  
  110.                 printf("\n");
  111.  
  112.                 printf("nyni zadejte stejnym zpusobem prvky druhe matice\n",r,c);
  113.                 for (i =0; i<r;i++)
  114.                 {
  115.                         for(j =0; j<c;j++)
  116.                         {
  117.                                 scanf("%lf", &N[i][j]);
  118.                         }
  119.                 }
  120.  
  121.                 printf("\n");
  122.  
  123.                 printf("prvni matice:\n");
  124.                 for (i =0; i<r;i++)
  125.                 {
  126.                         for(j =0; j<c;j++)
  127.                         {
  128.                                 printf ("%5f", M[i][j]);
  129.                         }
  130.                         printf("\n");
  131.                 }
  132.  
  133.                 printf("druha matice:");
  134.                 for (i =0; i<r;i++)
  135.                 {
  136.                         for(j =0; j<c;j++)
  137.                         {
  138.                                 printf ("%5f", N[i][j]);
  139.                         }
  140.                         printf("\n");
  141.                 }
  142.  
  143.  
  144.         printf("zadejte operaci mezi maticemi (+,-,*)\n");
  145.         char p;
  146.         fflush(stdin);
  147.         scanf("%c", &p);
  148.  
  149.         switch (p)
  150.         {
  151.         case '+':
  152.                 {
  153.                         for (i=0; i< r;i++)
  154.                         {
  155.                                 for(j=0; j<c;j++)
  156.                                 {
  157.                                         O[i][j]=M[i][j]+N[i][j];
  158.                                 }
  159.                         }
  160.                         break;
  161.                 }
  162.  
  163.         case '-':
  164.                 {
  165.                         for (i=0; i< r;i++)
  166.                         {
  167.                                 for(j=0; j<c;j++)
  168.                                 {
  169.                                         O[i][j]=M[i][j]-N[i][j];
  170.                                 }
  171.                         }
  172.                         break;
  173.                 }
  174.  
  175.         case '*':
  176.                 {int l;
  177.                    for (i =0; i < r ; i++ )
  178.                     {
  179.                      for (j = 0 ; j<c; j++)
  180.                             {
  181.                              for(l=0; l<c; l++)
  182.                              {
  183.                                     O[i][j] += M[i][l]*N[l][j];
  184.                                  }
  185.                                 }
  186.                         }
  187.                 break;
  188.                 }
  189.         default:
  190.                 {
  191.                         printf("nespravny vstup.\n");
  192.                 }
  193.         }
  194.  
  195.         printf("vypoctena matice: \n");
  196.         for (i =0; i<r;i++)
  197.         {
  198.                 for(j =0; j<c;j++)
  199.                 {
  200.                           printf ("%2.0f\n", O[i][j]);
  201.  
  202.                 }
  203.                 printf("\n");
  204.         }
  205.         break;
  206.         }
  207.         case 'V':
  208.                 {
  209.                         printf("stisknete 'o' pro pocitani udaju obdelniku, 'c' pro ctverec,'t' pro trojuhelnik, 'k' pro kvadr, 'r' krychli nebo 'u' pro kouli\n");
  210.                         char z;
  211.                         fflush(stdin);
  212.                         scanf("%c",&z);
  213.                         switch(z)
  214.                         {
  215.                         case 'o':
  216.                                 {
  217.                                         printf("zadejte stranu a\n");
  218.                                         double x;
  219.                                         scanf("%lf",&x);
  220.                                         printf("zadejte stranu b\n");
  221.                                         double y;
  222.                                         scanf("%lf",&y);
  223.                                         double obsah;
  224.                                         double obvod;
  225.                                         obsah = x*y;
  226.                                         obvod = 2*(x+y);
  227.                                         printf("obsah obdelniku je: %lf\n",obsah);
  228.                                         printf("obvod obdelniku je: %lf\n",obvod) ;
  229.                                         break;
  230.                                 }
  231.  
  232.                         case 'c':
  233.                                 {
  234.                                         printf("zadejte stranu ctverce\n");
  235.                                         double x;
  236.                                         scanf("%lf",&x);
  237.                                         double obsah;
  238.                                         double obvod;
  239.                                         obsah = x*x;
  240.                                         obvod = 4*x;
  241.                                         printf("obsah ctverce je: %lf\n",obsah);
  242.                                         printf("obvod ctverce je: %lf\n",obvod);
  243.                                         break;
  244.                                 }
  245.  
  246.                         case 't':
  247.                                 {
  248.                                         double obvod;
  249.                                         double obsah;
  250.                                         double x,y,z;
  251.                                         printf( "zadejte stranu a\n");
  252.                                         scanf("%lf",&x);
  253.                                         printf( "zadejte stranu b\n" );
  254.                                         scanf("%lf",&y);
  255.                                         printf( "zadejte stranu c\n" );
  256.                                         scanf("%lf",&z);
  257.                                         double min;
  258.                                         double max;
  259.                                         double mid;
  260.                                         if((x>y) && (x>z))
  261.                                         {
  262.                                                 max = x;
  263.                                                 if (y>z)
  264.                                                 {
  265.                                                         min=z;
  266.                                                         mid=y;
  267.                                                 }
  268.                                                 else
  269.                                                 {
  270.                                                         min = z;
  271.                                                         mid = y;
  272.                                                 }
  273.                                         }
  274.                                         if((z>y) && (z>x))
  275.                                         {
  276.                                                 max = z;
  277.                                                 if (y>x)
  278.                                                 {
  279.                                                         min=x;
  280.                                                         mid=y;
  281.                                                 }
  282.                                                 else
  283.                                                 {
  284.                                                         min = y;
  285.                                                         mid = x;
  286.                                                 }
  287.                                         }
  288.                                         if((y>z) && (y>x))
  289.                                         {
  290.                                                 max = y;
  291.                                                 if (z>x)
  292.                                                 {
  293.                                                         min=x;
  294.                                                         mid=z;
  295.                                                 }
  296.                                                 else
  297.                                                 {
  298.                                                         min = z;
  299.                                                         mid = x;
  300.                                                 }
  301.                                         }
  302.  
  303.                                         if (min+mid < max)
  304.                                         {
  305.                                                 printf("takovy trojuhelnik neexistuje (nesplnuje trojuhelnikovou nerovnost)\n");
  306.                                         }
  307.                                         else
  308.                                         {
  309.                                         double vx;
  310.                                         printf("zadejte vysku na stranu a\n");
  311.                                         scanf("%lf",&vx);
  312.                                         obvod = x+y+z;
  313.                                         obsah=x*(vx/2);
  314.                                         printf("obsah trojuhelniku je: %lf\n", obvod);
  315.                                         printf("obvod trojuhelniku je: %lf\n",obsah);
  316.                                         }
  317.                                         break;
  318.                                 }
  319.  
  320.                         case 'k':
  321.                                 {
  322.                                         double povrch;
  323.                                         double objem;
  324.                                         double a,b,c;
  325.                                         printf("zadejte stranu a\n");
  326.                                         scanf("%lf",&a);
  327.                                         printf("zadejte stranu b\n");
  328.                                         scanf("%lf",&b);
  329.                                         printf("zadejte stranu c\n");
  330.                                         scanf("%lf",&c);
  331.                                         objem = a*b*c;
  332.                                         povrch=((a*b)+(a*c)+(b*c))*2;
  333.                                         printf("objem kvadru je: %lf\n",objem);
  334.                                         printf("povrch kvadru je: %lf\n",povrch);
  335.                                         break;
  336.                                 }
  337.  
  338.                         case 'r':
  339.                                 {
  340.                                         double povrch;
  341.                                         double objem;
  342.                                         double a;
  343.                                         printf("zadejte stranu a\n");
  344.                                         scanf("%lf",&a);
  345.                                         povrch=6*a*a;
  346.                                         objem=a*a*a;
  347.                                         printf( "objem krychle je: %lf\n",objem);
  348.                                         printf("povrch krychle je: %lf\n",povrch);
  349.                                         break;
  350.                                 }
  351.  
  352.                         case 'u':
  353.                                 {
  354.                                         double pi =3.14159;
  355.                                         double povrch;
  356.                                         double objem;
  357.                                         double r;
  358.                                         printf("zadejte polomer\n");
  359.                                         scanf("%lf",&r);
  360.                                         povrch=4*pi*r*r;
  361.                                         objem=4/3*pi*r*r*r;
  362.                                         printf("povrch koule je: %lf\n",povrch);
  363.                                         printf("objem koule je: %lf\n",objem);
  364.                                         break;
  365.                                 }
  366.  
  367.                         default:
  368.                                 {
  369.                                         printf("nespravny vstup.\n");
  370.                                 }
  371.                         }
  372.                         break;
  373.                 }
  374.  
  375.         default:
  376.                 {
  377.                         printf("nespravny vstup.\n");
  378.                 }
  379.         }
  380.         printf("chcete pokracovat v pocitani? (Y/N)\n");
  381.         fflush(stdin);
  382.         scanf("%c",&b);
  383.         fflush(stdin);
  384.         }while ((b=='Y')||(b=='y'));
  385.  
  386. return 0;
  387. }
Advertisement
Add Comment
Please, Sign In to add comment