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: 9301 | 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#10.05.2013. u 07:15 - pre 133 meseci
Hocu mogucnost da se u textbox ubaci kvadratni koren kao simbol i neki broj naravno i da se proverava ako textbox sadrzi kvadratni koren da ga on preko metode math i jos nekih kodova pretvori u double i onda da vrsi operacije nad njim, pa sam probao da implementiram kod, ali ga nisam razumeo, a i bilo mi je pomalo cudna sintaksa.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 08:03 - pre 133 meseci
ja bih to ovako:

Code:

If InStr(1, TextBox1.Text, "√") > 0 Then
            Label1.Text = Math.Sqrt(TextBox1.Text.Substring(1, TextBox1.Text.Length - 1))
End If


Ovde je opet VB.
Proverava se da li textbox sadži simbol kvadratnog korena, ako sadrži
primenjuje se funkcija Sqrt na podkorenom broju.

Npr. Ukucaš √3 u text box...
Proverava se da li postoji simbol korena,
ovaj deo 'TextBox1.Text.Substring(1, TextBox1.Text.Length - 1)' eliminiše simbol korena i prosleđuje se samo broj
SQrt funkciji, i na kraju ispisuje kao text neke labele....
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 11:38 - pre 133 meseci
Nema sanse da se snadjem, sve zivo sam probao, i vrsljao po netu, probao sam i sa tim gde je kursor bio poslednji put da se tu upisuje, ali slaba vajda, da li neko moze da predlozi neko resenje?
Code:
 private void sqrtt_Click(object sender, EventArgs e)
        {
           
            if (at.Focused)
            {              
                at.Text = at.Text + "√";
                at.Select();
                System.Windows.Forms.SendKeys.Send("{RIGHT}");
            }            
            if (bt.Focused)
            {                
                bt.Text = bt.Text + "√";
                bt.Select();
                System.Windows.Forms.SendKeys.Send("{RIGHT}");
            }
           
            if (ct.Focused)
            {
                ct.Text = ct.Text + "√";
                ct.Select();
                System.Windows.Forms.SendKeys.Send("{RIGHT}");
               
            }

Nista se ne desava kada kliknem na dugme, a kad umesto TextBox.Focused napisem TextBox.Focused == false onda funkcionise, ali ne onako kako bi zeleo jer ubacuje "√" u svaki TextBox.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 11:47 - pre 133 meseci
Umesto simbola za koren može da se koristi stepenovanje. Kvadratni koren je x1/2, kubni koren je x1/3. Korisnik može da koristi kapicu (caret) kao simbol stepenovanja, 2^3=8, 9^(1/2)=3.

Druga opcija je da se koriste funkcije. Standardno se funkcija za kvadratni koren zove sqrt, pa bi u text boxu korisnik mogao da ukuca sqrt(9) i dobije 3.
 
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#10.05.2013. u 11:56 - pre 133 meseci
Nisam pratio temu od pocetka, ali ovo iznad ti ne radi jer kada kliknes na pretpostavljam dugme za korenovanje, u tom trenutku nijedan textbox ti nije u fokusu. Ono sto je u fokusu je to dugme za koje si klinuo.

Probaj da resis to tako sto ces u klasi napraviti privatno polje private TextBox lastFocusedTextBox = null; koje ce biti referenca ka zadnjem TextBoxu koji je bio u fokusu.

Obradi event GotFocus za svaki textbox koji ce raditi: lastFocusedTextBox = sender as TextBox;

Zatim u metodi:
Code (csharp):

private void sqrtt_Click(object sender, EventArgs e)
        {
           
            if (lastFocusedTextBox != null)
            {              
                lastFocusedTextBox.Text += "√";
                lastFocusedTextBox.Select();
                System.Windows.Forms.SendKeys.Send("{RIGHT}");
            }              
        }
 
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 12:17 - pre 133 meseci
Ja bih maksimalno izbegavao ovo SendKeys. Ako je cilj pomeriti kurzor na kraj textboxa onda postoje drugi načini. U WinForms projektu koristi se SelectionStart property, a u WPF projektu koristi se Select funkcija (sa drugim parametrom jednakim nuli).
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 14:03 - pre 133 meseci
Ne bih znao kako se obradjuje event, ako moze neko da obajsni.
 
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#10.05.2013. u 14:51 - pre 133 meseci
Znas sta je samo ni ne znas da znas. :]

Elem, obraditi event znaci vezati handler funkciju za njega.

Ti si to u programu bar jednom uradio kada si napisao funkciju private void sqrtt_Click(object sender, EventArgs e) { ... }

Ono sto se desilo je da se za event Click vezala funkcija pod nazivom sqrtt_Click.

Vezivanje mozes uraditi rucno ili preko dizajnera.
Kada selektujes kontrolu u Properties nadji nesto ovakvo:

Samo nadji GotFocus u listi i klikni 2x na prazno polje desno. Visual Studio ce automatski napraviti funkciju i vezati je za event.
To uradi za sve TextBox-ove za koje zelis da imaju mogucnost da upisu onaj koren znak u njih.

Kada budes imao te prazne handler funkcije u svakoj napisi:
Code (csharp):

lastFocusedTextBox = sender as TextBox;
 


Realno sve to mozes uz pomoc jednog handler-a, ali da te ne bunimo.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#10.05.2013. u 18:53 - pre 133 meseci
Ne postoji GotFocus Event, ali sam sredio i puno vam hvala, ako dodje do jos kojih problema i zastoja javljam se, ako boze zdravlje zavrsim program do 15,16,17 Zamolio bih vas da ga istestirate.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#11.05.2013. u 22:56 - pre 133 meseci
Code:
    double am1;       
            double am2;
            double am3;          
            double.TryParse(am.Text, out am1);          
            int i ;
            int kas = am.TextLength;            
            for (i = 0; i < kas; i++)
            {
                while (char.IsDigit(am.Text[i]))
                {
                    double.TryParse(am.Text, out am2);
                }                
                if (am.Text[i] == '√')
                {
                    double.TryParse(am.Text, out am3);
                    am1 = am2 * Math.Sqrt(am3);
                }
            }

Kod mi izbacuje gresku:
Error 1 Use of unassigned local variable 'am2' C:\Users\Panterloki\Desktop\Planimetrija\Planimetrija\Form1.cs 283 27 Planimetrija
Zelim da ako se unese koren u textbox i string bude oblika n√t da se izracuna priblizna decimalna vrednost tog unesenog izraza.
Ne znam da li bi kod to radio cak i da nema ove greske.
Moze li pomoc?
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#11.05.2013. u 23:23 - pre 133 meseci
Code:
double cu1;         
            double am1;
            double am2;
            double am3;           
            double.TryParse(am.Text, out am1);
            int i = 0;
            int qd;
            int qs;
            string cv = "";
            string cc = "";
            string cc1 = "";
            int kas = am.TextLength;            
            for (i = 0; i < kas; i++)
            {                            
                if (am.Text[i] == '√')
                {
                    qd=i-1;
                    qs = i + 1;
                    int k;
                    int s;
                    for (k=0;k<=qd;k++)
                    {
                        cv= cv + am.Text[k];                        
                    }
                    
                    for (s = at.TextLength; s >= qs; s--)
                    {
                        cc = cc + am.Text[s];
                    }
                    for (int r = cc.Length - 1; r >= 0; r--)
                    {
                        cc1 += cc[i];
                    }                                       
                }
            }
            double.TryParse(cv, out am2);
            double.TryParse(cc1, out am3); 
            am1 = am2 * Math.Sqrt(am3);

Probao sam i ovako ali za bilo koji input za textbox oblika n√t izlzi mi 0 umesto n*Math.Sqrt(t);
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#12.05.2013. u 22:42 - pre 133 meseci
Malo mi je kasno da se mentalno naprežem, pa imam samo savet opšteg tipa. Debaguj kod korak po korak (umesto trčanja sa F5 ideš korak po korak sa F10 i F11). Ako tokom debagovanja u nekom trenutku stanje programa nije onakvo kakvo očekuješ da bude u tom trenutku onda je tu negde i problem.
 
Odgovor na temu

panterloki
Bor

Član broj: 271204
Poruke: 47



+2 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#13.05.2013. u 09:20 - pre 133 meseci
Gde gledam sta se dasava se programom, kako pokrecem do odredjenog dela?
U svakom slucaju imam drugo resenje, ali ne znam kako da preko foreach petlje to resim.
Code:
  string s = am.Text;            
            string[] sr = s.Split('√');
            foreach (string word in sr)
            {
                am2 = Convert.ToDouble(sr);
                am1 = am2 * am2;
            }  

