C++ zadaci,resenja,pitanja,tutoriali

Evo još jedan zadatak, onako početnički:

Napiši program koji će ispitati da li je unešeni broj zbunjen (za neki broj se kaže da je zbunjen ako je isti čitan s početka ili s kraja na primjer: 121, 12321 ... )
evo ga
Kod:
#include <iostream>
#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{
    int n,i,s,s1,broj,cifra[100],arfic[100];
    int brojac;
    cin >> n;
    s=0;
    broj=n;
    while (n>0)
    {
        cifra[s]=n%10;
        s=s+1;
        n=n/10;
    }
    cout <<endl;
    s1=s;
    while (broj>0)
    {      
        arfic[s1]=broj%10;
        s1=s1-1;
        broj=broj/10;
    }
    brojac=s;
    for (i=0;i<s;i++)
    {
       if (cifra[i]!=arfic[i+1])
        {  
            brojac=brojac+1;
        }
        
    
    }   
    if (brojac==s)
    { cout << "Broj je zbunjen"<<endl;}
    if (brojac!=s) 
    { cout << "Broj nije zbunjen"<<endl; }    
     
    system ("PAUSE");
    return 0;
     
}
radi li ?? :D
 
ej dobio sam ideju za ovaj sa gradovima.........................samo treba da presortiras niz od najeftinijih deonica i gradova sa najvecim dobitkom i uporedis ih........i ides samo prvih onoliko koliko je broj zadanih deonica :D ...........
Kako to misliš da uporedimo ta dva niza? :think: Ako sam dobro shvatio, mislim da nije tačno - postojaće gradovi između kojih ne postoji direktan put.

Uz kod bi bilo dobro da se objasni zašto je rešenje tačno. Uostalom, ima vremena. :)
 
treba mi pomoc oko oop programa
1 koristeci oop napravi program koji broji cifre unetog broja

newfile.h

Kod:
#ifndef NEWFILE_H
#define	NEWFILE_H

#include <iostream>

class broj
{
public:
    int brojaccifara(int num)
    {
        int brojcif;
        while (num >0)
        {

            num=num/10;
            brojcif++;
        }
        return (brojcif);
    }
}

#endif 	/* NEWFILE_H */

main.cpp
Kod:
#include "newfile.h"
#include <cstdlib>
#include <iostream>
#include <math.h>
#include <string>
using namespace std;

int main(int argc, char** argv)
{
    int n,a;
    cin >> n;
    a = broj.brojaccifara(n);
    cout << a;
    return 0;
    
}
 
ljudi hocu da uradim ono sa zbunjenim brojevima pomocu oop

i za brojeve koji imaju paran broj cifara radi
ali ako unesem 121
kaze da nije zbunjen a jeste

molim pomoc

Kod:
#include <iostream>
#include <math.h>
#include <string>
using namespace std;

class broj
{
public:
    int brojcifara(int num)
    {
        int brojcif=0,a;
        a=num;
        if (a<10)
            brojcif=1;
        else if (a<100)
            brojcif=2;
        else if (a<1000)
            brojcif=3;
        else
            brojcif=4;
        return (brojcif);
    }
    bool provera(int cifre)
    {
        int a;
        bool b;
        a=cifre%2;
        if (a==1)
            b=false;
        else
            b=true;
        return (b);
    }
};

int main(int argc, char** argv)
{
    int n,brojcifara,u;
    bool provera;
    cin >> n;
    u=n;
    broj number;
    brojcifara=number.brojcifara(n);
    provera=number.provera(brojcifara);
    if (provera=true)
    {
        int cifra[brojcifara],c,zbir=0,zbir1=0;
        for (c=1; c<=brojcifara; c++)
        {
            cifra[c]=u%10;
            u=u/10;
        }
        for (c=1; c<=brojcifara/2; c++)
        {
            zbir=zbir+cifra[c];
        }
        for (c=(brojcifara/2)+1; c>=(brojcifara/2)+1 && c<=brojcifara; c++)
        {
            zbir1=zbir1+cifra[c];
        }
        if (zbir==zbir1)
            cout << "Broj je zbunjen";
        else
            cout << "Broj nije zbunjen";
    }
    else
    {
        u=n;
        int cifra[brojcifara],c,zbir=0,zbir1=0;
        for (c = 1; c <= brojcifara; c++) {
            cifra[c] = u % 10;
            u = u / 10;
        }
        for (c=1; c<=brojcifara/2; c++)
        {
            zbir=zbir+cifra[c];
        }
        for (c=(brojcifara/2)+2; c>=(brojcifara/2)+2 && c<=brojcifara; c++)
        {
            zbir1=zbir1+cifra[c];
        }
        if (zbir==zbir1)
            cout << "Broj je zbunjen";
        else
            cout << "Broj nije zbunjen";
    }
    return 0;
    
}
 
Evo još jedan zadatak, onako početnički:

Napiši program koji će ispitati da li je unešeni broj zbunjen (za neki broj se kaže da je zbunjen ako je isti čitan s početka ili s kraja na primjer: 121, 12321 ... )

da li ovo moze da se uzme kao resenje

Kod:
#include <cstdlib>
#include <iostream>
using namespace std;

int brojcifara0(int num)
{
    int a=0,b;
    num=b;
    while (b>0)
    {
        b=b/10;
        a++;
    }
    return (a);
}

int main(int argc, char** argv)
{
    int brojcifara,n,c,a,b,s=0;
    cin >> n;
    brojcifara=brojcifara0(n);
    int cifra[brojcifara];
    for (c=1; c<=brojcifara; c++)
    {
        cifra[c]=n%10;
        n=n/10;
    }
    b=brojcifara;
    for (a=1; a<=brojcifara && b>=1; a++ && b--)
    {
        if (cifra[a]==cifra[b])
        {
            s++;
            continue;
        }
        else
        {
            cout << "Broj nije zbunjen ";
            break;
        }
    }
    if (s==brojcifara)
        cout << "Broj je zbunjen ";
    return 0;
}
 
resio sam ali ne u oop

Kod:
#include <cstdlib>
#include <iostream>
using namespace std;

int brojcifara0(int num)
{
    int a=0,b;
    b=num;
    while (b>0)
    {
        b=b/10;
        a++;
    }
    return (a);
}

int main(int argc, char** argv)
{
    int brojcifara,n,c,a,b,s=0;
    cin >> n;
    brojcifara=brojcifara0(n);
    int cifra[brojcifara];
    for (c=1; c<=brojcifara; c++)
    {
        cifra[c]=n%10;
        n=n/10;
    }
    b=brojcifara;
    for (a=1; a<=brojcifara && b>=1; a++ && b--)
    {
        if (cifra[a]==cifra[b])
        {
            s++;
        }
    }
    if (s==brojcifara)
        cout << "Broj je zbunjen ";
    else
        cout << "Broj nije zbunjen";
    return 0;
}
da li neko moze da mi objasni kako u oop
mislim za ono sa zbunjenim br.
 
Evo ja sam na brzaka nesto nabacao:

main.cpp:
Kod:
#include <iostream>
#include <stdlib.h>
#include "Broj.h"

using namespace std;


int main(int argc, char *argv[])
{
    Zbunjen_broj objekat;
    objekat.da_li_je_broj_zbunjen();
   
    system ("PAUSE");
    return 0;   
}

Broj.cpp:
Kod:
#include <iostream>
#include "Broj.h"


void Zbunjen_broj::da_li_je_broj_zbunjen()
{
   int brojcifara,n,c,a,b,s=0;
    std::cin >> n;
    brojcifara=brojcifara0(n);
    int cifra[brojcifara];
 

 for (c=1; c<=brojcifara; c++)
    {
        cifra[c]=n%10;
        n=n/10;
    }
    b=brojcifara;
    for (a=1; a<=brojcifara && b>=1; a++ && b--)
    {
        if (cifra[a]==cifra[b])
        {
            s++;
        }
    }
    if (s==brojcifara)
        std::cout << "Broj je zbunjen ";
    else
        std::cout << "Broj nije zbunjen";
}

int Zbunjen_broj::brojcifara0(int num)
{
    int a=0,b;
    b=num;
    while (b>0)
    {
        b=b/10;
        a++;
    }
    return (a);
}

Broj.h:
Kod:
#ifndef BROJ_H
#define	BROJ_H

#include <iostream>

class Zbunjen_broj
{
  private: 
   int brojcifara0(int num);           
      
   public:
   void da_li_je_broj_zbunjen();
      
      
};

#endif 	/* NEWFILE_H */

E sad posto sam ja malo pglu ako bih mogao da mi malo bolje objasnis kako funkcionise(koj odredjujemo koj broj je zbunjen a koj nije) posto nisam bas najbolje ukapirao :D
 
Poslednja izmena:
Ovo je bas prost zadatak:

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

using namespace std;

int main(int argc, char *argv[])
{
    string ime,prezime,puno_ime;
    
    cin>>ime;
    cin>>prezime;
     
    puno_ime = ime + " " +prezime;
    
    cout<<puno_ime<<endl;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
EDIT: od zadatka sa gradovima odustajem :D :D :D
Nema veze, samo sam malo razočaran što niko drugi nije ni pokušao da ga radi, iako je krajnje šablonski (glup je reč koja bi, možda, više odgovarala :)).

