Commit 6dd5505a by Jürgen Hein

Esialgne töötav versioon, sisestus veel puudulik Kodutoo1.c

parent a7fe571f
Showing with 86 additions and 51 deletions
/*Antud on funktsioon ja teatud algväärtused. /*Antud on funktsioon ja teatud algväärtused.
...@@ -5,85 +5,120 @@ ...@@ -5,85 +5,120 @@
#include <stdio.h> #include <stdio.h>
#include <math.h> #include <math.h>
#define veerg 2
#define rida 15
int main(void) int main(void)
{ {
double A; //argumendi x algväärtus A double A; //argumendi x algväärtus A
double H; //Samm double H; //Samm
double C; //Sammu koefitsent double C; //Sammu koefitsent
double YM; //Väärtuste ülempiir double YM; //Väärtuste ülempiir
int double Vastus[veerg][rida]; //Tabeli veergude ja ridade massiiv
double Vastus[2][15]; //Tabeli veergude ja ridade arv double XSumma; //Ajutine summa, et leida x väärtuste rea liikmeid.
double XSumma;
double x; //Ajutine väärtus x väärtuste leidmiseks double x; //Ajutine väärtus x väärtuste leidmiseks
//Sisestus int i; //Järjenumber
double puudub[rida]; //Massiiv, et näidata x väärtusi, mille korral y väärtus puudub.
//Sisestus
do do
{ {
printf("Sisestage argumendi x algväärtus A"); printf("Sisestage argumendi x algväärtus A \n");
scanf("%lf", &A); if(scanf("%lf", &A) != 1)
} while(3>N || N>15); {
printf("Sisestatud väärtus ei sobi, sisestage reaalarv.");
scanf("%*s"); //Kui väärtus pole reaalarv, ei anta A-le väärtust.
} //Ehk sisestatud väärtust ei arvestata. Vastasel juhul loop ei lõpeks.
} while(scanf("%lf", &A) != 1); //Kontroll, kas sisestatud on reaalarv,
/*Kui ...=0, siis A-le ei ole määratud väärtust ehk
*(A ei ole double väärtus), kui ...=1, siis on.*/
do do
{ {
printf("Samm H"); printf("Sisestage samm H \n");
scanf("%lf", &H); if(scanf("%lf", &H) != 1 || H<=0 )
} while(H<1); //H ei saa olla väiksem kui 0. {
printf("Sisestatud väärtus ei sobi, sisestage reaalarv, mis on suurem kui 0");
scanf("%*s", &H);
}
} while(scanf("%lf", &H) != 1 || H<=0); //H ei saa olla väiksem kui 0.
//H peab olema reaalarv.
do do
{ {
printf("Sisestage sammu koefitsent C (C>=1)"); printf("Sisestage sammu koefitsent C (C>=1) \n");
scanf("%lf", &C); if(scanf("%lf", &C) != 1 || C<0)
} while(C>=1); {
printf("Sisestatud väärtus ei sobi, sisestage reaalarv.");
scanf("%*s", &C);
}
} while(C<0 || scanf("%lf", &C) != 1); //C<0 ja reaalarv kontroll
do do
{ {
printf("Sisestage funktsiooni väärtuse y ülempiir YM "); printf("Sisestage funktsiooni väärtuse y ülempiir YM \n");
scanf("%lf", &YM); if(scanf("%lf", &YM) != 1)
} while(); //? {
printf("Sisestatud väärtus ei sobi, sisestage reaalarv.");
scanf("%*s", &YM);
}
} while(scanf("%lf", &YM) != 1); //reaalarvu kontroll
//Töötlus //Töötlus
for(i=0;i<15;i++) //funktsiooni väärtusi võib olla max 15. //x väärtuste leidmine
for(i=0;i<rida;i++) //funktsiooni väärtusi võib olla max 15.
{
switch (i)
{ {
if(i=0); case 0:
{ Vastus[0][i]=A;
Vastus[0][i]=A; XSumma=Vastus[0][i]; //Jada 1. liikme A leidmine
} break;
if(i=1); case 1:
{ XSumma=XSumma+H;
Vastus[0][i]=A+H; Vastus[0][i]=A+H; //Jada 2. liikme A+H leidmine
} break;
XSumma=A+H default:
XSumma=XSumma+(H*C^(i-1)) XSumma=XSumma+(H*(pow(C,(i-1)))); //Jada n. liige A+H+CH+C^(i-1)*H+....
Vastus[0][i]=XSumma Vastus[0][i]=XSumma;
} }
}
//y väärtuste leidmine
for(i=0;i<15;i++) //funktsiooni väärtusi võib olla max 15. for(i=0;i<rida;i++) //funktsiooni väärtusi võib olla max 15.
{ {
if(-2<Vastus[0][i] || Vastus[0][i]<2) if(Vastus[0][i]<-2 || Vastus[0][i]>2) //Määramispiirkond (-2;2)
{ {
Vastus[1][i]='Puudub'; Vastus[1][i]=puudub[i];
} }
else else
{ {
x=Vastus[0][i]; x=Vastus[0][i];
Vastus[1][i]=(7*x^2+18*x-14)/(sqrt(4-x^2)) Vastus[1][i]=(7*pow(x,2)+18*x-14)/(sqrt(4-pow(x,2)));
} }
} }
//Väljastus //Väljastus
printf("\n Tulemused on esitatud tabelis: \n"); printf("\n Tulemused on esitatud tabelis: \n");
i = 0; for (i=0;i < rida;i++) //15 rida
while (i < 2) { //2 veergu {
j = 0; if(Vastus[1][i]<YM)
while (j < 15) { {
printf("%lf ", Vastus[i][j]); if (Vastus[1][i] == puudub[i])
j++; {
} printf("%lf, Puudub ", Vastus[0][i]);
printf("\n"); }else
i++; {
} printf("%lf, %lf ", Vastus[0][i], Vastus[1][i]);
}
printf("\n");
}else
{
i=rida;
}
}
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment