Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Przekazanie struktury przez wartość

Ostatnio zmodyfikowano 2009-10-07 17:25
Autor Wiadomość
szkuner
Temat założony przez niniejszego użytkownika
Przekazanie struktury przez wartość
» 2009-10-07 11:44:11
Mam za zadanie przekazac struktore pudlo przez wartosc.
i wyswietlic kazde pole z tej struktury. Utworzylem dwie funkcje jedna obslugujaca dane druga ma je wyswietlac ale nie chca dzialac prosze o wskazowki jak przekazuje sie strukture przez wartosc. Bardzo bym prosił o wytlumaczenie mi tego bo za bardzo nie kapuje jak sie to robi zeby zawsze dzialalo.
C/C++
#include <iostream>

using namespace std;
struct pudlo
{
    char producent[ 40 ];
    float wysokosc;
    float szerokosc;
    float dlugosc;
    float objetosc;
};
pudlo szare( pudlo n, pudlo w, pudlo s, pudlo d, pudlo o );
void wyswietl( pudlo sz );
int main()
{
    pudlo zielone =( "Tymbark", 23, 34, 12 );
    cout << "Pudlo zielone ma takie parametry:";
    wyswietl( zielone );
   
   
   
    return 0;
}
pudlo szare( pudlo n, pudlo w, pudlo s, pudlo d, pudlo o )
{
   
    pudlo dane;
   
    dane.producent = n.producent;
    dane.wysokosc = w.wysokosc;
    dane.szerokosc = s.szerokosc;
    dane.dlugosc = d.dlugosc;
    dane.objetosc =( w.wysokosc * s.szerokosc * d.dlugosc );
    return dane;
}
void wyswietl( pudlo sz )
{
    cout << sz.producent
    << sz.wysokosc
    << sz.szerokosc
    << sz.dlugosc
    << sz.objetosc;
}
P-10685
DejaVu
» 2009-10-07 14:40:29
Ostro... :P
C/C++
#include <iostream>
using namespace std;

struct pudlo
{
    char producent[ 40 ];
    float wysokosc;
    float szerokosc;
    float dlugosc;
    float objetosc;
}; //struct pudlo

pudlo ustawDane( const char * napis, float w, float s, float d );
void wyswietl( pudlo sz );

int main()
{
    pudlo zielone = ustawDane( "Tymbark", 23, 34, 12 );
    cout << "Pudlo zielone ma takie parametry:";
    wyswietl( zielone );
    return 0;
}

pudlo ustawDane( const char * napis, float w, float s, float d )
{
    pudlo dane;
   
    dane.producent = napis;
    dane.wysokosc = w;
    dane.szerokosc = s;
    dane.dlugosc = d;
    dane.objetosc =( dane.wysokosc * dane.szerokosc * dane.dlugosc );
    return dane;
}

void wyswietl( pudlo sz )
{
    cout << sz.producent
    << sz.wysokosc
    << sz.szerokosc
    << sz.dlugosc
    << sz.objetosc;
}
Nie mam za bardzo ochoty tego tłumaczyć - przeanalizuj ten program i poczytaj sobie o strukturach. Możliwe, że powinieneś uzupełnić również wiedzę na temat funkcji.
P-10687
szkuner
Temat założony przez niniejszego użytkownika
» 2009-10-07 17:15:42
Dzieki za pomoc. Ale mam jeszcze jedno pytanie ponieważ ten program nie chce sie mi skompilować ponieważ wypisuje mi oto taki błąd przy kompilacji
" incompatible types in assignment of `const char*' to `char[40]" i nie wiem co to
P-10700
DejaVu
» 2009-10-07 17:18:23
Fakt, to nie std::string :P Wstaw:
strcpy( dane.producent, napis );
zamiast:
dane.producent = napis;

/edit:
Może być konieczne dopisanie:
C/C++
#include <cstring>
P-10702
szkuner
Temat założony przez niniejszego użytkownika
» 2009-10-07 17:22:32
Fajnie działa.A gdybyś znalazł troche czasu nie mówie teraz mogłbys mi to przekazywanie przez wartość napisać tak na ludzki jezyk przy okazji zostało by dla potomnych :)Ponieważ w kursie u was też by sie sprzydał właśnie taki problem do poruszenia jak sobie poradzić z takim przekazywaniem do funkcji znaków i liczb
P-10704
DejaVu
» 2009-10-07 17:25:21
P-10705
« 1 »
  Strona 1 z 1