Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa deklarisanjem varijable unutar if naredbe u c#

[es] :: .NET :: Problem sa deklarisanjem varijable unutar if naredbe u c#

Strane: < .. 1 2 3 4

[ Pregleda: 9297 | Odgovora: 62 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#13.05.2013. u 10:49 - pre 133 meseci
Mihajlo dobro ste zapazili moja greska, uvek razmisljam kao da sam jos u matematici pa kad je recimo √5 to je isto sto i 1√5, izvinjavam se. Znaci sad programerski:
Input moze da bude oblika n, n√t i √t gde su n i t prirodni brojevi.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#13.05.2013. u 11:05 - pre 133 meseci
Onda ovako nekako:

Code:
if (am.Length == 0)
  throw new Exception("Izraz je prazan");

string[] params = am.Split('√');

if (params.Count > 2)
  throw new Exception("U izrazu mora da postoji samo jedan simbol '√'");

double n, t, result;

if (params[0].Length == 0)
  n = 1; // Podrazumevana vrednost za mnozenje
else if (!Double.TryParse(params[0], out n))
  throw new Exception("Tekst levo od simbola '√' nije broj");

if (params.Count == 1)
{
  result = n;
}
else
{
  if (params[1].Length == 0)
    throw new Exception("Mora da postoji broj desno od simbola '√'");

  if (!Double.TryParse(params[1], out t))
    throw new Exception("Tekst desno od simbola '√' nije broj");

  result = n * Math.Sqrt(t);
}
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 15:32 - pre 133 meseci
Hvala na pomoci, trebalo je malo premodifikovati kod. Tek sad sam shvatio kad sam sracunao koliko uslova treba da postoji koliko ce ovaj program da bude predugacak... Sracunao sam da pored svega sto je do sada izpisano , a to je oko 700 linija koda da cu morati da pisem jos, bar 8000 - 8500 linija koda da bi program bio gotov, da li su programi inace toliko dugacki, i sta mi predlazete da radim jer ne znam da licu imati vremena da zavrsim sve to ni do 6.juna kad mi je i maturski iz programiranja?
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 15:53 - pre 133 meseci
Ne znam dovoljno o tome šta sve program treba da radi, pa ne mogu da ti dam neki konkretan savet, ali 8000 linija koda nije bog zna kako mnogo (mada bi lepše bilo da se razbije u nekakve funkcionalne celine, možda čak i klase, koje bi stajale u različitim fajlovima).

Ako već vidiš da nećeš završiti projekat do zadatog roka, i ako rok ne može da se pomera, onda redefiniši projekat i smanji posao, tako da manji projekat može da se završi do roka.

Uzgred, ovaj deo koda kao input ima promenljivu am, a kao output promenljivu result. Ako taj deo koda treba da se primenjuje i za neke druge promenljive onda treba da stoji kao posebna funkcija, koja će se pozivati gde god da je to potrebno.

Code:
double Calculate(string am)
{
   // Onaj prethodno ispisani kod
   // ...

   return result;
}


Kad god dođeš u situaciju da ti se duplira kod taj kod premesti u posebnu funkciju. U tom slučaju količina koda koju treba da napišeš postaje manja.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 16:37 - pre 133 meseci
Hvala na dosadasnjim savetima i pomoci svima. Samo jos nesto i nadam se da necu vise dosadjivati.
Imam problem oko delova programa gde se nepoznata ne moze odrediti analiticki, vec samo graficki ili numericki, a ja jos uvek nemam dovoljno znanje matematike za tako nesto, pogotovo da tako nesto implementiram u program, sta sa tim delovima programa da radim?

[Ovu poruku je menjao panterloki dana 14.05.2013. u 17:50 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 16:57 - pre 133 meseci
Najjednostavnije je da pitaš profesora (ili nekog drugog) da ti pomogne sa matematičkim delom. Pretpostavljam da matematičko rešenje ipak postoji.

Ako matematičko rešenje ne postoji, možda postoji računarsko rešenje. Možda ako ti je data vrednost rešenja unapred možeš da verifikuješ da li je data vrednost ispravna. Možda čak program može da proceni koliko je neka vrednost blizu tačnom rešenju. Ako je verifikacija rešenja moguća, i ako je moguće utvrditi koliko je bilo koja vrednost bliska tačnom rešenju, onda program može da proveri opseg mogućih vrednosti, i pronađe ono koje je najbliže tačnom rešenju.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 17:10 - pre 133 meseci
Čitao sam temu od početka, pa se sad nešto mislim, mora da postoji matematičko rešenje. Računaš podatke o trouglu, a ne nekakve defirencijale i numeričku analizu. Sa trouglovima trebalo bi sve da bude prilično prosto. Piši šta te muči, pa ti možda neko i pomogne. U najgorem slučaju bar ćeš lepo uobličiti problem s kojim ćeš izaći pred profesora (da njega pitaš).
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#14.05.2013. u 18:11 - pre 133 meseci
Zapravo je rec o pravilnom mnogouglu, u svakom slucaju imam sam da izvucem podatke iz sledeceg x*ctg(pi/x)=k , gde je k elemnt R^+; Kako odavde odrediti x? isao sam na WolphramAlpha pitao sam i ovde na forumu Nedeljko mi je rekao da moze numericki, sto sam i video na Wolphram-u ali tek kad se ubaci neka konkretna vrednost inace, numericki se odrede po 5-6 resenja jednacine.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 09:11 - pre 133 meseci
Ne mogu da ti pomognem, prvo jer ima premalo informacija, a drugo jer ni u školi nisam baš mario za trigonometriju. Primetio bih, kao laik, da mi je čudno da promenljiva x učestvuje u jednačini na dva mesta, i kao da na ta dva mesta ima različite dimenzije (i dužinu i ugao).
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 09:59 - pre 133 meseci
Bacio sam pogled na članak na Vikipediji, čini se da ovom jednačinom želiš da izračunaš stranicu pravilnog mnogougla ako je poznata površina. Mnogougao se u suštini sastoji od N trouglova, pa se računanje stranice mnogougla svodi na računanje stranica jednakostraničnog trougla ako znaš površinu (koju imaš jer je N puta manja od površine mnogougla), i uglove (koje isto imaš jer je jedan od njih 2pi/N, a druga dva su pi*(N-1)/N).

Za računanje stranica trougla vidi http://answers.yahoo.com/question/index?qid=20101123164632AAiGZTT
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 11:02 - pre 133 meseci
Pravilni mnogougao je onaj cije su sve stranice i uglovi jednaki, to ne znaci da su trouglovi od kojih je taj mnogougao sacinjen jednakostranicni, jer da jesu lako bi se setio, a ovde ja imam poznato koliko je stranica mnogougla i povrsina.
P(MNOGUGLA)=n*a*r(poluprecnik upisane kruznice)/2;
r=a/2*tg(cu(centrlni ugao mnogougla)/2);
cu=2*pi/n;
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 11:34 - pre 133 meseci
Moraju da budu jednakokraki trouglovi sa zajedničkim temenom u centru mnogougla. Probaj da nacrtaš pravilni mnogougao koji nije sačinjen od istovetnih jednakokrakih (pardon, nisu jednakostranični nego jednakokraki) trouglova i videćeš da je to nemoguće. Pogrešno sam napisao gore "jednakostranični", ali sam naveo da se sva tri ugla znaju, i da druga dva imaju istu vrednost. Sve što je napisano u mom prethodnom postu i dalje važi.
 
Odgovor na temu

plague
Software Developer
Auckland, NZ

Član broj: 46734
Poruke: 623
*.dynamic.isp.telekom.rs.



+373 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 12:19 - pre 133 meseci
Ako ti trebaju stranice njih mozes dobiti preko formule:



gde je povrsina malog torugla koju dobijas preko zadate povrsine mnogougla i broja stranica(jednakokrakih trouglova), a je ugao trougla u centru mnogougla koji takodje znas jer znas broj trouglova.

Kada izracunas imaces duzine krakova, dalje mozes da spustis visinu na na stranicu i da preko pravouglog tougla uz pomoc povrsine , , i nove hipotenuze koja je stanica da izracunas sve ostalo.

Uzmi ovo s rezervom, nisam se bavio matematikom neko vreme.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 13:33 - pre 133 meseci
Znam ja sve to, ali kazem za slucaj gde su mi poznati samo vrednost tj. duzina stranice i povrsina mnogougla, tu mi je nepoznat broj stranica, kao i sve ostalo, a odatle ne mogu da dobijem nista, ja sam sve lepo napisao u prethodnom postu.
 
Odgovor na temu

plague
Software Developer
Auckland, NZ

Član broj: 46734
Poruke: 623
*.dynamic.isp.telekom.rs.



+373 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 13:58 - pre 133 meseci
Citat:
a ovde ja imam poznato koliko je stranica mnogougla i povrsina.

"o" me je zbunilo, a mislio si "kolika je stranica".

Ako dolaze u obzir samo pravilni mnogouglovi, prvo sto mi pada na pamet je da "za svaki" broj stranica od 3 do n probas da izracunas druzinu stranice metodom kojom sam napisao u prethodnom postu. Povecanjem broja stranica, duzina se smanjuje. Uvecavas broj dok ne nadjes poklapanje u cijem slucaju takav mnogougao postoji i videces koji je u pitanju, u slucaju da ne nadjes poklapanje, tj da tvoja zadata stranica postane veca od duzine izracunate za neko , onda takav pravilni mnogougao ne postoji.
Sada, zavisno od toga kako pridjes ovome mozes napisati "efikasniji" ili "manje efikasan" algoritam. Navodnici su tu jer koliko moze biti efikasno ako moras da pogadjas.

Razmislicu jos da li postoji neko bolje resenje.

Edit: Nadjoh ovo:

Citat:

S is the length of any side
N is the number of sides
TAN is the tangent function calculated in degrees

Link


[Ovu poruku je menjao plague dana 15.05.2013. u 15:16 GMT+1]
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 21:51 - pre 133 meseci
Izvinjavam se za zabunu, pa jedino to da proverava za vrednosti n o 3 pa nadalje, pa ako se poklopi super, ako ne nista, medjutim ne znam koliko je to dobro jer se ovde radi o racionalnim brojevima, i nije to toliko precizno koliko covek moze da bude.
 
Odgovor na temu

dusans
Stojanov Dušan
Pančevo

Član broj: 9551
Poruke: 1343
*.dynamic.sbb.rs.



+311 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#15.05.2013. u 22:39 - pre 133 meseci
Ako i ne dobiješ tačno poklapanje, rezultat će biti bar približan kod pogotka.
Kod promašaja će razlika biti drastična - probaj i videćeš.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#20.05.2013. u 09:13 - pre 133 meseci
Code:

     if (am.Text.Length == 0)
            {
                goto next;
            }
            string[] Kam = am.Text.Split('√');           
            if (Kam.Count() > 2)
            {
                throw new Exception("U izrazu mora da postoji samo jedan simbol '√'");
            }
            double n, t;
            if (string.IsNullOrEmpty(Kam[0]))
            {
                n = 1;
                if (am.Text.Contains('√'))
                {
                    am1 = n * Math.Sqrt(Double.Parse(Kam[1]));
                }
            }
            else
            {
                if (!Double.TryParse(Kam[0], out n))
                {
                    throw new Exception("Tekst levo od simbola '√' nije broj");
                }
                
                if (Kam.Count() == 1)
                {
                        am1 = n;
                }
                else
                {
                    if (string.IsNullOrEmpty(Kam[1]))
                    {
                        throw new Exception("Mora da postoji broj desno od simbola '√'");
                    }
                    if (!Double.TryParse(Kam[1], out t))
                    {
                        throw new Exception("Tekst desno od simbola '√' nije broj");
                    }
                    am1 = n * Math.Sqrt(Double.Parse(Kam[1]));
                }                
            }
            next:
            if (Om.Text.Length == 0)
            {
                goto next1;
            }
            string[] KOm = Om.Text.Split('√');
            if (KOm.Count() > 2)
            {
                throw new Exception("U izrazu mora da postoji samo jedan simbol '√'");
            }
            double nO, tO;
            if (string.IsNullOrEmpty(KOm[0]))
            {
                nO = 1;
                if (Om.Text.Contains('√'))
                {
                    Om1 = nO * Math.Sqrt(Double.Parse(KOm[1]));
                }
            }
            else
            {
                if (!Double.TryParse(KOm[0], out nO))
                {
                    throw new Exception("Tekst levo od simbola '√' nije broj");
                }

                if (KOm.Count() == 1)
                {
                    Om1 = nO;
                }
                else
                {
                    if (string.IsNullOrEmpty(KOm[1]))
                    {
                        throw new Exception("Mora da postoji broj desno od simbola '√'");
                    }
                    if (!Double.TryParse(KOm[1], out tO))
                    {
                        throw new Exception("Tekst desno od simbola '√' nije broj");
                    }
                    Om1 = nO * Math.Sqrt(Double.Parse(KOm[1]));
                }
            }
            next1:

Da li neko moze da mi kaze, zbog cega ne funkcionise deo koda?
Tu gde je promenljiva am, am1 radi savrseno, pretvara string oblika n u n, pretvara string oblika √t u math.sqrt(t), pretvara string oblika n√t u n*math.sqrt(t), ali kad je u pitanju deo koda gde je promenljiva Om, i Om1 funkcionise samo kad se u textbox unese string oblika n i kao rezultat izbacuje n, ali za n√t i √t izbaci da je vrednost nula i ne funkcionise na nacin na koji bi trebao da funkcionise.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#20.05.2013. u 09:32 - pre 133 meseci
Napravi napor da deo koda koji radi računicu prebaciš u posebnu funkciju koja prima argumen string a vraća vrednost double. Onda tu funkciju možeš da pozoveš dva, ili dvesta dva puta, i uvek će da radi na isti način. Već sam ti to spomenuo, ali nisi me tad konstatovao.

Ova dva dela koda izgledaju identično, pa ako je to zaista ono što stoji kod tebe onda je problem na nekom drugom mestu.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#20.05.2013. u 15:25 - pre 133 meseci
Code:

public double Pretvori (string args)
        {
            double result;
            if (args.Length == 0)
            {
                result = Double.NaN;
            }
            string[] Kam = args.Split('√');
            if (Kam.Count() > 2)
            {
                throw new Exception("U izrazu mora da postoji samo jedan simbol '√'");
            }
            double n, t;
            if (string.IsNullOrEmpty(Kam[0]))
            {
                n = 1;
                if (args.Contains('√'))
                {
                    result = n * Math.Sqrt(Double.Parse(Kam[1]));
                }
            }
            else
            {
                if (!Double.TryParse(Kam[0], out n))
                {
                    throw new Exception("Tekst levo od simbola '√' nije broj");
                }

                if (Kam.Count() == 1)
                {
                    result = n;
                }
                else
                {
                    if (string.IsNullOrEmpty(Kam[1]))
                    {
                        throw new Exception("Mora da postoji broj desno od simbola '√'");
                    }
                    if (!Double.TryParse(Kam[1], out t))
                    {
                        throw new Exception("Tekst desno od simbola '√' nije broj");
                    }
                     result = n * Math.Sqrt(Double.Parse(Kam[1]));
                     return result;
                }
            }
           
        }
        private void Resimnogougao_Click(object sender, EventArgs e)
        {
            double cu1;
            double nm1;
            double am1;
            double Om1;
            double Pm1;
            double rm1;
            double Rom1;
            double ums1;
            double bdm1;       
            double.TryParse(nm.Text, out nm1);
            double.TryParse(Om.Text, out Om1);
            double.TryParse(Pm.Text, out Pm1);
            double.TryParse(rm.Text, out rm1);
            double.TryParse(Rom.Text, out Rom1);
            double.TryParse(ums.Text, out ums1);
            double.TryParse(bdm.Text, out bdm1);
            double.TryParse(cu.Text, out cu1);
            bool m1 = double.TryParse(nm.Text, out nm1);
            bool m2 = double.TryParse(am.Text, out am1);
            bool m3 = double.TryParse(Om.Text, out Om1);
            bool m4 = double.TryParse(Pm.Text, out Pm1);
            bool m5 = double.TryParse(rm.Text, out rm1);
            bool m6 = double.TryParse(Rom.Text, out Rom1);
            bool m7 = double.TryParse(ums.Text, out ums1);
            bool m8 = double.TryParse(bdm.Text, out bdm1);
            bool m9 = double.TryParse(cu.Text, out cu1);
            Pretvori(am.Text);
            Pretvori(Om.Text);
            Pretvori(Pm.Text);
            Pretvori(rm.Text);
            Pretvori(Rom.Text);
            Pretvori(ums.Text);
            Pretvori(bdm.Text);
            Pretvori(cu.Text);
            if (m1 && m2)
            {
                Om1 = nm1 * am1;
                goto o;
            }
            if (m1 && m3)
            {
                am1 = Om1 / nm1;
                goto o;
            }
               
                if (m1 && m4)
                {
                    cu1 = 360 / nm1;
                    am1 = Math.Sqrt(2 * Pm1 / nm1 / Math.Sin(cu1 * Math.PI / 180)) * 2 * Math.Sin(cu1 / 2 / 180 * Math.PI);
                    goto o;
                }
                if (m1 && m5)
                {
                    cu1 = 360 / nm1;
                    am1 = rm1 * 2 * Math.Tan(cu1 / 360 * Math.PI);
                    goto o;
                }
                if (m1 && m6)
                {
                    cu1 = 360 / nm1;
                    am1 = Rom1 * 2 * Math.Sin(cu1 / 360 * Math.PI);
                    goto o;
                }
                if (m1 && m7)
                {
                    MessageBox.Show("Nema dovoljno podataka za izracunavanje parametara");
                    goto kr;
                }
                if (m1 && m8)
                {
                    MessageBox.Show("Nema dovoljno podataka za izracunavanje parametara");
                    goto kr;
                }
                if (m1 && m9)
                {
                    MessageBox.Show("Nema dovoljno podataka za izracunavanje parametara");
                    goto kr;
                }
                if (m2 && m3)
                {
                    nm1 = Om1 / am1;
                    goto o;
                }
                if (m2 && m4)
                {
                    nm1 = 4 * Pm1 / (am1 * am1 * Math.Sqrt(3));
                    goto o;
                }
                if (m2 && m5)
                {
                    cu1 = Math.Atan(am1 / (2 * rm1)) / Math.PI * 360;
                    nm1 = 360 / cu1;
                    goto o;
                }
                if (m2 && m6)
                {
                    cu1 = Math.Asin(am1 / (2 * Rom1)) * 360 / Math.PI;
                    nm1 = 360 / cu1;
                    goto o;
                }
                if (m2 && m7)
                {
                    nm1 = 360 / (180 - ums1);
                    goto o;
                }
                if (m2 && m8)
                {
                    nm1 = (3 + Math.Sqrt(9 + 8 * bdm1)) / 2;
                    goto o;
                }
                if (m2 && m9)
                {
                    nm1 = 360 / cu1;
                    goto o;
                }
                if (m3 && m4)
                {
                    MessageBox.Show("Nema dovoljno podataka da se ostale vrednosti odrede analiticki");
                    goto kr;
                }
                if (m3 && m5)
                {
                    MessageBox.Show("Nema dovoljno podataka da se ostale vrednosti odrede analiticki");
                    goto kr;
                }
                if (m3 && m6)
                {
                    MessageBox.Show("Nema dovoljno podataka da se ostale vrednosti odrede analiticki");
                    goto kr;
                }
                if (m3 && m7)
                {
                    nm1 = 360 / (180 - ums1);
                    am1 = Om1 / nm1;
                    goto o;
                }
                if (m3 && m8)
                {
                    nm1 = (3 + Math.Sqrt(9 + 8 * bdm1)) / 2;
                    am1 = Om1 / nm1;
                    goto o;
                }
                if (m3 && m9)
                {
                    nm1 = 360 / cu1;
                    am1 = Om1 / nm1;
                    goto o;
                }
                if (m4 && m5)
                {
                    MessageBox.Show("Nema dovoljno podataka da se ostale vrednosti odrede analiticki");
                    goto kr;
                }
                if (m4 && m6)
                {
                    MessageBox.Show("Nema dovoljno podataka da se ostale vrednosti odrede analiticki");
                    goto kr;
                }
                if (m4 && m7)
                {
                    nm1 = 360 / (180 - ums1);
                    am1 = Math.Sqrt(4 * Pm1 / nm1 * Math.Tan(Math.PI / nm1));
                    goto o;
                }
                if (m4 && m8)
                {
                    nm1 = (3 + Math.Sqrt(9 + 8 * bdm1)) / 2;
                    am1 = Math.Sqrt(4 * Pm1 / nm1 * Math.Tan(Math.PI / nm1));
                    goto o;
                }
                if (m4 && m9)
                {
                    nm1 = 360 / cu1;
                    am1 = Math.Sqrt(4 * Pm1 / nm1 * Math.Tan(Math.PI / nm1));
                    goto o;
                }
                if (m5 && m6)
                {
                    nm1 = Math.PI / Math.Acos(Rom1 / rm1);
                    am1 = 2 * Math.Sqrt(Rom1 * Rom1 - rm1 * rm1);
                    goto o;
                }
                if (m5 && m7)
                {
                    nm1 = 360 / (180 - ums1);
                    cu1 = 360 / nm1;
                    am1 = 2 * rm1 * Math.Tan(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m5 && m8)
                {
                    nm1 = (3 + Math.Sqrt(9 + 8 * bdm1)) / 2;
                    cu1 = 360 / nm1;
                    am1 = 2 * rm1 * Math.Tan(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m5 && m9)
                {
                    am1 = 2 * rm1 * Math.Tan(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m6 && m7)
                {
                    nm1 = 360 / (180 - ums1);
                    cu1 = 360 / nm1;
                    am1 = 2 * Rom1 * Math.Sin(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m6 && m8)
                {
                    nm1 = (3 + Math.Sqrt(9 + 8 * bdm1)) / 2;
                    cu1 = 360 / nm1;
                    am1 = 2 * Rom1 * Math.Sin(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m6 && m9)
                {
                    am1 = 2 * Rom1 * Math.Sin(cu1 * Math.PI / 360);
                    goto o;
                }
                if (m7 && m8)
                {
                    MessageBox.Show("Nema dovoljno podataka za odredjivanje ostalih paremetara mnogougla");
                    goto kr;
                }
                if (m7 && m9)
                {
                    MessageBox.Show("Nema dovoljno podataka za odredjivanje ostalih paremetara mnogougla");
                    goto kr;
                }
                if (m8 && m9)
                {
                    MessageBox.Show("Nema dovoljno podataka za odredjivanje ostalih paremetara mnogougla");
                    goto kr;
                }             
            o:
                {                   
                    cu1 = 360 / nm1;
                    ums1 = (nm1 - 2) * 180 / nm1;
                    bdm1 = nm1 * (nm1 - 3) / 2;
                    Om1 = nm1 * am1;
                    Rom1 = am1 / (2 * Math.Sin((cu1 * Math.PI / 180) / 2));
                    rm1 = am1 / (2 * Math.Tan((cu1 * Math.PI / 180) / 2));
                    Pm1 = nm1 * am1 * rm1 / 2;
                }
            if ((nm1 % 1 != 0)||(bdm1 % 1 !=0)||(nm1<3))
            { 
                 MessageBox.Show("Ne postoji pravilan mnogougao sa unesenim vrednostima");
                 return;
            }   
            kr:
            {
                cu.Text = cu1.ToString();
                nm.Text = nm1.ToString();
                am.Text = am1.ToString();
                Om.Text = Om1.ToString();
                Pm.Text = Pm1.ToString();
                rm.Text = rm1.ToString();
                Rom.Text = Rom1.ToString();
                ums.Text = ums1.ToString();
                bdm.Text = bdm1.ToString();
            }
        }

Napravio sam funkciju pozivam je ali opet nece da funkcionise na isti nacin kao sto sam i u prethodnom postu napisao, ubacio sam i ostatak koda, da vidite da li je greska mozda u ostatku koda, ali cisto sumljam.

[Ovu poruku je menjao panterloki dana 20.05.2013. u 16:36 GMT+1]
 
Odgovor na temu

[es] :: .NET :: Problem sa deklarisanjem varijable unutar if naredbe u c#

Strane: < .. 1 2 3 4

[ Pregleda: 9297 | Odgovora: 62 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.