Caricare documenti e articoli online  
INFtube.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.
Meneame
 
Non ricordi la password?  ››  Iscriviti gratis
 

Esercizi semplici in codice C

informatica


Inviare l'articolo a Facebook Inviala documento ad un amico Appunto e analisi gratis - tweeter Scheda libro l'a yahoo - corso di



ALTRI DOCUMENTI

Una sessione di lavoro - I file
CORSO DI ORDINAMENTO - INFORMATICA GENERALE E APPLICAZIONI TECNICO-SCIENTIFICHE
Il Software Applicativo
LE INTERFACCE STANDARD - INTERFACCIA
ARCHIVI DI DATI - OPERAZIONI SUI FILE
L'era dell'informazione - L'informazione elettronica
Il sistema binario come il sistema decimale: posizionale
Trasformare i DvD in VCD o DIVX
Introduzione ai linguaggi programmativi - Introduzione al Turbo Pascal
IL SISTEMA BINARIO

Esercizi semplici in codice C

Alcuni esercizi hanno le rispettive trace. Queste ultime sono importanti per capire il funzionamento del programma e per trovare eventuali errore.

/*Scrivere un algoritmo che dati in input N numeri determini la percentuale

dei positivi, dei negativi, dei pari e dei dispari 626c21g */

/*RIFORMULAZIONE

Scrivere un algoritmo che riceve dall'operatore:

-Un numero N intero positivo;

-N numeri interi (num);

E restituisce all'operatore:

-La percentuale dei numeri dispari 626c21g (p_disp);

-La percentuale dei numeri pari (p_pari);

-La percentuale dei numeri positivi (p_p);

-La percentuale dei numeri negativi (p_n); */

#include<stdio.h>



#include<conio.h>

void main()

/*INIZIO*/

/*FINCHE' (N>0) */

while (N<0);

/*positivo<-0*/

positivo=0;

/*negativo<-0*/

negativo=0;

/*pari<-0*/

pari=0;

/*dispari 626c21g <-0*/

dispari 626c21g =0;

/*conta<-0*/

conta=0;

/*MENTRE conta<N ESEGUI*/

while (conta<N)

/*p_p<-positivo*100/N*/

p_p=positivo*100/N;

/*p_n<-negativo*100/N*/

p_n=negativo*100/N;

/*p_disp<-dispari 626c21g *100/N*/

p_disp=dispari 626c21g *100/N;

/*p_pari<-pari*100/N*/

p_pari=pari*100/N;

/*Scrivi("La percentuale de numeri pari ",p_pari," invece quella dei numeri dispari 626c21g ",p_disp)*/

printf("La percentuale de numeri pari %f invece quella dei numeri dispari 626c21g %f \n ",p_pari,p_disp);

/*Scrivi("La percentuale dei numeri positivi ",p_p,"invece quella dei numeri negativi ",p_n)*/

printf("La percentuale dei numeri positivi %f invece quella dei numeri negativi %f \n ",p_p,p_n);

/*FINE*/

}

Trace

N

conta

num

positivo

negativo

pari

dispari 626c21g

resto

p_p

p_n

p_disp

p_pari

MONITOR

5

6

5

3

95

65

6

 

2

4

5

6

 

 

 

 

 

 

 

 

 

 

 

 

 

Dammi qua..

3

 

 

 

 

 

 

 

 

 

 

 

 

3>0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

0<3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dammi un..

 

 

-2

 

 

 

 

 

 

 

 

 

 

VERO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

VERO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1<3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dammi un..

 

 

5

 

 

 

 

 

 

 

 

 

 

FALSO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 



 

FALSO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

2<3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dammi un..

 

 

12

 

 

 

 

 

 

 

 

 

 

FALSO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

VERO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

3<3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

67

 

 

 

 

 

 

 

 

 

 

 

 

 

33

 

 

 

 

 

 

 

 

 

 

 

 

 

33

 

 

 

 

 

 

 

 

 

 

 

 

 

67

 

 

 

 

 

 

 

 

 

 

 

 

 

