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

Treba mi pomoc u vezi zadatka iz C#

[es] :: .NET :: Treba mi pomoc u vezi zadatka iz C#

Strane: 1 2

[ Pregleda: 5603 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

jelka993
Novi Sad

Član broj: 311208
Poruke: 5
*.dynamic.isp.telekom.rs.



Profil

icon Treba mi pomoc u vezi zadatka iz C#21.01.2013. u 13:08 - pre 136 meseci
Nova sam sto se tice ovoga pa ako bi neko bio ljubazan da mi uradi jedan zadatak u vezi while nizova?
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#21.01.2013. u 14:28 - pre 136 meseci
Jel moze ovaj?

Code:
int[] brojevi = new int[] {0, 1, 2, 3};
int suma = 0;
int i = 0;
while(i < brojevi.Length)
{
  i++;
  suma += brojevi[i];
}

Console.Writeline("Suma brojeva iz niza je {0}.", suma);
 
Odgovor na temu

jelka993
Novi Sad

Član broj: 311208
Poruke: 5
*.dynamic.isp.telekom.rs.



Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#21.01.2013. u 15:47 - pre 136 meseci
Malo je duzi zadatak, radi se o sledecem:

Treba da postavim pitanje DA LI ZELITE DA RADITE TEST? Ako zeli onda da ukuca DA, ako ne zeli da ukuca NE; ako ukuca nesto drugo da ga opet vrati na pitanje.
Ako je odgovori sa NE samo treba da ispisem DOVIDJENJA ili KRAJ ili bilo sta na tu foru.
E sad, ako je odgovorio sa DA, pitam ga da li zeli da radi test 1 ili test 2. Ako hoce test 1 da ukuca A, ako ce test 2 da ukuca B; a ako je ukucao nesto drugo da ispisem da je pogresan unos i da ga vratim opet na pitanje koji test hoce.
Ako je izabrao A, tu sad ide neko racunanje ali to znam sama i treba da ispisem REZULTAT JE:... i to je kraj.
Ako je izabao B, isto ima neko racunanje i REZULTAT JE...

Uglavnom, ne znam kako da te petlje uradim, to mi deluje kao da je jedna petlja unutar druge ali ne znam kako da to uradim. :(

 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 14:35 - pre 136 meseci
Citat:
jelka993: Malo je duzi zadatak, radi se o sledecem:

Treba da postavim pitanje DA LI ZELITE DA RADITE TEST? Ako zeli onda da ukuca DA, ako ne zeli da ukuca NE; ako ukuca nesto drugo da ga opet vrati na pitanje.
Ako je odgovori sa NE samo treba da ispisem DOVIDJENJA ili KRAJ ili bilo sta na tu foru.
E sad, ako je odgovorio sa DA, pitam ga da li zeli da radi test 1 ili test 2. Ako hoce test 1 da ukuca A, ako ce test 2 da ukuca B; a ako je ukucao nesto drugo da ispisem da je pogresan unos i da ga vratim opet na pitanje koji test hoce.
Ako je izabrao A, tu sad ide neko racunanje ali to znam sama i treba da ispisem REZULTAT JE:... i to je kraj.
Ako je izabao B, isto ima neko racunanje i REZULTAT JE...

Uglavnom, ne znam kako da te petlje uradim, to mi deluje kao da je jedna petlja unutar druge ali ne znam kako da to uradim. :(


nadam se da na ovo mislis

Code (csharp):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             Treba da postavim pitanje DA LI ZELITE DA RADITE TEST?
             * Ako zeli onda da ukuca DA,
             * ako ne zeli da ukuca NE;
             * ako ukuca nesto drugo da ga opet vrati na pitanje.
             * Ako je odgovori sa NE samo treba da ispisem DOVIDJENJA ili KRAJ.
             * ako je odgovorio sa DA, pitam ga da li zeli da radi test 1 ili test 2.
             * Ako hoce test 1 da ukuca A,
             * ako ce test 2 da ukuca B;
             * a ako je ukucao nesto drugo da ispisem da je pogresan unos
             * i da ga vratim opet na pitanje koji test hoce.
             * Ako je izabrao A, tu sad ide neko racunanje i treba da ispisem REZULTAT
             * Ako je izabao B, isto ima neko racunanje i REZULTAT JE...*/


            string test, rez;
            int mat_rez;
        vrati:
            Console.Write("DA LI ZELITE DA RADITE TEST? (DA/NE) ");
            test = Console.ReadLine();
            switch (test.ToUpper())
            {
                case "DA":
                ponovo:
                    Console.Write("Koji test zelite da radite, test1 ili test2? (A/B)");
                    rez = Console.ReadLine();
                    switch (rez.ToUpper())
                    {
                        case "A":
                            //neko racunanje, to sama definisi sta ces da racunas
                            Console.WriteLine("Koliko je 2+2 ? ");
                            int.TryParse(Console.ReadLine(),out mat_rez);
                            if (mat_rez == 4 || mat_rez.ToString() == "cetri") Console.Write("Tacno 4.");
                            else { Console.WriteLine("Netacno, Rezultat je 4."); goto ponovo; };
                            break;
                        case "B":
                            //neko racunanje, to sama definisi sta ces da racunas
                            Console.WriteLine("Koliko je 3*2 ? ");
                            int.TryParse(Console.ReadLine(),out mat_rez);
                            if (mat_rez == 6 || mat_rez.ToString().ToLower() == "sest") Console.WriteLine("Tacno 6.");
                            else { Console.WriteLine("Netacno, Rezultat je 6."); goto ponovo; };
                            break;
                        default:
                            Console.Write("Pogresan unos!");
                            goto ponovo;
                    }
                    break;
                case "NE":
                    Console.Write("DOVIDJENJA!");
                    break;
                default:
                    goto vrati;
            }
            Console.ReadKey();
        }
    }
}
 


[Ovu poruku je menjao Boyka dana 23.01.2013. u 16:28 GMT+1]

[Ovu poruku je menjao Boyka dana 23.01.2013. u 17:35 GMT+1]
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 14:56 - pre 136 meseci
Stari dobri goto
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.spielo-int.com.

ICQ: 20785904


+4 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 15:00 - pre 136 meseci
@boyka

Sta se desava ako slovima odgovori : "cetri"?
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 15:27 - pre 136 meseci
Citat:
sallle: @boyka

Sta se desava ako slovima odgovori : "cetri"?


E dobro si me podsetio, na brzinu sam ovo uradio,

uglavnom, postoje dva resenja:

prvo je da samo kaze if(mat_rez.ToString().ToLower() == "cetri") {//radi}

drugo je da ogranicimo da je samo moguce uneti broj,
int rezultat;
bool mat_rez = int.TryParse(Console.ReadLine(), out rezultat);


Ispravio sam sa prvim resenjem...
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
46.174.103.*



+20 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 15:35 - pre 136 meseci
@jelka993, da li vam je dozvoljeno da koristite skokove (goto) ?
 
Odgovor na temu

sallle
Sasa Ninkovic
GTECH
Beograd

Član broj: 146
Poruke: 480
*.static.sbb.rs.

ICQ: 20785904


+4 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 16:04 - pre 136 meseci
@boyka

Code:

int mat_rez = int.Parse(Console.ReadLine());
if (mat_rez == 4 || mat_rez.ToString().ToLower() == "cetri") Console.Write("Tacno 4.");


1. red ce da baci invalid cast exception, za uneto "cetri"
 
Odgovor na temu

jelka993
Novi Sad

Član broj: 311208
Poruke: 5
*.dynamic.isp.telekom.rs.



Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 16:23 - pre 136 meseci
Mozemo da koristimo sta hocemo, jer sami kuci sastavljamo zadatak i donesemo na ispit, ali ja taj zadatak moram da objasnim profesoru da vidi da razumem to sto sam uradila. Hvala na pomoci, mada ne smem da upotrebim taj zadatak jer ima dosta stvari koje nismo radili na vezbama pa necu znati da objasnim. Ali sacuvacu ga, kontam da ce mi pomoci kasnije. :)

Sad imam krace pitanje, sta je STATIC VOID MAIN. PRIVATE STATIC VOID I PUBLIC STATIC VOID? Ta tri treba da objasnim na ispitu, pa ako moze neko da mi objasni ali nekim jednostavnijim recenicama jer sam jos pocetnik.

 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 16:54 - pre 136 meseci
Citat:
jelka993: Mozemo da koristimo sta hocemo, jer sami kuci sastavljamo zadatak i donesemo na ispit, ali ja taj zadatak moram da objasnim profesoru da vidi da razumem to sto sam uradila. Hvala na pomoci, mada ne smem da upotrebim taj zadatak jer ima dosta stvari koje nismo radili na vezbama pa necu znati da objasnim. Ali sacuvacu ga, kontam da ce mi pomoci kasnije. :)

Sad imam krace pitanje, sta je STATIC VOID MAIN. PRIVATE STATIC VOID I PUBLIC STATIC VOID? Ta tri treba da objasnim na ispitu, pa ako moze neko da mi objasni ali nekim jednostavnijim recenicama jer sam jos pocetnik.


probaj ovo:

Code (csharp):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             Treba da postavim pitanje DA LI ZELITE DA RADITE TEST?
             * Ako zeli onda da ukuca DA,
             * ako ne zeli da ukuca NE;
             * ako ukuca nesto drugo da ga opet vrati na pitanje.
             * Ako je odgovori sa NE samo treba da ispisem DOVIDJENJA ili KRAJ.
             * ako je odgovorio sa DA, pitam ga da li zeli da radi test 1 ili test 2.
             * Ako hoce test 1 da ukuca A,
             * ako ce test 2 da ukuca B;
             * a ako je ukucao nesto drugo da ispisem da je pogresan unos
             * i da ga vratim opet na pitanje koji test hoce.
             * Ako je izabrao A, tu sad ide neko racunanje i treba da ispisem REZULTAT
             * Ako je izabao B, isto ima neko racunanje i REZULTAT JE...*/


            string test, rez;
            int mat_rez;
        vrati:
            Console.Write("DA LI ZELITE DA RADITE TEST? (DA/NE) ");
            test = Console.ReadLine();
            if(test.ToUpper() == "DA")
            {
                ponovo:
                    Console.Write("Koji test zelite da radite, test1 ili test2? (A/B)");
                    rez = Console.ReadLine();
                    if(rez.ToUpper() == "A")
                    {
                            //neko racunanje, to sama definisi sta ces da racunas
                            Console.WriteLine("Koliko je 2+2 ? ");
                            int.TryParse(Console.ReadLine(),out mat_rez);
                            if (mat_rez == 4) Console.Write("Tacno 4.");
                            else { Console.WriteLine("Netacno, Rezultat je 4."); goto ponovo; };
                    }
                    else if(rez.ToUpper() == "B")
                    {
                            //neko racunanje, to sama definisi sta ces da racunas
                            Console.WriteLine("Koliko je 3*2 ? ");
                            int.TryParse(Console.ReadLine(),out mat_rez);
                            if (mat_rez == 6) Console.WriteLine("Tacno 6.");
                            else { Console.WriteLine("Netacno, Rezultat je 6."); goto ponovo; };
                    }
                    else
                    {
                            Console.Write("Pogresan unos!");
                            goto ponovo;
                    }
            }
            else if(test.ToUpper() == "NE")
            {
               Console.Write("DOVIDJENJA!");
            }
            else
            {
               goto vrati;
            }
            Console.ReadKey();
        }
        }
    }
 


goto - sluzi da bi preskocila neki deo koda, sama mu rec kaze, to je najlaksi nacin skoka,
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
*.dynamic.isp.telekom.rs.



+104 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 17:47 - pre 136 meseci
Citat:
goto - sluzi da bi preskocila neki deo koda, sama mu rec kaze, to je najlaksi nacin skoka,

i generalno ne bi trebalo da je koristiš :)

Koristi while petlje
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 21:38 - pre 136 meseci
@vujkev znam da ne treba forsirati taj goto, ali mi nikad nije bilo jasno zasto, guglao sam sad ima stackoverflow-u bas rasprava....

evo bez goto

Code (csharp):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             Treba da postavim pitanje DA LI ZELITE DA RADITE TEST?
             * Ako zeli onda da ukuca DA,
             * ako ne zeli da ukuca NE;
             * ako ukuca nesto drugo da ga opet vrati na pitanje.
             * Ako je odgovori sa NE samo treba da ispisem DOVIDJENJA ili KRAJ.
             * ako je odgovorio sa DA, pitam ga da li zeli da radi test 1 ili test 2.
             * Ako hoce test 1 da ukuca A,
             * ako ce test 2 da ukuca B;
             * a ako je ukucao nesto drugo da ispisem da je pogresan unos
             * i da ga vratim opet na pitanje koji test hoce.
             * Ako je izabrao A, tu sad ide neko racunanje i treba da ispisem REZULTAT
             * Ako je izabao B, isto ima neko racunanje i REZULTAT JE...*/

            do
            {
                string test, rez;
                int mat_rez;
                Console.Write("DA LI ZELITE DA RADITE TEST? (DA/NE) ");
                test = Console.ReadLine();
                if (test.ToUpper() == "DA")
                {
                    Console.Write("Koji test zelite da radite, test1 ili test2? (A/B)");
                    rez = Console.ReadLine();
                    if (rez.ToUpper() == "A")
                    {
                        //neko racunanje, to sama definisi sta ces da racunas
                        Console.WriteLine("Koliko je 2+2 ? ");
                        int.TryParse(Console.ReadLine(), out mat_rez);
                        if (mat_rez == 4) { Console.Write("Tacno 4."); break; }
                        else { Console.WriteLine("Netacno, Rezultat je 4."); break; }
                    }
                    else if (rez.ToUpper() == "B")
                    {
                        //neko racunanje, to sama definisi sta ces da racunas
                        Console.WriteLine("Koliko je 3*2 ? ");
                        int.TryParse(Console.ReadLine(), out mat_rez);
                        if (mat_rez == 6) { Console.WriteLine("Tacno 6."); break; }
                        else { Console.WriteLine("Netacno, Rezultat je 6."); break; };
                    }
                    else
                    {
                        Console.Write("Pogresan unos!");
                        break;
                    }
                }
                else if (test.ToUpper() == "NE")
                {
                    Console.Write("DOVIDJENJA!");
                    break;
                }
            } while (true);
        }
    }
}
                 
 


[Ovu poruku je menjao Boyka dana 23.01.2013. u 22:56 GMT+1]

[Ovu poruku je menjao Boyka dana 23.01.2013. u 22:57 GMT+1]

[Ovu poruku je menjao Boyka dana 23.01.2013. u 23:02 GMT+1]
 
Odgovor na temu

lonelyrider_44
Zrenjanin

Član broj: 42310
Poruke: 445
46.174.103.*



+20 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 21:44 - pre 136 meseci
Strukturirano programiranje
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#23.01.2013. u 22:05 - pre 136 meseci
Citat:
vujkev:
Citat:
goto - sluzi da bi preskocila neki deo koda, sama mu rec kaze, to je najlaksi nacin skoka,

i generalno ne bi trebalo da je koristiš :)

Koristi while petlje


bolje do-while
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#24.01.2013. u 10:30 - pre 136 meseci
Zasto?
 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#24.01.2013. u 12:55 - pre 136 meseci
I mene zanima
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#24.01.2013. u 14:40 - pre 136 meseci
GOTO naredba se u C# (ne znam kako je u ostalim prog. jezicima) smatra lošom praksom jer dovodi do pisanja špageti koda.

Primer sa MSDN-a:
Code:

public class GotoTest1 
{
   public static void Main() 
   {
      int x = 200, y = 4;
      int count = 0;
      string[,] myArray = new string[x,y];

      // Initialize the array:
      for (int i = 0; i < x; i++) 
         for (int j = 0; j < y; j++)
            myArray[i,j] = (++count).ToString();      
   
      // Read input:
      Console.Write("Enter the number to search for: ");

      // Input a string:
      string myNumber = Console.ReadLine();

      // Search:
      for (int i = 0; i < x; i++)
         for (int j = 0; j < y; j++)
            if (myArray[i,j].Equals(myNumber))
               goto Found;

      Console.WriteLine("The number {0} was not found.", myNumber);
      goto Finish;

   Found:
      Console.WriteLine("The number {0} is found.", myNumber);

   Finish: 
      Console.WriteLine("End of search.");
   }
}


1. Prvo smo inicijalizovali promenljive x i y i kreirali niz. OK
2. Inicijalizovali smo niz. OK
3. Od korisnika tražimo da unese broj. OK
4. Vršimo pretragu niza i ako uspemo da pronađemo broj skačemo na liniju Found. Nije OK, jer umesto da nastavimo sa čitanjem koda, skrolujemo do linije Found da vidimo šta se tamo dešava, pa onda pokušavamo da se vratimo tamo gde smo stali. Pri tom moramo da skočimo na vrh koda da vidimo vrednosti za x i y i proverimo da li su te vrednosti u međuvremenu promenjene (pošto nisu const / readonly).
5. Ispisujemo da nismo pronašli broj i skačemo na liniju Finish. Nije OK jer ponovo jurimo po kodu i pokušavamo da shvatimo šta se dešava.

Ovaj primer je jednostavan jer sadrži samo 2 goto naredbe, ali kada debagujemo aplikaciju sa više goto naredbi onda je jako teško shvatiti šta je pisac želeo da kaže.

Prethodni primer bih refaktorisao na sledeći način:
Code:

internal class Program
{
    private static void Main(string[] args)
    {
        var myArray = CreateArray(200, 4);

        Console.Write("Enter the number to search for: ");

        string myNumber = Console.ReadLine();

        if (myArray.Contains(myNumber))
        {
            Console.WriteLine("The number {0} is found.", myNumber);
        }
        else
        {
            Console.WriteLine("The number {0} was not found.", myNumber);
        }

        Console.WriteLine("End of search.");
    }

    private static string[,] CreateArray(int x, int y)
    {
        var myArray = new string[x, y];

        int count = 0;
        for (int i = 0; i < x; i++)
        {
            for (int j = 0; j < y; j++)
            {
                myArray[i, j] = (++count).ToString(CultureInfo.InvariantCulture);
            }
        }

        return myArray;
    }
}

public static class ArrayHelpers
{
    public static bool Contains(this string[,] myArray, string number)
    {
        if (myArray == null)
        {
            return false;
        }

        foreach (var item in myArray)
        {
            if (item == number)
            {
                return true;
            }
        }

        return false;
    }
}


1. Kreiram matricu 200x4. Ne zanimaju me detalji.
2. Od korisnika tražim da unese broj.
3. Gledam da li postoji broj. Opet me ne zanima po kom algoritmu. Ako broj postoji ispisujem jednu poruku, ako ne postoji, ispisujem drugu poruku.

Ovaj primer ima više linija koda, ali je dosta fleksibilniji od prvog.

1. CreateArray metodu mogu da iskoristim na više mesta umesto da radim C/P.
2. Contains metoda radi sa bilo kojim dvodimenzionalnim nizom, a iz naziva se već vidi šta radi. Nije potrebno komentarisati / tumačiti parče koda gde se ova metoda poziva :)
 
Odgovor na temu

Boyka
BPS

Član broj: 287185
Poruke: 338
*.dynamic.isp.telekom.rs.



+33 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#24.01.2013. u 20:14 - pre 136 meseci
Citat:
Shadowed:
Zasto?


Zbog preglednosti, nista vise.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: Treba mi pomoc u vezi zadatka iz C#24.01.2013. u 22:25 - pre 136 meseci
Cek, kako je do-while preglednije od while? Nikad cuo..
 
Odgovor na temu

[es] :: .NET :: Treba mi pomoc u vezi zadatka iz C#

Strane: 1 2

[ Pregleda: 5603 | Odgovora: 23 ] > FB > Twit

Postavi temu Odgovori

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