C++ zadaci,resenja,pitanja,tutoriali

std ti je namespace odnosno ja bih rekao da je namespace donekle kao package u tom c#...kad ti kazes "using namespace std" ti kazes komplajeru gledaj u std gde se zapravo nalaze te nardebe cout i endl i zato ti onda ne pises

Kod:
std::cout<<" "<<std::endl;

nego samo
Kod:
cout<<" "<<endl;

jer si mu rekao gde da trazi tu naredbu...generalno iskusniji programeri kazu da ne treba koristiti to "using namespace" jer uopste svrha namespace-ova jeste da u vecim projektima ne dodje da dve funkcije ili varijable imaju isto ime pa da dodje do greske

Uzmi ovo za primer:
Kod:
#include <cstdlib>
#include <iostream>

using namespace std;



namespace bu
{
  void nesto()
  {
     cout<<"nesto"<<endl;  
   }        
}

namespace mu
{
   void nesto()
   {
     cout<<"nesto"<<endl;   
   }
          
}

using namespace mu;
using namespace bu;

int main(int argc, char *argv[])
{
   nesto();
    
    system("PAUSE");
    return EXIT_SUCCESS;
}

Ovde dodje do greske jer komplajer gleda i u "mu" i u" bu" i nalazi na istu funkciju i nezna koju da pozove...a da sam izbacio using namespace fu i bu i napisao

bu::nesto();
ili
mu::nesto();

problema ne bih bilo..:mrgreen:..Inace kao sto vidis i ti mozes napraviti svoje namesapce-ove

samo ides:

Kod:
namespace nekoIme
{
//sve klase i funkcije koje hoces tu da se nalaze
}

I onda koristis ovaj "::" operator da kazes gde da trazi..nesto tipa

Kod:
nekoIme::nekaFunkcija();

Ovo ispalo ko tutorial o namesapace-ovima..:p nadam se da si ukapirao
 
Poslednja izmena:
a evo ti i taj sa random int....:D :D.....
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static int RandomNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }
        static void Main(string[] args)
        {
            int pokusaj,n;
            n = RandomNumber(1,100);



            for (int i = 1; i <= 20; i++)
            {
                pokusaj = Int32.Parse(Console.ReadLine());
                if (pokusaj > n)
                {
                    Console.WriteLine("Probajte sa manjim brojem");
                }
                if (pokusaj < n)
                {
                    Console.WriteLine("Probajte sa vecim brojem");
                }
                if (pokusaj == n)
                {
                    Console.WriteLine("BROJ POGODJEN");
                }
            }

        }
    }
}

А шта ако погодиш рецимо из 12. покушаја број и испише ти "БРОЈ ПОГОЂЕН", шта се дешава следећих 8 пролаза фор петље? Мислим да би требао ставити бреак у опцији за иф (покушај == н).

Такође би други и трећи иф требао ставити као елсе иф, јер ти овако сваки пут провјерава сва три услова, а кад би ставио како сам ти рекао, онда у случају да је први иф услов испуњен, други и трећи уопште неће провјеравати (што је и логично у овом случају, јер може бити само једна од три варијанте).
То у овом програму нема неког великог утицаја, али је добро да стекнеш навику зато што се ситнице често знају накупити, па бити значајне. Одмах се учи да оптимизујеш код. ;)

Такође ја имам обичај писати фор (и = 0; и < 20; и++) умјесто овог твог примјера јер кад будеш радио са низовима, па нпр. имаш низ од 20 елемената, индекси су им од 0 до 19, па ћеш писати овако као што сам малоприје напоменуо. Само још једна препорука, у суштини дође слично, само што би ти за индексе по твом систему умјесто низ(и) писао низ(и-1). :)

ok....hvala.....vidim da nije puno tesko.....samo mi reci sta je std.........znam ono using namespace std; al nzm sto to sad pises isppred cin >> i cout << ?? :D :D

стд је стандард => то ти је, колико ја знам, једна од оних стандардних библиотека. У њој се рецимо налазе ф-је за улаз и излаз, цин и цоут, а >> и << су једноставно дијелови синтаксе, правила писања.

