Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- const int r = 3; //rows
- const int c = 3; //colums
- int main()
- {
- char b;
- do
- {
- char a;
- printf("stisknete 'M' pro matice, 'V' pro vzorce nebo 'K' pro jednoduchou kalkulacku\n");
- scanf("%c", &a);
- switch (a)
- {
- case 'K':
- {
- double x;
- double y;
- char oper;
- double vysledek;
- printf("zadej cislo x, operator (+,-,*,/,^)\n");
- scanf("%lf", &x);
- scanf("%c", &oper);
- scanf("%lf", &y);
- switch (oper)
- {
- case '+':
- {
- vysledek=x+y;
- printf("vysledek scitani je: %lf\n",vysledek);
- break;
- }
- case '-':
- {
- vysledek = x-y;
- printf("vysledek odecitani je: %lf\n",vysledek);
- break;
- }
- case '*':
- {
- vysledek = x*y;
- printf("vysledek nasobeni je: %lf\n",vysledek);
- break;
- }
- case '/':
- {
- vysledek = x/y;
- printf("vysledek deleni je: %lf\n",vysledek);
- break;
- }
- case '^':
- {
- vysledek=pow(x,y);
- printf("vysledek umocneni cisla %lf na %lf je: \n",vysledek);
- }
- break;
- default:
- {
- printf("nespravny vstup.\n");
- }
- }
- break;
- }
- case 'M':
- {
- double M[r][c];
- double N[r][c];
- double O[r][c];
- int i;
- int j;
- for(i =0; i <r ; i++)
- {
- for (j =0; j < c; j++)
- {
- O[i][j]=0;
- }
- }
- printf("pocitani bude v ramci matice %d * %d\n",r,c);
- printf("zadavejte postupne prvky prvni matice, zleva doprava, shora dolu\n");
- for (i =0; i<r;i++)
- {
- for(j =0; j<c;j++)
- {
- scanf("%lf", &M[i][j]);
- }
- }
- printf("\n");
- printf("nyni zadejte stejnym zpusobem prvky druhe matice\n",r,c);
- for (i =0; i<r;i++)
- {
- for(j =0; j<c;j++)
- {
- scanf("%lf", &N[i][j]);
- }
- }
- printf("\n");
- printf("prvni matice:\n");
- for (i =0; i<r;i++)
- {
- for(j =0; j<c;j++)
- {
- printf ("%5f", M[i][j]);
- }
- printf("\n");
- }
- printf("druha matice:");
- for (i =0; i<r;i++)
- {
- for(j =0; j<c;j++)
- {
- printf ("%5f", N[i][j]);
- }
- printf("\n");
- }
- printf("zadejte operaci mezi maticemi (+,-,*)\n");
- char p;
- fflush(stdin);
- scanf("%c", &p);
- switch (p)
- {
- case '+':
- {
- for (i=0; i< r;i++)
- {
- for(j=0; j<c;j++)
- {
- O[i][j]=M[i][j]+N[i][j];
- }
- }
- break;
- }
- case '-':
- {
- for (i=0; i< r;i++)
- {
- for(j=0; j<c;j++)
- {
- O[i][j]=M[i][j]-N[i][j];
- }
- }
- break;
- }
- case '*':
- {int l;
- for (i =0; i < r ; i++ )
- {
- for (j = 0 ; j<c; j++)
- {
- for(l=0; l<c; l++)
- {
- O[i][j] += M[i][l]*N[l][j];
- }
- }
- }
- break;
- }
- default:
- {
- printf("nespravny vstup.\n");
- }
- }
- printf("vypoctena matice: \n");
- for (i =0; i<r;i++)
- {
- for(j =0; j<c;j++)
- {
- printf ("%2.0f\n", O[i][j]);
- }
- printf("\n");
- }
- break;
- }
- case 'V':
- {
- printf("stisknete 'o' pro pocitani udaju obdelniku, 'c' pro ctverec,'t' pro trojuhelnik, 'k' pro kvadr, 'r' krychli nebo 'u' pro kouli\n");
- char z;
- fflush(stdin);
- scanf("%c",&z);
- switch(z)
- {
- case 'o':
- {
- printf("zadejte stranu a\n");
- double x;
- scanf("%lf",&x);
- printf("zadejte stranu b\n");
- double y;
- scanf("%lf",&y);
- double obsah;
- double obvod;
- obsah = x*y;
- obvod = 2*(x+y);
- printf("obsah obdelniku je: %lf\n",obsah);
- printf("obvod obdelniku je: %lf\n",obvod) ;
- break;
- }
- case 'c':
- {
- printf("zadejte stranu ctverce\n");
- double x;
- scanf("%lf",&x);
- double obsah;
- double obvod;
- obsah = x*x;
- obvod = 4*x;
- printf("obsah ctverce je: %lf\n",obsah);
- printf("obvod ctverce je: %lf\n",obvod);
- break;
- }
- case 't':
- {
- double obvod;
- double obsah;
- double x,y,z;
- printf( "zadejte stranu a\n");
- scanf("%lf",&x);
- printf( "zadejte stranu b\n" );
- scanf("%lf",&y);
- printf( "zadejte stranu c\n" );
- scanf("%lf",&z);
- double min;
- double max;
- double mid;
- if((x>y) && (x>z))
- {
- max = x;
- if (y>z)
- {
- min=z;
- mid=y;
- }
- else
- {
- min = z;
- mid = y;
- }
- }
- if((z>y) && (z>x))
- {
- max = z;
- if (y>x)
- {
- min=x;
- mid=y;
- }
- else
- {
- min = y;
- mid = x;
- }
- }
- if((y>z) && (y>x))
- {
- max = y;
- if (z>x)
- {
- min=x;
- mid=z;
- }
- else
- {
- min = z;
- mid = x;
- }
- }
- if (min+mid < max)
- {
- printf("takovy trojuhelnik neexistuje (nesplnuje trojuhelnikovou nerovnost)\n");
- }
- else
- {
- double vx;
- printf("zadejte vysku na stranu a\n");
- scanf("%lf",&vx);
- obvod = x+y+z;
- obsah=x*(vx/2);
- printf("obsah trojuhelniku je: %lf\n", obvod);
- printf("obvod trojuhelniku je: %lf\n",obsah);
- }
- break;
- }
- case 'k':
- {
- double povrch;
- double objem;
- double a,b,c;
- printf("zadejte stranu a\n");
- scanf("%lf",&a);
- printf("zadejte stranu b\n");
- scanf("%lf",&b);
- printf("zadejte stranu c\n");
- scanf("%lf",&c);
- objem = a*b*c;
- povrch=((a*b)+(a*c)+(b*c))*2;
- printf("objem kvadru je: %lf\n",objem);
- printf("povrch kvadru je: %lf\n",povrch);
- break;
- }
- case 'r':
- {
- double povrch;
- double objem;
- double a;
- printf("zadejte stranu a\n");
- scanf("%lf",&a);
- povrch=6*a*a;
- objem=a*a*a;
- printf( "objem krychle je: %lf\n",objem);
- printf("povrch krychle je: %lf\n",povrch);
- break;
- }
- case 'u':
- {
- double pi =3.14159;
- double povrch;
- double objem;
- double r;
- printf("zadejte polomer\n");
- scanf("%lf",&r);
- povrch=4*pi*r*r;
- objem=4/3*pi*r*r*r;
- printf("povrch koule je: %lf\n",povrch);
- printf("objem koule je: %lf\n",objem);
- break;
- }
- default:
- {
- printf("nespravny vstup.\n");
- }
- }
- break;
- }
- default:
- {
- printf("nespravny vstup.\n");
- }
- }
- printf("chcete pokracovat v pocitani? (Y/N)\n");
- fflush(stdin);
- scanf("%c",&b);
- fflush(stdin);
- }while ((b=='Y')||(b=='y'));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment