{"id":2562,"date":"2010-03-23T12:25:58","date_gmt":"2010-03-23T11:25:58","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=2562"},"modified":"2010-03-23T12:33:20","modified_gmt":"2010-03-23T11:33:20","slug":"c004-creiamo-una-semplice-calcolatrice-in-c-funzioni","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/c004-creiamo-una-semplice-calcolatrice-in-c-funzioni\/","title":{"rendered":"C#004 &#8211; Creiamo una semplice calcolatrice in C++ (funzioni)"},"content":{"rendered":"<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/ccpp.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/ccpp.png\" alt=\"C\/C++\" title=\"ccpp\" width=\"200\" height=\"100\" class=\"alignleft size-full wp-image-2377\" \/><\/a> Come promesso, in questo quarto appuntamento, vedremo come realizzare una piccola &#8220;calcolatrice&#8221; in C++. Di fatto vedremo semplicemente come prendere in input due interi, come calcolare la loro somma che verr\u00e0 salvata in un&#8217;apposita variabile e vi mostreremo infine come &#8220;stampare&#8221; a video il risultato. Ok, \u00e8 un programma davvero semplice per chi conosce gi\u00e0 il C++, ma per chi \u00e8 alle prime armi pu\u00f2 non risultare cos\u00ec banale. Per complicare un po&#8217; le cose, vedremo una seconda versione dello stesso programma, che sfrutter\u00e0 questa volta una funzione da noi creata per il calcolo della somma, funzione che poi potremo riutilizzare ogni volta che vorremo.<!--more--><\/p>\n<p>Ecco il codice del nostro piccolo programmino nella sua versione pi\u00f9 semplice:<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\n#include <iostream.h>\r\n\r\nusing namespace std;\r\n\r\nint main()\r\n{\r\n    int x,y,somma; \/\/Dichiariamo le tre variabili\r\n    somma = 0; \/\/Inizializziamo la variabile a 0\r\n    \r\n    cout << \"Inserisci il primo addendo: \";\r\n    cin >> x; \/\/Prendiamo in input il valore di x\r\n    cout << \"Inserisci il secondo addendo: \";\r\n    cin >> y; \/\/Prendiamo in input il valore di y\r\n    somma = x+y; \/\/Effettuiamo la somma\r\n    cout << \"La somma tra i due numeri e\\': \" << somma << \"\\n\";\r\n    \r\n    system(\"PAUSE\"); \/\/Questa istruzione \u00e8 indispensabile in ambiente Dev-C++\r\n    return 0;\r\n}\r\n<\/pre>\n<p>Come potete vedere abbiamo commentato ogni linea di codice per maggiore chiarezza. Questa \u00e8 una buona norma che tutti i programmatori dovrebbero seguire, non sottovalutate l'importanza dei commenti. Analizziamo ora il codice.<br \/>\n<em>int x,y,somma;<\/em> Con questa istruzione non facciamo altro che allocare spazio per le tre variabili che useremo per salvare i valori dei due addendi e la loro somma. Il tipo di queste variabili \u00e8 di tipo int, ovvero il programma si aspetter\u00e0 due valori interi e restituir\u00e0, di conseguenza, un risultato dello stesso tipo. <\/p>\n<p>Potremmo costruire la nostra calcolatrice in grado di effettuare somme anche tra numeri decimali, in questo caso dovremmo sostuituire la parola chiave int, con la parola float o double.<\/p>\n<p>(Se volete rinfrescarvi la memoria sui tipi di dato, date un'occhiata al nostro <a href=\"http:\/\/www.devapp.it\/wordpress\/c003-tipi-di-dato-atomico-e-strutturato.html\" target=\"_blank\">precedente articolo<\/a>)<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\n    cout << \"Inserisci il primo addendo: \";\r\n    cin >> x; \/\/Prendiamo in input il valore di x\r\n    cout << \"Inserisci il secondo addendo: \";\r\n    cin >> y; \/\/Prendiamo in input il valore di y\r\n<\/pre>\n<p>Queste istruzioni permetto al programma di fare una richiesta all'utente, ovvero, tramite <em>cout<\/em> verr\u00e0 visualizzato un messaggio sul monitor in cui chiediamo all'utente di inserire un intero e successivamente tramite <em>cin<\/em> prendiamo il rispettivo valore in input. (L'utente dovr\u00e0 di fatto digitare un numero sulla tastiera e premere invio). Questo per entrambi gli addendi.<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\n    somma = x+y; \/\/Effettuiamo la somma\r\n    cout << \"La somma tra i due numeri e\\': \" << somma << \"\\n\";\r\n<\/pre>\n<p>Con queste istruzioni effettuiamo la vera e propria operazione di somma e, successivamente, mostriamo il risultato a video. Notate come abbiamo concatenato pi\u00f9 istruzioni <em>cout<\/em>, la prima stampa il messaggio \"La somma tra i due numeri e\\': \", la seconda aggiunge il contenuto della variabile <em>somma<\/em> contenente il nostro calcolo (notate che questa non \u00e8 racchiusa tra \"\") ed infine viene stampato un carattere di escape: \"\\n\", che indica al programma di andare a capo di una linea (vi \u00e8 un altro carattere di escape nella prima parte \\' che serve a visualizzare l'apostrofo). Il tutto termina con un unico carattere ; che indica che questa istruzione composta \u00e8 di fatto tutta intera.<\/p>\n<p>Ecco uno screenshot dell'output visto da Dev-C++:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/C004_Somma_Cpp.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/C004_Somma_Cpp.png\" alt=\"C#004 - Somma in C++ Output\" title=\"C004_Somma_Cpp\" width=\"446\" height=\"226\" class=\"aligncenter size-full wp-image-2614\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/C004_Somma_Cpp.png 669w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/03\/C004_Somma_Cpp-300x152.png 300w\" sizes=\"auto, (max-width: 446px) 100vw, 446px\" \/><\/a><br \/>\n<\/center><\/p>\n<h4>Scriviamo la funzione somma<\/h4>\n<p>Per non rendere questo tutorial banale, passiamo a qualcosa di un po' pi\u00f9 complesso. Vogliamo ora generare una funzione esterna al main che possa essere poi richiamata ogni qual volta lo desideriamo. Questa servir\u00e0 semplicemente per effettuare la somme e notificare il risultato all'utente. Ecco il codice:<\/p>\n<pre lang=\"c\" line=\"0\" escaped=\"true\">\r\n#include <iostream.h>\r\n\r\nusing namespace std;\r\n\r\nint funzioneSomma(int a,int b);\r\n\r\nint main()\r\n{\r\n    int x,y, somma;\r\n    cout << \"Inserisci il primo addendo: \";\r\n    cin >> x; \/\/Prendiamo in input il valore di x\r\n    cout << \"Inserisci il secondo addendo: \";\r\n    cin >> y; \/\/Prendiamo in input il valore di y\r\n\r\n    somma = funzioneSomma(x,y); \/\/La chiamata alla funzione\r\n\r\n    cout << \"La somma tra i due numeri e\\': \" << somma << \"\\n\";\r\n\r\n    system(\"PAUSE\");\r\n    return 0;\r\n}\r\n\r\nint funzioneSomma(int a, int b){\r\n    int risultato; \r\n    risultato= 0; \/\/Inizializziamo la variabile a 0\r\n    risultato= a+b; \/\/Effettuiamo la somma\r\n\r\n    return risultato;\r\n}\r\n<\/pre>\n<p>Come potete vedere le differenze sono poche, ma di fondamentale importanta. Abbiamo semplicemente dedicato uno spazio apposito, all'interno di <em>funzioneSomma<\/em>, per tutta la procedura che comprende i seguenti punti: <\/p>\n<ul>\n<li>prelievo dei due valori interi (gli addendi)<\/li>\n<li>calcolo della somma<\/li>\n<li>stampa a video del risultato<\/li>\n<\/ul>\n<p>Questo alleggerisce di fatto il main e, cosa ancor pi\u00f9 importante, <strong>ci permette di riutilizzare tutte le volte che lo desideriamo <em>funzioneSomma<\/em><\/strong> con una semplice chiamata. Il codice inizia con la dichiarazione della funzione, a seguire il main e infine la nostra funzione di cui gi\u00e0 conosciamo il codice. Quello che possiamo farvi notare \u00e8 l' <em>int<\/em> prima del nome della funzione, che indica che la funzione restituir\u00e0 a chi l'ha richiamata (nel nostro caso al main) un valore intero (<em>risultato<\/em>), e i due parametri richiesti in input dalla funzione (int a, int b) che si aspetta la funzione e user\u00e0 nella sua elaborazione. Questi due parametri vengono chiesti precedentemente nel main e inviati alla funzione tramite la chiamata funzioneSomma(x,y). Il risultato dell'elaborazione della funzione verr\u00e0 poi salvato nella variabile somma.<\/p>\n<p>Abbiamo finito! Tenete presente che il programma fa praticamente le stesse cose che faceva quello scritto nella prima versione (con tutto il codice nell'unica funzione main), stesso output quindi, certo \u00e8 che questo risulta molto pi\u00f9 compatto nella sua espressione!<\/p>\n<p>A presto!!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Come promesso, in questo quarto appuntamento, vedremo come realizzare una piccola &#8220;calcolatrice&#8221; in C++. Di fatto vedremo&#8230;<\/p>\n","protected":false},"author":156,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[127],"tags":[68,150,149,120],"class_list":["post-2562","post","type-post","status-publish","format-standard","hentry","category-pillole-di-cpp","tag-c","tag-corso-c-c","tag-funzioni","tag-tutorial"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2562","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/156"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=2562"}],"version-history":[{"count":12,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2562\/revisions"}],"predecessor-version":[{"id":2621,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/2562\/revisions\/2621"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=2562"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=2562"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=2562"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}