domenica 28 settembre 2014

Sottrazione, moltiplicazione e divisione in C

23/09/2014

Proseguendo con le prove nel tentativo di comprendere le funzionalità e di prendere manualità con la programmazione in C , ho effettuato i tentativi di eseguire altri tipi di operazione.
Nel Post precedente http://lezioniinformatica3ai.blogspot.it/2014/09/primi-passi-con-la-programmazione-in-c.html , ho scritto un semplice programmino che eseguiva la somma di due valori inseriti da tastiera dall'utente.

Proverò ora con la sottrazione. Sostanzialmente il programma rimane lo stesso e andrò solamente a sostiture il comando c=a-b; per eseguire la sottrazione.

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
int b;           // con queste righe si dichiarano le variabili
int c;
printf("inserisci a:");
scanf("%d", &a);
printf("inserisci b:");            // questi comandi acquisisco dei valori dalla tastiera
scanf("%d", &b);                 // con print chiedo all'utente cosa inserire e lo scan lo acquisisce
c=a-b;
printf("risultato c= %d",c);

return 0;
}

Stessa cosa nel caso volessi eseguire una moltiplicazione, basterà indicare c=a*b; . 

I primi problemi sono nati con l'operazione di divisione. Sostituendo il mio c=a/b;  mi sono subito reso conto che il programmino funzionava ma restituiva solo numeri interi.

Ho quindi effettuato una piccola ricerca su internet e girando su alcuni forum cercando semplicemene divisione in C ho visto che altri utenti utilizzavano FLOAT  al posto di INT e quindi invece di indicare int a; int b; int c; utlizzavano float a; , float b; e float c;  Non mi sono però limitato a copiare e riscrivere, volevo capire il motivo e volevo capire a cosa sevisse questo float. A questo link http://www.html.it/pag/15397/le-variabili-in-c/ ho trovato la risposta. Praticamente in base a quello che dovrò acquisire e in base a quello che il mio programma dovrà fare, esiste la possibilità di dichiarare in modo differente il tipo delle mie variabili.

Tipi di dichiarazioneRappresentazioneN. di byte
charCarattere1 (8 bit)
intNumero intero2 (16 bit)
shortNumero intero “corto”2 (16 bit)
longNumero intero “lungo”4 (32 bit)
floatNumero reale4 (32 bit)
doubleNumero reale “lungo”8 (64 bit)

A questo punto ho provato a sostituire solo la dichiarazione della variabile c inserendo float c; ma non basta. Il risultato è sempre un numero intero. Ho dovuto allora fare un passo indietro e andare a rivedere anche le altre righe del mio programma. Ed ecco il problema. Quando vado a stampare a video il risultato printf("risultato c= %d, c); sto indicando con la stringa %d di stampare un numero intero. Ho trovato a questo link http://www.html.it/pag/15402/prime-operazioni-di-inputoutput/ le informazioni riguardanti i comandi printf e scanf e quindi un elenco delle stringhe di controllo:

Stringa di controlloCosa viene stampato
%d, %iIntero decimale
%fValore in virgola mobile
%cUn carattere
%sUna stringa di caratteri
%oNumero ottale
%x, %XNumero esadecimale
%uIntero senza segno
%fNumero reale (float o double)
%e, %EFormato scientifico
%%Stampa il carattere %

Nel mio caso quindi ho provato a utlizzare la stringa %f e la posso a questo punto utlizzare anche per l'acquisizione delle mie variabili in modo da poter inserire da tastiera in imput, anche dei numeri con la virgola per eseguire le mie operazioni. Ma ancora non basta. Ora il risultato è si un numero con i decimali ma tutti a zero nonostante i dati inseriti, 5 e 3 dovevano portare a un risultato con numeri decimali. Anche qui per intuizione ho provato a modificare anche la dichiarazione delle variabili a e b indicando il tipo di variabile float anche per queste due. Ora funziona:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  float a;
  float b;           
  float c;
  printf("inserisci a:");
  scanf("%f", &a);
  printf("inserisci b:");            
  scanf("%f", &b);                 
  c=a/b;
  printf("risultato c= %f",c);
return 0;
}

Ora il programmino restituisce un bel risultato con 6 decimali. Volendo usare meno decimali basterà indicarlo nella stringa che si vuole acquisire o stampare in questo modo: %.2f per esempio per due decimali oppure %.3f per decimali e così via.

Sono ancora all'abc ma vediamo con i prossimi post di approfondire e realizzare programmi sempre più complessi. Piano Piano però inizio ad acquisire manualità. Mi sono reso anche conto che per adesso mi riesce abbastanza semplice capire dove possa esserci un errore e su cosa andare ad intervenire. 


domenica 21 settembre 2014

Primi Passi Programmazione in C

19/09/2014.

Programmazione in C. Diverse volte ci ero incappato ma non mi ci ero mai avventurato.

Da qui siamo partiti. Poche righe di comandi su cui lavorare a cui dovevo riuscire a dare un senso:




#include <stdlib.h>

using namespace std;

int main()
{
    int a;
    int b;
    int c;
    a=1;
    b=2;
    c=a+b;
    return 0;
}


giovedì 18 settembre 2014

Si Comincia dai Ripassi

17/09/2014

La lezione di ieri 17/09 è iniziata con un ripasso credo di quello che avevano fatto i ragazzi provenienti dal biennio.

E' stata illustara una rappresentazione schematica del Modello Von Neumann che è alla base del funzionamnto dei nostri computer e che viene tutt'ora utilizzato. 




Nel frattempo oggi mi sono messo a studiarmi un pochettino come funziona questo blog. Mi sa che prima avevo sbagliato e ho fatto delle modifiche.


Primi Giorni

16/09/2014


L'attesa di ricominciare era tanta. Mi sono sentito spaesato in un primo momento. Per lo più circondato da ragazzi molto più giovani di me. Uno dei primi pensieri è sicuramente quello del "ma chi me l'ha fatto fare" però è stata una mia scelta e ho cercato fin da subito di immergermi in questa nuova esperienza.
Si comincia le lezioni alle 18 e i primi giorni sono i più duri perchè si arriva li già con il cervello cotto dalla giornata di lavoro.

Storia, Matematica, letteratura e inglese... Materie ormai quasi rimosse dalla mia memoria. Ma man mano i ricordi riaffiorano, bisogna solo sforzarsi di rimettere il tutto insieme.

Con questo blog cercherò di raccontare la mia esperienza e di raccontare di settimana in settimana quello che sarà il mio percorso.

L'apertura e la tenuta di questo blog è stato il primo compito in classe che mi è stato affidato dal professore di informatica. Quindi per adesso inizierò a  raccontare e condividere i miei progressi.

Questo blog verrà anche utilizzato come un ulteriore metodo di valutazione per il mio giudizio di fine anno.

Ed eccomi qua... è la prima volta che ne apro uno. Credo di aver fatto casino o comunque di non aver ben capito come funziona ma spero di riuscire ad approfondire in classe.

Mi sono letto qualche guida e vedrò poi di approfondire man mano.