Torna indietro   Hardware Upgrade Forum > Software > Programmazione

FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III, la nuova mirrorless compatta
FUJIFILM X-T30 III è la nuvoa fotocamera mirrorless pensata per chi si avvicina alla fotografia e ricerca una soluzione leggera e compatta, da avere sempre a disposizione ma che non porti a rinunce quanto a controllo dell'immagine.
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati
Da Las Vegas, la visione di Larry Ellison e la concretezza di Clay Magouyrk definiscono la nuova traiettoria di Oracle: portare l’intelligenza artificiale ai dati, non i dati all’intelligenza, costruendo un’infrastruttura cloud e applicativa in cui gli agenti IA diventano parte integrante dei processi aziendali, fino al cuore delle imprese europee
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1
Dalla precisione estrema dei componenti alla gestione digitale dei processi: come la piattaforma ServiceNow consente ad Aston Martin Aramco Formula One Team di ottimizzare risorse IT e flussi operativi in un ambiente dove ogni millesimo di secondo conta
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-10-2002, 10:16   #1
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Programma in C

Ciao a tutti,
sono alle prime armi con la programmazzione in C.
Devo fare un esercizio che compili e vada perfettamente..
Il testo dice: chiedere all' utente (al massimo) 13 voti che ha registrato in quest'anno accademico, e di calcolarne la media, dire quale fra i voti è il massimo e quale il minimo.

Tenendo presente che abbaimo fatto solo cicli e procedure ricorsive, avete qualche idea da suggerirmi?

ciao e grazie
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 12:35   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Codice:
#include <stdio.h>
#define NMAX    13 /*numero massimo dei voti*/
#define VMAX    10.0 /*voto massimo*/

int main()
{
  int n, i;
  float somma, max, min, voto;

  do {
    printf("\nNumero dei voti da inserire : ");
    scanf("%d",&n);
    if(n > NMAX || n < 1)
      printf("Inserire un numero compreso fra 1 e %d\n", NMAX);
  } while(n > NMAX || n < 1);

  somma = 0.0;
  max = 0.0;
  min = VMAX+1.0;

  printf("\n");
  for(i = 0; i < n; i++) {
    do {
      printf("Voto numero %d : ", i+1);
      scanf("%f",&voto);
      if(voto > VMAX || voto < 0.0)
        printf("Inserire un voto compreso fra 1 e %.2f\n", VMAX);
    } while(voto > VMAX || voto < 0.0);
    if(voto > max) max = voto;
    if(voto < min) min = voto;
    somma += voto;
  }

  printf("\n\nInseriti %d voti"
           "\nLa media è %.2f"
           "\nIl voto minimo è %.2f"
           "\nIl voto massimo è %.2f\n",
           n, somma/n, min, max);
  /*le due istruzioni che seguono servono
    solo per permettere di leggere l'output
    del programma*/
  printf("\n\nPremere un tasto per terminare...");
  getch();
  return 0;
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 12:43   #3
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Cacchio,
ma lo avevi gi afatto o ti sei messo apposta???
grassie mille !

Ho preso un po paura...cakkio non ci arrivero mai io!!
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 12:54   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Vabbè sono 2 minuti
Dai dai...impegnati...
Se c'è qualcosa che non capisci dimmi pure...

Si poteva emttere anche qualche funzioncina...
Ad esempio quella che legge il voto...ma è solo una questione di leggibilità in questo caso....
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 13:52   #5
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Vabbè sono 2 minuti
Dai dai...impegnati...
Se c'è qualcosa che non capisci dimmi pure...

Si poteva emttere anche qualche funzioncina...
Ad esempio quella che legge il voto...ma è solo una questione di leggibilità in questo caso....

Avevo pensato pure io di chiedere quanti voti sono stati registrati per creare un ciclo in modo da uscinre quando il numero di voti fosse stato quello dichiarato ma non riuscivo ad "accumulare" i vari voti perche con un semplice ciclo si sarebbero sovrascritti prima che li potessi analizzare calcolandone la meia il max e il min...forse mi spiego male...anzi sicuro...
cmq grazie ancora della disponibilità....
ah i voti doveveno andare da minimo 18 a 30 perche sono voti universitari...ma no problema...almeno a modificarlo ci riesco!!! hehehe...

Grazie ancora...mi sa che ci riseniremo
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 15:16   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Nono...non ti sei spiegato male...

Comunque se i voti sono in 30esimi allora puoi benissimo rendere max, min e voto interi..
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 15:53   #7
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Scusami nuovamente, su una dispensa c'era questo esempio di procedure ricorsive per il quale ho dovuto inventarmi un main per vedere se compilava giusto....perche ho i miei dubbi riguardo all' output...dovrebbe dare un triangolo di n righe composto da spazi e * del tipo

---*
--***
*****
e via dicendo in base ad il valore n che immetto.....
secondo me non viene cosi ma così:

---*
--**
***
scusa ma non si reffa bene a fare sti schifo di disegni... ho messo le --- perche altrimenti non veniva incolonnato per bene...ci andrebbero spazi vuoti..

il fatto e che sto robo compila giusto ma se lo eseguo la pseudo shell mi si chiude nonostante il comando che ho aggiunto alla fine system pause...

E'solo un problema del mio compilatore? Ciao


-------------------------------------------------------------------------------



#include <stdlib.h>
#include <stdio.h>

void scrivicarattere (char c, int n)
{ if (n>0) {
printf ("%c",c);
scrivicarattere (c,n-1);
}
}


void aux (int spazi, int stelle)
{if (stelle>0){
aux (spazi+1, stelle-1);
scrivicarattere (' ',spazi);
scrivicarattere ('*',stelle);
printf ("\n");
}
}


void stelle (int n)
{aux (0,n);
}


int main()
{ int x=0;
printf ("scrivi numero righe");
scanf ("%d\n",x);
stelle (x);

system("PAUSE");

}
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 16:10   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Metti un getch(); in fondo invece del system("pause")...

PS: creeping death....mitici Metallica !!!

Comunque se deve essere così :

Ha ragione il testo...devi aggiungere 2 * per ogni livello...

i = indice del livello (parte da zero e arriva a n)
n = numero di livelli
Devi stampare n-i-1 spazi e (2*i)+1 asterischi...

OOOA
OOAAA
OAAAAA
AAAAAAA
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 22-10-2002, 20:24   #9
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Metti un getch(); in fondo invece del system("pause")...

PS: creeping death....mitici Metallica !!!

Comunque se deve essere così :

Ha ragione il testo...devi aggiungere 2 * per ogni livello...

i = indice del livello (parte da zero e arriva a n)
n = numero di livelli
Devi stampare n-i-1 spazi e (2*i)+1 asterischi...

OOOA
OOAAA
OAAAAA
AAAAAAA
True metal never die!!

Ho cambiato e messo getch(); ma si chiude lo stesso!!
Che compilatore usi ? ah lo usi su win o su linux?
Bho mi va in balla solo con questo progetto....uso dev-c++
Cmq dici che è giusto....lo provero di nuovo domani in unive...grazie intanto!
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 23-10-2002, 10:26   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dipende...il codice che ti ho postato prima l'ho scritto in Dev-C++, mentre altre cose le scrivo in Visual C++ o Borland C++ Builder...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 25-10-2002, 20:55   #11
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Metti un getch(); in fondo invece del system("pause")...

PS: creeping death....mitici Metallica !!!

Comunque se deve essere così :

Ha ragione il testo...devi aggiungere 2 * per ogni livello...

i = indice del livello (parte da zero e arriva a n)
n = numero di livelli
Devi stampare n-i-1 spazi e (2*i)+1 asterischi...

OOOA
OOAAA
OAAAAA
AAAAAAA

ciao,
scusa ma non l'ho piu provato sto programma....
allora dovrebbe andare codi come te l'ho trascritto?
Ma se io assegno a x nel main 5, la proc. aux inizia con i pareametri formali spazi=0 e stelle=5....
essendo stelle>o
ottengo
spazi=1 e stelle=4
essendo ancora stelle>0
ottengo
.......
......
.......
spazi=5 e stelle=0 -----> cosi esco dalla condizione
e passo alla proc scrivistelle 4 spazi, che la procedura stampa e va a capo, dopo passo alla stessa 1stella che viene stampata e vado a capo.....
successivamente alla proc aux ritorna spazi 4 e 2 asterischi...
e via dicendo ....
ma cosi facendo stamperebbe veramente quello che sostengo!!!
che passaggio ricorsivo salto?



ti ripeto che a me viene da pensare che stampa così:

ooooA
oooAA
ooAAA
oAAAA
AAAAA


non mi capisco piu!!!!
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 10:40   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No...avevo capito male...il codice non l'ho provato...
Se vuoi lo provo, ci sono 3 mila modi per fare una cosa del genere...

Nel programma manca una & nella scanf...
Comunque hai ragione...fa quello che dici te... In ogni caso è un triangolo anche quello...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 11:00   #13
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]No...avevo capito male...il codice non l'ho provato...
Se vuoi lo provo, ci sono 3 mila modi per fare una cosa del genere...

Nel programma manca una & nella scanf...
Comunque hai ragione...fa quello che dici te... In ogni caso è un triangolo anche quello...

volevo compilarlo così come era scritto nella dispensa...e mi sono inventatoo un main...adesso compila giusto ma una volta inseriti i numeri di righe non fa nulla...


sto facendo un altro programma che calcola la potenza di un numero passando ad un aprocedura base ed esponente.....ma mi sono sorti dei dubbi matematici.....:

0 alla 0 non esiste vero?

1 alla 0 = 1
-1 alla 0 =+1 o -1 ?
la calcolatrice da -1 ma sapevo che ogni numero positivo o negativo alla 0 da 1 ???

-1 alla 2 =+1 o -1 ??? la calcolatrice da -1 ma dai miei conti è come dire -1*-1= +1 !!!


Ps : non dite niente al mio proff di analisi
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 11:14   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Immetti un altro invio...non capisco perchè però se non lo immetti non parte...
Ah ecco...hai messo lo \n nello scanf...è per quello...

Comunque -1 ^ 0 è -1...perchè puoi fare -(1^0) = -1...

Il segno del risultato di un numero negativo elevato ad una potenza pari è sempre +...mentre se lo si eleva ad una potenza dispari il segno è sempre meno

Ahi ahi ahi...non si studia...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 12:02   #15
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Immetti un altro invio...non capisco perchè però se non lo immetti non parte...
Ah ecco...hai messo lo \n nello scanf...è per quello...

Comunque -1 ^ 0 è -1...perchè puoi fare -(1^0) = -1...

Il segno del risultato di un numero negativo elevato ad una potenza pari è sempre +...mentre se lo si eleva ad una potenza dispari il segno è sempre meno

Ahi ahi ahi...non si studia...

allora:

-ho tolto il \n e adesso si richiude la shell....come un tempo....

-la storia dei segni...bhe ci sono arrivato...ho dovuto ....concentrarmi un po e riflettere sulle ca@@ate che stavo dicendo....

-nel frattempo ho scritto sto programma, ma con valori del tipo -x alla esponente dispari mi da valore positivo e non negativo....
il problema sta nella valutazione b>0 ...ma non riesco asistemarlo....

qualche suggerimento?


#include <stdio.h>

double potenza (double b, int e)
{
int i,pot,pot0;
pot=1;
pot0=0;


if (b==0 && e==0) /* caso in cui base ed esponente sono entrambi 0 */
return printf ("ERROR\n");

if (b==0 && e!=0) /*caso in cui base è 0 ed esponente qualsiasi*/
return 0;

for (i=0;i<e;i++)
pot=pot*b;
if (b>0) /* caso in cui la base sia positiva */
return pot;
else
return -pot; /* caso in cui la base sia negativa */
}


