Programmazione ed
Esercitazioni di Programmazione


<-- Torna alla lista delle soluzioni

Esercitazione 3

Esercizio 1

/* Scrivere un programma che, dato un numero naturale n, produca su una stessa riga i quadrati dei numeri naturali compresi tra 0 e 2n, e sulla riga successiva i cubi dei numeri naturali compresi tra 2n e 4n. */

#include <stdio.h>

int main() {
	int n;
	int i;
	
	printf("Inserire il valore di n: ");
	scanf(" %d", &n);

	for (i = 0; i <= 2*n; i++) {
		printf("%d ", i * i);
	}
	printf("\n");

	for (i = 2*n; i <= 4*n; i++) {
		printf("%d ", i * i * i);
	}
	printf("\n");
	
	return 0;
}


Esercizio 2

/* Scrivere un programma che, dato un numero naturale n, produca su una stessa riga i numeri pari compresi tra -6n e 6n e sulla riga successiva i numeri dispari compresi tra -6n+1 e 6n-1. */

#include <stdio.h>

int main() {
	int n;
	int i;
	
	printf("Inserire il valore di n: ");
	scanf(" %d", &n);

	if (n < 0) n = -n;

	for (i = -6*n; i <= 6*n; i+=2) {
		printf("%d ", i);
	}
	printf("\n");

	for (i = -6*n + 1; i <= 6*n - 1; i+=2) {
		printf("%d ", i);
	}
	printf("\n");
	
	return 0;
}


Esercizio 3

/* Scrivere una funzione double potenza(double base, int esponente) che calcoli la potenza di base elevato all’esponente. Si assuma che base sia diverso da zero. (Si ricordi che a-b = (1/a)b). */

/* Versione ricorsiva */
double potenza(double base, int esponente) {
	if(esponente < 0) {
		esponente = -esponente;
		base = 1/base;
	}	
	
	if (esponente == 0)
		return 1.0;
	else
		return base * potenza(base, esponente - 1);
}


/* Versione iterativa */
double potenza(double base, int esponente) {
	int i;
	double ris = 1.0;
	
	if(esponente < 0) {
		esponente = -esponente;
		base = 1/base;
	}	
	
	for(i = 0; i < esponente; i++)
		ris *= base;
	
	return ris;
}


<-- Torna alla lista delle soluzioni