Autor Zpráva
Nat
Profil *
Zdravím,

potřeboval bych fci, která mi vrátí proměnnou scale_factor.

Vstup do fce je proměnná width, které se vypočítá s nastaveným scale_factor = 1 a porovná se maximální možnou velikostí width_max, která je 220. Pokud je width větší tak se sníží scale_factor o 0.1 a proces se opakuje tak dlouho dokud nebude platit že width je menší nebo rovno width_max. V tu chvíli se vrátí scale_factor.


I když si to takhle napíšu nejsem schopen to stvořit. Matně tuším, že se jedná o rekurzivní fci, ale jak na ni?

Díky za odpvědi.
DJ Miky
Profil
$width_max=220;

function scale_factor($width) {
  global $width_max;
  $scale_factor=1;
  while($width*$scale_factor>$width_max) {
    $scale_factor-=0.1;
    if($scale_factor<0.1) return false;
  }
  return $scale_factor;
}
Je tam i podmínka, pokud by $scale_factor byl nulový nebo záporný, vrátí funkce false.
Nat
Profil *
Jak prosté, zase o něco chytřejší, díky
MrVain
Profil
Neviem ci som pochopil presne zadanie v rychlosti ale nebude to rovnaky vysledok ako zaokruhlene na jedno desatinne miesto:
scale_factor=width_max/width

;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: