Newsgroup: it.comp.lang.delphi
Titolo: domanda semplice

Ciao
Dovendo moltiplicare e sommare vari numeri tra di loro, come risultato esce 
, ovviamente un numero alto.
Vorrei che a tale risultato fosse tante volte sottratto il numero 90, fino a 
raggiungere un risultato compreso tra 1 e 90.
Faccio un esempio: (12 x 12) + (13 x 13) = 313
A Tale numero si dovra' sottrarre 90 fino ad ottenere un numero compreso tra 
1 e 90 e che nel nostro caso è 44?
Esiste una funzione delphi per fare questo ?
Grazie
 

((risultato-1) mod 90)+1
oppure
while risultato>90 do Dec(Risultato, 90)
piu o meno dovrebbero andare
Bye,
Raktzo

lottosempre ha scritto:

Dunque se ho capito una volta ottenuto il risultato dovresti sottrarre 
90 x volte in questo modo.
313 - 90 = 223 - 90 = 133 - 90 = 43 (non è il 44 che dici).
Se è così allora basterebbe dividere il numero per 90 e ottieni 
3,4777777777777777777777777777778 lo casti in un intero e ottieni il 
numero di volte che il 90 deve essere sottratto.
Nel caso il numero ottenuto sia superiore a 90 lo dividi ancora casti il 
risultato e riesegui il ciclo.
Il ciclo potrebbe essere
xi=y/90;
for cont := 1 to xi do begin
	y := y-90 ;
end;
if y > 90 then ripeti la divisione.
Il ciclo andrebbe scritto in una funzione che ti torna il risultato per 
poter essere nuovamente processato. hummm a meno di non sapere a priori 
il numero massimo di volte che il numero dovrà essere diviso temo avrai
bisogno di una funzione ricorsiva.
Scusa stai facendo un programma di sistemistica per il lotto ??
Omega

 ha scritto nel messaggio 
news:9qClf.1954$5Z4...@news.edisontel.com...


 1 e 90 e che nel nostro caso è 44?
var
   N: Integer;
   NewN: Integer;
begin
   N := 313;
   if N mod 90 = 0 then NewN := 90
   else
     NewN := N - 90*(N div 90);
[...]

 Sě, sto costruendo un software dedicato al lotto[...]
Non sarebbe meglio concentrarsi su qualcosa di piů utile? ;-)

Risultato := (Numero Mod 90)+1;
più semplice di cosi'
Ciao,
David

 Risultato := (Numero Mod 90)+1;
Giusto!

>Non sarebbe meglio concentrarsi su qualcosa di più utile? ;-)
Più utile di una cinquina secca?!? :-)))
Ciao
--- posted by geoForum on 
http://www.delphiedintorni.it

 Piů utile di una cinquina secca?!? :-)))
Il problema č quello che c'č tra te e la cinquina.  Se č software, 
allora č molto poco probabile che la raggiungerai ;-)

 ha scritto nel messaggio
news:UyDlf.17905$z_6....@tornado.fastwebnet.it...


 Valter
Andrea

è una questione di arrotondamenti?
No, è una questione di sbaglio nel calcolo.
Effettivamente non va bene.
Devi adottare il mio metodo:
NewN := N mod 90;
if (N = 0) then NewN := 90;

Si.
Assolutamente no.

prova ad usare questo spezzone di programma:
in pratica in una variabile metti il risultato dell'operazione che hai
fatto...
quindi:
tmp:=strtoint(edit1.text); {considerando che nella edit metti il risultato}
while (tmp>90) then
   tmp:=tmp-90;
edit1.text:=tmp;
non sarà una funzione, ma è comunque ciò che ti serve.... ciao ciao... buon
lavoro... by BULMAX 
spi...@inwind.it


Basterebbe anche (N mod 90), si controlla il risultato, se è diverso 
da 0 lo si prende com'è, se è 0 lo si pone a 90.
Frank

da 0 lo si prende com'è, se è 0 lo si pone a 90.
Ehm... è esattamente quello che fa il codice di cui sopra... ;-)

 ha scritto nel messaggio 
news:A%Clf.17598$z_6...@tornado.fastwebnet.it...

No. 


Lol! Mi sembrava di aver risposto ad un altro messaggio, scusate!
Frank