La percent..

 

 

 

 

 

 

 

 

 

 

 

 

La percent..

 

 

 

 

 

 

 

 

 

 

 

 

 

/*ESERCIZIO 2- Stampare la differenza tra l'altezza del pi alto e del pi basso di N fratelli (N positivo inferiore a 10) solo nel caso in cui tale differenza non sia compresa tra i 5 e i 9 centimetri.

RIFORMULAZIONE

Scrivere un algoritmo che riceve dall'operatore:

- Un numero N intero minore di 10;

- L'altezza di N fratelli reale positiva (ALT);

E restituisce all'operatore :

-La differenza tra l'altezza del pi alto e del pi basso nel caso sia compresa tra 5 e 9 (DIFF) o un messaggio;*/

#include<stdio.h>

#include<conio.h>

void main()

1/*INIZIO*/

4 /*FINCHE' N>0 AND N<10*/

while ((N<0)&&(N>10));

5 /*Scrivi("Dammi l'altezza di un fratello")*/

printf("Dammi l'altezza di un fratello");

6 /*Leggi(ALT)*/

scanf("%d",&ALT);

7 /*conta<-1*/

conta=1;

8 /*minore<-ALT*/

minore=ALT;

9 /*maggiore<-ALT*/

maggiore=ALT;

10 /*MENTRE conta<N ESEGUI*/

while (conta<N)

18 /*DIFF<-maggiore-minore*/

DIFF=maggiore-minore;

19 /*SE DIFF>5 AND DIFF<10 ALLORA*/

if ((DIFF>5)&&(DIFF<10))

20 /*ScrivI("La differenza tra il pi alto e il pi basso ",DIFF)*/

printf("La differenza tra il pi alto e il pi basso %d",DIFF);

/*ALTRIMENTI*/

else

21 /*Scrivi("La differenza non , compresa tra 5 e 10")*/

printf("La differenza non , compresa tra 5 e 10");

/*FINESE*/

22 /*FINE*/

}

Trace

N. IST.

N

conta

ALT

maggiore

minore

DIFF

MONITOR

1

5

5

4

4

7

8

 

2

 

 

 

 

 

 

Dammi il num..

3

3

 

 

 

 

 

 

4

3>0 and 3<10

 

 

 

 

 

 

5

 

 

 

 

 

 

Dammi l'altez..

6

 

 

165

 

 

 

 

7




 

1

 

 

 

 

 

8

 

 

 

 

165

 

 

9

 

 

 

165

 

 

 

10

1<3

 

 

 

 

 

 

11

 

 

 

 

 

 

Dammi l'altez..

12

 

 

158

 

 

 

 

13

FALSO

 

 

 

 

 

 

15

VERO

 

 

 

 

 

 

16

 

 

 

 

158

 

 

17

 

2

 

 

 

 

 

10

2<3

 

 

 

 

 

 

11

 

 

 

 

 

 

Dammi l'altez..

12

 

 

160

 

 

 

 

13

FALSO

 

 

 

 

 

 

15

FALSO

 

 

 

 

 

 

17

 

3

 

 

 

 

 

10

3<3

 

 

 

 

 

 

18

 

 

 

 

 

7

 

19

VERO AND VERO

 

 

 

 

 

 

20

 

 

 

 

 

 

La differenza ..

22

 

 

 

 

 

 

 

N. IST.

N

conta

ALT

maggiore

minore

DIFF

MONITOR

1

5

6

8

4

5

4

 

2

 

 

 

 

 

 

Dammi il num..

3

-2

 

 

 

 

 

 

4

-2>0 AND -2<10

 

 

 

 

 

 

2

 

 

 

 

 

 

Dammi il num..

3

2

 

 

 

 

 

 

4

2>0 AND 2<10

 

 

 

 

 

 

5

 

 

 

 

 

 

Dammi l'altez..

6

 

 

116

 

 

 

 

7

 

1

 

 

 

 

 

8

 

 

 

 

116

 

 

9

 

 

 

116

 

 

 

10

1<2

 

 

 

 

 

 

11

 

 

 

 

 

 

Dammi l'altez..

12

 

 

115

 

 

 

 

13

FALSO

 

 

 

 

 

 

15

VERO

 

 

 

 

 

 

16

 

 

 

 

115

 

 

17

 

2

 

 



 

 

 

10

2<2

 

 

 

 

 

 

18

 

 

 

 

 

1

 

19

FALSO AND VERO

 

 

 

 

 

 

21

 

 

 

 

 

 

 

22

 

 

 

 

 

 

La differenza ..

/*ESERCIZIO 3 Scrivere un algoritmo che riceve dall'operatore:

-il numero N di terne di tipo intero con valori positivi

E restituisce all'operatore:

-le prime N terne di tipo intero positivi;*/

#include<conio.h>

#include<stdio.h>

void main()

/*INIZIO*/

/*FINCHE'(N>0)*/

while(N<0);

/*conta<-0*/

conta=0;

/*primo<-0*/

primo=0;

/*secondo<-1*/

secondo=1;

/*terzo<-0*/

terzo=0;

/*MENTRE (conta<N) ESEGUI*/

while (conta<N)

/*FINE*/

}

/*4.Scrivere un algoritmo che riceve dall'operatore:

un numero intero(numero)

E restituisce all'operatore:

il valore della radice quadrata di un numero di tipo reale(radice)

o un messaggio di errore se il numero S negativo */

# include <math.h>

# include <stdio.h>

# include <conio.h>

void main ()

/* ALTRIMENTI*/

else

/*scrivi("Non si pu. fare la radice di un numero negativo")*/

printf("Non si pu. fare la radice di un numero negativo");

/* FINESE*/

}

/*ESERCIZIO 4 Scrivere un algoritmo che riceve dall'operatore:

-un numero K intero positivo;

-un numero N intero positivo;

E restituisce all'operatore:

-la somma dei quadrati dei primi K numeri naturali successivi a un numero naturale N;*/

#include<conio.h>

#include<stdio.h>

void main()

while(K<0);

do

while(N<0);

conta=0;

N=N+1;

somma=N*N;

while(conta<K)

printf("la somma S %d",somma);

}

/*ESERCIZIO 5 Scrivere un algoritmo che dato in ingresso un numero

scriva in unscita se il numero primo o no*/

#include<conio.h>

#include<stdio.h>

void main()

while(num<0);

conta=2;

div=0;

divisioni=0;

if(num!=1)

}

if(div>0)

printf("Il numero non S primo e si S scoperto dopo %d divisioni \n",divisioni);

else

printf("Il numero S primo e si S scoperto dopo %d divisioni",divisioni);

}

Alcuni esercizi sui vettori in codice C

ESERCIZIO 1

/*

se in ingresso ho come dimensione 9

e ho come vettore 1,2,5,6,8,1,2,12,5

dovr. avere in uscita due vettori:

quello di posto pari 2,6,1,12

quello di posto dispari 626c21g 1,5,8,2,5

*/

#include<stdio.h>

#include<conio.h>

#define POS1 0

#define DIM 150

#define DIM2 75

int ottieni_dimensione(int val);

void Inizializza(int V[DIM],int n,int dim);

void Caricamento(int V[DIM],int dim);

void posti_pari(int V[DIM],int v1[DIM2],int dim);

void posti_dispari 626c21g (int V[DIM],int v2[DIM],int dim);

void scrivi1(int vett1[DIM2],int dim);

void scrivi2(int vett2[DIM2],int dim);

void main()

int ottieni_dimensione(int val)

return(dim);

}

void Inizializza(int V[DIM],int n,int dim)

}

void Caricamento(int V[DIM],int dim)

}

void posti_pari(int V[DIM],int v1[DIM2],int dim)

printf("\n");

}

void posti_dispari 626c21g (int V[DIM],int v2[DIM],int dim)

}

void scrivi1(int vett1[DIM2],int dim)

}

void scrivi2(int vett2[DIM2],int dim)

}

ESERCIZIO 2

