Newsgroup: it.comp.lang.c
Titolo: Aiuto algoritmo



Ciao,mi chiamo Angelo,sono un 
neo
-programmatore C.Ho bisogno di
un aiuto per risolvere un problemino che mi affligge!!!

Devo realizzare una calcolatrice(naturalmente in C) e non riesco a
sviluppare l'algoritmo che interpreti la stringa di input.

Mi spiego meglio...

L'utente dovrà inserire un calcolo da realizzare in questo modo:

123,2 + 45,4

Come fa il mio software a capire dove termina il primo termine da sommare
e dove inizia il secondo termine ed eventualmente il terzo?

L'utente ad esempio potrà inserire(se riuscirò a sviluppare
l'applicazione!! :(  ) questa operazione da svolgere:

12,5+6,2+96

In pretica voglio attribuire ai numeri 12,5    
6,2   e    96  tre variabile di tipo double,e
allo stesso tempo l'applicazione deve intuire che deve effettuare la somma
dei tre numeri...

Quello che non riesco a capire è come far interpretare all'applicazione
l'inizio e la fine(intesa come ultima cifra)di ogni numero.

Spero di essere stato sufficientemente chiaro.

Mi affido all'esperienza di voi programmatori esperti e ringrazio anticipatamente.

Grazie.Angelo.

P.S. E' possibile(magari scaricandole da qualche sito) ottenere degli
esempi di semplici programmi in C che illustrano la soluzione di frequenti
problemi 'algoritmici'???

:) Grazie




Angelo ha scritto:


Puoi far acquisire l'opereazione come una stringa di caratteri con
la gets, e poi usare la funzione strtod della libreria stdlib che rintraccia
nella stringa il prima numero reale e crea un puntatore al punto in cui
termina questo numero

 



 Creare un algoritmo per una calcoatrice e' un po piu' complesso del trovare la fine e l'inzio di ogni numero, visto che dovresti preoccuparti anche delle precedenze operazionali quali
moltiplicazioni ,divisioni e calcoli tra parentesi.
Ivan Molella
--
Posted from 
mta14-acc.tin.it
 [212.216.176.45]
via Mailgate.ORG Server - 
http://www.mailgate.org

sommare e dove inizia il secondo termine ed eventualmente il terzo?
Un metodo molto semplice e' quello di usare le funzioni strtok() e
atof(). Se lanci il seguente programma dalla riga di comando con :
calc 12.5+6.2+95
ottieni esattamente 113.7
---- calc.c ---- :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main( int argc, char **argv )
{
    char * tok ;
    double sum = 0.0 ;
    if ( argc > 1 )
    {
       for ( tok = strtok( argv[1], "+" ) ;
             tok ;
             tok = strtok( NULL, "+" ) )
       {
           sum += atof( tok ) ;
       }
       printf( "%f\n", sum ) ;
    }
    return 0 ;
}
--
Andrea Laforgia
andrea_...@bigfoot.com



Ho risolto il problema,grazie cmq

Angelo ha scritto:

Ciao,mi chiamo Angelo,sono un 
neo
-programmatore
C.Ho bisogno di un aiuto per risolvere un problemino che mi affligge!!!

Devo realizzare una calcolatrice(naturalmente in C) e non riesco a
sviluppare l'algoritmo che interpreti la stringa di input.

Mi spiego meglio...

L'utente dovrà inserire un calcolo da realizzare in questo modo:

123,2 + 45,4

Come fa il mio software a capire dove termina il primo termine da sommare
e dove inizia il secondo termine ed eventualmente il terzo?

L'utente ad esempio potrà inserire(se riuscirò a sviluppare
l'applicazione!! :(  ) questa operazione da svolgere:

12,5+6,2+96

In pretica voglio attribuire ai numeri 12,5    
6,2   e    96  tre variabile di tipo double,e
allo stesso tempo l'applicazione deve intuire che deve effettuare la somma
dei tre numeri...

Quello che non riesco a capire è come far interpretare all'applicazione
l'inizio e la fine(intesa come ultima cifra)di ogni numero.

Spero di essere stato sufficientemente chiaro.

Mi affido all'esperienza di voi programmatori esperti e ringrazio anticipatamente.

Grazie.Angelo.

P.S. E' possibile(magari scaricandole da qualche sito) ottenere degli
esempi di semplici programmi in C che illustrano la soluzione di frequenti
problemi 'algoritmici'???

:) Grazie