I migliori prodotti

Realizziamo un programma che trova i multipli di un numero e dopo li memorizza in un file di nome multipliM.txt.

Abbiamo già visto come verificare i multipli di un numero con vari algoritmi:

Esempio sui multipli di un numero con algobuild – senza iterazioni

multipli di un numero con algobuild – con iterazioni

multipli di un numero con scratch – senza iterazioni

Quindi in questa lezione vedremo come inserire in un file solo i multipli di un numero, letto da tastiera.


Procedimento algoritmo sui multipli di un numero e i file

Realizziamo dapprima un caso specifico, inserendo in un file di testo solo i multipli di 3.

Data una sequenza di interi forniti dall’utente, memorizzare in un file solo i multipli di tre. Per interrompere l’inserimento, digitare zero.

Quindi utilizziamo una costante M uguale a 3 e con la funzione fopen creiamo un nuovo file di testo (t) in scrittura (w). Facciamo il controllo che il puntatore non restituisca NULL prima di procedere.

Con un ciclo do – while che continua finchè il numero inserito non è zero, digititamo i nostri numeri da tastiera, e solo se il numero è multiplo di 3 verrà inserito nel nostro file di testo di nome “multipliM.txt”, con la funzione fprintf().

Al termine chiudiamo il file con fclose().

Ecco dunque il listato completo:

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

#define M 3

int main() {
	FILE *fp;
	int  numero;
	
	if((fp=fopen("multipliM.txt", "wt"))==NULL) {
		printf("Errore nell'apertura del file'");
		exit(1);
	}
	
	do {
		printf("Numero:");
		scanf("%d", &numero);
		if (numero%M==0 && numero!=0)
			fprintf(fp,"%d\n", numero);
	} while(numero!=0);
	
	fclose(fp);
	
return 0;
}

Realizziamo adesso il caso in cui vogliamo chiedere all’utente quali multipli inserire nel nostro file.

Basterà fare una piccola e semplice modifica, chiedendo dapprima quale multiplo considerare.

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

int main() {
	FILE *fp;
	int  m, numero;
	
	if((fp=fopen("multipliM.txt", "wt"))==NULL) {
		printf("Errore nell'apertura del file'");
		exit(1);
	}
	
	printf("Multipli di:");
	scanf("%d", &m);
	
	do {
		printf("Numero:");
		scanf("%d", &numero);
		if (numero%m==0 && numero!=0)
			fprintf(fp,"%d\n", numero);
	} while(numero!=0);
	
	fclose(fp);
	
return 0;
}

Chiaramente questi sono solo dei semplici esempi di operazioni sui file in C, con l’utilizzo delle funzioni fopen(), fprintf() ed fclose().

Alcuni link utili

Indice argomenti tutorial C

Media per riga e per colonna

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Come sommare due matri

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Programma sui triangoli in C

Media dei numeri in un array

Array con numeri random

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C