Calcolatrice Elementare in C

« Older   Newer »
  Share  
}Light{
CAT_IMG Posted on 16/11/2011, 16:00     +1   +1   -1




CODICE
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"

int _tmain(int argc, _TCHAR* argv[])
{        int a; //Variabile per la scelta dell' operatore.
       float num1,num2,ris;
       printf("Questo e' un semplice programma creato da }Light{ che permette di fare addizioni, sottrazioni, moltiplicazioni e divisioni fra due numeri \n");
       system ("pause");
       for (;;) {
       system("cls");
       printf("Inserisci il primo numero\n");
       scanf ("%f",&num1);
       printf("Inserisci il secondo numero\n");
       scanf ("%f",&num2);
       printf("inserisci:\n 0 per addizione\n 1 per sottrazione\n 2 per moltiplicazione\n 3 per divisione\n");
       scanf("%d",&a);
       if (a==0) {
               ris=num1+num2;}
       if (a==1) {
               ris=num1-num2;}
       if (a==2) {
               ris=num1*num2;}
       if (a==3) {
               ris=num1/num2;}
       if ((a!= 0)&&(a!= 1)&&(a!= 2)&&(a!= 3)){
               printf("\a hai inserito l'operatore errato\n");}
       else {
               printf("il risultato e' %.2f\n",ris);}
       system("pause");}
       return 0;
}


Ecco uno dei miei primi programmini in C che funziona, almeno sembra, in modo corretto.
Accetto critiche, consigli e chi più ne ha più ne metta..
:)
 
Top
Aaly
CAT_IMG Posted on 16/11/2011, 17:43     +1   -1




Carino. ;)
 
Top
TheJokers
CAT_IMG Posted on 16/11/2011, 18:09     +1   -1




bello
 
Top
»Master
CAT_IMG Posted on 16/11/2011, 20:03     +1   -1




buono come inizio ^^
 
Top
I.Ren
CAT_IMG Posted on 16/11/2011, 20:07     +1   -1




alcuni punti mi sono oscuri:

CODICE
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"


se te gli include li scrivi con gli apici lui va a cercare, di default nella cartella in cui stai compilando il programma. La ovvia conseguenza è che se non fai compilare il programma dentro la cartella (ora non so dove si trova) dove ci sono le librerie base, non compili niente. Ma potrei sbagliarmi anche se da quanto ricordo è come dico io. Se ho errato, dimmi pure.

Altro punto oscuro:

CODICE
_tmain


un programma C non dovrebbe nemmeno compilarsi se non gli dai una funzione chiamata main. Tu usi _tmain, wtf?

In sintesi: o ricordo male io o hai sbagliato tu. Se sbaglio io dimmelo purfavor che non si finisce mai di imparare. Se hai sbagliato tu che azzu di compilatore usi? lol

PS: in ogni caso, al posto di 3 if usa uno switch che viene meglio non solo dal punto di vista "estetico" ma anche dal punto di vista delle prestazioni. In 3 scelte si parla di pochissimo ma cmq è buona abitudine.

PPS: mi sfugge perchè hai messo il
CODICE
for (;;)

spiegami anche qua purfavor : D
 
Top
}Light{
CAT_IMG Posted on 16/11/2011, 21:55     +1   -1




CITAZIONE (I.Ren @ 16/11/2011, 20:07) 
alcuni punti mi sono oscuri:

CODICE
#include "stdafx.h"
#include "stdlib.h"
#include "stdio.h"


se te gli include li scrivi con gli apici lui va a cercare, di default nella cartella in cui stai compilando il programma. La ovvia conseguenza è che se non fai compilare il programma dentro la cartella (ora non so dove si trova) dove ci sono le librerie base, non compili niente. Ma potrei sbagliarmi anche se da quanto ricordo è come dico io. Se ho errato, dimmi pure. Non lo so se è come dici te, io il c lo studio a scuola e i prof (che sono cretini) mi hanno detto ogni volta che inizi un programma metti sempre le 3 librerie sopra indicate. Non so spiegarti bene a che servono, so solo che stdlib.h serve per il system pause

Altro punto oscuro:

CODICE
_tmain


un programma C non dovrebbe nemmeno compilarsi se non gli dai una funzione chiamata main. Tu usi _tmain, wtf?

In sintesi: o ricordo male io o hai sbagliato tu. Se sbaglio io dimmelo purfavor che non si finisce mai di imparare. Se hai sbagliato tu che azzu di compilatore usi? lol Come compilatore uso visual c++ 2008 e questa stringa è precompilata quando creo un progetto.. non so che dirti.. Anche qui non so a che serve quella roba _Tmain eccetera..

PS: in ogni caso, al posto di 3 if usa uno switch che viene meglio non solo dal punto di vista "estetico" ma anche dal punto di vista delle prestazioni. In 3 scelte si parla di pochissimo ma cmq è buona abitudine. Lo switch non lo so fare, sempre per il motivo della scuola, non mi hanno ancora spiegato lo switch ed è per questo che uso l'if (switch dovrebbe essere il caso?)

PPS: mi sfugge perchè hai messo il
CODICE
for (;;)

spiegami anche qua purfavor : D

Il for (;;) l'ho messo per farlo ciclare all'infinito fino a che l'utente non termina con la x .
(;;) vuol dire all'infinito visto che non ci sono condizioni, il programma andrebbe in loop se sarebbe solo così ma difatti ho inserito i system ("pause") per farlo fermare e premere un tasto per continuare..
quindi for (;;) { istruzioni;}
sta a voler dire ogni volta che finisci quelle istruzioni le ripeti.
difatti se noti all'inizio del for ho messo system ("cls") che serve per pulire lo schermo e rimettere le variabili num1 e num2.

Grazie molte per tutto quello che mi hai chiesto.
Anche io non sono un genio con il C, anzi tutt'altro.. volevo delle critiche e ora sono felice.
Spero di averti fatto capire le mie ragioni (che potrebbero essere anche errate)..
 
Top
»Master
CAT_IMG Posted on 16/11/2011, 22:36     +1   -1




io di C conosco niente, quindi...
però se mi permetti, una buona parte dei professori non insegna, fa memorizzare. può anche funzionare quando studi qualcosa come tassonomia su biologia, però non su una materia dove si deve usare per davvero la testa, quindi non sulla programmazione/logica/informatica/matematica/eccettera.
ovviamente, non prendertela con i prof, però prendi una guida/corso e studiatelo di per te da solo, IMPARI infinitamente meglio. :)
 
Top
}Light{
CAT_IMG Posted on 16/11/2011, 22:50     +1   -1




CITAZIONE (»Master @ 16/11/2011, 22:36) 
io di C conosco niente, quindi...
però se mi permetti, una buona parte dei professori non insegna, fa memorizzare. può anche funzionare quando studi qualcosa come tassonomia su biologia, però non su una materia dove si deve usare per davvero la testa, quindi non sulla programmazione/logica/informatica/matematica/eccettera.
ovviamente, non prendertela con i prof, però prendi una guida/corso e studiatelo di per te da solo, IMPARI infinitamente meglio. :)

Grazie dei consigli..
Il problema è la scuola, cioè se impari a programmare per fatti tuoi è diverso, hai più tempo e poi se lo fai è per passione tua personale!
Invece con il vincono della scuola è differente.. Devi imparare velocemente, magari a volte memorizzando e non sapendo perchè per esempio si mette una libreria invece che un altra, ma lo fai per sentito dire e perchè ti e è stato detto. Concordo con quello che hai scritto.
 
Top
»Master
CAT_IMG Posted on 16/11/2011, 23:04     +1   -1




CITAZIONE (}Light{ @ 16/11/2011, 22:50) 
CITAZIONE (»Master @ 16/11/2011, 22:36) 
io di C conosco niente, quindi...
però se mi permetti, una buona parte dei professori non insegna, fa memorizzare. può anche funzionare quando studi qualcosa come tassonomia su biologia, però non su una materia dove si deve usare per davvero la testa, quindi non sulla programmazione/logica/informatica/matematica/eccettera.
ovviamente, non prendertela con i prof, però prendi una guida/corso e studiatelo di per te da solo, IMPARI infinitamente meglio. :)

Grazie dei consigli..
Il problema è la scuola, cioè se impari a programmare per fatti tuoi è diverso, hai più tempo e poi se lo fai è per passione tua personale!
Invece con il vincono della scuola è differente.. Devi imparare velocemente, magari a volte memorizzando e non sapendo perchè per esempio si mette una libreria invece che un altra, ma lo fai per sentito dire e perchè ti e è stato detto. Concordo con quello che hai scritto.

però quella è la differenza tra un semplice programmatore e di un innovatore :)
 
Top
I.Ren
CAT_IMG Posted on 17/11/2011, 13:41     +1   -1




Che compilatore usi?
 
Top
}Light{
CAT_IMG Posted on 17/11/2011, 13:55     +1   -1




Visual C++ 2008 express edition!
Tra poco passerò al Visual studio 2010 ultimate
 
Top
I.Ren
CAT_IMG Posted on 17/11/2011, 14:27     +1   -1




quello è l'ide non il compilatore.

Il compilatore è quello che ti da gli errori, i warning e che alla fine se va tutto bene ti crea il .exe

PS: per un ciclo infinito al posto del for è meglio usare un while (1==1). E' la stessa cosa, ma è più usato
 
Top
}Light{
CAT_IMG Posted on 17/11/2011, 15:18     +1   -1




Ecco, non so nemmeno cos'è compilatore.. comunque non so io uso visual C ++ 2008, a me da lui gli errori se sbagli magari la sintassi oppure dichiaro una variabile che non uso.
E clicco su compila e mi da l'exe..
 
Top
themetaldrummer
CAT_IMG Posted on 17/11/2011, 16:50     +1   -1




anche while(;;) va bene
comunque io non ho mai messo una libreria per il system("PAUSE") O.o

iren usa il compilatore integrato presumo
 
Top
I.Ren
CAT_IMG Posted on 17/11/2011, 17:20     +1   -1




immagino anche io, la domanda è: quale?
 
Top
19 replies since 16/11/2011, 16:00   242 views
  Share