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

[Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora

[ Pregleda: 5715 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

ilDuceo
Novi Sad, Vojvodina

Član broj: 74882
Poruke: 252
*.adsl.sezampro.yu.



+1 Profil

icon [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora12.11.2006. u 22:40 - pre 212 meseci
Dobio sam sledeci zadatak:


Duz kruznog puta nalazi se N gradpva i u svakom od njih postoji prodavnica televizora.
Poznata je cena televizora u svakom gradu, i cena voznje do sledeceg grada sa povratkom.
Za mestane svakog grada odrediti grad u kome ce najekonomicnije proci prilikom kupovine televizor,
kao i u kom smeru mestani treba da putuju do njega.


Ovo je bio neuspeli pokusaj da ga resim:

Code:

#include <stdio.h>

#define MAX_NIZ    100

main ()

{

    int n,t,p,i,x,min,x[MAX_NIZ],y[MAX_NIZ],z[MAX_NIZ];
    
    for (i=0;i<MAZ_NIZ;i++)

    do{
        printf("\n\tProgramizracunava najisplativiju kupovunu\n");
        printf("\nUnesite broj gradova za poredjenje\n");
        scanf("%d",&n);

        printf("\nUnesite redne brojeve gradova\n");
        for i=0;i<n;i++) scanf("%d,&x[i]);

        printf("\nUcesite cene televizora\n");
        scanf("%d",&t);
        
        printf("\nUnesite cenu puta");
        scanf("%d",&p);

    }while (n<1||n>MAX_NIZ);
    min=x[0];
    for(i=0;i<n;i++)
    {
        &u=p+t
        if(x[u]<min) min=x[u]
    }

    printf("Najisplativija kupovina je %d",min);
    printf("U gradu pod rednim brojem %d",i);

}



Moze li mi neko pomoci? (ne resiti ceo zadatak, da ne bude zabune, pa da mi opet obrisu temu)
 
Odgovor na temu

Buffy
Stanko Culaja
Sipovo, BiH

Član broj: 45310
Poruke: 312
*.teol.net.



Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora13.11.2006. u 16:18 - pre 212 meseci
sta mislis da si ovu temu postavio u Art of Programming?
Mozda bi ti tamo neko mogao pomoci.
PozdraV
 
Odgovor na temu

del-boy
Bojan Delić
Beograd

Član broj: 9330
Poruke: 1089

Sajt: www.delic.in.rs


+21 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora13.11.2006. u 19:26 - pre 212 meseci
Ja sam imao skoro isti zadatak samo sa friziderima... Uraido sam ga, ali sam iskomplikovao previše... Kasnije sam se setio da sam mogao iskoristiti operator %., pa ti prepravi program kako ti odgovara! U svakom slučaju zakačio sam ti ga...

I da, ova verzija što sam sakačio računa samo za jedan grad... Ako hoćeš za sve gradove da ti izračuna ubaci sve u petlj.žu.
Prikačeni fajlovi
 
Odgovor na temu

ilDuceo
Novi Sad, Vojvodina

Član broj: 74882
Poruke: 252
*.adsl.sezampro.yu.



+1 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora14.11.2006. u 00:44 - pre 212 meseci
Hvala ti na pomoci, valjda ce sve biti ok sa programom! Pa nije ni cudo sto smo dobili slican zadatak kad idemo na isti fax!:) pozz.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.3dnet.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora14.11.2006. u 12:19 - pre 212 meseci
Pozdrav,

Evo ti malo koda koga sam sklepao ne brzinu i nisam ga bas istestirao, pa su
moguće i anomalije. Program namerno nisam dovršio, a doveden je do trenutka
kada možeš u već postojećoj petlji da odrediš minimum niza, što je elementarni
zadatak.

Code:

#include <stdio.h>
#include <stdlib.h>

#define MAX_GRADOVA 10

int main(int argc, char* argv[])
{
   int n;
   int grad_cena_tv[MAX_GRADOVA];
   int grad_cena_povratna[MAX_GRADOVA];

   printf( "Koliko ima gradova?" );
   scanf( "%d", &n );

   if ( n > 0 && n < MAX_GRADOVA )
   {
      int i;
      for ( i=0; i<n; i++ )
      {
         do
         {
            printf( "Upisite cenu TV-a u gradu %d?", i+1 );
            scanf( "%d", &grad_cena_tv[i] );
         } while( grad_cena_tv[i] < 1 );

         do
         {
            printf( "Upisite povratnu kartu do grada %d?", i+1 );
            scanf( "%d", &grad_cena_povratna[i] );
         } while ( grad_cena_povratna[i] < 1 );
      }

      int j;
      for ( i=0; i<n; i++ )
      {
         int suma_l = grad_cena_tv[i];
         int suma_d = grad_cena_tv[i];
         printf ( "REZULTATI ZA GRAD (%d), inicijalna cena u mestu polaska = %d\n", i+1, suma_l );

         suma_l=0;
         suma_d=0;

         for ( j=1; j<n; j++ )
         {
            int sledeci_grad_l = ( ( i+j ) %n ) + 1;
            int sledeci_grad_d = ( ( i+(n-j) ) %n ) + 1;
            suma_l += grad_cena_povratna[sledeci_grad_l - 1];
            suma_d += grad_cena_povratna[sledeci_grad_d % n];

            int cena_l = suma_l+grad_cena_tv[sledeci_grad_l-1];
            int cena_d = suma_d+grad_cena_tv[sledeci_grad_d-1];

            printf( "- do grada (%d), l, tv+povratak = %d\n", sledeci_grad_l, cena_l );
            printf( "- do grada (%d), d, tv+povratak = %d\n", sledeci_grad_d, cena_d );

            // ... OVDE TREBA MALO TVOG KODA KOJI TRAZI MIN, ISKORISTI: cena_l, cena_d, sledeci_grad_l, sledeci_grad_d
         }

      }
   }
   else
   {
      printf( "Greška u unosu\n" );
   }
   system( "PAUSE" );
   return 0;
}


Ovako izgleda izlaz na ekran:

Koliko ima gradova?4
Upisite cenu TV-a u gradu 1?1
Upisite povratnu kartu do grada 1?1
Upisite cenu TV-a u gradu 2?2
Upisite povratnu kartu do grada 2?2
Upisite cenu TV-a u gradu 3?3
Upisite povratnu kartu do grada 3?3
Upisite cenu TV-a u gradu 4?4
Upisite povratnu kartu do grada 4?4

REZULTATI ZA GRAD (1), inicijalna cena u mestu polaska = 1
- do grada (2), l, tv+povratak = 4
- do grada (4), d, tv+povratak = 5
- do grada (3), l, tv+povratak = 8
- do grada (3), d, tv+povratak = 8
- do grada (4), l, tv+povratak = 13
- do grada (2), d, tv+povratak = 10
REZULTATI ZA GRAD (2), inicijalna cena u mestu polaska = 2
- do grada (3), l, tv+povratak = 6
- do grada (1), d, tv+povratak = 3
- do grada (4), l, tv+povratak = 11
- do grada (4), d, tv+povratak = 7
- do grada (1), l, tv+povratak = 9
- do grada (3), d, tv+povratak = 10
REZULTATI ZA GRAD (3), inicijalna cena u mestu polaska = 3
- do grada (4), l, tv+povratak = 8
- do grada (2), d, tv+povratak = 5
- do grada (1), l, tv+povratak = 6
- do grada (1), d, tv+povratak = 6
- do grada (2), l, tv+povratak = 9
- do grada (4), d, tv+povratak = 10
REZULTATI ZA GRAD (4), inicijalna cena u mestu polaska = 4
- do grada (1), l, tv+povratak = 2
- do grada (3), d, tv+povratak = 7
- do grada (2), l, tv+povratak = 5
- do grada (2), d, tv+povratak = 9
- do grada (3), l, tv+povratak = 9
- do grada (1), d, tv+povratak = 10
Press any key to continue . . .




[Ovu poruku je menjao X Files dana 14.11.2006. u 18:34 GMT+1]
 
Odgovor na temu

ilDuceo
Novi Sad, Vojvodina

Član broj: 74882
Poruke: 252
*.adsl.sezampro.yu.



+1 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora14.11.2006. u 19:53 - pre 212 meseci
Ok, sredicu to. Hvala na pomoci!!
 
Odgovor na temu

night-shift
Vukašin Sadžak
• Student FTN, • Software developer
• Futog/Novi Sad

Član broj: 17930
Poruke: 1213
*.dialup.neobee.net.

Sajt: www.netolerancija.com


+8 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora17.11.2006. u 00:51 - pre 212 meseci
Evo ga moje rešenje, ne radi dobro kad kompajliram sa Turbo C, dok na Linuxu sa gcc radi lepo...

Code:
#include <stdio.h>

typedef struct grad
        {
            double tv, bus, put;
            int gde, smer;
        }Tgrad;

int main()
{
    int n=0, i, j, k;
    Tgrad g[20];
    double temp, min;
    //                                   ----------Unos podataka----------
    printf("\nUnesite broj gradova\n");
    do
    {
        printf("\t\t      n [<20]: ");
        scanf("%d", &n);
    }while(n>20);

    for(i=0;i<n;i++)
    {
        printf("\nUnesite cenu televizora u %d. gradu -> ", i+1);
        scanf("%lf", &g[i].tv);
        
        if(i!=n-1) printf("\nUnesite cenu od %d. do %d. grada     -> ", i+1, i+2);
        else printf("\nUnesite cenu od %d. do 1. grada     -> ", i+1);
        scanf("%lf", &g[i].bus);
        
    }
    //                          ----------Ispitivanje najiplativije kupovine----------
    for(i=0;i<n;i++)
    {
        //      ---------Ciklus za kretanju u suprotnom smeru od kretanja kazaljke na satu--------
        g[i].gde=i;
        min=g[i].tv;
        temp=0;
        for(j=0;j<n;j++) 
        {
            k=(i+j);
            temp+=g[k%n].bus;
            if(temp+g[(k+1)%n].tv<min)
            {
                g[i].gde=(k+1)%n;
                g[i].smer=1;
                min=temp+g[(k+1)%n].tv;
                g[i].put=temp;
            }            
        }
        //              ----------Ciklus za kretanje u smeru kazaljke na satu----------
        temp=0;
        for(j=n;j>0;j--)
        {
            
            k=(i+j);
            temp+=g[(k-1)%n].bus;
            if(temp+g[(k-1)%n].tv<min)
            {
                g[i].gde=(k-1)%n;
                g[i].smer=0;
                min=temp+g[(k-1)%n].tv;
                g[i].put=temp;
            }
        }
        //                    -----------Ispis podataka------------
        if(min==g[i].tv) printf("\n - Kupac iz %d. grada je kupio tv u svom gradu po ceni od %.2lf\n", i+1, g[i].tv);
        else 
        {
            printf("\n - Kupac iz %d. grada je kupio tv u %d. gradu po ceni od %.2lf", i+1, g[i].gde+1, g[g[i].gde].tv);
            
            if(g[i].smer==1) printf("\n - U smeru kretanja suprotnom od kazaljke na satu je potrosio %.2lf. na put\n", g[i].put);
            if(g[i].smer==0) printf("\n - U smeru kretanja kazaljke na satu je potrosio %.2lf. na put\n", g[i].put);
        }
    }
    
    printf("/////////////////////////////////////////////////////////////////////\n\n");
    getch();
    return(0);
}


[Ovu poruku je menjao night-shift dana 17.11.2006. u 02:05 GMT+1]

[Ovu poruku je menjao night-shift dana 17.11.2006. u 02:08 GMT+1]

[Ovu poruku je menjao night-shift dana 17.11.2006. u 02:10 GMT+1]
La parole est d'argent, mais le silence est d'or.
www.netolerancija.com
 
Odgovor na temu

ShadowMind
Slobodan Prljevic
Novi Sad

Član broj: 113978
Poruke: 21
*.dynamic.sbb.co.yu.



Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora17.11.2006. u 21:25 - pre 211 meseci
Ne slusaj ovog NightShifta gari nema pojma samo se pravi pametan :)

Ako ti neki od sledecih zadataka iz programskih jezika i struktura podataka bude predstavljao problem slobodno postavi temu na forum i probacemo da ti pomognemo ili pokusaj da kontaktiras nekoga sa smera ko to zna kolega :)

 
Odgovor na temu

ilDuceo
Novi Sad, Vojvodina

Član broj: 74882
Poruke: 252
*.adsl.sezampro.yu.



+1 Profil

icon Re: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora17.11.2006. u 21:29 - pre 211 meseci
Hvala kolega na volji da pomognete! Prodje i ta odbrana rada....dobih 9....sta sad... vise srece drugi put! U svakom slucaju hvala svima i ne brinite, bice jos pitanja!:))
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Kruzni niz puteva, gradovi, prodavnice televizora

[ Pregleda: 5715 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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