Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-08-2010, 10: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, 11:06   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13054
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 11:10.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 11: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, 11: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 11:50.
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 12: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, 13: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, 13: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, 13: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 13:37.
ilaria93S è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14: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 14:09.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 24-08-2010, 14: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, 14: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, 14: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, 14: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, 14: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, 15: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, 15: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, 15: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, 15: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, 15: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, 15: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


DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
Warhorse Studios colpita da un grave att...
MX Master 4, arriva l'edizione speciale ...
Kali Linux 2026.3 porta la caccia alle r...
Oracle si affida a OpenAI: ChatGPT e Cod...
Kaspersky punta su IA e servizi gestiti ...
Già sfruttata la falla Brotli che...
Potrebbe essere stato scoperto un nuovo ...
Claude Code, il prompt per scovare telec...
Palit e GALAX smentiscono le voci sulla ...
Fujifilm annuncia la Instax Mini Evo 2, ...
Tailscale chiude le falle SSH verso root...
Il tuo Galaxy laggava nei giochi? Samsun...
Arrivano i nuovi Amazon Echo: prezzi da ...
Il nuovo pickup elettrico Ford può alime...
Opera WebAI: così l'intelligenza artific...
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: 18:14.


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