Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare
Abbiamo messo alla prova il drone Antigravity A1 capace di riprese in 8K a 360° che permette un reframe in post-produzione ad eliche ferme. Il concetto è molto valido, permette al pilota di concentrarsi sul volo e le manovre in tutta sicurezza e decidere con tutta tranquillità come gestire le riprese. La qualità dei video, tuttavia, ha bisogno di uno step in più per essere competitiva
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 21-02-2011, 00:21   #1
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
[C]Non ridete ,ho appena iniziato....

Allora, ho questo codice che non riesco ad interpretare...se qualcuno mi da una mano....
Codice:
#include <stdio.h>
int funz (int,int);
int main ()
{
	int a=10,b=12,t;
	t=funz(a,b);
	printf("t=%d\n\n",t);
	return 0;
}
int funz (int x,int y)
{
	if(y!=0)
	   return(y+funz(y,x%y));
    else
       return x;
}
L'ho fatto girare e mi risulata che il "printf" riporta t=26.
Le mie perplessita' sono : ma la "funz" in realta' non fa nulla?Perche' y(che sarebbe b?) e' diverso da 0,quindi dovrebbe uscire con il "return x" che si dovrebbe limitare a riportare il valore di a cosi' come dichiarato nella main.
Ma allora il valore di t=26 da cosa e' dato,cioe' t=funz(a,b) che calcoli esegue ?
Grazie.
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 01:12   #2
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da toz Guarda i messaggi
Allora, ho questo codice che non riesco ad interpretare...se qualcuno mi da una mano....
Codice:
#include <stdio.h>
int funz (int,int);
int main ()
{
	int a=10,b=12,t;
	t=funz(a,b);
	printf("t=%d\n\n",t);
	return 0;
}
int funz (int x,int y)
{
	if(y!=0)
	   return(y+funz(y,x%y));
    else
       return x;
}
L'ho fatto girare e mi risulata che il "printf" riporta t=26.
Le mie perplessita' sono : ma la "funz" in realta' non fa nulla?Perche' y(che sarebbe b?) e' diverso da 0,quindi dovrebbe uscire con il "return x" che si dovrebbe limitare a riportare il valore di a cosi' come dichiarato nella main.
Ma allora il valore di t=26 da cosa e' dato,cioe' t=funz(a,b) che calcoli esegue ?
Grazie.
La funzione funz è ricorsiva è bisogna ragionare un attimo per capirne il funzionamento ,
quando viene eseguita la prima volta chiamata nel main y = 12

quindi if(y!=0) è verificato
ed esegue return(y+funz(y,x%y));

che equivale a return ( 12 + funz(12,10) )
anche adesso la if è verificata quindi ritorna ( 10 + funz(10 ,2) )
che continua ad essere verificato quindi ritorna ( 2 + funz(2,0) )
adesso l'if non è piu verificato perchè la y = 0 quindi ritorna la x che è = a 2.

quindi ricapitolando
( 12 + funz(12,10) )
diventa
( 12 + ( 10 + funz(10 ,2) ) )
che diventa
( 12 + ( 10 + ( 2 + funz(2,0) ) ) )
che diventa
( 12 + ( 10 + ( 2 + (2) ) ) )

Totale 26

Spero che ti risulta piu chiaro il funzionamento di quella funzione
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 11:13   #3
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Grazie mille.....ora mi e' molto piu' chiaro.....avevo fatto un madornale errore di "concentrazione" : y!=0 ,fin quando e' vero viene eseguita ricorsivamente la funz...non il contrario.....ne approfitto per chiedere una'altra cosa :ma x%y non dovrebbe riportare il resto di x/y ??Perch'e' nel primo pasaggio scrivi ( 12 + funz(12,10) ) ?
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 12:36   #4
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Cerco di spiegarmi meglio:
Nel primo passaggio della funz,essendo verificato y!=0 (12!=0) si ha (y+funz(y,x%y) => (12+funz(12,10).
Nel secondo pasaggio ,essendo ancora verificato y!=0 (10!=0) si ha (y1+(y2+funz(y2,x%y2))) => (12+(10+funz(10,10%10))) ma tu scrivi ( 12 + ( 10 + funz(10 ,2) ) ) non dovrebbe essere ( 12 + ( 10 + funz(10 ,0) ) ) ? Perche' x%y e' uguale a 2 ?
Grazie.
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 14:24   #5
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da toz Guarda i messaggi
Cerco di spiegarmi meglio:
Nel primo passaggio della funz,essendo verificato y!=0 (12!=0) si ha (y+funz(y,x%y) => (12+funz(12,10).
Nel secondo pasaggio ,essendo ancora verificato y!=0 (10!=0) si ha (y1+(y2+funz(y2,x%y2))) => (12+(10+funz(10,10%10))) ma tu scrivi ( 12 + ( 10 + funz(10 ,2) ) ) non dovrebbe essere ( 12 + ( 10 + funz(10 ,0) ) ) ? Perche' x%y e' uguale a 2 ?
Grazie.
Ho ricontrollato i miei calcoli è sono corretti.
Non so da dove ti esce quel 10 mod 10 , forse fai riferimento in una funzione ai ai valori delle varibili della funzione precedente piuttosto che a quelli correnti...
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 15:12   #6
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
I tuoi calcoli sono corretti,quello che non riesco a capire e' come varia il valore di x all'interno della funzione......
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 15:28   #7
bobbytre
Senior Member
 
L'Avatar di bobbytre
 
Iscritto dal: Feb 2010
Messaggi: 466
Quote:
Originariamente inviato da toz Guarda i messaggi
I tuoi calcoli sono corretti,quello che non riesco a capire e' come varia il valore di x all'interno della funzione......
ogni volta che richiami la funzione funz
è una storia a se stante che non ha nulla a che vedere con le chiamate precedenti

quindi quindi ogni chiamata ha le sue variabili che contengono i propri valori anche se hanno lo stesso nome

quindi la A del main e la X della prima chiamata di funzione sono due variabili diverse

cosi come lo sono la X della prima chiamata e la X della seconda chiamata di funz

quindi la X della prima chiamata vale 12
la X della seconda vale 10
la X della terza vale ... non mi ricordo ...
__________________
I robot hanno scintillanti fondoschiena metallici che non dovrebbero essere baciati.
bobbytre è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 16:47   #8
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Ti ringrazio per l'infinita pazienza......ti devo gia' una birra....
Il prototipo di funzione "int funz(int x,int y)" si prende i valori x=a=10 (dove a e' la prima variabile dichiarata nel main) e y=b=12 (dove b e' la seconda variabile dichiarata nel main).Dopodiche' i valori di x ed y
saranno assegnati dagli operandi nella funz,in particolare per qualsiasi valore che assumera' funz(pippo,pluto) io avro' x=pippo e y=pluto.
E' corretto?

x0=a=10,y0=b12
y!=0 VERO =>IF
(y+funz(y,x%y)) => (12+funz(12,10%12) => (12+funz(12,10)

x1=12,y1=10
y!=0 VERO =>IF
(y0+(y1+funz(y1,x1%y1))) => (12+(10+funz(10,12%10))) => (12+(10+funz(10,2)))

x2=10,y2=2
y!=0 VERO =>IF
(y0+(y1+(y2+funz(y2,x2%y2)))) => (12+(10+(2+funz(2,10%2)))) => (12+(10+(2+funz(2,0) => 12+10+2+2=26 => nella main funz(a,b)=26

x3=2,y3=0
y!=0 FALSO =>ELSE
return x=2 (che non viene preso in considerazione nella main)

Ci dovrei essere no?
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net

Ultima modifica di toz : 21-02-2011 alle 20:36.
toz è offline   Rispondi citando il messaggio o parte di esso
Old 21-02-2011, 20:35   #9
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Mi sa che ho sbagliato......cioe'
una volta arrivato all'ELSE ho return x,cioe' il valore di x sara' il valore della funzione quindi il tutto diventa cosi' :

x0=a=10,y0=b12
y!=0 VERO =>IF
(y+funz(y,x%y)) => (12+funz(12,10%12) => (12+funz(12,10)

x1=12,y1=10
y!=0 VERO =>IF
(y0+(y1+funz(y1,x1%y1))) => (12+(10+funz(10,12%10))) => (12+(10+funz(10,2)))

x2=10,y2=2
y!=0 VERO =>IF
(y0+(y1+(y2+funz(y2,x2%y2)))) => (12+(10+(2+funz(2,10%2)))) => (12+(10+(2+funz(2,0)))

x3=2,y3=0
y!=0 FALSO =>ELSE
return x=2

=> funz(y2,x2%y2) vale 2
=> (12+(10+(2+2))) = 26=funz(a,b)

sto proprio esaurito
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 13:40   #10
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Sempre ste cavolo di funzioni......qualcuno mi potrebbe spiegare come avviene la ricursione della funzione di questo prog???
Codice:
#include <stdio.h>
#define N 9
int funz(int *x,int y);
int main ()
{
	int i,z=0;
	int A[N]={0,1,2,3,4,5,6,7,8};
	for(i=N-1;i>=0;i-=2)
	{
		A[i]=(i+3)/2;
		z+=A[i];
	}
	z+=funz(A,0);
	printf("z=%d A[0]=%d\n\n",z,A[0]);
	return 0;
}
int funz(int *x,int y)
{
	if (*x < *(x+y))
	return y;
	else
	return *x=funz(x,y+1)+y;
}
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 15:29   #11
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
Quote:
Originariamente inviato da toz Guarda i messaggi
Sempre ste cavolo di funzioni......qualcuno mi potrebbe spiegare come avviene la ricursione della funzione di questo prog???
Codice:
#include <stdio.h>
#define N 9
int funz(int *x,int y);
int main ()
{
	int i,z=0;
	int A[N]={0,1,2,3,4,5,6,7,8};
	for(i=N-1;i>=0;i-=2)
	{
		A[i]=(i+3)/2;
		z+=A[i];
	}
	z+=funz(A,0);
	printf("z=%d A[0]=%d\n\n",z,A[0]);
	return 0;
}
int funz(int *x,int y)
{
	if (*x < *(x+y))
	return y;
	else
	return *x=funz(x,y+1)+y;
}
La ricorsione avviene come nel caso precedente.

Ora, non tocco più il C da 4 o 5 anni, però ricordo che gli Array ed i puntatori sono in relazione molto stretta, quindi quello che vedi lì è un modo malsano per scorrere un array attraverso puntatori

Chiedo a chi ne sa più di me.
Ma se nel main chiamo
Codice:
z+=funz(A,0);
e la signature di funz è:
Codice:
int funz(int *x,int y)
vuol dire che *x è il primo elemento dell'array, giusto?


Quindi in poche parole nell'if vai a paragone il primo elemento dell'array con tutti gli elementi successivi dell'array che sono > del primo elemento.

Dovrebbe tornare:

*x = 0 + funz(x,1) = 0 + 1;

Prendi con le pinze quello che ti dico perché ripeto che il C non lo tocco da anni.

PS: concittadino!
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole

Ultima modifica di dierre : 06-03-2011 alle 15:31.
dierre è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 17:29   #12
toz
Senior Member
 
L'Avatar di toz
 
Iscritto dal: Apr 2000
Città: Teramo
Messaggi: 685
Grazie concittadino!!!
Quello che non capisco pero' e',dopo il primo return dell ELSE,cosa succede...cioe' debbo sostiuire *x con 0 + funz(x,1) = 0 + 1 ?
In tal caso nell IF diventerebbe 0 + 1 < *( 0 + 1)+y) e y che valore avrebbe?

Interamnia caput mundi!!
__________________
Se c'è una soluzione,perchè t'arrabbi?
Se non c'è soluzione,perchè t'arrabbi?

Nuova gloria risplende suoi tuoi circuiti o mia Kt7-a.....per sempre,nei secoli dei secoli....
http://www.zotbox.net
toz è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2011, 17:46   #13
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
Quote:
Originariamente inviato da toz Guarda i messaggi
Grazie concittadino!!!
Quello che non capisco pero' e',dopo il primo return dell ELSE,cosa succede...cioe' debbo sostiuire *x con 0 + funz(x,1) = 0 + 1 ?
In tal caso nell IF diventerebbe 0 + 1 < *( 0 + 1)+y) e y che valore avrebbe?

Interamnia caput mundi!!
Allora: prima regola del programmatore, usare molto l'output. printati *x così vedi come cambia.
A mio parere lì x è sempre lo stesso "all'andata", quindi

*x = f(x,1) + 0

quindi

f(x,1) dovrebbe essere 0<1 perché *x punta sempre al primo elemento e *(x+y) dovrebbe puntare all'elemento 1, cioè (0+1).

Infatti nota che passa x e non *x, quindi rimane invariato nei passaggi perché x è l'indirizzo dell'array e rimane costante.

infatti tu in generale fai così:
Codice:
int a[n];
int *x;

x = a;
Tutto ciò, ribadendo che sicuramente c'è qualcuno con mente più fresca della mia sul C.
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Antigravity A1: drone futuristico per riprese a 360° in 8K con qualche lacuna da colmare Antigravity A1: drone futuristico per riprese a ...
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
Axiom Space ha completato un importante ...
Gli aeroplani Airbus utilizzeranno i sat...
Una nuova immagine della cometa interste...
'La soluzione a un problema che non esis...
Radeon RX 9000 sì, Ryzen 9000 no:...
Amazon versa 180 milioni al Fisco e canc...
Meta, il Board di Supervisione guarda o...
DJI rivoluziona le consegne aeree: il nu...
Fibercop e Microsoft Italia uniscono per...
App Store Award 2025: scarica le 17 app ...
NVIDIA fa marcia indietro, il supporto P...
Addio definitivo alla GeForce GTX 1080: ...
Numeri record per gli iPhone 17: Apple s...
L'Italia del 2025 raccontata da Google: ...
Piaggio lancia Porter NPE, il pick-up el...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 23:33.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v