pomoc s sqrt a log

Programovacie jazyky, rady, poradňa...
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

pomoc s sqrt a log

Príspevok od používateľa caesar1987 »

vedeli by ste miekto pomoct s tymito zadaniami???

1. odmocnina - uz hotove

2. Vašou úlohou je naprogramovať funkciu Logaritmus, ktorá bude fungovať nasledovne:
* na vstupe budú dve kladné celé čísla
* prvé číslo zo vstupu predstavuje základ logaritmu
* druhé číslo zo vstupu predstavuje argument logaritmu
* výstupom bude celá horná časť hodnoty logaritmu, ktorý ma daný základ a argument (teda tiež celé kladné číslo) . Ak napr. na vstupe bude 2,8 výstupom bude 3, pri 3,81 bude výstupom 4, pri 10,100000 bude výstupom 5, pri 2,9 bude výstupom 4, pri 3,4 bude výstupom 2, pri 10, 10001 bude výstupom 5 ...)
* pri riešení môžete používať len cykly, operácie sčítania a odčítania a minimálny počet lokálnych premenných
* nemôžete používať operácie násobenia, delenia, externé ani vlastné funkcie, procedúry, ...
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Re: pomoc s sqrt a log

Príspevok od používateľa ppt »

Predpokladam, ze ak by si mohol pouzit operacie nasobenia, tak by si to vedel spravit. (vyuzil by si inverznu funkciu k logaritmickej funkcii - exponencialnu funkciu). Kedze ale nemozes pouzit nasobenie, tak si ho skus "umelo" vytvorit. (myslim ze vnorenym cyklom, kde by sa scitovalo, by to malo ist.)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Urob si cyklus, ktorý bude robiť mocninu základu (pomocou súčtu, príkaz for).Celé to bude v cykle s neurčitým počtom opakovaní, kde na začiatok (alebo koniec podľa toho či použiješ while alebo repeat) dáš overenie či sa umocnený základ nerovná argumentu. Ak áno, vypíš počet prejdení cyklom s pevným počtom opakovaní, ak nie, pokračuj...

možno je to krkolomne opísané, ale treba si iba uvedomiť definíciu logartimu, ktorá je si takáto:
logaX=Y práve vtedy, keď a^Y=X
Ty hladáš Y, teda mocninu daného základu a keďže mocninu robíš cez cyklus, musíš počítať koľkokrát sa prevedie. To je teoria, keď som to skúšal nahodiť do zdrojáku, tak som sa zamotal.. možno budeš mať viac šťastia.
ppt
Darca
Darca
Používateľov profilový obrázok
Príspevky: 1920
Registrovaný: 27 máj 2006, 11:24
Kontaktovať používateľa:

Príspevok od používateľa ppt »

Presne to som mal na mysli...

Len teraz netusim, kde si sa zamotal. Azda v tom overeni pri tom cykle (while alebo repeat). Tam sa nema porovnavat, ci sa umocneny zaklad nerovna argumentu, ale ci je mensi ako argument.
t0m4s3
Admin
Admin
Používateľov profilový obrázok
Príspevky: 18096
Registrovaný: 14 jún 2004, 18:35
Bydlisko: Martin SR, Brno CZ
Kontaktovať používateľa:

Príspevok od používateľa t0m4s3 »

audiotrack vsak to je uplna samozvrazda! Logaritmus sa v 99% pripadov rovna NIE CELEMU cislu, tak ako chces vykonat cyklus napr 2.81 krat?? Alebo mi nieco uniklo?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

nie, ono sa to rovnať musí.. pozri si tú definíciu logaritmu čo som napísal.. (to čo ti vravíš plati iba v prípade, že nejde o celé čísla ale on vraví že sa budú dávať iba celé čísla, tak sa musia rovnať). Ja som sa zamotal pri dávani podmienky For I:=1 to xxx do .. Nevedol som nejak dosadiť hodnotu xxx. Lebo ak chceš napríklad 3^2 tak tam musíš dosadiť 3 (lebo sa 3 krát spočítava trojka). Pri 3^3 už musíš dosadiť buď 9 lebo sa spočítava 9 krát, potom 27.. A tak ďalej. Dosádzajú sa teda práve násobky základu, a tie si teda musíš zisťovať ďalším cyklom.. no šak vyskúšaj, rád si pozrem zdrojáky ale ja som nejak na to nemal náladu, tak som to vzdal

t0m4s3: unikol ti caesarov príspevok.. pozri si tie hodnoty čo dal ako príklad.. sú to pekné celé čísla čo aj z hlavy vyrátaš. On to dostal asi za úlohu, a profákovi ide práve o to, či to dokáže urobiť iba súčtom, lebo ak ma daný algortimus rátať každý logaritmus, tak sa iba so súčtom asi nehneš (alebo iba veľmi veľmi veľmi ťažko)

//edit: aha, sorry, zle som čítal.. tak vo mne je chyba :oops:
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

no takze ten logaritmus mi stale hadze halusky...

kebyze nenecham notebook u holky, tak by som vam sem aj hodil zdojak...

sakra, ale hodim ho sem asi v utorok, takze ziatial dakujem...
IgiPoP
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 446
Registrovaný: 12 sep 2005, 8:17
Bydlisko: MT

Príspevok od používateľa IgiPoP »

neviem v akom programovacom jazyku to potrebujes, tak som to urobil v php ale myslim, ze by si nemal mat problem to prekodit do cokolvek ineho, pretoze som nepouzil ziadne speciality.

Kód: Vybrať všetko

$x = 10001; // argument log
$a = 10;  // zaklad log
$i = 1;
$vys = $a;
while( $vys < $x )
{
  $i++;
  $docas = $vys;
  $vys = 0;
  for( $j=1; $j <= $a;$j++ )
    $vys += $docas;
}
echo "vysledok: ".$i;
dufam, ze som zadanie pochopil spravne, ale podla tvojich vzorovych vypoctov to sedi.

good luck.
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Príspevok od používateľa caesar1987 »

potreboval som to do delfi, ale upravit to nebol problem

trosku som to pozmenil, a uz mi to fungovalo tak ako malo aj v delfi...

takze dikes...
Napísať odpoveď