Predstavimo sistem dat u zadatku kao težinski neusmereni graf (ako ne znate šta je ovo, informišite se - Wikipedia je ovde korisna - pa nastavite sa čitanjem). Gradovi su nam čvorovi, a grane su nam direktni putevi između gradova. Svakom čvoru dodeljuje se određena vrednost. Sam algoritam je klasičan DFS (depth first search tj. dubinska pretraga). Dato nam je mesto početka pretrage (označen grad), i pretragu obavljamo do datog nivoa.

Program se izvršava za manje od jedne sekunde. Takođe, veze između gradova pamtimo na "nestandardan" način - ako je cena neophodna da se pređe iz jednog u drugi grad jednaka -1, tada između njih ne postoji nikakva veza. Kod je u, je l' te, code-u:
Kod:
#include <stdio.h>
#define MaxGrad 32

class Cvor
{
    public:
    int Dobit;
    bool Posecen;
    int Cena [MaxGrad];
};

int n, m, g, start;
int p, q, t;
int s = 0, max = 0, kor = 0;
Cvor cv [MaxGrad];

void DFS (int tren)
{
    ++kor;
    s += cv [tren].Dobit;
    if (kor <= g)
    {
        cv [tren].Posecen = true;
        for (int i = 1; i <= n; i++)
            if (!cv [i].Posecen && cv [tren].Cena [i] != -1 && s >= cv [tren].Cena [i])
            {
                s -= cv [tren].Cena [i];
                DFS (i);
                s += cv [tren].Cena [i];
            }
        cv [tren].Posecen = false;
    }
    else
        if (s > max) max = s;
    s -= cv [tren].Dobit;
    --kor;
}

int main ()
{
    scanf ("%d %d %d", &n, &m, &g);
    for (int i = 1; i <= n; i++)
    {
        scanf ("%d", &cv [i].Dobit);
        cv [i].Posecen = false;
        for (int j = 1; j <= n; j++)
            cv [i].Cena [j] = -1;
    }
    for (int i = 1; i <= m; i++)
    {
        scanf ("%d %d %d", &p, &q, &t);
        cv [p].Cena [q] = t;
        cv [q].Cena [p] = t;
    }
    scanf ("%d", &start);
    DFS (start);
    printf ("%d", max);
    return 0;
}
 
ljudi treba mi pomoc

Kod:
        #include <QTextStream>
        #include <QString>
        #include <QFile>
        #include <iostream>
        using namespace std;
        void main() {
        QFile currentrow("current-row.cr");
        currentrow.open(QIODevice::ReadWrite | QIODevice::Text);
        QTextStream writer(&currentrow);
        int currentRow;
        cin >> currentRow;
        writer << currentRow;
        QString currentAppNumber;
        QString currentAppNumberIndex;
        writer >> currentAppNumberIndex;
        currentAppNumber = "grep " + currentAppNumberIndex + " apps.list > currentapp.list";
        currentrow.close();
        QFile command("command.sh");
        command.open(QIODevice::ReadWrite | QIODevice::Text);
        QTextStream commander(&command);
        commander << currentAppNumber;
        system("sh command.sh");
        command.close();
        QFile currentAppName("currentapp.list");
        currentAppName.open(QIODevice::ReadOnly | QIODevice::Text);
        QTextStream reader(&currentAppName);
        QString appName;
        reader >> appName;
        currentAppName.close();
        cout << appName
        }
ali problem je sledeci

fajl apps.list sadrzi
a 0
b 1
c 2

i ja tu ukucam 0 tj dam vrednost currentRow
ali se ne ispise "a"
primetio sam da u command.sh pise
grep apps.list > currentapp.list
znaci bez 0 izmedju grep i apps.list.......
sta da radim
ovo je neki mali programcic za linux pa nemojte se cuditi .sh .list
hvala unapred i nadam se da cete mi pomoci
OVO MORA SA QT BIBLIOTEKOM
primetio sam da pravim gresku u

Kod:
        QString currentAppNumber;
        QString currentAppNumberIndex;
        writer >> currentAppNumberIndex;
        currentAppNumber = "grep " + currentAppNumberIndex + " apps.list >
kao da nemoze da da vrednost
Kod:
currentAppNumber = "grep " + currentAppNumberInex + " apps.list > currentappname.listcurrentappname.list"

MOLIM POMOC
 
Poslednja izmena:

Back
Top