Evo u cemu je problem:
Program startuje normalno, i sve tece normalno do prvog if-a. Kada skeniram da li se koristi otpornik kalem i kondenzator i odgovorim na postavljena pitanja sa "DA" ili "NE", umesto da u skladu sa odgovorima program nastavi da vrsi predvidjene operacije, on odlazi na kraj i ispisuje da je impedansa 0.00000 i zatvara se.
Mozete li mi skrenuti paznju gde je greska i kako da je ispravim?
Mala napomena: Program nije potpuno zavrsen, ali problem ne bi trebalo da se javlja. Napisane su formule samo za par slucajeva, ali problem nastaje jos ranije, tako da ga nisam zavrsavao...
Kompajler je Turbo C
A evo i programa:
Code:
#include <stdio.h>
#include <math.h>
main()
{
/*Deklaracija*/
float r,l,c,z;
char ur[5], ul[5], uc[5], rp;
int test;
/*Unosenje otpornosti, induktivnosti i kapacitivnosti*/
printf ("\nUnesite otpornost otpornika. Ukoliko otpornik nije potreban unesite samo nulu:");
scanf ("%f", &r);
printf ("Unesite induktivnost kalema Ukoliko kalem nije potreban unesite samo nulu:");
scanf ("%f", &l);
printf ("Unesite kapacitivnost kondenzatora Ukoliko kondenzator nije potreban unesite samo nulu:");
scanf ("%f", &c);
/*Upitnik za izbor elemenata*/
/*Otpornik*/
printf ("Da li ce u zadatku biti koriscen otpornik? \n (Odgovorite sa DA ili NE, velikim slovima!)");
scanf ("%s", &ur);
/*Kalem*/
printf ("Da li ce u zadatku biti koriscen kalem? \n (Odgovorite sa DA ili NE, velikim slovima!");
scanf ("%s", &ul);
/*Kondenzator*/
printf ("Da li ce u zadatku biti koriscen kondenzator? \n (Odgovorite sa DA ili NE, velikim slovima!");
scanf ("%s", &uc);
/*Testiranje unetih odgovora iz upitnika*/
/*Ako su za zadatak potrebni i otpornik i kalem i kondenzator, ispitujemo sve moguce kombinacije veza za sva 3 elementa*/
if (ul=="DA" && ur=="DA" && uc=="DA")
{
printf ("Ako su otpornik, kalem i kondenzator redno vezani unesite '1'.");
printf ("Ako su otpornik, kalem i kondenzator paralelno vezani unesite '2'.");
printf ("Ako su paralelno vezani otpornik i kalem, povezani redno sa kondenzatorom unesite '3'.");
printf ("Ako su redno vezani otpornik i kalem, povezani paralelno sa kondenzatorom unesite '4'.");
printf ("Ako su paralelno vezani otpornik i kondenzator, povezani redno sa kalemom unesite '5'.");
printf ("Ako su redno vezani otpornik i kondenzator, povezani paralelno sa kalemom unesite '6'.");
printf ("Ako su paralelno vezani kalem i kondenzator, povezani redno sa otpornikom unesite '7'.");
printf ("Ako su redno vezani kalem i kondenzator, povezani paralelno sa otpornikom unesite '8'.");
scanf ("%i",&test);
if (test==1)
z=sqrt(pow(r,2)+pow((2*M_PI*100*l),2)+pow((1/(2*M_PI*100*c)),2));
if (test==2)
z=2;
if (test==3)
z=3;
if (test==4)
z=4;
if (test==5)
z=5;
if (test==6)
z=6;
if (test==7)
z=7;
if (test==8)
z=8;
}
/*Ako su nam za zadatak potrebni samo otpornik i kalem, ispitujemo da li je u pitanju redna ili paralelna veza*/
if (ur=="DA" && ul=="DA" && uc=="NE")
{
printf ("Da li su otpornik i kalem vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza otpornika i kalema*/
z=sqrt(r*r+(100*M_PI*l)*(100*M_PI*l));
if (rp=='P')
/*Paralelna veza otpornika i kalema*/
z=r*100*M_PI*l/(r+100*M_PI*l);
}
if (ur=="DA" && ul=="NE" && uc=="DA")
{
printf ("Da li su otpornik i kondenzator vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza otpornika i kondenzatora*/
z=sqrt(r*r+(1/pow((100*M_PI*c),2)));
if (rp=='P')
/*Paralelna veza otpornika i kondenzatora*/
z=r*1/(100*M_PI*c)/(r+(1/(100*M_PI*c)));
}
if (ur=="NE" && ul=="DA" && uc=="DA")
{
printf ("Da li su kalem i kondenzator vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza kalema i kondenzatora*/
z=1;
if (rp=='P')
/*Paralelna veza kalema i kondenzatora*/
z=1;
}
printf ("Impedansa za unete podatke je: %f", z);
return 0;
}
#include <stdio.h>
#include <math.h>
main()
{
/*Deklaracija*/
float r,l,c,z;
char ur[5], ul[5], uc[5], rp;
int test;
/*Unosenje otpornosti, induktivnosti i kapacitivnosti*/
printf ("\nUnesite otpornost otpornika. Ukoliko otpornik nije potreban unesite samo nulu:");
scanf ("%f", &r);
printf ("Unesite induktivnost kalema Ukoliko kalem nije potreban unesite samo nulu:");
scanf ("%f", &l);
printf ("Unesite kapacitivnost kondenzatora Ukoliko kondenzator nije potreban unesite samo nulu:");
scanf ("%f", &c);
/*Upitnik za izbor elemenata*/
/*Otpornik*/
printf ("Da li ce u zadatku biti koriscen otpornik? \n (Odgovorite sa DA ili NE, velikim slovima!)");
scanf ("%s", &ur);
/*Kalem*/
printf ("Da li ce u zadatku biti koriscen kalem? \n (Odgovorite sa DA ili NE, velikim slovima!");
scanf ("%s", &ul);
/*Kondenzator*/
printf ("Da li ce u zadatku biti koriscen kondenzator? \n (Odgovorite sa DA ili NE, velikim slovima!");
scanf ("%s", &uc);
/*Testiranje unetih odgovora iz upitnika*/
/*Ako su za zadatak potrebni i otpornik i kalem i kondenzator, ispitujemo sve moguce kombinacije veza za sva 3 elementa*/
if (ul=="DA" && ur=="DA" && uc=="DA")
{
printf ("Ako su otpornik, kalem i kondenzator redno vezani unesite '1'.");
printf ("Ako su otpornik, kalem i kondenzator paralelno vezani unesite '2'.");
printf ("Ako su paralelno vezani otpornik i kalem, povezani redno sa kondenzatorom unesite '3'.");
printf ("Ako su redno vezani otpornik i kalem, povezani paralelno sa kondenzatorom unesite '4'.");
printf ("Ako su paralelno vezani otpornik i kondenzator, povezani redno sa kalemom unesite '5'.");
printf ("Ako su redno vezani otpornik i kondenzator, povezani paralelno sa kalemom unesite '6'.");
printf ("Ako su paralelno vezani kalem i kondenzator, povezani redno sa otpornikom unesite '7'.");
printf ("Ako su redno vezani kalem i kondenzator, povezani paralelno sa otpornikom unesite '8'.");
scanf ("%i",&test);
if (test==1)
z=sqrt(pow(r,2)+pow((2*M_PI*100*l),2)+pow((1/(2*M_PI*100*c)),2));
if (test==2)
z=2;
if (test==3)
z=3;
if (test==4)
z=4;
if (test==5)
z=5;
if (test==6)
z=6;
if (test==7)
z=7;
if (test==8)
z=8;
}
/*Ako su nam za zadatak potrebni samo otpornik i kalem, ispitujemo da li je u pitanju redna ili paralelna veza*/
if (ur=="DA" && ul=="DA" && uc=="NE")
{
printf ("Da li su otpornik i kalem vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza otpornika i kalema*/
z=sqrt(r*r+(100*M_PI*l)*(100*M_PI*l));
if (rp=='P')
/*Paralelna veza otpornika i kalema*/
z=r*100*M_PI*l/(r+100*M_PI*l);
}
if (ur=="DA" && ul=="NE" && uc=="DA")
{
printf ("Da li su otpornik i kondenzator vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza otpornika i kondenzatora*/
z=sqrt(r*r+(1/pow((100*M_PI*c),2)));
if (rp=='P')
/*Paralelna veza otpornika i kondenzatora*/
z=r*1/(100*M_PI*c)/(r+(1/(100*M_PI*c)));
}
if (ur=="NE" && ul=="DA" && uc=="DA")
{
printf ("Da li su kalem i kondenzator vezani redno ili paralelno? \n (Unesite 'R' za rednu ili 'P' za paralelnu vezu, obavezno velikim slovima!)");
scanf ("%c", &rp);
if (rp=='R')
/*Redna veza kalema i kondenzatora*/
z=1;
if (rp=='P')
/*Paralelna veza kalema i kondenzatora*/
z=1;
}
printf ("Impedansa za unete podatke je: %f", z);
return 0;
}