int main()
{
double base,risultato;
int esponente;
printf ("Scrivi base\n");
scanf ("%lf", &base);
do
{printf ("Scrivi esponente\n");
scanf ("%d", &esponente);
if (esponente<0)
printf ("L'esponente deve essere un intero positivo!\n");}
while (esponente<0);
printf ("Risultato= %.1lf\n",potenza(base,esponente));
printf ("\n");
system("PAUSE");
}
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 12:39   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non importa che tu faccia la distinzione fra base positiva e base negativa...

b è già negativo...quindi se faccio b^3 e b è negativo mi ritornerà da solo un numero negativo...senza bisogno di cambiare segno...
Come fai te torna sempre un nuemro positivo...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 12:52   #17
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]Non importa che tu faccia la distinzione fra base positiva e base negativa...

b è già negativo...quindi se faccio b^3 e b è negativo mi ritornerà da solo un numero negativo...senza bisogno di cambiare segno...
Come fai te torna sempre un nuemro positivo...


l'ho modificato così.....


#include <stdio.h>

double potenza (double b, int e)
{
int i,pot,pot1;
pot=1;
pot1=-1;

if (b==0 && e==0) /* caso in cui base ed esponente sono entrambi 0 */
return printf ("ERROR\n");
if (b<0 && e==0) /* caso di base negativa ed esponente 0 */
return pot1;
for (i=0;i<e;i++) /* casi qualsiasi*/
pot=pot*b;
return pot;
}


int main()
{
double base,risultato;
int esponente;
printf ("Scrivi base\n");
scanf ("%lf", &base);
do
{printf ("Scrivi esponente\n");
scanf ("%d", &esponente);
if (esponente<0)
printf ("L'esponente deve essere un intero positivo!\n");}
while (esponente<0);
printf ("Risultato= %.1lf\n",potenza(base,esponente));
printf ("\n");
system("PAUSE");
}



un numero negativo alla 0 da sempre ......?
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 13:24   #18
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
.
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 17:06   #19
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da MetalMassacre
[b]un numero negativo alla 0 da sempre ......?
Boh...mi sa che ho scazzato...mi sa 1...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 26-10-2002, 19:24   #20
MetalMassacre
Senior Member
 
L'Avatar di MetalMassacre
 
Iscritto dal: Jan 2002
Città: VENICE
Messaggi: 1241
Quote:
Originariamente inviato da cionci
[b]
Boh...mi sa che ho scazzato...mi sa 1...

no dai ormai ho fatto che da -1!!!
__________________
...Fight with your heart, and you're Destined For Glory
But fight without soul and you will loose it all...
MetalMassacre è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Oracle AI World 2025: l'IA cambia tutto, a partire dai dati Oracle AI World 2025: l'IA cambia tutto, a parti...
Micron e millisecondi: la piattaforma ServiceNow guida l'infrastruttura IT di Aston Martin F1 Micron e millisecondi: la piattaforma ServiceNow...
ASUS GeForce RTX 5080 Noctua OC Edition: una custom fenomenale, ma anche enorme ASUS GeForce RTX 5080 Noctua OC Edition: una cus...
Dreame Aqua10 Ultra Roller, la pulizia di casa con un rullo Dreame Aqua10 Ultra Roller, la pulizia di casa c...
Ferrari F76: la prima hypercar NFT segna...
Am9080, sono passati 50 anni dal primo p...
Inquinamento record a Nuova Delhi: il go...
Il Giappone e il 'fetish' per i dischi o...
AMD presenterà il Ryzen 5 7500X3D...
Un aspirapolvere intelligente diventa un...
Il nuovo M5 fa la differenza anche nel g...
Le AirPods ora sono in grado di rilevare...
Oggi su Amazon succede di tutto: sconti ...
'Copilot Gaming mi spiava!': le accuse d...
Mova P50 Pro Ultra, robot aspirapolvere ...
Speciale action cam: doppio sconto solo ...
Eureka J15 Ultra conquista Amazon: aspir...
Game Pass è sempre più ric...
20 milioni di utenti contro Apple: grand...
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: 08:58.


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