Надам се да сам погодио на шта си мислио (иако ниси мене питао :) )...

И ускоро почињем са Ц++, па ћу вам се придружити. :)

ЕДИТ: Сад сам видио да је одговорено на 2. страници.
 
Poslednja izmena:
evo kod "igrice" je preprvaljen i u njega sam dodao par stvari.............c#
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static int RandomNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }
        static void Main(string[] args)
        {
            int pokusaj, n, brojPoena; 
            int q;
            string tezina;
            q = 0;
            n = RandomNumber(1, 100);
            Console.WriteLine("Izabrerite level: ");
            Console.WriteLine("easy");
            Console.WriteLine("medium");
            Console.WriteLine("hard");
            tezina = Console.ReadLine();
            if (tezina == "hard")
            {
                q = 5;
                Console.WriteLine("Izabrali ste level : HARD . Imate 5 pokusaja");
                brojPoena = 40;
                for (int i = 1; i <=q; i++)
                {
                    Console.Write("{0}:     ", i);
                    pokusaj = Int32.Parse(Console.ReadLine());
                    if (i == 5)
                    {
                        Console.WriteLine("Broj nije pogodjen: {0}", n);
                        Console.WriteLine("GAME OVER");
                        Console.ReadLine();
                        break;
                    }
                    if (pokusaj > n)
                    {
                        Console.WriteLine("Probajte sa manjim brojem");
                        brojPoena = brojPoena - 2;
                    }
                    if (pokusaj < n)
                    {
                        brojPoena = brojPoena - 2;
                        Console.WriteLine("Probajte sa vecim brojem");
                    }
                    if (pokusaj == n)
                    {
                        
                        Console.WriteLine("BROJ POGODJEN");
                        Console.WriteLine("Osvojeno poena : {0}", brojPoena);
                        Console.ReadLine();
                        break;
                    }
                    

                }
            }
            
            if (tezina == "medium")
            {
                q = 10;
                Console.WriteLine("Izabrali ste level : MEDIUM . Imate 10 pokusaja");
                brojPoena = 30;
                for (int i = 1; i <= q; i++)
                {
                    Console.Write("{0}:     ", i);
                    pokusaj = Int32.Parse(Console.ReadLine());
                    if (i == 10)
                    {
                        Console.WriteLine("Broj nije pogodjen: {0}", n);
                        Console.WriteLine("GAME OVER");
                        Console.ReadLine();
                        break;
                    }
                    if (pokusaj > n)
                    {
                        Console.WriteLine("Probajte sa manjim brojem");
                        brojPoena = brojPoena - 1;
                    }
                    if (pokusaj < n)
                    {
                        brojPoena = brojPoena - 1;
                        Console.WriteLine("Probajte sa vecim brojem");
                    }
                    if (pokusaj == n)
                    {
                        Console.WriteLine("BROJ POGODJEN");
                        Console.WriteLine("Osvojeno poena : {0}", brojPoena);
                        Console.ReadLine();
                        break;
                    }
                    
                }
             }
             if (tezina == "easy")
                {
                    q = 20;
                    Console.WriteLine("Izabrali ste level : EASY . Imate 20 pokusaja");
                    brojPoena = 20;
                for (int i = 1; i <= q; i++)
                {
                    Console.Write("{0}:     ", i);
                    pokusaj = Int32.Parse(Console.ReadLine());
                    if (i == 20)
                    {
                        Console.WriteLine("Broj nije pogodjen: {0}", n);
                        Console.WriteLine("GAME OVER");
                        Console.ReadLine();
                        break;
                    }
                    if (pokusaj > n)
                    {
                        Console.WriteLine("Probajte sa manjim brojem");
                        brojPoena = brojPoena - 1 ;
                    }
                    if (pokusaj < n)
                    {
                        brojPoena = brojPoena - 1;
                        Console.WriteLine("Probajte sa vecim brojem");
                    }
                    if (pokusaj == n)
                    {
                        Console.WriteLine("BROJ POGODJEN");
                        Console.WriteLine("Osvojeno poena : {0}", brojPoena);
                        Console.ReadLine();
                        break;
                    }
                    
                }
            }
    }
    }
    }
JEL VALJA ?? :D :D :D

EDIT: hvala bequick i naravno DarkSoul :D :D....ovo za std :D
 
Ah bre morao sam da instaliram Visual Studio zbog tebe:p...Program radi super ali mogao si malo da ga skratis(nema potrebe da ponavjas neke delove koda)..nesto tipa ovako :


Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static int RandomNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }
        static void Main(string[] args)
        {
            int pokusaj, n, brojPoena  = 0;
            int q;
            int scor = 0;
            string tezina;
            q = 0;
            n = RandomNumber(1, 100);
            Console.WriteLine("Izabrerite level: ");
            Console.WriteLine("easy");
            Console.WriteLine("medium");
            Console.WriteLine("hard");
            tezina = Console.ReadLine();
            if (tezina == "hard")
            {
                q = 5;
                scor = 2;
                brojPoena = 40;
                Console.WriteLine("Izabrali ste level : HARD . Imate 5 pokusaja");
            }

            if (tezina == "easy")
            {
                q = 20;
                scor = 1;
                brojPoena = 20;
                Console.WriteLine("Izabrali ste level : EASY . Imate 20 pokusaja");
            }

            if (tezina == "medium")
            {
                q = 10;
                scor = 1;
                brojPoena = 30;
                Console.WriteLine("Izabrali ste level : MEDIUM . Imate 10 pokusaja");
            }
            
           
            for (int i = 1; i <= q; i++)
            {
                Console.Write("{0}:     ", i);
                pokusaj = Int32.Parse(Console.ReadLine());
                if (i == q)
                {
                    Console.WriteLine("Broj nije pogodjen: {0}", n);
                    Console.WriteLine("GAME OVER");
                    Console.ReadLine();
                    break;
                }
                if (pokusaj > n)
                {
                    Console.WriteLine("Probajte sa manjim brojem");
                    brojPoena = brojPoena - scor;
                }
                if (pokusaj < n)
                {
                    brojPoena = brojPoena - scor;
                    Console.WriteLine("Probajte sa vecim brojem");
                }
                if (pokusaj == n)
                {

                    Console.WriteLine("BROJ POGODJEN");
                    Console.WriteLine("Osvojeno poena : {0}", brojPoena);
                    Console.ReadLine();
                    break;
                }


            }
        }

    }
}

Neznam ja c# pa sam mozda i pogresio negde ali trebalo bi da je sve ok.
 
Poslednja izmena:
bequick..................naravno moze i tako :D :D :D.........neka ok ti je i da imas vs bas zbog ovakvih primera :D....daj novi zadatak........ae ae :D :D .....i DarkSoul to za nizove nije tacno........msm ja ne indeksiram a[i-1] vec a i bas mi radi ok......jer najbolje znam nizove.........1000000 zadataka sam uradio sa ovakvim i=1;i<=n;i++ i svaki radi normalno :D :D.....nzm ok......hvala :D :D
 
a cekaj odakle mi tolike reci.....msm mogu da napravim nasumicnu rec "wnipsmq" al ko ce da je pogodi........logicnije bi bilo da ima veliki broj reci iz neke baze ili datoteke i da izabere nasumicnu.......al i to ima svojih mana........i to sa crtanjem nzm........ae malo pomozi to je veliki korak :D :D
 
Pa ne treba tebi 100 reci i desetak je dovojno mozes samo naprimer napraviti

Kod:
string grupa_reci[5]={"funkcije","pointeri","klasa","petlja","varijable"};

ako hoces vise mozes mozda da ih upises u txt fajl pa da ih iscitas...nemora da bude graficki program znaci napravi u konzoli i slobodno pogledaj malo po netu:
Evo pogledaj moj polu-zavrseni kod(trebam jos neke stvari da ispravim) i malo da organizujem

Kod:
#include <cstdlib>
#include <iostream>
#include <string>
#include <ctime>

using namespace std;

int pokusaj,promasaj = 0;

string grupa_reci[5]={"funkcije","pointeri","klasa","petlja","varijable"};

string izabrana_rec;


char slovo;

bool kraj_igre = false;

int main(int argc, char *argv[])
{
    cout<<"Jednostavna Hangman Igra"<<endl;
    cout<<endl; 
    srand(time(0));
    izabrana_rec = grupa_reci[rand()%4];
    
   string  uneta_rec(izabrana_rec.size(), '-');  
    
  while( promasaj <=6)
  { 
   cin>>slovo;       
         
  if(izabrana_rec.find(slovo) != string::npos)
  { 
  cout<<"Pogodili ste slovo: "<<slovo<<" cestitamo!"<<endl;  
  for(int i = 0; i<izabrana_rec.length();++i)
  if( izabrana_rec[i] == slovo)
  uneta_rec[i] = slovo;
  cout<<uneta_rec<<endl;
  promasaj = 0;
 }                   
  else
  {
  cout<<"Data rec ne sadrzi slovo: "<<slovo<<"  pokusajte ponovo :D"<<endl;
  ++promasaj;
}
  if(uneta_rec == izabrana_rec)
  cout<<"cestitamo pogodili ste"<<endl;
  
  
  
  if(promasaj == 1)
  {
           cout<<endl<<endl 
   <<"   +----+  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"  ============="<<endl<<endl;          
   }
   else if(promasaj == 2)
   {  cout<<endl<<endl 
   <<"   +----+  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |    O  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"  ============="<<endl<<endl; 
    } 
    else if(promasaj == 3)
    {
        cout<<endl<<endl 
   <<"   +----+  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |    O  "<<endl 
   <<"   |   /|  "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"  ============="<<endl<<endl; 
    } 
    else if(promasaj == 4)
    {
        cout<<endl<<endl 
   <<"   +----+  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |    O  "<<endl 
   <<"   |   /|\\ "<<endl 
   <<"   |       "<<endl 
   <<"   |       "<<endl 
   <<"  ============="<<endl<<endl; 
     }
     else if(promasaj == 5)
     {
         cout<<endl<<endl 
   <<"   +----+  "<<endl 
   <<"   |    |  "<<endl 
   <<"   |    O  "<<endl 
   <<"   |   /|\\ "<<endl 
   <<"   |     \\ "<<endl 
   <<"   |       "<<endl 
   <<"  ============"<<endl<<endl; 
 } 
 else if(promasaj == 6)
 { cout<<endl<<endl 
   <<"   +----+     "<<endl 
   <<"   |    |     "<<endl 
   <<"   |    O     "<<endl 
   <<"   |   /|\\   "<<endl 
   <<"   |   / \\   "<<endl 
   <<"   |Your Dead "<<endl 
   <<"  ============"<<endl<<endl; 
 } 
     
}
                       
  
              
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
ako imas niz stringova trebas samo nasumucni index..............moglo bi se u .txt datoteku ispisati 50 reci i onda ih redom citati i "stavljati u niz"......i trazim random index.......al problem bi bio razlicita duzna reci.....pa bi trebalo i sistem bodovanja tj. crtanja cicaglise modifikovati odnosno prilagoditi duzini reci........napisacu to popodne jer sam sad u skoli......ovu porukq iz skole pisem a ovde nemamo vs c#........ima dev c++ al nesto mi mrsko tu radit'.......pa ce kod da bude vcrs.........ideja ti je op bequick.........brw :D :D :D :D :D :D
 
Pa mozes napraviti tri fajla: teske_reci.txt ,lake_reci,.txt,srednje_reci.txt i onda u zavisnosti sta korisnik izabere citati odatle reci...znaci ako izabere easy_mode uzimati reci iz lake_reci.txt...Sto se tice samog random odabira reci iz fajla, konsultovao sam se sa svemocinm vladarom ovog sveta(Google) i nema potrebe citati reci iz fajla pa upisivati u neki index pa odatle nasumicno izvlaciti..postoji i laksi nacin...nesto ovako

Kod:
ifstream lake_reci;

lake_reci.open("lake_reci.txt");

string rec;
string izabrana_rec;
int broj_reci = 0;
while(getline(lake_reci,rec))
{
if((rand()%++broj_reci)==0)
izabrana_rec = rec;
}

Ovde manje vise citamo liniju po liniju i ako kojim slucajem random+broj date reci jednak nuli ta rec ce biti uzeta i naravno svaki put je drugacija...:D
 
Ma pram neki mini notes pa sad u podesavanjima da mozes da podesavas boju lista tj background
i sad ta podesavanja moram da sacuvam u fajl mynotes.conf
a u tom fajlu se nalazi i jos puno stvari za podesavanje pa ne moze da se brise
i onda pri dizanju programa da background oboji po tom fajlu tj da procita samo tu liniju
hvala unapred
 
bequick..................naravno moze i tako :D :D :D.........neka ok ti je i da imas vs bas zbog ovakvih primera :D....daj novi zadatak........ae ae :D :D .....i DarkSoul to za nizove nije tacno........msm ja ne indeksiram a[i-1] vec a i bas mi radi ok......jer najbolje znam nizove.........1000000 zadataka sam uradio sa ovakvim i=1;i<=n;i++ i svaki radi normalno :D :D.....nzm ok......hvala :D :D


U C-u ako alociram memoriju kao:

int* niz;
niz = malloc (n*sizeof(int));

onda indeksi niza idu od 0 do n-1, jer je a[n-1] isto što i *(a+n-1), pa od *(a+0) do *(a+n-1) dođe n elemenata. :)

Moguće je da tebi radi drugačije na C#, nisam siguran. :)
 
evo ljudi napravio sam oo program koji racuna presek sva skupa A i B u c#........moze li se ovaj kod ikako skratiti ili da bude manji........pomozite ako znate jer sam nov u objektnom programiranju i zato nisam siguran :D :D eevo klase
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class skup
    {
        public int[] elementi=new int [100];
        public int brojElemenata()
        {
            int n;
            n = Int32.Parse(Console.ReadLine());
            return n;
        }
        public int element()
        {
            int w;
                w=Int32.Parse(Console.ReadLine());
                return w;
        }
        public int presjekSkupova(int q, int w)
        {
            int elementPresjeka;
            elementPresjeka = 0;
            if (q == w)
            {
                elementPresjeka = q;
              
            }
            return elementPresjeka;
        }
        public bool postojanostNule(int[] niz, int q)
        {
            bool nula=false;
            for (int i=1;i<=q;i++)
            {
                if (niz[i]==0)
                {
                    nula=true;
                }
            }
            return nula;
       }
    }
}

a evo i programa :D :D
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int brojac,q;
            bool bul=false,bul1=false;
            brojac=0;
            int[] elementiPresekaSkupova=new int[100];
            skup A = new skup();
            Console.WriteLine("Unsite kardinalni (broj elemenata) skupa A:  ");
            int n = A.brojElemenata();
            for (int i = 1; i <= n; i++)
            {
                Console.WriteLine("Unesite {0} element skupa A", i);
                A.elementi[i] = A.element();
            }
            skup B = new skup();
            Console.WriteLine("Unsite kardinalni (broj elemenata) skupa B:  ");
            int n1 = B.brojElemenata();
            for (int i=1;i<=n1;i++)
            {
                Console.WriteLine("Unsite kardinalni (broj elemenata) skupa B:  ");
                B.elementi[i]=B.element();
            }
            for (int i = 1; i <= n; i++)
            {
                for (int j = 1; j <= n1; j++)
                {
                    q = A.presjekSkupova(A.elementi[i], B.elementi[j]);
                    if (q != 0)
                    {
                        brojac = brojac + 1;
                        elementiPresekaSkupova[brojac] = q;
                    }
                }
            }
            bul = A.postojanostNule(A.elementi, n);
            bul1 = B.postojanostNule(B.elementi, n);
            if (bul=bul1)
            {
                brojac = brojac + 1;
                elementiPresekaSkupova[brojac + 1] = 0;
            }

            Console.WriteLine("Elementi preseka supova A i B su:");
            for (int i = 1; i <= brojac; i++)
            {
                Console.WriteLine(elementiPresekaSkupova[i]);
            }
            Console.ReadLine();

        }
    }
}
e sad kad pogledate probajte to skontat :D :D
 

Back
Top