Crea sito

Esercizi in Turbo C

Programmazione

PROGRAMMIAMO IN TURBO C

Il turbo C è un linguaggio di programmazione spesso utilizzato da tanti sistemisti.
Esso è un linguaggio di programmazione indubbiamente flessibile e potente.


E’ stato ideato preso i Bell Laboratories all’inizio degli anni ’70, in quanto si cercava un linguaggio adatto alla scrittura di software di base, in particolare alla scrittura di sistemi operativi.
Attraverso il C fu infatti implementato il sistema operativo UNIX.


Il turbo C ha come pregio la portabilità e per tale motivo è diventato un linguaggio standard.
Per quando riguarda l’ambiente MS-DOS esistono varie versioni di tale linguaggio e tra i più diffusi ci sono quelli della Microsoft C e della Borland. Noi useremo il compilatore Turbo C++ della Borland.

PRIMO PROGRAMMA

Spesso il principiante di informatica quando vuole fare il suo primo programma, vuol vedere visualizzato sullo schermo una frase che ha scritto.

Come primo programma quindi scriveremo una stringa di caratteri con la funzione


printf(“Ciao mondo!");

Prima di scrivere la prima stringa bisogna includere le librerie che hanno estensione .h, come la libreria <conio.h> e la libreria <stdio.h>.

Bisogna poi inserire la funzione principale


main()
 

racchiusa tra due parentesi graffe e dopo inserire la stringa che si vuole visualizzare, nel nostro caso Ciao mondo! all'interno dell'istruzione printf("        ";

Ogni istruzione deve terminare con il carattere ; (punto e virgola).


La struttura del programma sarà la seguente:

//Programma che scrive la stringa Ciao mondo!


#include <stdio.h>                 //INCLUDIAMO LE LIBRERIE
#include <conio.h>

void main()                            //INSERIAMO LA FUNZIONE PRINCIPALE main
{
printf("Ciao mondo!");        //SCRIVIAMO LA STRINGA DA VISUALIZZARE
getch();                                 //FERMIAMO LA VIDEATA

}

 

 

 

SECONDO PROGRAMMA

Scriviamo adesso un semplice programma che calcola se il numero inserito e' divisibile per 2,per 3,per 5.
In questo caso bisogna utilizzare l'istruzione IF... ELSE.
Questa istruzione se la condizione IF è vera esegue le istruzioni seguenti ad IF, se invece la condizione è falsa esegue le istruzioni seguenti ad ELSE.
Per acquisire il valore numerico dall'esterno abbiamo utilizzato la funzione
scanf("%d",&n);
dove
"%d" viene introdotta per i numeri interi mentre
&n per memorizzare il valore numerico inserito all'indizzo n.
Inoltre abbiamo aggiunto la fuzione
getch();
Questa funzione serve per fermare la videata e vedere tutto quello che il programma svolge.

/* CALCOLO DEI DIVISORI*/


#include 
#include

void main()
{
clrscr();
int n,c,r;
printf("digita il valore di n:");
scanf("%d",&n);
r=n%2;
if(r==0)
{
printf("%d e' divisibile per 2",n);
}
else
{
printf("%d non e' divisibile per 2",n);
}
r=n%3;
if(r==0)
{
printf("%d e' divisibile per 3",n);
}
else
{
printf("%d non e' divisibile per 3",n);
}
r=n%5;
if(r==0)
{
printf("%d e' divisibile per 5",n);
}
else
{
printf("%d non e' divisibile per 5",n);
}
printf("premi un tasto qualunque per uscire");
getch();
}

Altro esempio con l'istruzione IF...ELSE

//Confrontiamo due numeri inseriti tramite la tastiera utilizzando l'istruzione IF...ELSE

#include<stdio.h>
#include<conio.h>

void main( ) {
int a,b;
clrscr();
printf ("introduci due numeri interi separati dalla virgola ");
scanf ("%d,%d",&a,&b);
if (a > b) printf (" IL PRIMO NUMERO E' PIU' GRANDE");
else
if (a < b) printf (" IL PRIMO NUMERO E' PIU' PICCOLO");
else
printf (" I DUE NUMERI SONO UGUALI");
getch();
}

 

 

 

 

 

 

Il ciclo FOR

Adesso vi propongo qualche esercizio che possiamo fare con il ciclo FOR.

Il ciclo For puo' essere utilizzato con la seguente sintassi:

for (i=0;i<100;i++) {

...................................

}

 

oppure può essere utilizzato con un doppio for o for concatenato

for (i=0;i<100;i++) {

                                    for(j=0;j<10;j++) {

                                                                     ............}

                               }

oppure può essere utilizzato come un for per sempre

for(;;) {

.........}

Quest'ultimo utilizzo deve essere inserito con molta attenzione perchè bisogna inserire un caso ( se è inserito con lo switch... case) oppure con una condizione dell'IF...Else che faccia uscire dal programma con il comando

exit(0);

Gioco con il ciclo for che indovina una data di nascita

ESERCIZIO che utilizza l'istruzione

                                                   for(;;)

Vi propongo adesso un semplice esercizio con il For per sempre che permetta di indivinare la mia data di nascita.

Il programma non termina mai fino a quando non viene inserita la data giusta.

L'output del programma è il seguente, mentre il suo programma è nel PDF sottostante.
 

Tavola pitagorica con il ciclo For

//Disegnamo adesso una TAVOLA PITAGORICA sullo schermo
 

#include<stdio.h>
#include<conio.h>
#include
void main()
{
clrscr();
int tavolapit[11][11];
int i,j;
for(i=1;i<=10;i++)
{
for(j=1;j<=10;j++)
{
tavolapit[i][j]=i*j;
}
}
printf(" tavola pitagorica ");
printf("**************************************************************");
for(i=1;i<=10;i++)
{
for(j=1;j<=10;j++)
printf("%4d",tavolapit[i][j]);
printf("");
}
printf("**************************************************************");

getch();
}

 

 

 

 

 

 

Esercizio con il ciclo for: disegnamo 100 numeri sullo schermo:

//Disegnamo adesso sullo schermo i numeri fino a 100

//utilizzando due cicli for concatenati

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

void main()
{
 
//clrscr();

int i,j,numero;
numero=1;

printf(" tavola numeri fino a 100 ");
printf("**************************************************************");
for(i=1;i<=10;i++)
{
                  for(j=1;j<=10;j++)
                  {
                 
                  printf("%4d",numero);
                  numero=numero+1;
                  }
printf("");
}

printf("**************************************************************");

getch();
}

 

 

 

 

Le fuzioni

Programma in turbo C che calcola le quattro operazioni:

#include <stdio.h>
#include <conio.h>
float divisione(float a,float b);
float somma(float a,float b);
float moltiplicazione(float a,float b);
float sottrazione(float a,float b);
//funzione main
int main(float)
{
float a, b, som,sot,mol, div;//dichiaro le variabili globali
printf(" CALCOLATRICE \n");
printf("_______________________________________________");
printf("\nCALCOLIAMO LE QUATTRO OPERAZIONI\n");
printf("\n_______________________________________________");
printf("\nInserisci il primo numero\n");
scanf("%f",&a);
printf("Inserisci il secondo numero\n");
scanf("%f",&b);
som= somma(a,b);
mol=moltiplicazione(a,b);
sot=sottrazione(a,b);
div=divisione(a,b);
printf("_______________________________________________");
printf("\n \n SOMMA=%-15.3f",som);
printf("\n\n sottrazione=%-15.3f",sot);
printf("\n\nmoltiplicazione=%-15.3f",mol);
printf("\n\n divisione=%-10.3f",div);
printf("\n_______________________________________________");
getch();
}
//costruisco le funzioni

float somma(float a, float b){
float som;
som=a+b;
return(som);
}
float sottrazione(float a,float b)
{ float sot;
sot=a-b;
return(sot);
}
float moltiplicazione(float a,float b)
{ float mol;
mol=a*b;
return(mol);
}
float divisione(float a,float b)
{ float div;
div=a/b;
return(div);
}

Gli ARRAY MONODIMENSIONALI

Un array, detto anche vettore, è un insieme di elementi tutti dello stesso tipo ciascuno accessibile separatamente. Il numero degli elementi dell'array deve essere fissato quando l'array viene definito.
Il tipo dell'elemento può essere qualunque tipo semplice o strutturato.
Esempi di array:
foat a[15];
char b[2];
int valore[5];
float e[5] [4];


La variabile a contiene allora 15 elementi di tipo foat;

la varibile b contiene 2 lementi di tipo char;

la variabile valore contiene 5 elementi di tipo intero;

la variabile e contiene 5 elementi ciascuno dei quali è ancora un array di 4 elementi di tipo floa (quindi un ttale di 20 elementidi tipo float).
Questo ultimo tipo di arra viene detto array bidimensionale ed è il corrispondente della matrice in matematica.

Il primo elemento di un array in C ha sempre indice 0 mentre l'ultimo ha sempre indice n-1 con n pari al numero degli elementi.

Per acquisire un array di tipo char nel quarto elemento del vettore a si utilizza la sintassi:

scanf("%c",&a[3]);

oppure

scanf("%s",a);

in questo caso, nella funzione scanf, l'identificatore dell'array non è preceduto dall''operatore "&".

Per acquisire un array di tipo int si utilizza:

scanf("%d",&valore[i]);

in questo caso la variabile valore la stiamo acquisendo con un ciclo for indicizzato con la variabile i.

Per stampare un array di caratteri si usa:
printf("%s",a);

Se invece vogliamo acquisire dei numeri di tipo intero con un array, attraverso la struttura for, possiamo scrivere:

.............

for(i=0;i<5;i++)
{
printf("Inserisci un numero");
scanf("%d", &a[i]);
}
................................

Vediamo adesso un esempio più difficile;

 

 

 

ESEMPIO SUGLI ARRAY:

Vogliamo inserire un array con 5 numeri, si vuole poi scambiare di un posto verso sinistra (cioè eseguire uno schift verso sinistra) l'array inserito e poi vogliamo visualizzare sullo schermo sia il primo array che abbiamo inserito che quello con lo shift verso sinistra.

 

//PROGRAMMA CHE SHIFTA A DESTRA UN ARRAY DI 5 NUMERI
 

#include
#include
void main()
{
int i,a[5],aux;
printf("PROGRAMMA CHE SCHIFTA A DESTRA UN ARRAY");
for(i=0;i<5;i++)
{
printf("Inserisci un numero");              // INSERIMENTO ARRAY
scanf("%d",&a[i]);
}


printf("NUMERI INSERITI");

for(i=0;i<5;i++)
{ //visualizzazione array
printf("%d ",a[i]);

}
aux=a[4];

for(i=5;i>0;i--)
{
a[i]=a[i-1];                                  //  ESEGUE LO SCAMBIO

}
a[0]=aux;

printf("VISUALIZZA LO SCAMBIO");


for(i=0;i<5;i++)
{
printf("%d ",a[i]);                    //   VISUALIZZA LO SCAMBIO

}
getch();

}


 

 

 

 

 

Esercizio sull'array monodimensionale

Supponiamo di voler inserire dall'esterno dieci numeri e di volerli ordinare in modo crescente.

Prima di tutto salviamo i numeri inseriti in un array monodimensionale, attarverso un ciclo FOR, poi lo stampiamo con un altro ciclo FOR.

Per ordinare l'array dobbiamo inserire un ciclo For per i che va da 1 a 10 per ordinare il primo numero e poi ripetere lo stesso ordinamento per tutti gli altri numeri.

Dovremo cioè creare due cicli FOR concatenati seguendo la seguente struttrura:

for(j=1;j<=10;j++)

{

for(i=1;i<=10;i++)

{

 

-------------//istruzioni per lo scambio

}

}

 

 

Il programma completo è il seguente:

Eseguendo il programma dell'array ordinato in ordine crescente si avrà il seguente output.