/*

Scrivi un algoritmo che riceve dall'operatore:

-la dimensione del vettore

-un vettore di interi

-un numero x

E restituisce all'operatore:

-un vettore le cui componenti pari siano uguali a quelle di indice pari

del vettore moltiplicate per X e le componenti dispari 626c21g siano uguali a

quelle dispari 626c21g del vettore incrementate di X.

ESEMPIO

Se la dimensione del vettore S 5, il vettore S

1 6 5 2 8

e il numero X S = 2

il nuovo vettore sar.

3 12 7 4 10

*/

#include<stdio.h>

#include<conio.h>

#define POS1 0

#define DIM 100

int ottieni_dimensione(int val);

void Inizializza(int V[DIM],int n,int dim);

void Caricamento(int V[DIM],int dim);

void moltiplica_pari(int V[DIM],int X,int dim);

void incrementa_dispari 626c21g (int V[DIM],int X,int dim);

void scrivi_ris(int V[DIM],int dim);

void main()

int ottieni_dimensione(int val)

return(dim);

}

void Inizializza(int V[DIM],int n,int dim)

}

void Caricamento(int V[DIM],int dim)

}

void moltiplica_pari(int V[DIM],int X,int dim)

}

void incrementa_dispari 626c21g (int V[DIM],int X,int dim)

}

void scrivi_ris(int V[DIM],int dim)

}

ESERCIZIO 3

/* Dato un vettore di N elementi, con N<=150, cancella l'elemento

di cui si conosce la posizione copiando su un altro vettore

tutte le componenti tranne quella da cancellare.

*/

#include<stdio.h>

#include<conio.h>

#define POS1 0

#define DIM 150

int ottieni_dimensione(int val);

void Inizializza(int V[DIM],int n,int dim);

void Caricamento(int V[DIM],int dim);

int leggi_posizione(int dim);

void cancella_elemento(int Vett[DIM],int ris[DIM-1],int pos,int dim);

void scrivi1(int v[DIM-1],int dim);

void main()

int ottieni_dimensione(int val)

return(dim);

}

void Inizializza(int V[DIM],int n,int dim)

}

void Caricamento(int V[DIM],int dim)

}

int leggi_posizione(int dim)

return(pos);

}

void cancella_elemento(int Vett[DIM],int ris[DIM-1],int pos,int dim)

while(p<dim-1)

}

void scrivi1(int v[DIM-1],int dim)

}

ESERCIZIO 4

/* Dato un vettore di N elementi, con N<=50, inserisci un elemento

di cui si conosce la posizione X e stampa il nuovo vettore.

*/

#include<stdio.h>

#include<conio.h>

#define POS1 0

#define DIM 50

int ottieni_dimensione(int val);

void Inizializza(int V[DIM],int n,int dim);

void Caricamento(int V[DIM],int dim);

int leggi_posizione(int dim);

void aggiungi_elemento(int Vett[DIM],int ris[DIM+1],int pos,int dim);

void scrivi1(int v[DIM+1],int dim);

void main()

int ottieni_dimensione(int val)

return(dim);

}

void Inizializza(int V[DIM],int n,int dim)

}

void Caricamento(int V[DIM],int dim)

}

int leggi_posizione(int dim)

return(pos);

}

void aggiungi_elemento(int Vett[DIM],int ris[DIM+1],int pos,int dim)

ris[p2]=el;

p2++;

while(p<dim+1)

}

void scrivi1(int v[DIM+1],int dim)

}

ESERCIZIO 5

/*

ESEMPIO

Se la dimensione inserita 8

il vettore S

1 5 8 12 40 45 49 85

e il numero da aggiungere nel vettore 32

il nuovo vettore in uscita sar

1 5 8 12 32 40 45 49 85

*/

#include<stdio.h>

#include<conio.h>

#define POS1 0

#define DIM 100

int ottieni_numero(int val);

void Caricamento(int V[DIM],int dim);

void scrivi1(int v[DIM+1],int dim);

void aggiungi_elemento(int Vett[DIM],int ris[DIM+1],int num,int dim);