Kako da dodelim vise vrednosti jednoj promenljivoj, pa da onda koristim i prvu, drugu, n-tu vrednost za obradu?
Ili nesto drugo da uradim?
 
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 09:47 - pre 133 meseci
Ne znam šta ovde želiš da postigneš, a istovremeno ne znam šta je krajnji cilj aplikacije, pa ne mogu da odgovorim. Daj mi primer nekog komplikovanijeg inputa i šta program treba da uradi s tim inputom.

Što se tiče debagovanja, iskoristi breakpointe da bi se debager zaustavio na konkretnom mestu u kodu (pozicioniraj kurzor na mesto u kodu i onda F9). Da bi video šta se dešava sa programom moraš da posmatraš promenljive koje su deo programa (promenljive koje si ti tu uveo). Kad pokreneš debager otvore ti se nove kartice imena Auto i Locals, i tu vidiš vrednosti raznih promenljivih, ali vidiš vrednosti samo kad se debager zaustavi u nekom delu koda.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#13.05.2013. u 09:57 - pre 133 meseci
Citat:
Zelim da ako se unese koren u textbox i string bude oblika n√t da se izracuna priblizna decimalna vrednost tog unesenog izraza.


Ovo je napisao čovek...to bi značilo da kada ti uneseš recimo:
5√3 u programu treba da prevedeš u 5*Math.Sqrt(3)
Tako sam ja razumeo...

 
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 10:25 - pre 133 meseci
Taj primer nije dovoljno komplikovan. Da li su sledeći inputi dozvoljeni, i šta je njihov rezultat:


√3
√-3
√*3
√√3
5*√3
5+√3
√3*5
√(3*5)
√5+√3
√(5+√3)
 
Odgovor na temu

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:30 - pre 133 meseci
Citat:
mish_ns:
Citat:
Zelim da ako se unese koren u textbox i string bude oblika n√t da se izracuna priblizna decimalna vrednost tog unesenog izraza.


Ovo je napisao čovek...to bi značilo da kada ti uneseš recimo:
5√3 u programu treba da prevedeš u 5*Math.Sqrt(3)
Tako sam ja razumeo...


Upravo tako, Program je o planimetriji, resava trougao, cetvorouga, i pravilan mnogougao i mogu da se unose vrednosti samo oblika n√t gde su n i t elementi skupa prirodnih brojeva.
 
Odgovor na temu

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:34 - pre 133 meseci
Evo sta sam do sad odradio...Rar fajl Program radjen u 64-bit c# 2010
 
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 10:44 - pre 133 meseci
Ako je to jedini dozvoljeni input, to jest ako mora da postoji simbol √ i moraju da postoje brojevi pre i posle simbola onda bi ovaj kod mogao da bude rešenje:
Code:

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

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

if (params[0].Length == 0 || params[1].Length == 0)
  throw new Exception("Moraju da postoje brojevi levo i desno od simbola '√'");

double n, t;

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

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

double result = n * Math.Sqrt(t);

Plašim se samo da n√t nije jedini dozvoljeni input. Zato sam i postavio pitanje šta je sve dozvoljeni input.
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
*.dynamic.isp.telekom.rs.



+18 Profil

icon Re: Problem sa deklarisanjem varijable unutar if naredbe u c#13.05.2013. u 10:44 - pre 133 meseci
Code:

    Dim index, duzina As Integer
    Dim s1, s2, rez As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        index = TextBox1.Text.IndexOf("√") 'vraća index simbola 
        duzina = TextBox1.Text.Length 'vraća dužinu stringa tj. br. karaktera upisanog izraza
        s1 = TextBox1.Text.Substring(0, index) 'brojevi do simbola npr 5√3 - vraća 5
        s2 = TextBox1.Text.Substring(index + 1, duzina - index - 1) 'brojevi od simbola √ - vraća 3
        rez = s1 * Math.Sqrt(s2) ' rezultat 5*Math.Sqrt(3)
        Label1.Text = rez ' ispis rezultata na formi
    End Sub


meni se ovo čini najlakšim rešenjem...koristio sam VB pošto C# nemam...
Ali vrlo lako možeš prevesti iz VB u C#...
 
Odgovor na temu

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

Strane: 1 2 3 4

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

Postavi temu Odgovori

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