Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

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