Alokace pole z parametru funkce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Alokace pole z parametru funkce – C / C++ – Fórum – Programujte.comAlokace pole z parametru funkce – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Doomista+1
Stálý člen
4. 5. 2012   #1
-
0
-

Ahoj, pokouším se v rámci jednoho programu vytvořit 2D pole floatů. Mám funkci

void Jehlan(float r, int n){

float len, uhel;

const int MAX=n;

uhel=360/n;

len=cos(uhel*PI/180)*r;

float pole[MAX][2];

..

}

ale kompiler mi vždycky sdělí, že velikost pole je proměnlivá a že to nelze alokovat. Zkoušel jsem i dynamickou alokaci:

float *pole=new float[MAX][2];

ale napsalo to: "cannot convert `float (*)[2]' to `float*' in initialization"

co s tím?

díky předem ;)

Nahlásit jako SPAM
IP: 156.17.98.–
Na vše stačí iostream...
Diepek3
~ Anonymní uživatel
7 příspěvků
4. 5. 2012   #2
-
0
-

Moc prosííím Je dáno kladné celé číslo N. Vypište prvních N prvočísel. prosim nemohl by jste mi nekdo pomoct!!! moc dulezite v Geany

Nahlásit jako SPAM
IP: 82.113.63.–
ondra.holub+1
Stálý člen
4. 5. 2012   #3
-
0
-

#1 Doomista
Nemůžeš alokovat dvourozměrné pole, protože neexistuje operátor new[][]. Ale můžeš si to třeba simulovat v jednorozměrném poli a alokovat to jako new float[MAX * 2].

Ale vzhledem k tomu, že to máš v C++, tak si to dej do vektoru a máš s alokací vystaráno.

Nahlásit jako SPAM
IP: 194.138.12.–
Diepek3
~ Anonymní uživatel
7 příspěvků
4. 5. 2012   #4
-
0
-

ondro.holub prosim nepomohl by jsi mi ??

Nahlásit jako SPAM
IP: 82.113.63.–
Doomista+1
Stálý člen
4. 5. 2012   #5
-
0
-

Příklad testovacího algoritmu

Následující jednoduchý algoritmus implementovaný v jazyce C++ zkouší dělit vstup všemi menšími čísly od 2 do jeho odmocniny - pokud nalezne v tomto intervalu dělitele zadaného čísla, je jasné, že zadané číslo není prvočíslo. Testovat stačí pouze do odmocniny, protože pokud n je složené číslo, můžeme psát:  pro . Pokud by nestačilo testovat do odmocniny, znamenalo by to, že  a současně , vynásobíme-li ale tyto dva vztahy, máme , což je spor.

bool isPrime(int number) {
    if (number < 2) return false;
    if (number == 2) return true;
    if (number % 2 == 0) return false;

    int max = (int) sqrt(number);

    for (int i = 3; i <= max; i += 2) {
        if (number % i == 0) {
            return false;
        }
    }

    return true;
}

citováno z wikipedie, netestováno

Nahlásit jako SPAM
IP: 156.17.98.–
Na vše stačí iostream...
Doomista+1
Stálý člen
4. 5. 2012   #6
-
0
-

#3 ondra.holub
s vektory jsem ještě nikdy nedělal :/, ale napadl mě jiný způsob, sice vysoce neefektivní, ale snadný a funkční, což je to, co zrovna potřebuju - pole struktur

Nahlásit jako SPAM
IP: 156.17.98.–
Na vše stačí iostream...
ondra.holub+1
Stálý člen
4. 5. 2012   #7
-
0
-

#6 Doomista
Obecně to pole struktur nemusí být vždycky vysoce neefektiví. Záleží na situaci a použití.

Nahlásit jako SPAM
IP: 194.138.12.–
metthal
~ Anonymní uživatel
27 příspěvků
6. 5. 2012   #8
-
0
-

Popripade hladas asi nieco podobne

float **pole = new float*[MAX];

for (int i = 0; i < MAX; ++i)
    pole[i] = new float[2];
Nahlásit jako SPAM
IP: 217.144.18.–
crazy
~ Moderátor
+10
Grafoman
6. 5. 2012   #9
-
0
-

a u tohohle ti bude kompilátor taky řvát...

const int MAX=n;  

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
Doomista+1
Stálý člen
6. 5. 2012   #10
-
0
-

#9 crazy
tohle je napsaný v tom mým původním kódu, ale s těma strukturama to funguje skvěle, ještě prubnu co udělá metthalův kód

Nahlásit jako SPAM
IP: 156.17.125.–
Na vše stačí iostream...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 115 hostů

Podobná vlákna

Alokace pole — založil Blujacker

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý