Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema Pow c++

  1. #1

    Problema Pow c++

    buonasera a tutti, sono nuovo e questo è il mio primo post, scusate se sbaglio qualcosa, comunque avrei da risolvere questo esercizio, ma mi trovo bloccato per colpa della funzione Pow, mi dice "pow cannot be used as a function"... :/ premetto che non posso usare la funzione atoi, ma devo per forza convertire la char in int... posto anche il mio tentativo di sorgente, grazie mille


    Scrivere un programma che legga una stringa (max 20 car.) rappresentante una costante intera
    (eventualmente con segno '-', ma non contenente spazi) e, se la sequenza è sintatticamente corretta,
    memorizzare il corrispondente numero intero in una variabile di tipo int e visualizzarlo; altrimenti
    visualizzare un opportuno messaggio.
    N.B. Si richiede di memorizzare e trattare la stringa letta come una stringa “tipo C”.
    SUGG. Si ricordi che se c e' un carattere che rappresenta una cifra decimale, l'intero c-48
    corrisponde al valore numerico della cifra.
    Esempi d'uso
    -
    Sintassi errata
    (N.B. Il segno '-' può trovarsi soltanto nella prima posizione della stringa e deve essere seguito da almeno
    una cifra)
    -1.2
    Sintassi errata
    - 22
    Sintassi errata
    12
    Il numero immesso e': 12
    -23
    Il numero immesso e': -23



    questo è il mio tentativo, premetto che mancano anche le segnalazioni di errore, grazie ancora!


    codice:
    #include <iostream>
    #include <cstring>
    #include <cmath>
    using namespace std;
    int main()
    {int x, y,i,j=10;
    char A[21], c;
    float pow, z;
    cout<<"Dammi la stringa da convertire.(senza immettere spazi, preceduta dal segno - se negativa)."<<endl;
    cin>>A;
    cout<<endl;
    y=strlen(A);
    cout<<"La lunghezza della stringa immessa è di "<<y<<"caratteri"<<endl;
    
    
    if(A[0]=='-')
    {{for(int i=y;i>0;i--)
    {x=0;
    z= pow(float j, float (i-1.0));
    x=((A[i]-48)*z)+x;
    }}
    x=x*-1;
    }
    if (A[i]>='0' && A[i]<=9)
    {{for(int i=y;i>=0;i--)
    {x=0;
    z=1*pow(j, i);
    x=((A[i]-48)*z)+x;
    }}
    
    
    cout<<"la stringa immessa convertita in intero è "<<x<<endl;
    
    
      cout<<"L'intero equivalente è "<<x<<endl; }   
    system("PAUSE");
    return 0;
    }
    Ultima modifica di MItaly; 27-11-2013 a 22:59 Motivo: tag CODE

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Scusa ma perché vuoi utilizzare una variabile che si chiama pow

    float pow, z;

    e perché usi la funzione così

    z= pow(float j, float (i-1.0));

    ??

    P.S. E' meglio usare i tag CODE per il codice altrimenti si fa fatica ...
    P.P.S. Hai scritto due volte il messaggio ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Sinceramente non ne ho idea, ho postato uno dei miei mille tentativi, proprio non so come saltarci fuori... Oooops scusate per il doppio messaggio!:/

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Scusa ... il problema di questo tuo thread è il messaggio d'errore della pow? Ti ho suggerito cosa rivedere per rimediare *a quel problema*.

    Fatto questo, se il tuo programma funziona è un altro problema.

    Quindi, controlla quello che ti ho indicato ... non puoi "non avere idea" di quello che hai scritto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    E in che modo lo posso rivedere? Io ci ho provato a rivederla, ma non ho idea di come si usa la pow, su internet avevo letto che andaa dichiarata come float, e ho provato sia in un modo che nell'altro, o letto di dichiarare i suoi elemnti come float e ho provato ij entrambi i modi, è un casino....:/ scusate la mia ignoranza, ma nessuno mi ha mai insegnato ad usare la libreria cmath, e mi son trovato un po in crisi...

  6. #6
    Nella dichiarazione delle variabili: float pow, z; Cambia il nome di pow con un altro( un qualsiasi nome che non riporti a una funzione).

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.