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
Stránky: 1
Dobrý den,
potreboval bych poradit s timhle prikladem.
zkousel jsem ten kod zkopirovat do Dev-C++ a nefungovalo to. Nevíte prosim kde muze byt chyba?
Příklad 23 z http://jazyk-c.wz.cz/pole.html#pole_zac.
Program vygeneruje posloupnost náhodných čísel z intervalu <-50,50> a vytvoří nové pole takové, že bude mít ve své levé části záporná a v pravé části kladná čísla (i nulu) posloupnosti. Pořadí čísel může být libovolné.
Zdrojový kód:
#include <stdio.h>
#define N 10
int main()
{
int pole[N],pom_pole[N],i,indz=0,indk=N-1;
srand( (unsigned) time(NULL) );
printf("Vygenerovane pole:n");
for (i=0; i - zkoušel jsem tenhle radek smazat a nepomohlo to
printf(" %d",pole[i]);
}
for (i=0; i<N; i++)
if (pole[i]<0)
{
pom_pole[indz]=pole[i];
++indz;
}
else
{
pom_pole[indk]=pole[i];
--indk;
}
printf("nPreusporadane pole:n");
for (i=0; i<N; i++)
printf(" %d", pom_pole[i]);
getch();
return 0;
}
Offline
chybi pulka toho for cyklu - to ti asi došlo, že je špatně
for (i=0; i
potom knihovny:
#include <stdlib.h> /* srand*/ #include <time.h> /* time */ #include<conio.h> /*getch*/
chtělo by to číst hlášky, které dev píše
Offline
dobrý den,
na googlu jsem vygooglil Eratostenovo sito. Pochopil jsem ten princip, ale kdyz jsem se podival na ten kod, tak nechápu jak to pracuje. Můžete mi prosim vysvetlit krok po kroku, jak ten program pracuje?
Označil jsem 3 body, který jsem nepochopil.
u bodu číslo 1 nvm co dela tu část co jsem cervene zakroužkoval.
bod č. 2. - slouzik tomu, aby program vynechal nulu? Co dela druhy "for" v teto bodě?
bod č. 3. - tady vim jenom ze neco vytiskne, ale uz nvm proc tiskne jenon když je tam cisla[i] == 1
Offline
↑ StupidMan:
Pokud sis nastudoval princip Eratosthenova síta a stejně tomu kódu rozumíš až tak málo, doporučuji se vrátit k jednodušším příkladům. Program pracuje s polem cisla, do kterého ukládá pouze jedničky a nuly. Cílem je označit jedničkou ty prvky pole, které jsou na prvočíselné pozici. Takže třeba jednička na pozici 5 bude znamenat, že pětka je prvočíslo.
Krok 1: všechny prvky pole od dvojky dál se naplní jedničkami - jakoby všechna čísla byla prvočísla
Krok 2: pole se prochází krok po kroku až po index , když najdu něco co je označené jako prvočíslo, projedu všechny jeho celočíselné násobky a označím je jako neprvočísla (to dělá ten druhý cyklus). Neprvočísla přeskakuju (to dělá to continue).
Krok 3: vypíše indexy těch prvků pole, ve kterých zůstala jednička. Ty odpovídají nalezeným prvočíslům.
Offline
↑ StupidMan:
Každé složené číslo je podle definice součinem jiných prvočísel. Pokud je nějaké složené číslo menší než N, nějaký ten faktor musí být určitě menší než - v opačném případě by součin byl větší než N. Takže jakmile dojedeme k , určitě jsme to číslo už vyškrli, protože ten nejmenší faktor je za námi. Takže dál by to bylo plýtvání časem. Každá další iterace toho cyklu už by skončila na tom continue a s polem cisla by se už nestalo nic.
Např. . Jakmile ho vyškrtnu jako násobek pětky, nemusím ho vyhazovat znova jako násobek 7. Ta podmínka s odmocninou říká, od kdy z tohoto důvodu už o žádné další složené číslo nepřijdu.
Offline
Stránky: 1