Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT
Nelle ultime settimane abbiamo provato tre delle proposte top di gamma di NZXT nelle categorie case, dissipatori e ventole. Rispettivamente, parliamo dell'H9 Flow RGB+, Kraken Elite 420 e F140X. Si tratta, chiaramente, di prodotti di fascia alta che si rivolgono agli utenti DIY che desiderano il massimo per la propria build. Tuttavia, mentre i primi due dispositivi mantengono questa direzione, le ventole purtroppo hanno mostrato qualche tallone d'Achille di troppo
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz
ASUS ROG Swift OLED PG34WCDN è il primo monitor gaming con pannello QD-OLED Gen 5 a layout RGB Stripe Pixel e 360 Hz su 34 pollici: lo abbiamo misurato con sonde colorimetriche e NVIDIA LDAT. Ecco tutti i dati
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico
Nothing Phone (4a) Pro cambia pelle: l'alluminio unibody sostituisce la trasparenza integrale, portando una solidità inedita. Sotto il cofano troviamo uno Snapdragon 7 Gen 4 che spinge forte, mentre il display è quasi da top dig amma. Con un teleobiettivo 3.5x e la Glyph Matrix evoluta, è la prova di maturità di Carl Pei. C'è qualche compromesso, ma a 499EUR la sostanza hardware e la sua unicità lo rendono un buon "flagship killer" in salsa 2026
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-08-2010, 09:37   #1
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
programma in c++ aiuto!! :(

salve a tutti! mi servirebbe entro stasera questo programma... dmn ho l'esame di riparazione, ma questo programma non sono proprio riuscita a farlo perchè con le funzioni non ci ho capito niente spero che mi possiate aiutare.. grazie 1000 in anticipo a chi rispondera
( entro stasera mi serve )..

Scrivere un porgramma che acquista una stringa, attraverso una funzione stabilisca il numero di cifre contenute.
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 10:06   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12966
Beh il programma non te lo possiamo scrivere noi, comunque...

Una funzione (in maniera poco formale) è un blocco di codice che puoi richiamare da programma, che dato un ingresso ti da un'uscita.

Per dichiarare una funzione si usa questa sintassi:

Codice:
tipo nome-funzione(parametri)
{
    ..
    codice
    ..
    return valore;
}
Esempio:

Codice:
int doppio(int x)
{
    return x*2;
}
...

int main(void)
{
   int a = doppio(5); // a vale 10
   return 0;
}
Anche il main() è una funzione, in particolare la prima funzione ad essere eseguita quando avvii il programma.

Comunque ciò che ti si chiede non è difficile, in pratica farai una funzione del tipo string -> intero (ovvero che data una stringa ti ritorna un intero).

Codice:
int conta_numeri(string str)
{
    ..
    codice
    ..
    return conta;
}
Quello che dovrai fare è leggere un carattere alla volta e stabilire se è un numero oppure no, se è un numero allora incrementi di uno il contatore, altrimenti passi al carattere successivo.

Alla fine ritornerai la conta.

Ultima modifica di WarDuck : 24-08-2010 alle 10:10.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 10:25   #3
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
ok grazie mille! ora provo a rifarlo...
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 10:42   #4
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
ho provato a rifarlo... ci sono ancora deiversi errori, ma non riesco a capire cosa sbaglio


#include<stdio.h>

int conta_numeri(int stringa)
{
char v[]="0123456789";
int i,j,cont;
cont=0;
for(i=0;stringa[i]!='\0';i++)
{
for(j=0;j=9;j++)
{
if(stringa[i]==v[j])
{
cont++;
j=10;
}
}
}

return cont;
}

int main()
{
char stringa[20],v[10];
int cont, i,k,j, num, n;
printf("\ninserire una stringa:\n\n");
i=0;
scanf ("%c", & stringa[0]);
while (stringa[i]!='\n')
{
i++;
scanf ("%c", & stringa[i]);
}
cont=conta_numeri(stringa);
printf("\nIl numero di cifre della stringa e' %d\n",cont);
getch();
}

Ultima modifica di ilaria93S : 24-08-2010 alle 10:50.
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 11:40   #5
oNaSsIs
Member
 
L'Avatar di oNaSsIs
 
Iscritto dal: Apr 2007
Messaggi: 182
Per favore usa gli appositi TAG per postare del codice...
Comunque dando un'occhiata al volo nel tuo for hai sbagliato a scrivere la condizione j<9 e non j=9...
oNaSsIs è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 12:13   #6
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
scusa non lo sapevo..
comunque grazie, ma mi dice che ci sono anche altri errori.. tipo sul for prima
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 12:23   #7
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Se "stringa" viene dichiarato come numero intero, non puoi accedere a dei suoi elementi interni, come faresti nel caso di un'array.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 12:32   #8
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
devo scrivere char stringa?

ma mi dice ke c'è ancora un errore sul for..

Ultima modifica di ilaria93S : 24-08-2010 alle 12:37.
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:02   #9
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
nella tua funzione hai dichiarato:

Codice:
int conta_numeri(int stringa)
quando tu chiami la funzione e passi "stringa", tu passi il puntatore dell'array, questo credo che lo sai.

Un puntatore ad una stringa si scrive con * e deve essere naturalmente di tipo char.
Comincia a coreggere quindi la tua funzione così:
Codice:
int conta_numeri(char*stringa)
poi ci sono ancora dei problemi sul modo che usi per leggere la stringa credo

EDIT:
guarda il funzionamento di scanf():
http://www.cplusplus.com/reference/c.../cstdio/scanf/

Ultima modifica di Teo@Unix : 24-08-2010 alle 13:09.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:10   #10
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
Spoiler:
#include<stdio.h>

int conta_numeri(char *stringa)
{
char v[]="0123456789";
int i,j,cont;
cont=0;
for(i=0;stringa[i]!='\0';i++)
{
for(j=0;j<9;j++)
{
if(stringa[i]==v[j])
{
cont++;
j=10;
}
}
}

return cont;
}

int main()
{
char stringa[20],v[10];
int cont, i,k,j, num, n;
printf("\ninserire una stringa:\n\n");
i=0;
scanf ("%c", & stringa[0]);
while (stringa[i]!='\n')
{
i++;
scanf ("%c", & stringa[i]);
}
cont=conta_numeri(stringa);
printf("\nIl numero di cifre della stringa e' %d\n",cont);
}

evvai adesso funziona! grazie a tutti..
è rimasto solo un piccolo problema... quando lo mando in esecuzione dopo aver scritto "il numero di cifre della strnga è.." si chiude subito.
sapete come risolverlo?
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:13   #11
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Codice:
for(j=0;j=9;j++)
per l'uso del for guarda qui:
http://edu.os3.it/html/manual/impararec/node46.html#815

non ha senso assegnare j = 9 lì ci va un test, magari j == 9
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:24   #12
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Codice:
for(j=0;j=9;j++)
per l'uso del for guarda qui:
http://edu.os3.it/html/manual/impararec/node46.html#815

non ha senso assegnare j = 9 lì ci va un test, magari j == 9
adesso ho messo j<=9 e funziona.. a parte quel problema che ho scritto prima...
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:27   #13
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
posta il codice perchè sarà oramai stato modificato parecchio...

per capire quello che succede inserisci alla fine della funzione principale "main()" l'istruzione:

Codice:
system("PAUSE");
così il programma si ferma e capiamo cosa viene stampato.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 13:44   #14
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
mi da errore.. "system undeclared"
cmq ecco il codice...

Codice:
#include<stdio.h>

int conta_numeri(char *stringa)
{
    char v[]="0123456789";
    int i,j,cont;
    cont=0;
    for(i=0;stringa[i]!='\0';i++)
    {
                             for(j=0;j<=9;j++)
                             {
                                             if(stringa[i]==v[j])
                                             {
                                                             cont++;
                                                             j=10;
                                             }
                             }
    }

    return cont;
}

int main()
{
    char stringa[20],v[10];
    int cont, i,k,j, num, n;
    printf("\ninserire una stringa:\n\n");
    i=0;
    scanf ("%c", & stringa[0]);
    while (stringa[i]!='\n')
    {
          i++;
	      scanf ("%c", & stringa[i]);
    }
    cont=conta_numeri(stringa);
    printf("\nIl numero di cifre della stringa e' %d\n",cont);   
    system("PAUSE");
}
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:08   #15
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
la stringa di formato per scanf() deve essere %s non %c. %s legge una stringa di caratteri %c ne legge uno.

Per system(), tu sei su windows o su linux?
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:10   #16
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
la stringa di formato per scanf() deve essere %s non %c. %s legge una stringa di caratteri %c ne legge uno.

Per system(), tu sei su windows o su linux?
windows
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:12   #17
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
quindi così va bene?

Codice:
#include<stdio.h>

int conta_cifre(char *stringa)
{
    char v[]="0123456789";
    int i,j,cont;
    cont=0;
    for(i=0;stringa[i]!='\0';i++)
    {
                             for(j=0;j<=9;j++)
                             {
                                             if(stringa[i]==v[j])
                                             {
                                                             cont++;
                                                             j=10;
                                             }
                             }
    }

    return cont;
}

int main()
{
    char stringa[20],v[10];
    int cont, i,k,j, num, n;
    printf("\ninserire una stringa:\n\n");
    i=0;
    scanf ("%s", & stringa[i]);
    cont=conta_cifre(stringa);
    printf("\nIl numero di cifre della stringa e' %d\n",cont);   
}
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:14   #18
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da ilaria93S Guarda i messaggi
windows
includi stdlib così:

Codice:
#include <stdlib.h>
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:18   #19
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da ilaria93S Guarda i messaggi
quindi così va bene?
credo di si.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14:25   #20
ilaria93S
Junior Member
 
Iscritto dal: Aug 2010
Messaggi: 11
ok perfetto!! grazie mille!!
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
ASUS ROG Swift OLED PG34WCDN recensione: il primo QD-OLED RGB da 360 Hz ASUS ROG Swift OLED PG34WCDN recensione: il prim...
Recensione Nothing Phone (4a) Pro: finalmente in alluminio, ma dal design sempre unico Recensione Nothing Phone (4a) Pro: finalmente in...
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
CAS Space ha lanciato per la prima volta...
Qualcomm boccia Samsung: i futuri chip S...
Il razzo spaziale cinese Tianlong-3 di S...
Samsung cambia i piani: aumenta la produ...
TSMC non si ferma più: fatturato ...
Xiaomi porta in Italia il nuovo Redmi A7...
Mercato smartphone: Q1 2026 positivo (+1...
YouTube punta sull'AI: gli utenti potran...
Il prossimo chip a 2 nm di Samsung punte...
Due smartphone REDMAGIC sono stati rimos...
La beta della One UI 8.5 è ora di...
Addio al Pannello di Controllo di Window...
Il chip N1 di NVIDIA per i laptop del fu...
YouTube Premium costerà di pi&ugr...
I nuovi Samsung Galaxy A57 5G e A37 5G a...
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: 00:37.


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