Sei sulla pagina 1di 3

PROGRAMMA 15

Analisi e specifica
Dato un array monodimensionale di interi costruire,a partire dai valori contenuti in questo, un nuovo array in cui ci sono prima tutti i valori pari del primo array e poi tutti quelli dispari.

Definizione dei dati del problema:


Variabili di ingresso:il valore di ciascun elemento dello array A ; il riempimento dello array. Precondizioni di ingresso:nessuna. Variabili di uscita:L'array B. Precondizioni di uscita:L' array B contiene prima tutti i valori pari e poi quelli dispari. Tabella delle variabili di ingresso:
NOME DESCRIZIONE Riempimento array A Intero Vettore monodimensionale Intero TIPO

A vetA

Tabella delle variabili di algoritmo:


NOME DESCRIZIONE Indice dell'array Intero TIPO

i,j,k

Tabella delle variabili di uscita:


NOME DESCRIZIONE Vettore monodimensionale Intero TIPO

vetB

Descrizione del metodo di elaborazione:


1)Si indica il valore del riempimento dello array; 2)Si leggono i valori da inserire nell'array con un ciclo for. 3)Si inizializzano le due variabili j ,k ed attraverso un ciclo for si individuano i valori pari e quelli dispari usando l'operatore aritmetico %,. 4)Se il valore pari ,partendo dalla posizione 0 , si inserisce nell'array B. 5)Se il valore dispari , partendo dalla penultima posizione dell'array B , si inseriranno tutti i valori dispari. 6)Si stampa l'array cosi ottenuto.

Il programma in C
#include <stdio.h> main() { int k,i,j,A,vetA[A],vetB[A]; printf("****************\n"); printf("* ESERCIZIO 15 *\n"); printf("****************\n\n"); printf("Questo programma ,dopo aver fatto riempire all'utente un array A di interi ,\n"); printf("crea un array B dove vi sono :\nprima i valori pari dell'array A e poi quelli dispari.\n\n\n\n"); printf("****************************************************************\n\n\n"); printf("Quanti valori vuoi inserire nello array?\n"); scanf("%d",&A); printf("****************************\n\n\n"); for(i=0;i<A;i++) { printf("inserisci valore %d\n",i); scanf("%d",&vetA[i]); } printf("\n\n****************************\n"); printf("Array A\n"); j=(A-1); k=0; for(i=0;i<A;i++) { printf("valore %d = %d\n",i,vetA[i]); if(vetA[i]%2==0) {vetB[k]=vetA[i]; k++; }

else {vetB[j]=vetA[i]; j--;} } printf("****************************\n"); printf("Array B\n"); for(i=0;i<A;i++) {printf("valore %d = %d\n",i,vetB[i]); } printf("\n\nSessione terminata...\n"); system("PAUSE"); return 0; }