Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 22. 03. 2011 19:57 — Editoval Asinkan (22. 03. 2011 20:08)

Asinkan
Příspěvky: 431
Reputace:   
 

c++

Ahoj,

mam ukazatel na matice U a Un. Jak si šáhnu na hodnotu matice U na pozici 3,2 a uložim jí do matice Un?
Napadlo mě

*Un[3][2]=*U[3][2];

ale nějak to nejde. Propojuji Matlab a C++, tak nevim, zda projde přes kompilátor. Ale otázka stojí takto: JE TENTO ZÁPIS SPRÁVNÝ V C++? Taky je možný, že mi chybí nějaká knihovna.
Dík


Do prázdného domu vešli 4 lidé, poté odešlo 6 lidí. Kolik lidí musí do domu vejít, aby byl dům prázdný?

Offline

  • (téma jako vyřešené označil(a) Asinkan)

#2 22. 03. 2011 21:06 Příspěvek uživatele Asinkan byl skryt uživatelem Asinkan. Důvod: Hmm, tak to neni tak.

#3 24. 03. 2011 14:34 — Editoval Asinkan (26. 03. 2011 14:24)

Asinkan
Příspěvky: 431
Reputace:   
 

Re: c++

↑ Asinkan:
Tak je to pro matici 3x3
*(Un+3+ 2)


Do prázdného domu vešli 4 lidé, poté odešlo 6 lidí. Kolik lidí musí do domu vejít, aby byl dům prázdný?

Offline

 

#4 25. 03. 2011 02:03

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: c++

V C++ by se melo podle me napsat:

Un[2][1]=U[2][1]
(2 a 1 proto, ze v C++ se pole indexuji od 0, zalezi na tom, co myslis tou pozici 3,2)

Tak kdyztak dej vedet jestli je to to, co potrebujes (jestli to jeste potrebujes).

Offline

 

#5 26. 03. 2011 14:22

Asinkan
Příspěvky: 431
Reputace:   
 

Re: c++

↑ Lumikodlak:
To co, jsi napsal funguje pro matice, ne pro ukazatele na matice.


Do prázdného domu vešli 4 lidé, poté odešlo 6 lidí. Kolik lidí musí do domu vejít, aby byl dům prázdný?

Offline

 

#6 26. 03. 2011 14:27 — Editoval Pavel Brožek (26. 03. 2011 14:37)

Pavel Brožek
Místo: Praha
Příspěvky: 5694
Škola: Informatika na MFF UK
Pozice: Student
Reputace:   194 
 

Re: c++

↑ Asinkan:

Můžeš prosím ukázat, jak máš proměnné definované? Nevytváříš náhodou „matici ukazatelů“? Nevytváříš ukazatel na ukazatel na pole?

Edit: Jestli se nepletu, tak když máš třeba

Code:

int pole[2];

tak „pole“ už je ukazatel na první prvek pole. Zápis

Code:

pole[1]

a

Code:

*(pole+1)

by měl být ekvivalentní. (Za předpokladu, že si to dobře pamatuji, v C už jsem hodně dlouho nic nepsal.)

Offline

 

#7 27. 03. 2011 13:05

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: c++

↑ Asinkan:
To se omlouvam, spatne jsem si to precetl. V tom pripade by melo fungovat tohle:
(*Un)[2][1]=(*U)[2][1]

Offline

 

#8 28. 03. 2011 18:18 — Editoval Asinkan (28. 03. 2011 18:19)

Asinkan
Příspěvky: 431
Reputace:   
 

Re: c++

↑ Pavel Brožek:
Já mam matice vytvořené v Matlabu a přes mexFunction je posílam do C++, tam pak vše volám pomocí toho jak píšeš *(pole+i).  Vcelku už tomu rozumím. Jen pro zajímavost mi C++ zrychlilo výpočet ze 6 minut na 15 vteřin :-> Díky všem.


Do prázdného domu vešli 4 lidé, poté odešlo 6 lidí. Kolik lidí musí do domu vejít, aby byl dům prázdný?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson