Týden 6
Prebrali sme:
- switch
- statické polia jednorozmerné
- statické polia dvojrozmerné
Príklady
napíšte program, kde si môže používateľ vybrať či chce vypočítať obsah, obvod alebo uhlopriečku obdĺžnika a zvolený výpočet mu urobte
printf("Dobry den\n Ak chcete vypocitat obsah obdlznika, stlacte 1\n Ak chcete vypocitat obvod obdlznika, stlacte 2\n Ak chcete vypocitat uhlopriecku obdlznika, stlacte 3\n");
int vyber;
scanf("%d", &vyber);
switch(vyber)
{
case 1:
{
int a, b; printf("Zadajte rozmery obdlznika"); scanf("%d, %d", &a, &b); printf("Obsah je %d\n", a*b); break;
}
case 2:
{
int a, b; printf("Zadajte rozmery obdlznika"); scanf("%d, %d", &a, &b); printf("Obvod je %d\n", 2*a+2*b); break;
}
case 3:
{
int a, b; printf("Zadajte rozmery obdlznika"); scanf("%d, %d", &a, &b); printf("Uhlopriecka je %f\n", sqrt(a*a + b*b)); break;
}
default:
{
printf("Zadana volba neexistuje. Dovidenia."); break;
}
}
do statického jednorozmerného poľa načítajte desať čísiel a spočítajte ich aritmetický priemer
double sucet = 0;
int i;
int pole[10];
for (i=0; i<10; i++)
{
scanf("%d", &(pole[i]));
}
for (i=0; i<10; i++)
{
sucet += pole[i];
}
printf("priemer je %f\n", sucet/10.0);
načítajte postupnosť piatich čísiel a overte, či je to neklesajúca postupnosť
int pole[5];
//deklaracia int vnutri cyklu vyzaduje prepinac kompilatora -std=c99 . nastavit sa to da cez settings -> compiler and debugger -> compiler settings -> other options -> do toho prazdneho okna vpisat prepinac -std=c99for (int i=0; i<5; i++)
{
scanf("%d", &(pole[i]));
}
int pocet=0
;
for (int i=0; i<9; i++)
{
if (pole[i]>pole[i+1])
pocet++;
}
if (pocet==0)
printf("Ano, je to neklesajuca postupnost");
else
printf("Nie, nie je to neklesajuca postupnost");
napíšte program, ktorý dopočíta posledné číslo pre ISBN-10
//nacitame devat cisel
int pole[9];
for (int i=0; i<9; i++)
{
scanf("%d", &(pole[i]));
}
int sucet=0;
for (int i=0; i<9; i++)
{
sucet += (10-i)*pole[i];
}
int zvysok = sucet%11;
int zvysok = 11-zvysok;
if (zvysok == 10)
printf("X");
else
printf("%d", zvysok);
napíšte program, ktorý overí, či má zadaná matica súčet vo všetkých riadkoch, stĺpcoch a diagonálach rovnaký
//nacitanie matice !!! toto som si overila az po cviceniach, da sa to aj takto elegantne vo vnorenom cykle
int matica[3][3];
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
scanf("%d", &(matica[i][j]));
}
int sucet = 0;
//spocitame cisla v prvom riadku
for (int j=0; j<3; j++)
sucet += matica[0][j];
int x=0;
//overime sucty vo vsetkych riadkoch
for (int i=0; i<3; i++)
{
x=0;
for (int j=0; j<3; j++)
{
x += matica[i][j];
}
if (sucet!=x)
{
printf("NIE je to magicky stvorec"); return 1;}
}
//overime sucty vo vsetkych stlpcoch
for (int j=0; j<3; j++)
{
x=0;
for (int
i=0;
i<3; i++)
{
x += matica[i][j];
}
if (sucet!=x)
{
printf("NIE je to magicky stvorec"); return 1;}
}
//overime sucty v diagonale zlava doprava
x=0;
for (int i=0; i<3; i++)
{
x += matica[i][i];
}
if (sucet!=x)
{
printf("NIE je to magicky stvorec"); return 1;}
//overime sucty vdiagonale zprava dolava
x=0;
for (int i=0; i<3; i++)
{
x += matica[i][2-i];
}
if (sucet!=x)
{
printf("NIE je to magicky stvorec"); return 1;}