[C] semplici programmi
Scrivere un programma in C, che dato un array di 5 elementi caricati da tastiera, inverte l'array in se stesso e stampa i numeri invertiti..
es (1,2,3,4,5) ==> (5,4,3,2,1)
Scrivere un programma che caricato un array di 10 elementi da tastiera, mette gli elementi dispari in un vettore e quelli pari in un altro...
il tutto usando come istruzioni di I/o cin e cout.. che sono del C++... ma solo quelle.. per il resto il programma deve essere C.
Grazie mille a chi si cimenterà.
es (1,2,3,4,5) ==> (5,4,3,2,1)
Scrivere un programma che caricato un array di 10 elementi da tastiera, mette gli elementi dispari in un vettore e quelli pari in un altro...
il tutto usando come istruzioni di I/o cin e cout.. che sono del C++... ma solo quelle.. per il resto il programma deve essere C.
Grazie mille a chi si cimenterà.
Risposte
Primo quesito: Listato C
Non ho usato funzioni perchè non conosco il grado di conoscenze che hai sul C. Comunque se le hai affrontate è molto facile modificare il sorgente.
Ciao, Ermanno.
/*Scrivere un programma in C, che dato un array di 5 elementi caricati da tastiera, inverte l'array in se stesso e stampa i numeri invertiti.. es (1,2,3,4,5) ==> (5,4,3,2,1)*/ #include <iostream.h> #define DIM 5 int vet[DIM]; main(){ int i; cout<<"\n\t\t\t INVERSIONE DI UN ARRAY\n"; for(i=0;i<DIM;i++){ cout<<"\n Inserisci il "<<i+1<<"° elemento: "; cin>>vet[i]; } int aux; for(i=0;i<(DIM/2);i++) { aux=vet[i]; vet[i]=vet[DIM-1-i]; vet[DIM-i-1]=aux; } cout<<"\n L'array invertito è: \n"; for (i=0;i<DIM;i++){ cout<<"\n "<<i+1<<"° elemento: "<<vet[i]; } }
Non ho usato funzioni perchè non conosco il grado di conoscenze che hai sul C. Comunque se le hai affrontate è molto facile modificare il sorgente.
Ciao, Ermanno.
/*Scrivere un programma che caricato un array di 10 elementi da tastiera, mette gli elementi dispari in un vettore e quelli pari in un altro...*/ #include <iostream.h> #define DIM 10 void carica(int []); void visualizza(int[],int ); int pari(int [],int[]); int dispari(int [],int[]); void main() { int v1[DIM],v2[DIM],v3[DIM],i,j; cout<<"\n\t\t\t NUMERI PARI E DISPARI IN UN ARRAY\n"; carica(v1); cout<<"\n VETTORE ->"; visualizza(v1,DIM); i=pari(v1,v2); j=dispari(v1,v3); cout<<"\n\n NUMERI PARI ->"; visualizza(v2,i); cout<<"\n\n NUMERI DISPARI ->"; visualizza(v3,j); } void carica(int vet[]) { int i; for(i=0;i<DIM;i++){ cout<<"\n Inserisci il "<<i+1<<"° elemento: "; cin>>vet[i]; } } void visualizza(int vet[],int l) { int i; for(i=0;i<l;i++) cout<<" "<<vet[i]; } int pari(int v1[],int v2[]) { int i,k=0; for(i=0;i<DIM;i++) { if(v1[i]%2==0) { v2[k]=v1[i]; k++; } } return k; } int dispari(int v1[],int v2[]) { int i,k=0; for(i=0;i<DIM;i++) { if(v1[i]%2!=0) { v2[k]=v1[i]; k++; } } return k; }
In questo programma le funzioni sono d'obbligo!
Ciao, Ermanno.
il void cosa sta a significare e quando si usa?
ciao
ciao
Nel linguaggio C la maggior parte di quello che si usa è costituito da funzioni. Per poter simulare le procedure che non ritornano alcun valore è stato introdotto il tipo void. Il tipo void o tipo indefinito è utilizzato dal C tutte le volte che il valore di ritorno di una funzione non deve essere preso in considerazione. In pratica nel linguaggio C le procedure sono funzioni che restituiscono un void.
Ciao, Ermanno.
Ciao, Ermanno.
Il void oltre che a significare quello che giustamente ha detto leonardo ha anche un altro potente significato.
Se usiamo void * indichiamo che possiamo accettare un puntatore di qialsiasi natura (char*, int*, double* ...).
Se usiamo void * indichiamo che possiamo accettare un puntatore di qialsiasi natura (char*, int*, double* ...).
peccato, leonardo.
le convenzione di compressione degli spazi attiva in questo forum ha vanificato il tuo lavoro di render leggibile il tuo prgm con le usuali indentazioni:
ma c'è un rimedio.
se vuoi ottenere l'effetto desiderato, procedi così:
1- apri in correzione (con la terza icona da destra) il tuo stesso messaggio, lo troverai intatto come l'avevi battuto
2- inserisci il comando ['code'] scritto senza gli apici prima del testo di cui vuoi preservare la formattazione
3- inserisci il comando ['/code'] scritto senza gli apici alla fine di quel testo
4- chiudi inviando la correzione
tony
p.s. il termine code mi fa proprio pensare che sia nato per preservare l'incolonnamento di codice di programma
le convenzione di compressione degli spazi attiva in questo forum ha vanificato il tuo lavoro di render leggibile il tuo prgm con le usuali indentazioni:
void carica(int vet[]) int pari(int v1[],int v2[]) { int i,k=0; for(i=0;i<DIM;i++) { if(v1[i]%2==0) { v2[k]=v1[i]; k++; } } return k; }
ma c'è un rimedio.
se vuoi ottenere l'effetto desiderato, procedi così:
1- apri in correzione (con la terza icona da destra) il tuo stesso messaggio, lo troverai intatto come l'avevi battuto
2- inserisci il comando ['code'] scritto senza gli apici prima del testo di cui vuoi preservare la formattazione
3- inserisci il comando ['/code'] scritto senza gli apici alla fine di quel testo
4- chiudi inviando la correzione
tony
p.s. il termine code mi fa proprio pensare che sia nato per preservare l'incolonnamento di codice di programma
Infatti hai ragione tony. Le indentazioni nei sorgenti sono fondamentali per la leggibilità di un listato ma anche per la visibilità delle vari parti che compongono il corpo del programma. Purtroppo, anche conoscendo il comando quote, dovevo scappare e quindi ho postato il messaggio con velocità senza pensare. Grazie della segnalazione.
CIao, Ermanno.
CIao, Ermanno.
vi lascio un due tre quesiti da svolgere... possibilmente ampiamente commentati.
Scrivere un programma che legge due matrici da un file txt, le somma, e scrive la matrice somma in un altro file txt...il tutto da farsi esclusivamente con le funzioni (senza fare tutto nel main per intenderci). Io uso un C '' elementare''... per scrivere nei file uso file.open(miofile.txt, ios:out)... queste istruzioni del C++... uso cin, cout come già detto.. e queste istruzioni su file del C++...
possibilmente nella maniera + semplice possibile...
grazie a chi perderà un pò di tempo per queste mie sciagurate domande
Scrivere un programma che legge due matrici da un file txt, le somma, e scrive la matrice somma in un altro file txt...il tutto da farsi esclusivamente con le funzioni (senza fare tutto nel main per intenderci). Io uso un C '' elementare''... per scrivere nei file uso file.open(miofile.txt, ios:out)... queste istruzioni del C++... uso cin, cout come già detto.. e queste istruzioni su file del C++...
possibilmente nella maniera + semplice possibile...
grazie a chi perderà un pò di tempo per queste mie sciagurate domande
QUESTA è LA SINTASSI che uso per leggere un array da file
LETTURA ARRAY DA FILE
#include
#include
#include
int main()
{ int array1[10];
int i=0;
fstream miofile;
miofile.open("miofile.txt", ios::in);
while ( miofile >> array1 ){
cout << array1 <
i++; }
system("PAUSE");
return 0;
}
ora il programma di cui al post precedente dovrei impostarlo con le funzioni.. riducendo il + possibile il main.. chiamando funzioni esterne...
vi prego datemi una mano.. ho poco tempo
ciao
LETTURA ARRAY DA FILE
#include
#include
#include
int main()
{ int array1[10];
int i=0;
fstream miofile;
miofile.open("miofile.txt", ios::in);
while ( miofile >> array1 ){
cout << array1 <
system("PAUSE");
return 0;
}
ora il programma di cui al post precedente dovrei impostarlo con le funzioni.. riducendo il + possibile il main.. chiamando funzioni esterne...
vi prego datemi una mano.. ho poco tempo
ciao
nessuno?