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

Potrebna pomoc ili bar ideja oko ispravke koda

[es] :: C/C++ programiranje :: Potrebna pomoc ili bar ideja oko ispravke koda

[ Pregleda: 1929 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mimi034
kg

Član broj: 208584
Poruke: 3
93.86.104.*



Profil

icon Potrebna pomoc ili bar ideja oko ispravke koda02.03.2009. u 15:51 - pre 183 meseci
Bila bih veoma zahvalna svakom ko bi mi dao ideju kako da resim sledeci problem,tj. da prepravim sledeci kod.
E sad da objasnim sta je u pitanju...
U pitanju je program koji radi operacije sa matricama,koje su predstavljene ovako

a11 -> a12 -> a13 -> ... -> a1n
|
a21 -> a22 -> a23 -> ... -> a2n
|
.
.
|
am1-> am2->am3-> ... -> amn

znaci matrice se tako ucitavaju uz pomoc f-je:
Code:
#include<alloc>
#include<stdio>
#include<conio>
#include<dos>
#include<stdlib>
#include<string>
#include<bios>

#define BR_OPERACIJA 6
#define MAX_OPIS   100

static char Opis[BR_OPERACIJA][MAX_OPIS]={
    "Sabiranje matrica",
    "Oduzimanje matrica",
    "Mnozenje matrica",
    "Mnozenje matrice brojem",
    "Trag matrice",
    "Transponovana matrica",};
   

typedef struct cvor {
float vrednost;
struct cvor *levo;
struct cvor *desno;
  } Cvor;


Cvor *upis(Cvor *koren)
{
   int n,m,i,j;
   float k;
   Cvor *novi,*p,*q,*r;
   printf("  Broj vrsta matrice   ");
   scanf("%d",&n);
   printf("  Broj kolona matrice  ");
   scanf("%d",&m);
   printf("\n");
   koren=NULL;
   printf("  Elementi matrice\n\n");

               for(i=1;i<=n;i++)  {
                       for(j=1;j<m>vrednost=k;
                                                            novi->desno=NULL;
                                                            novi->levo=NULL;

                                                      if(i==1&&j==1){  koren=novi;
                  p=q=r=koren;
                         }
                                                            if(i==1&&j==1)continue;
                                                                                         if((j!=1)&&(i==1)){
                     p->desno=novi;
                     p=p->desno;
                                                                }
                                                                                if((j==1)&&(i>1)){
                        r->levo=novi;
                        q=r->desno;
                        r=r->levo;
                        p=r;
                                           }                                                                                                                                                                                                                                                                                                                                                                                                               
                                                        if((j!=1)&&(i>1))  {
                  q->levo=novi;
                  q=q->desno;
                  p->desno=novi;
                  p=p->desno;
                                                          }
                                                                                                                                                                           

                       }
              }

                 return koren;
}


Ali,problem je u tome sto mi je potrebno da matricu ucitam tako da izgleda (kao mreza pointera) tj. da svaki element matrice pokazuje na naredni u vrsti u kojoj se nalazi,i na naredni u koloni kojoj se nalazi.(tj. svaki el. ima pokazivac na desno i na dole )

Bila bih veoma zahvalna na svakoj ideji
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.kbcnet.co.yu.



+7 Profil

icon Re: Potrebna pomoc ili bar ideja oko ispravke koda03.03.2009. u 03:30 - pre 183 meseci
Ovako trebas da uradis.
Imas komentare u mom kodu ...
Code:


#include <stdio.h>
/*
#include<alloc>
#include<stdio>
#include<conio>
#include<dos>
#include<stdlib>
#include<string>
#include<bios>
*/

#define BR_OPERACIJA 6
#define MAX_OPIS   100

static char Opis[BR_OPERACIJA][MAX_OPIS]={
            "Sabiranje matrica",
            "Oduzimanje matrica",
            "Mnozenje matrica",
            "Mnozenje matrice brojem",
            "Trag matrice",
            "Transponovana matrica",};
            
            
typedef struct cvor
{
    float vrednost;
    struct cvor*desno;
    struct cvor*dole;
}
Cvor;

Cvor* upis()
{
    int n=0,m=0,i,j;
    printf("Kolona matrice: ");scanf("%d",&n);
    printf("Vrsta matrice: ");scanf("%d",&m);
    printf("\n");
    Cvor* koren,* novi;
    Cvor* matrix[n][m]; // matrica pointera potrebne velicine
    printf("  Elementi matrice su: \n\n");
    
    for( i = 0 ; i < n ; i++)
    {
        for(j = 0; j < m; j++)
        {
            novi = (Cvor*)malloc(sizeof(Cvor)); // alociramo memoriju za element
            if(!novi) // ako nije alocirana memorija za elemente moramo da prekinemo
                return (Cvor*)0; // i vracamo null pointer kao znak za gresku
                
            novi->desno = 0; // ako je ovo zadnji element desno ili dole
            novi->dole = 0;  // ostace nula
            
            printf("Unesite element: [%d][%d] ",i,j);
            scanf("%f",&novi->vrednost); // upisujemo vrednost
            
            matrix[i][j] = novi; //pamtimo pointer
            
            if(i == 0 && j == 0) // koren je element [0][0]
                koren = novi;  // trenutni element je koren matrice
                
            if(i > 0)
                matrix[i-1][j]->dole = novi; // gornjem elementu (u odnosu na trenutni) upisujemo ovaj element kao donji
            if(j > 0)
                matrix[i][j-1]->desno = novi; // levom elementu (u odnosu na trenutni) upisujemo ovaj element kao desni
        }
    }
    
    return koren;
}

int main()
{
    int x,y;
    
    Cvor* trenutniH=0,*trenutniW = 0;
    Cvor* c = upis(); // upis
    
    if(c == 0) // ako je nula ...
        return 1;
        
    //ispis
    printf("\n");
    printf("Ispis matrice\n");
    //prolazimo kroz matricu citajuci pointere ...
    x=0;
    trenutniW=c;
    while(trenutniW!=0)
    {
        y=0;
        trenutniH=trenutniW;
        while (trenutniH!=0)
        {
            printf("Element [%d][%d] je %f\n",x,y,trenutniH->vrednost);
            trenutniH=trenutniH->desno;
            y++;
        }
        trenutniW=trenutniW->dole;
        x++;
    }
    printf("\n");
    
    system("pause");
    return 0;
}

 
Odgovor na temu

mimi034
kg

Član broj: 208584
Poruke: 3
79.101.153.*



Profil

icon Re: Potrebna pomoc ili bar ideja oko ispravke koda13.03.2009. u 20:53 - pre 183 meseci
najlepse ti hvala na pomoci...razumem tvoj kod...samo...stalno mi prijavljuje gresku... inace,radim u TC-u
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: Potrebna pomoc ili bar ideja oko ispravke koda18.03.2009. u 11:10 - pre 183 meseci
Nisam video pitanje ...
Gde prijavljuje gresku? Inace primecujes da sam zaklonio neke header hajlove pa vidi dali kod tebe treba nesto od toga ...
 
Odgovor na temu

[es] :: C/C++ programiranje :: Potrebna pomoc ili bar ideja oko ispravke koda

[ Pregleda: 1929 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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