void scrivi1(int v[DIM+1],int dim);

void main()

int ottieni_numero(int val)

return(dim);

}

void Caricamento(int V[DIM],int dim)

val=num;

V[pos]=num;

pos=pos+1;

}

}

void aggiungi_elemento(int Vett[DIM],int ris[DIM+1],int num,int dim)

ris[p2]=num;

p2++;

while(p<dim+1)

}

void scrivi1(int v[DIM+1],int dim)

}

ESERCIZIO 6

/*Calcola la radice quadrata della somma dei quadrati delle componenti di indice dispari 626c21g

di un vettore di N componenti, con n<=10.*/

#include<stdio.h>

#include<conio.h>

#include<math.h>

#define POS 1

#define DIM 100

int ottieni_dimensione(int val);

void inizializza(int vet[DIM],int dim,int n);

void caricamento(int vet[DIM] ,int dim);

float calcola_radice(int vet[DIM], int dim);

void main()

int ottieni_dimensione(int val)

return(n);

}

void inizializza(int vet[DIM],int dim,int n)

}

void caricamento(int vet[DIM] ,int dim)

}

float calcola_radice(int vet[DIM], int dim)

radice=sqrt(somma);

return(radice);

}

Programma in linguaggio C che simula il gioco Pacman. Questo programma, oltre ad essere complesso, richiede la conoscenza delle matrici.

//PACMAN

#include<conio.h>

#include<stdio.h>

#define OSTACOLO 'i'

#define CIBO 'x'

void scrivi_menu();

void Leggi_istruzioni();

void Gioca(int grandezza);

int Imposta_parametri();

void campo_di_gioco(int grandezza);

void disegno_confini();

void disegno_cibo(int grandezza);

void ostacoli(int grandezza);

void movimento_pacman(int max_x,int max_y,int*punti);

void mostro(int max_x,int max_y);

void visualizza_pacman();

void visualizza_mostro();

int calcola_perso();

int x,y,xm1=3,ym1=3,xm2=8,ym2=5,xm3=6,ym3=6,xm4=2,ym4=8,xm5=9,ym5=8;

char matrice[40][40];

void main()

scrivi_menu();

scanf("%d",&scelta);

}

}

void scrivi_menu()

void Leggi_istruzioni()

int Imposta_parametri()

printf("\n\n\n ORA PUOI GIOCARE !!!! ");

return(grandezza);

}

void Gioca(int grandezza)

else

if(grandezza==2)

else

if(grandezza==3)

do

while(mosse>=0);

clrscr();

printf("GAME OVER \n\n\n\n ");

printf("I punti che hai ottenuto sono %d \n\n\n ",punti);

}

void movimento_pacman(int max_x,int max_y,int *punti)

if((dir=='5')&&(y<max_y)&&(matrice[x][y+1]!='i'))

if((dir=='6')&&(x<max_x)&&(matrice[x+1][y]!='i'))

if((dir=='4')&&(x>1)&&(matrice[x-1][y]!='i'))

}

void campo_di_gioco(int grandezza)

void disegno_cibo(int grandezza)

else

if(grandezza==2)

else

if(grandezza==3)

while(y<lung)

printf("\n");

y=y+1;

x=0;

}

}

void ostacoli(int grandezza)

x=7;

y=8;

while(x<14)

if(grandezza!=1)

x=19;

y=5;

while(x<25)

}

if(grandezza==3)

x=39;

y=23;

while(x<45)

}

}

void visualizza_pacman()

void mostro(int max_x,int max_y)

if((ym3<max_y)&&(xm3<max_x))

else

if(xm3>2)

xm3--;

if(ym4<(max_y-6))

ym4++;

else

if(xm4<(max_x-4))

xm4++;

else

ym4--;

if(ym5<(max_y-1))

ym5++;

else

if(xm5<(max_x-6))

xm5++;

}

void visualizza_mostro()

int calcola_perso()







Privacy

Articolo informazione


Hits: 3098
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI

E 'stato utile?



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2019