Forum » Programiranje » [C++] vprašanja
[C++] vprašanja
OwcA ::
Ne moreš, ker ni nobene standardne knjižnice za delo s socketi.
Otroška radovednost - gonilo napredka.
Loaded ::
Lp
Imam vprašanje. Imam dinamično povezan enosmerni seznam. Kako naj ugotovim stevilo elementov v seznamu?
Lp
Imam vprašanje. Imam dinamično povezan enosmerni seznam. Kako naj ugotovim stevilo elementov v seznamu?
Lp
Loadeed
Loaded ::
Lp
Zanima kaj je v naslednjih finkcijah napaka; v 1. ne vem kaj je, v drugi pa nimam dobrega argumenta za funkc. strlen, kako ga naj drugače napišem?
Zanima kaj je v naslednjih finkcijah napaka; v 1. ne vem kaj je, v drugi pa nimam dobrega argumenta za funkc. strlen, kako ga naj drugače napišem?
void Najv_vpisna(student* k) { student*q = k; student*q = r; while(q != NULL) { while(r != NULL) { if(q->vpisna > r->vpisna) izpiše q->vpisna; else izpiše r->vpisna; q = q->k_struk; r = r->k_struk; } } } druga void Povprecna(student* k) { student*q = k; int stevec = 0; int vsota = 0; while(q != NULL) { vsota += strlen(q->priimek); stevec += stevec+1; } izpiši vsota / stevec; } Lp
Loadeed
Gundolf ::
Tretja vrstica: student*q = r;
A si hotel napisat student*r = k; ?
Pa tudi drugače ti tale funkcija ne bo delovala ravno tako kot želiš. Dve zanki? Saj veš da lahko v enem sprehodu čez vse elemente (v eni zanki) najdeš max element?
Druga funkcija:
> stevec += stevec+1;
Uh-oh. eksponentna funkcija - stevec bo sel takole: 0, 1, 3, 7, 15, 31, ... Verjetno si hotel napisat stevec = stevec+1; ali stevec += 1; ali pa kar ++stevec;
Kaj računaš povprečno dolžino priimka?
A si hotel napisat student*r = k; ?
Pa tudi drugače ti tale funkcija ne bo delovala ravno tako kot želiš. Dve zanki? Saj veš da lahko v enem sprehodu čez vse elemente (v eni zanki) najdeš max element?
Druga funkcija:
> stevec += stevec+1;
Uh-oh. eksponentna funkcija - stevec bo sel takole: 0, 1, 3, 7, 15, 31, ... Verjetno si hotel napisat stevec = stevec+1; ali stevec += 1; ali pa kar ++stevec;
Kaj računaš povprečno dolžino priimka?
Zgodovina sprememb…
- spremenil: Gundolf ()
Loaded ::
Ne, ni to. Vse to so tiskarske napake ja .. moja površnost.
Pri prvi mi pri dveh elementih v seznamu mi izpiše drugega vnešenega, pri treh pa že dva itd. Pa sploh ne največjega. Pa še kaki segmentation fault na koncu.
Popravljeno:
druga: Tukaj je napaka v funkc. strlen, ki noče sprejeti priimka kot niza tipa string. Samo ne vem kako bi naj drugače dobil dolžino niza.
Drugače pa hvala za odgovor Gundolf. ...Pa še kdaj.
Lp
Pri prvi mi pri dveh elementih v seznamu mi izpiše drugega vnešenega, pri treh pa že dva itd. Pa sploh ne največjega. Pa še kaki segmentation fault na koncu.
Popravljeno:
void Najv_vpisna(student* k) { student*q = k; student*r = k; while(q != NULL) { if( q->vpisna > r->vpisna ) izpiše q->vpisna; else izpiše r->vpisna; q = q->k_struk; r = r->k_struk; } }
druga: Tukaj je napaka v funkc. strlen, ki noče sprejeti priimka kot niza tipa string. Samo ne vem kako bi naj drugače dobil dolžino niza.
void Povprecna(student* k) { student*q = k; int stevec = 0; int vsota = 0; while(q != NULL) { vsota += strlen(q->priimek); stevec += 1; } izpiši vsota / stevec; }
Drugače pa hvala za odgovor Gundolf. ...Pa še kdaj.
Lp
Loadeed
Zgodovina sprememb…
- spremenilo: CCfly ()
OwcA ::
seg. fault dobiš, ker
1) nimaš inicializiranih kazalcev
2) packaš kjer ni tvoje
strlen() dela na tipu char*, std::string pa ima lastno metodo size().
A je tako težko pogledati v dokumentacijo?
1) nimaš inicializiranih kazalcev
2) packaš kjer ni tvoje
strlen() dela na tipu char*, std::string pa ima lastno metodo size().
A je tako težko pogledati v dokumentacijo?
Otroška radovednost - gonilo napredka.
bozjak ::
imam eno zelo nubovsko vprašanje. čeprav sem strica googla nemalokrat vprašal po odgovoru eš zdj ne znam rešit problema.
Pred kratkim sem se odločil za preskok v form programing v VS c++ 2005. Imam sledeč problem, nikakor ne znam pretvoriti vsebine text boxa (textBox1->text) v string (*char). Pravzaprav želim vsebino pretvoriti v int, a vse funkcije ki sem jih našel znajo pretvarjati samo iz *char... Kako bi torej uspešno pretvarjal med tipom string in ostalimi števičnimi tipi?
Hvala za odgovor! Lp
Pred kratkim sem se odločil za preskok v form programing v VS c++ 2005. Imam sledeč problem, nikakor ne znam pretvoriti vsebine text boxa (textBox1->text) v string (*char). Pravzaprav želim vsebino pretvoriti v int, a vse funkcije ki sem jih našel znajo pretvarjati samo iz *char... Kako bi torej uspešno pretvarjal med tipom string in ostalimi števičnimi tipi?
Hvala za odgovor! Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
OwcA ::
Kakšnega tipa je textBox1->text? Po vsej verjetnosi ima metodo za pretvarjanje v char*.
Otroška radovednost - gonilo napredka.
bozjak ::
kot sem napisal je textbox1->text tipa system::String... o metodi za pretvarjanje pa ne duha ne sluha za to tudi sprašujem.
Lp
Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
Mavrik ::
V strukturo boš bolj težko funkcije nametal.
The truth is rarely pure and never simple.
Zgodovina sprememb…
- vrnilo v prejšnje stanje: CCfly ()
robbe ::
V strukturi maš po defaultu vse atribute in metode public, v razredu vse private. Pri strukturi nimaš konstruktorja,destruktorja, pri razredu to imaš... pa najbrž bi se še kaj našlo :D
CCfly ::
V strukturo boš bolj težko funkcije nametal.
Krepko se motiš.
Pri strukturi nimaš konstruktorja, destruktorja
Seveda jih imaš.
Struktura se od class-a ne razlikuje v ničemer, razen že omenjenega private / public dostopa do atributov in metod.
Krepko se motiš.
Pri strukturi nimaš konstruktorja, destruktorja
Seveda jih imaš.
Struktura se od class-a ne razlikuje v ničemer, razen že omenjenega private / public dostopa do atributov in metod.
"My goodness, we forgot generics!" -- Danny Kalev
bozjak ::
tudi v strukturo gredo funkcije, le profesorji ponavadi to pozabijo omeniti. Tudi konstruktor in destruktor imamo. Primer:
Lp
#include <stdio.h> #include <stdlib.h> struct bla { int b; int kvadrat (int a) { return a*a; } void povecaj () { b++; printf("Zaradi uporabe konstruktorja je b sedaj: %d\n", b); } bla() { b = 5;} ~bla() {printf("Struktura izbrisana.\n");} }; int main() { int a; bla b; printf("a: "); scanf("%d", &a); printf("a na kvadrat: %d\n", b.kvadrat(a)); b.povecaj(); b.~bla(); system("PAUSE"); return 0; }
Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
CCfly ::
Obstaja lepo pravilo vedenja, kjer ne popravljaš svojih komentarjev, če se nadaljevanje debate nanaša na njih. Pa četudi napišeš kakšno neumnost.
"My goodness, we forgot generics!" -- Danny Kalev
Makina ::
Mene samo zanima, kako bi npr.če je pod case 2: črka a. in pod case 22: črka b in ko bi izbral 2 zatem pritisnil enter bi se vpisalo v niz. Nakonc bi pa ta niz celoten izpisal.
Lp
Lp
Trisixty s kombajnom bočno.
Makina ::
Spet smo dobili eno nalogo, pa sm že premislu velik pa še vseen ne vem čist točn kak.
Navodilo: Definiraj strukturo z imenom KROG.
Struktura naj ima en parameter in sicer polmer naj bo tipa dauble.
Definiraj dva objekta struktura z imenom krogA in krogB. Napiši funkcijo, ki ti pove katera ploščina kroga je večja.
Lp.
Navodilo: Definiraj strukturo z imenom KROG.
Struktura naj ima en parameter in sicer polmer naj bo tipa dauble.
Definiraj dva objekta struktura z imenom krogA in krogB. Napiši funkcijo, ki ti pove katera ploščina kroga je večja.
Lp.
Trisixty s kombajnom bočno.
bozjak ::
če si mal pogledaš kako se deklerira strukturo ti bo naloga mačji kašelj. Una funkcija ti pa tud nebi smela delat problemov, pač zračunaš ploščino obeh krogov in pogledaš kera je večja.
Ne vem točno kaj rabš, mislm jst ti to lahk napišem, sam kaj boš meu od tega? Naloga je res zlo preprosta, tko da predlagam, da mal pogooglaš in sam dekleriraš strukturo. Lp
Ne vem točno kaj rabš, mislm jst ti to lahk napišem, sam kaj boš meu od tega? Naloga je res zlo preprosta, tko da predlagam, da mal pogooglaš in sam dekleriraš strukturo. Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
Makina ::
Profesor je bil dons neki razjarjen, pa je mau naloge nam nametu.
Trisixty s kombajnom bočno.
Tutankhamun ::
struct KROG { double r; bool operator== (KROG &krog) { if (krog.r == r) return true; return false; } bool operator< (KROG &krog) { if (krog.r > r) return true; return false; } bool operator> (KROG &krog) { if (krog.r < r) return true; return false; } bool operator<= (KROG &krog) { if (krog.r >= r) return true; return false; } bool operator>= (KROG &krog) { if (krog.r <= r) return true; return false; } bool operator!= (KROG &krog) { if (krog.r != r) return true; return false; } }; KROG KrogA, KrogB; KrogA = 3; KrogB = 4; if (KrogA == KrogB) cout << "Kroga sta enaka" << endl;
Neki u tem stilu.
Al pa tko kot ti hočeš.
struct KROG { double r; } bool staKrogaEnaka (Krog &a1, Krog &a2) { if (a1.r == a2.r) return true; return false; } KROG KrogA, KrogB; KrogA = 3; KrogB = 4; if (staKrogaEnaka (KrogA, KrogB)) cout << "Kroga sta enaka" << endl;
AMD Phenom QUAD 9950 Black Edition, 8GB
stindeee ::
Pozdrav.
Naredu sem neki kode, da ti ko pritiskas izpisuje asciii stevilke. No jaz tega ne rabem, ampak da naprimer pritisneš a in izpiše 1, b ->11,c->111, isto kot pri mobitelu. Pač obratno.
Zdej naredil sem switch, ampak samo enkrat case izberem in ne morem več. Neznam naredit, da se bi switch ponavljal nato, ko bi pritisnil npr. enter končal switch. Potem moram narediti pa še obratno, da pišem številke notri in nato pridejo ven črke, spet isti princip mobitela. Zdej neki sm zgeneriral kode, ampak mi napiše neveljavna html oznaka. Mogoče zato, ker sem malo R.
Naredu sem neki kode, da ti ko pritiskas izpisuje asciii stevilke. No jaz tega ne rabem, ampak da naprimer pritisneš a in izpiše 1, b ->11,c->111, isto kot pri mobitelu. Pač obratno.
Zdej naredil sem switch, ampak samo enkrat case izberem in ne morem več. Neznam naredit, da se bi switch ponavljal nato, ko bi pritisnil npr. enter končal switch. Potem moram narediti pa še obratno, da pišem številke notri in nato pridejo ven črke, spet isti princip mobitela. Zdej neki sm zgeneriral kode, ampak mi napiše neveljavna html oznaka. Mogoče zato, ker sem malo R.
#include <conio.h> #include <iostream> using namespace std; int main() { char tipka; cin>>tipka; switch(tipka) { case 'a': cout<<"1";break; case 'b': cout<<"11";break; case 'c': cout<<"111";break; case 'd': cout<<"2";break; case 'e': cout<<"22";break; case 'f': cout<<"222";break; case 'g': cout<<"3";break; case 'h': cout<<"33";break; default : {}break; } while(tipka != '\x1b') //x1b = ESC tipka { tipka = getch(); cout<<tipka; } system("Pause"); return 0; }
Zgodovina sprememb…
- spremenilo: stindeee ()
Vesoljc ::
preberi si sticky teme v oddelku, tam pise kako prilepit kodo
Abnormal behavior of abnormal brain makes me normal...
bozjak ::
stindeee: vse skupaj daj v do whiel zanko.
primer:
do {
cin >> tipka;
switch (tipka) {
case ...
} while (tipka != ESC);
Ubistvu si že sam naredil to zanko, le nekoliko narobe si jo zastavil. Case stavek mora biti v zanki, da ga bos veckrat ponavljal...
LP
primer:
do {
cin >> tipka;
switch (tipka) {
case ...
} while (tipka != ESC);
Ubistvu si že sam naredil to zanko, le nekoliko narobe si jo zastavil. Case stavek mora biti v zanki, da ga bos veckrat ponavljal...
LP
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
Volk| ::
Haj
Jaz se pa ubadam z binarnim drevesom.
Kode je sicer polno na netu, toda je ne razumem. Ta rekurzija je ful vredi stvar, toda tudi zajebana za razmislit.
V debagerju se zgubim....
Jaz se pa ubadam z binarnim drevesom.
Kode je sicer polno na netu, toda je ne razumem. Ta rekurzija je ful vredi stvar, toda tudi zajebana za razmislit.
V debagerju se zgubim....
bozjak ::
Volk|: ne vem sicer katerega dela kode ne razumes, zato bom probal pojasniti delovanje binarnega drevesa in upam da ti bo po tem delovanje kode kaj bolj jasno. Ce ne, pa zastavi bolj konkretno vprasanje.
Pri binarnem drevesu je uporabljena rekurzija, ker mores iz vsakega elementa seznama pot nadaljevati v oba naslednja elementa in tako naprej. Rekurzija s pomocjo zaustavitvenega pogoja deluje tako, da najprej nadaljuje pot do konca seznama, nato pa v obratnem vrstnem redu opravi tisto, kar si v funkciji zapisal (pa naj bo to iskanje ali pa izpis vsakega podatka).
Seveda sta si rekurzija in iteracija enakovredni, torej vse akr lahko naredis z rekurzijo lahko naredis tudi iterativno, a splosno pravilo je, da se pri drevesnih strukturah uporablja, lazjo, rekurzijo.
Značilnost binarnega drevesa je ta, da se drevo iz vsakega elementa "razširi" v 2, zato moraš tudi rekurzijo zastaviti tako.
Mislim, da sem povzel osnove. Če kode še vedno ne razumeš, zastavi bolj konkretno vprašanje in poskušal ti bom pomagati.
Lp
Pri binarnem drevesu je uporabljena rekurzija, ker mores iz vsakega elementa seznama pot nadaljevati v oba naslednja elementa in tako naprej. Rekurzija s pomocjo zaustavitvenega pogoja deluje tako, da najprej nadaljuje pot do konca seznama, nato pa v obratnem vrstnem redu opravi tisto, kar si v funkciji zapisal (pa naj bo to iskanje ali pa izpis vsakega podatka).
Seveda sta si rekurzija in iteracija enakovredni, torej vse akr lahko naredis z rekurzijo lahko naredis tudi iterativno, a splosno pravilo je, da se pri drevesnih strukturah uporablja, lazjo, rekurzijo.
Značilnost binarnega drevesa je ta, da se drevo iz vsakega elementa "razširi" v 2, zato moraš tudi rekurzijo zastaviti tako.
Mislim, da sem povzel osnove. Če kode še vedno ne razumeš, zastavi bolj konkretno vprašanje in poskušal ti bom pomagati.
Lp
http://upor.blogec.si
http://bozjak.deviantart.com
http://bozjak.deviantart.com
stindeee ::
@ božjak
Zdej tisto dela, kak pa nrdim, da bom lahk tku 1x1=a, 2x1=b. V switchu to ne gre ne?
Lp
Zdej tisto dela, kak pa nrdim, da bom lahk tku 1x1=a, 2x1=b. V switchu to ne gre ne?
Lp
gtu ::
kako naredim tabelo stringov?
poskušal sem tako: (seznam sedmih stringov)
napaka:
potem še takole:
napaka:
potem še takole:
napaka:
kakšna ideja?
poskušal sem tako: (seznam sedmih stringov)
string nizi[7];
napaka:
`string' undeclared (first use this function)
potem še takole:
char nizi[][];
napaka:
declaration of `nizi' as multidimensional array must have bounds for all dimensions except the first
potem še takole:
char nizi[][7];
napaka:
storage size of `nizi' isn't known
kakšna ideja?
Zgodovina sprememb…
- spremenil: gtu ()
napsy ::
c++ ima nize implementirane v std imenskem prostoru. Kar pomeni, da moraš narediti sledeče:
1. vstavi zaglavje string
2. ustvari polje nizov tipa std::string sledeče:
1. vstavi zaglavje string
#include <string>
2. ustvari polje nizov tipa std::string sledeče:
std::string nizi[7];
"If you die, you die. But when you live you live. There is no time to waste."
SynTax64 ::
Da si vse skupaj še bolj poenostaviš dodaj pod zaglavjem dodaj:
Potem lahko uporabiš kodo kot ti je predhodnik rekel v tem primeru :
using namespace std;
Potem lahko uporabiš kodo kot ti je predhodnik rekel v tem primeru :
#include <string> using namespace std; { string nizi[7]; //... }
gtu ::
uf, hvala vam, jaz sem pa tako vestno brisal tisto "nepotrebno" vrstico pred main funkcijo (:D)
ni lahek prehod iz jave na c ;)
ni lahek prehod iz jave na c ;)
napsy ::
to je c++ in ne c. Pa ni priporočljivo uporabit using namespace, saj za iostram, ker je precej velika zbirka.
"If you die, you die. But when you live you live. There is no time to waste."
klemen93 ::
Sem začetnik pri programiranju in sem se za vajo določil napisati nekakšen macro recorder ki si zapolni kako se je miška premikala po zaslonu.
Vendar sem naletel na težavo pri izvajanju programa, saj ga noče zagnati in mi javi napako da je program prenehal delovati.
Zavedam se da je koda izjemno slabo napisana, saj se z programiranjem ne ukvarjam preveč dolgo.
Za vsak odgovor se vam zahvaljujem :)
Vendar sem naletel na težavo pri izvajanju programa, saj ga noče zagnati in mi javi napako da je program prenehal delovati.
#include <iostream.h> #include <windows.h> #include <dos.h> int main() { int tab[100000][2]; int x, y, st=0; cout<<"\nPritisnite SHIFT ko želite začeti snemanje pot miške!"; cout<<"\nPritisnite ESC ko želite da prenehati snemati pot miške!"; if(GetAsyncKeyState(VK_LSHIFT)) { POINT pos; GetCursorPos(&pos); x=pos.x; y=pos.y; tab[st][0]=x; tab[st][1]=y; for( ; ; ) { POINT pos; GetCursorPos(&pos); if(GetAsyncKeyState(VK_ESCAPE)) { exit(0); } if(st>99999) { exit(0); } if(pos.x!=tab[st][0] || pos.y!=tab[st][1]) { st++; tab[st][0]=pos.x; tab[st][1]=pos.y; } } } }
Zavedam se da je koda izjemno slabo napisana, saj se z programiranjem ne ukvarjam preveč dolgo.
Za vsak odgovor se vam zahvaljujem :)
napsy ::
Namesto GetCursorPos poskusi uporabit GetCursorInfo (http://msdn.microsoft.com/en-us/library.... GetCursorPos() neke težave.
"If you die, you die. But when you live you live. There is no time to waste."
W3by ::
Verjetno je problem tudi, ker je tvoja tabela prevelika za Stack pomnilnik (Stack overflow) (več si preberi Tukaj)
Namesto tabele ti predlagam, da uporabiš vektor (bolj enostavno za implementacijo), lahko pa uporabiš tudi 2d tabelo ter operatorja new in delete (malce pogooglaj).
Namesto tabele ti predlagam, da uporabiš vektor (bolj enostavno za implementacijo), lahko pa uporabiš tudi 2d tabelo ter operatorja new in delete (malce pogooglaj).
klemen93 ::
Hvala za odgovora. Po tem ko sem zmanšal tabelo na 1000 mest sem končno lahko izvedel program, torej je bila res težava v velikosti tabele. Z veseljem pa si bom prebral tudi več o tem kar si napisal W3by.
Zgodovina sprememb…
- spremenil: klemen93 ()
fx ::
Mene zanima zakaj mi program ko v terminal vnesem :
$ g++ -c -I /usr/include/mysql my_mysql.cpp && g++ -o my_mysql my_mysql.o -L /usr/include/mysql/ && ./my_mysql
Vrne naslednje :
my_mysql.cpp: in Tunction 'int main()' :
my_mysql.cpp:21: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:22: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:23: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:24: warning: deprecated conversion from string constant to 'char*'
Seqmentation fault
Kodo ki pa jo prevajam in poganjam pa je naslednja :
Podatkovna baza in vse je tako kot mora bit, ker sem jo naredil preko phpmyadmina.
Hvala,
fx
$ g++ -c -I /usr/include/mysql my_mysql.cpp && g++ -o my_mysql my_mysql.o -L /usr/include/mysql/ && ./my_mysql
Vrne naslednje :
my_mysql.cpp: in Tunction 'int main()' :
my_mysql.cpp:21: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:22: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:23: warning: deprecated conversion from string constant to 'char*'
my_mysql.cpp:24: warning: deprecated conversion from string constant to 'char*'
Seqmentation fault
Kodo ki pa jo prevajam in poganjam pa je naslednja :
#include <iostream> #include <cstdlib> #include <cstring> #include <mysql.h> int main(){ MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "root"; char *password = "geslo"; char *db = "test"; const char *sqlquery; std::string podatek, data1, data2; if (!mysql_real_connect(conn, server, user, password, db, 0, NULL, 0)) { cout << mysql_error(conn); return 0; }else{ std::cin >> data1; std::cin >> data2; podatek = "INSERT into ime_tabele (stolp_1, stolp_2) VALUES (' "+ data1 +" ',' "+ data2 +" ')"; sqlquery = podatek.c_str(); if(mysql_query(conn,sqlquery)){ std::cout << mysql_error(conn); mysql_free_result(res); mysql_close(conn); return 0; } } mysql_free_result(res); mysql_close(conn); return 0; }
Podatkovna baza in vse je tako kot mora bit, ker sem jo naredil preko phpmyadmina.
Hvala,
fx
fx ::
Pred prvim if stavkom ti manjka:
conn = mysql_init(NULL);
BigWhale hvala.
Sedaj me zanima, kje delam narobe namreč prevajalnik mi javi naslednjo napako :
debarm:/flash/cpp/default# make -f Makefile g++ -c -Wall ../main.cpp -o main.o g++ -c -Wall ../gpio.cpp -o gpio.o g++ -c -Wall ../riset.cpp -o riset.o g++ main.o gpio.o riset.o -o azimut riset.o:(.bss+0x0): multiple definition of `ura' main.o:(.bss+0x0): first defined here riset.o:(.bss+0x18): multiple definition of `azimut' main.o:(.bss+0x18): first defined here collect2: ld returned 1 exit status make: *** [azimut] Error 1 debarm:/flash/cpp/default#
main.cpp :
#include "gpio.h" #include "riset.h" int main() { return 0; }riset.h
#ifndef _RISET_H_ #define _RISET_H_ struct Ura{ double vzhod; double zahod; double dolzina; }ura; struct Azimut{ double vzhod; double zahod; double fi_sonca; // azimut sonca double alfa_sonca; // kotna višina sonca oz. sonce nad obzorjem double fi; }azimut; #endif
riset.cpp
#include <cmath> #include "riset.h"
gpio.h in gpio.cpp sta narejeni po istem koputi samo da niso uporabljeni struct.
Makefile :
CC=g++ CFLAGS=-c -Wall LDFLAGS= SOURCES=../main.cpp ../gpio.cpp ../riset.cpp OBJECTS=main.o gpio.o riset.o EXECUTABLE=azimut all: $(SOURCES) $(EXECUTABLE) main.o: ../main.cpp $(CC) $(CFLAGS) $< -o $@ gpio.o: ../gpio.cpp $(CC) $(CFLAGS) $< -o $@ riset.o: ../riset.cpp $(CC) $(CFLAGS) $< -o $@ $(EXECUTABLE): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o $@
Če vse funkcije dam v main.cpp in preveden pa zadeva deluje, samo pa za programiranje je nepregledna.
Lep pozdrav,
fx
fx
kow ::
V header datoteki imaš definicijo strukture. In ta header "includaš" v 2 prevajalnih enotah. V headerju samo deklariraj strukturi (izbriši 'ura' in 'azimut').
fx ::
Sedaj vidim da sem pozabil omeniti da riset.cpp kliče tudi te dve strukturi in nato main.cpp ju prikazuje na zaslon.
primer riset.cpp
primer riset.cpp
#include "riset.h" void SunAzimut(void){ double alfa = 29.53; azimut.alfa_sonca = alfa; }
fx ::
Našel rešitev :D.
riset.h
riset.cpp
main.cpp
Hvala za pomoč.
riset.h
#ifndef RISET_H #define RISET_H struct Ura{ double vzhod; double zahod; double dolzina; }; struct Azimut{ double vzhod; double zahod; double fi_sonca; // azimut sonca double alfa_sonca; // kotna višina sonca oz. sonce nad obzorjem double fi; }; void SunAzimut(Azimut& azimut, Ura& ura); #endif
riset.cpp
#include <cmath> #include "riset.h" void SunAzimut(Azimut& azimut, Ura& ura){ double alfa = 29.53; azimut.alfa_sonca = alfa; }
main.cpp
#include "riset.h" Azimut azimut; Ura ura; int main(){ std::cout << SunAzimut(azimtu, ura) << std::endl; return 0; }
Hvala za pomoč.
kow ::
Nobene potrebe ni po globalnih spremenljivkah. Azimut in Ura lahko definiras v funkciji main.
fx ::
Napisal sem dva programa v C++ za Unix/Linux.
Prvi program mi omogoča, da pošiljam in sprejemam podatke preko UDP-ja.
Drugi program mi omogoča, da pošiljam in sprejemam podatke preko serijske komunikacije.
Zadeva ločeno deluje, ampak pri vsakem programu je problem, da delujete po sistemu pink-pong žogice. Ampak do sedaj ko sem posamično ju pisal ni bil taki problem.
Problem je sedaj ,ko želim oba programa združit v en (torej želim narediti vmesnik RS232-LAN, ki v primeru ene ali druge komunikacije vse prejete podatke shrani začasno na disk) program, ki bi delo po sistemu FIFO. Podatki ki prvi pridejo noter gredo potem prvi naprej ven.
Sedaj me zanima kako oz. na kakšen način lahko to zadevo rešim.
Hvala
Prvi program mi omogoča, da pošiljam in sprejemam podatke preko UDP-ja.
Drugi program mi omogoča, da pošiljam in sprejemam podatke preko serijske komunikacije.
Zadeva ločeno deluje, ampak pri vsakem programu je problem, da delujete po sistemu pink-pong žogice. Ampak do sedaj ko sem posamično ju pisal ni bil taki problem.
Problem je sedaj ,ko želim oba programa združit v en (torej želim narediti vmesnik RS232-LAN, ki v primeru ene ali druge komunikacije vse prejete podatke shrani začasno na disk) program, ki bi delo po sistemu FIFO. Podatki ki prvi pridejo noter gredo potem prvi naprej ven.
Sedaj me zanima kako oz. na kakšen način lahko to zadevo rešim.
Hvala
Lep pozdrav,
fx
fx
aljazko1995 ::
Dober dan
Imam en problem,ki ga moram rešiti do jutri.
IN sicer napisati moram program v dev c++, ki prejme 10 naključnih vnesenih imen ter jih razvrsti po abecedi!
Prosim da mi nekdo pomaga!
Imam en problem,ki ga moram rešiti do jutri.
IN sicer napisati moram program v dev c++, ki prejme 10 naključnih vnesenih imen ter jih razvrsti po abecedi!
Prosim da mi nekdo pomaga!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Program za C++ jezikOddelek: Programska oprema | 2836 (1871) | popaj113 |
» | Kako bi naredil en ultra simple programček?Oddelek: Programiranje | 2306 (1587) | AtaStrumf |
» | C++ & XPOddelek: Programiranje | 1655 (1262) | Exilian |
» | C++ in pavzaOddelek: Programiranje | 1203 (964) | napsy |
» | c++ datotekeOddelek: Programiranje | 4018 (3507) | Vesoljc |