Added Cap 7
This commit is contained in:
parent
92d3a11c1e
commit
c9ff7d0f26
|
@ -0,0 +1,18 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Scomposizione in fattori primi di un numero intero */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int n, i;
|
||||||
|
printf("Inserisci un numero intero: ");
|
||||||
|
scanf("%d", &n);
|
||||||
|
printf("Fattori primi di %d: ", n);
|
||||||
|
for(i = 2; i <= n; i++){ // i = 2 perchè 1 non è primo
|
||||||
|
while(n % i == 0){ // finchè n è divisibile per i
|
||||||
|
printf("%d ", i);
|
||||||
|
n /= i; // n = n / i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Tabellina pitagorica */
|
||||||
|
int main() {
|
||||||
|
int dimensione;
|
||||||
|
|
||||||
|
// Richiesta della dimensione della tabellina all'utente
|
||||||
|
printf("Inserisci la dimensione della tabellina pitagorica: ");
|
||||||
|
scanf("%d", &dimensione);
|
||||||
|
|
||||||
|
// Stampa dell'intestazione della tabella
|
||||||
|
printf(" |");
|
||||||
|
for (int i = 1; i <= dimensione; i++) {
|
||||||
|
printf("%4d", i);
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
// Stampa della linea di separazione
|
||||||
|
printf("---+");
|
||||||
|
for (int i = 1; i <= dimensione; i++) {
|
||||||
|
printf("----");
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
|
||||||
|
// Stampa della tabellina pitagorica
|
||||||
|
for (int i = 1; i <= dimensione; i++) {
|
||||||
|
printf("%2d |", i); // Stampa il numero di riga
|
||||||
|
for (int j = 1; j <= dimensione; j++) {
|
||||||
|
printf("%4d", i * j); // Stampa il prodotto
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* scambio di 2 varibili */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a;
|
||||||
|
int b;
|
||||||
|
int c;
|
||||||
|
|
||||||
|
c = a;
|
||||||
|
a = b;
|
||||||
|
b = c;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Fattoriale di un numero */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int n;
|
||||||
|
int fattoriale = 1;
|
||||||
|
|
||||||
|
printf("Inserisci un numero: ");
|
||||||
|
scanf("%d", &n);
|
||||||
|
|
||||||
|
for(int i = 1; i <= n; i++) { //
|
||||||
|
fattoriale *= i; // fattoriale = fattoriale * i;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Il fattoriale di %d e': %d\n", n, fattoriale);
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Elevamento a potenza intera di un numero reale */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
float base;
|
||||||
|
int esponente;
|
||||||
|
float risultato = 1;
|
||||||
|
|
||||||
|
printf("Inserisci la base: ");
|
||||||
|
scanf("%f", &base);
|
||||||
|
printf("Inserisci l'esponente: ");
|
||||||
|
scanf("%d", &esponente);
|
||||||
|
|
||||||
|
for(int i = 0; i < esponente; i++){
|
||||||
|
risultato *= base;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Il risultato e': %f\n", risultato);
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* calcolo del MCD (minimo comune divisore) tra due numeri */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
int a, b;
|
||||||
|
printf("Inserisci due numeri interi: ");
|
||||||
|
scanf("%d %d", &a, &b);
|
||||||
|
while(a != b){ // finchè i due numeri sono diversi
|
||||||
|
if(a > b){ // se a è maggiore di b
|
||||||
|
a -= b; // sottrai b ad a
|
||||||
|
}else{
|
||||||
|
b -= a; // sottrai a a b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("Il MCD tra i due numeri e': %d\n", a);
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Calcolo del mcm (minimo comune multiplo) tra due numeri interi */
|
||||||
|
|
||||||
|
// Qui ho preferito usare il metodo di Euclide per il calcolo del MCD
|
||||||
|
|
||||||
|
int calcolaMCD(int a, int b) { // Algoritmo di Euclide
|
||||||
|
while (b != 0) {
|
||||||
|
int temp = b;
|
||||||
|
b = a % b;
|
||||||
|
a = temp;
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
|
int calcolaMCM(int a, int b) {
|
||||||
|
return (a / calcolaMCD(a, b)) * b;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int num1, num2;
|
||||||
|
|
||||||
|
printf("Inserisci il primo numero: ");
|
||||||
|
scanf("%d", &num1);
|
||||||
|
printf("Inserisci il secondo numero: ");
|
||||||
|
scanf("%d", &num2);
|
||||||
|
|
||||||
|
int mcm = calcolaMCM(num1, num2);
|
||||||
|
|
||||||
|
printf("Il minimo comune multiplo di %d e %d e': %d\n", num1, num2, mcm);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Primalità di un numero intero */
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int numero;
|
||||||
|
int isPrimo = 1; // Assume che il numero sia primo
|
||||||
|
|
||||||
|
printf("Inserisci un numero intero: ");
|
||||||
|
scanf("%d", &numero);
|
||||||
|
|
||||||
|
if (numero <= 1) {
|
||||||
|
isPrimo = 0; // 0 e 1 non sono numeri primi
|
||||||
|
} else {
|
||||||
|
// Verifica della primalità
|
||||||
|
for (int i = 2; i <= numero / 2; i++) {
|
||||||
|
if (numero % i == 0) {
|
||||||
|
isPrimo = 0; // Trovato un divisore, non è primo
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isPrimo) {
|
||||||
|
printf("%d è un numero primo.\n", numero);
|
||||||
|
} else {
|
||||||
|
printf("%d non è un numero primo.\n", numero);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Stamapa dei primi N numeri primi */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/* Calcolo dell'n-esimo numero primo */
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Algoritmi da sapere senza incertezze
|
||||||
|
I seguenti algoritmi sono ritenuti “saperi minimi” per chi vuole studiare informatica e devono
|
||||||
|
essere conosciuti e realizzati senza incertezze.
|
||||||
|
|
||||||
|
## Algoritmi numerici
|
||||||
|
- Scomposizione in fattori primi di un numero intero
|
||||||
|
- Fattoriale di un numero (eventualmente anche con versione ricorsiva)
|
||||||
|
- Elevamento a potenza intera di un numero reale
|
||||||
|
- MCD tra due numeri (esistono diverse soluzioni)
|
||||||
|
- Calcolo del mcm tra due numeri (esistono diverse soluzioni)
|
||||||
|
- Primalità di un numero intero (N.B. 1 non è considerato numero primo, si parte da due)
|
||||||
|
- Stampa dei primi N numeri primi
|
||||||
|
- Calcolo dell'n-esimo numero primo
|
||||||
|
- Calcolo dei primi N termini della serie di Fibonacci (versione iterativa e/o ricorsiva)
|
||||||
|
- Tabellina pitagorica
|
||||||
|
- Calcolo della radice quadrata con il metodo dicotomico
|
||||||
|
- Scambio del contenuto di due variabili
|
||||||
|
|
||||||
|
## Vettori parzialmente riempiti delle diverse tipologie (sentinella, contatore, valore nullo)
|
||||||
|
- Copia di un vettore su un altro
|
||||||
|
- Ricerca del max/min tra gli elementi
|
||||||
|
- Somma degli elementi di un vettore (accumulazione); calcolo della media
|
||||||
|
- Aggiunta di un elemento
|
||||||
|
- Ricerca di un elemento (sia per vettore ordinato che non ordinato)
|
||||||
|
- Calcolo del numero di occorrenze di un elemento
|
||||||
|
- Ricerca del valore o dei valori più frequenti (moda)
|
||||||
|
- Ordinamento di un vettore (diversi algoritmi)
|
||||||
|
- Inserimento di un elemento in un vettore ordinato
|
||||||
|
- Ricerca di un sottovettore in un vettore (esempio: ricerca sottostringa in una stringa)
|
||||||
|
- Unione di due vettori ordinati
|
||||||
|
- Unione di due vettori non ordinati (aggiunta in fondo)
|
||||||
|
- Eliminazione di un elemento
|
||||||
|
- Eliminazione dei duplicati
|
||||||
|
- Intersezione tra due vettori di elementi distinti (insiemi)
|
||||||
|
- Unione tra due vettori di elementi distinti (insiemi)
|
Loading…
Reference in New Issue