Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

Esercizi semplici in codice C

informatica



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


























Dammi qua..














3>0














































































0<3

























Dammi un..














VERO







































VERO







































1<3

























Dammi un..














FALSO







































FALSO







































2<3

























Dammi un..














FALSO







































VERO







































3<3













































































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()

/*INIZIO*/



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

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


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

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


/*Leggi(ALT)*/

scanf("%d",&ALT);


/*conta<-1*/

conta=1;


8 /*minore<-ALT*/

minore=ALT;


/*maggiore<-ALT*/

maggiore=ALT;


/*MENTRE conta<N ESEGUI*/

while (conta<N)


/*DIFF<-maggiore-minore*/

DIFF=maggiore-minore;


/*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*/


/*FINE*/



Trace


N. IST.

N

conta

ALT

maggiore

minore

DIFF

MONITOR
















Dammi il num..










3>0 and 3<10














Dammi l'altez..


































1<3














Dammi l'altez..










FALSO








VERO
























2<3














Dammi l'altez..










FALSO








FALSO
















3<3
















VERO AND VERO














La differenza ..



















N. IST.

N

conta

ALT

maggiore

minore

DIFF

MONITOR
















Dammi il num..










-2>0 AND -2<10














Dammi il num..










2>0 AND 2<10














Dammi l'altez..


































1<2














Dammi l'altez..










FALSO








VERO
























2<2
















FALSO AND VERO






















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


e il numero X S = 2

il nuovo vettore sar.




#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


e il numero da aggiungere nel vettore è 32

il nuovo vettore in uscita sarà





#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: 4496
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024