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

Suma visedimenzionalnih nizova preko call by Pointer.

[es] :: C/C++ programiranje :: C/C++ za početnike :: Suma visedimenzionalnih nizova preko call by Pointer.

[ Pregleda: 1680 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

osmania
Panet

Član broj: 26316
Poruke: 773
*.16.11.tuwien.teleweb.at.



+7 Profil

icon Suma visedimenzionalnih nizova preko call by Pointer.12.01.2013. u 00:56 - pre 136 meseci
Treba mi pomoc jer pogubio sam se sa pointerima :

Zadatak glasi ovako:

Napisati u C summu Vektora:

Incijaliziranje Vektora da se uradi u Main funkciji,
da se napise posebna funkcija koja ce da sabere Vektore a pozvat ce se iz main.

Treba da se definische globalni Datentip (Pseudocode)
Vektor (x kordinate, y koordinate)
x i y su double


da se napise funkcija koja sabire dva Vektora(Pseudocode)
void addition(input-parameter: VectorA, VectorB; output-parameter: VectorC);

output-parameter: VectorC je Call by Pointer;

Suma Vektora glasi ovako: (Pseudcode)
VektorC_x = VektorA_x + VektorB_x,.
VektorC_y = VektorA_y + VektorB_y


Ispisati Vektor_C u main funkciji;

i ne smiju se koristiti globalne varijable;

Hvala puno Mihajlo i X Files na pomoci

Rjesenje:

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


typedef struct Vector
{
    double x;
    double y;
} Vector;

void addition(Vector *vectorA, Vector *vectorB, Vector *vectorC);

int main(int argc, char* argv[])
{

     Vector vectorA;
     Vector vectorB;
     Vector vectorC;

     vectorA.x=1;
     vectorA.y=2;
     vectorB.x=3;
     vectorB.y=4;
     vectorC.x=0;
     vectorC.y=0;

     addition(&vectorA, &vectorB, &vectorC);

     printf("VectorC.x %d, VectorC.y %d", vectorC.x, vectorC.y);
     return 0;
}

 void addition(Vector *vectorA, Vector *vectorB, Vector *vectorC)
 {
     vectorC->x = vectorA->x + vectorB->x;
     vectorC->y = vectorA->y + vectorB->y;
 }


[Ovu poruku je menjao osmania dana 12.01.2013. u 23:15 GMT+1]

[Ovu poruku je menjao osmania dana 12.01.2013. u 23:15 GMT+1]

[Ovu poruku je menjao osmania dana 12.01.2013. u 23:17 GMT+1]

[Ovu poruku je menjao osmania dana 12.01.2013. u 23:17 GMT+1]
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Suma visedimenzionalnih nizova preko call by Pointer.12.01.2013. u 11:02 - pre 136 meseci
Funkcija summe_array nije rešenje zadatka. Zadatak kaže da ti je ulaz dva vektora, a izlaz treći vektor. Dalje piše da je vektor struktura koja ima članove int x i int y. Nigde se ne spominju nizovi, i pojam "vektor" nije isto što i niz. Rešenje je toliko prosto da mi je najjednostavnije da ga prosto napišem. Ovo je rešenje:

Code:
void addition(const Vector& vectorA, const Vector& vectorB, Vector& vectorC)
{
    vectorC.x = vectorA.x + vectorB.x;
    vectorC.y = vectorA.y + vectorB.y;
}


U main funkciji nemaš nikakve double[] nizove nego tri promenljive tipa Vector. Inicijalizuješ dve od te tri, pozoveš funkciju, i onda ispišeš sadržaj treće promenljive.
 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.16.11.tuwien.teleweb.at.



+7 Profil

icon Re: Suma visedimenzionalnih nizova preko call by Pointer.12.01.2013. u 21:09 - pre 136 meseci
Prijatelju,

Hvala puno na objasnjenju, nego ja sam uradio ovako (da li je ispravno)?
Nisam mogao da kompailiram pojavljva mi se greska u prototipu funkcije:
Greska glasi:
error C2143: syntax error : missing ')' before '('
error C2143: syntax error : missing ')' before '&'
error C2091: function returns function
error C2143: syntax error : missing '{' before '&'
error C2059: syntax error : '&'
error C2059: syntax error : ')'
warning C4013: 'addition' undefined; assuming extern returning int
error C2143: syntax error : missing ')' before '&'
error C2143: syntax error : missing '{' before '&'
error C2059: syntax error : '&'
error C2059: syntax error : ')'

koristim Visual Studio 2012,

i da sam pravilno pozvao funkciju:
addition(vectorA, vectorB, vectorC);



Code:
#include <stdio.h>

void addition(Vector &vectorA, Vector &vectorB, Vector &vectorC);   //Program mi pokaziva da ima greska ovde

typedef struct Vector
    {
        int x; 
        int y;
    } Vector;

int main(int argc, char* argv[])
{

    Vector vectorA;
    Vector vectorB;
    Vector vectorC;

    vectorA.x=1;
    vectorA.y=2;
    vectorB.x=3;
    vectorB.y=4;
    vectorC.x=0;
    vectorC.y=0;
    
    addition(vectorA, vectorB, vectorC);

    printf("VectorC.x %d, VectorC.y %d", vectorC.x, vectorC.y);
    return 0;
}

void addition(Vector &vectorA, Vector &vectorB, Vector &vectorC)
{
    vectorC.x = vectorA.x + vectorB.x;
    vectorC.y = vectorA.y + vectorB.y;
}


Hvala puno
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Suma visedimenzionalnih nizova preko call by Pointer.12.01.2013. u 21:44 - pre 136 meseci
Radi se o razlikama izmedju C i C++ kompajlera, tacnije "referencama". Pokušaj ovako, preko pointera, ako ti treba verzija u C jeziku.

// NETESTIRANO

Code:

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


typedef struct Vector
{
    int x;
    int y;
} Vector;

void addition(Vector *vectorA, Vector *vectorB, Vector *vectorC);   //Program mi pokaziva da ima greska ovde

int main(int argc, char* argv[])
{

     Vector vectorA;
     Vector vectorB;
     Vector vectorC;

     vectorA.x=1;
     vectorA.y=2;
     vectorB.x=3;
     vectorB.y=4;
     vectorC.x=0;
     vectorC.y=0;

     addition(&vectorA, &vectorB, &vectorC);

     printf("VectorC.x %d, VectorC.y %d", vectorC.x, vectorC.y);
     return 0;
}

 void addition(Vector *vectorA, Vector *vectorB, Vector *vectorC)
 {
     vectorC->x = vectorA->x + vectorB->x;
     vectorC->y = vectorA->y + vectorB->y;
 }

 
Odgovor na temu

osmania
Panet

Član broj: 26316
Poruke: 773
*.16.11.tuwien.teleweb.at.



+7 Profil

icon Re: Suma visedimenzionalnih nizova preko call by Pointer.12.01.2013. u 21:51 - pre 136 meseci
Probao sam evo ga radi super, rezultat je ok.

Hvala puno Mihajlo i Xfiles,
da ste mi zivi i zdravi.
Ako neko stanuje blizu Vrbasa (Vojvodina) zovem na rucak + pivo.
hvala jos jednom

 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Suma visedimenzionalnih nizova preko call by Pointer.

[ Pregleda: 1680 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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