Classe 5ª E – Metodologie e programmi svolti per l’Esame di Stato
Esercizi di informatica per il 24-04-2018
#include <stdio.h>
#include <math.h>
#incluse "vettori.h"
void assoluto(int v1[], int v2[]) {
int i;
for (i=0; i<10; i++)
v2[i] = abs(v1[i]);
}
int main() {
int a[10], b[10];
LeggeValoriInteri(a, 10);
assoluto(a, b);
StampaValoriInteri(b, 10);
}
// costruire una procedura che permetta di spostare di s posti verso destra un blocco di n elementi collocati in una certa posizione iniziale p all'interno di un
// array sufficientemente lungo. Per evitare la cancellazione degli elementi durante la copia si consiglia di iniziare la copia dei valori da destra verso sinistra
// mediante un ciclo for in decremento.
// programma fatto il 23.04.18
#include <stdio.h>
#include "vettori.h"
int vett1[20], s, n, p;
void leggegruppoint() {
int i;
printf("Inserisci %d numeri:\n", n);
for (i=p; i<(n+p); i++)
scanf("%d", &vett1[i]);
}
void spostamentonumeri() {
int i;
for (i=(p+s+n-1); i>=0; i--) {
if(i<20)
vett1[i]=vett1[i-s];
}
}
int main() {
printf("Inserisci il numero di valori diversi da zero che si vogliono inserire sucessivamente (non piu' di 20): "); scanf("%d", &n);
printf("Inserisci la posizione iniziale dei numeri (non maggiore di 20): "); scanf("%d", &p);
leggegruppoint();
printf("\nIl vettore e': \n");
StampaValoriInteri(vett1, 20);
printf("Inserici di quanto vuoi far spostare il blocco verso destra: "); scanf("%d", &s);
spostamentonumeri();
printf("\nIl vettore spostato e': \n");
StampaValoriInteri(vett1, 20);
return 0;
}
Esperimento della goccia di pece
Calcolo numerico
Scrivere il metodo main della classe Main del progetto CalcoloNumerico in modo che calcoli:
- la derivata della funzione y=sin(x) in un punto x letto da tastiera e la visualizzi sullo schermo;
- la derivata della funzione Radice y=sqrt(4-x^2) in un punto x letto da tastiera e la visualizzi sullo schermo;
- l’integrale definito della funzione y = sqrt(4-x^2) da 0 a 1 e lo visualizzi sullo schermo.
La teoria sul calcolo numerico delle derivate è reperibile nella pagina:
https://liceocuneo.it/oddenino/informatica/teorica/calcolo-numerico/
Storia del sito del liceo
Il primo sito del liceo risale al 1994, ma non sono disponibili immagini per quel periodo.
Elimina duplicati e somma pari/dispari
elimina_duplicati.c
#include <stdio.h>
void leggiVettore(int v[], int n) {
int i;
for(i = 0; i < 20; i++)
scanf("%d", &v[i]);
}
// copia in v2 gli elementi di v1 senza ripetizioni
// e restituisce il numero di elementi di v2
int eliminaDoppi(int v1[], int n1, int v2[]) {
int i, n2;
v2[0] = v1[0];
n2 = 1;
for (i = 1; i < 20; i++)
if (v1[i] != v1[i - 1]) {
v2[n2] = v1[i];
n2++;
}
return n2;
}
void stampaVettore(int v[], int n) {
int i;
for(i = 0; i < n; i++)
printf("%d ", v[i]);
}
int main() {
int vet1[20], vet2[20], n2;
printf("\nvettore 1 = ");
leggiVettore(vet1, 20);
n2 = eliminaDoppi(vet1, 20, vet2);
printf("\nvettore 2 = ");
stampaVettore(vet2, n2);
return 0;
}
somma_pari-dispari.c
#include <stdio.h>
void leggiVettore(int v[], int n) {
int i;
for(i=0; i<20; i++)
scanf("%d", &v[i]);
}
int sommaPari(int v[], int n) {
int i, somma = 0;
for(i=0; i<n; i++)
if (v[i] % 2 == 0)
somma += v[i];
return somma;
}
int sommaDispari(int v[], int n) {
int i, somma = 0;
for(i=0; i<n; i++)
if (v[i] % 2 != 0)
somma += v[i];
return somma;
}
int main() {
int vettore[20];
printf("vettore = "); leggiVettore(vettore, 20);
printf("somma pari = %d\n", sommaPari(vettore, 20));
printf("somma dispari = %d\n", sommaDispari(vettore, 20));
return 0;
}
Algoritmo di merge di due vettori ordinati
#include <stdio.h>
#include "vettori.h"
int vett1[10], vett2[10], vett3[20];
int n1 = 0, n2 = 0;
void merge() {
int i;
for (i=0; i<20; i++) {
// controllo che i 2 vettori non siano esauriti
if (n1<10 && n2<10) {
// copio in vett3 il minore fra vett1 e vett2
if (vett1[n1] < vett2[n2]) {
vett3[i] = vett1[n1];
n1++;
} else {
vett3[i] = vett2[n2];
n2++;
}
// se uno dei 2 vettori è esaurito, copio gli elementi rimanenti dell'altro vettore
} else {
// copio vett1 in vett3
if (n1<10) {
vett3[i] = vett1[n1];
n1++;
}
// copio vett2 in vett3
if (n2<10) {
vett3[i] = vett2[n2];
n2++;
}
}
}
}
int main() {
printf("Inserisci i dati ordinati di vett1 e vett2\n");
LeggeVettoreInt(vett1, 10);
LeggeVettoreInt(vett2, 10);
printf("vett1 = "); StampaVettoreInt(vett1, 10);
printf("vett2 = "); StampaVettoreInt(vett2, 10);
merge();
printf("vett3 = "); StampaVettoreInt(vett3, 20);
return 0;
}
Esercizio in preparazione alla verifica di laboratorio di Informatica per la 5E
Creare un sito web che permetta di gestire le prenotazioni in un laboratorio. Deve essere possibile:
- inserire data/ora inizio e fine della prenotazione e classe prenotata
- visualizzare tutte le prenotazioni di un dato giorno in ordine cronologico data/ora
- cancellare una prenotazione
- visualizzare le prenotazioni di una classe
Tabelle:
- Classi
- ID_classe INT NOT NULL AUTO_INCREMENT PRIMARY KEY
- classe INT(1) NOT NULL
- sezione CHAR(1) NOT NULL
- Prenotazioni
- ID_prenotazione INT NOT NULL AUTO_INCREMENT PRIMARY KEY
- inizio DATETIME NOT NULL
- fine DATETIME NOT NULL
- ID_classe NOT NULL
Es. 18 pag. 236
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int oreStudio[31];
void inputDati() {
int i, ris;
srand((unsigned) time(NULL)); // generatore di numeri casuali
for(i = 0; i < 31; i++) {
ris = (rand() % 5 + 0); // risultati dei dadi da 0 a 4
oreStudio[i] = ris;
printf("%d ", ris);
}
printf("\n");
}
int contaGiorni(int nOre) {
int i, s = 0;
for(i = 0; i < 31; i++)
if (oreStudio[i] == nOre)
s++;
return s;
}
int somma() {
int i, s = 0;
for(i = 0; i < 31; i++)
s += oreStudio[i];
return s;
}
int main() {
printf("Ore studiate nei vari giorni del mese\n");
inputDati();
printf("I giorni in cui non hai studiato sono %d\n", contaGiorni(0));
printf("I giorni in cui hai studiato 1 ora sono %d\n", contaGiorni(1));
printf("I giorni in cui hai studiato 2 ore sono %d\n", contaGiorni(2));
printf("I giorni in cui hai studiato 3 ore sono %d\n", contaGiorni(3));
printf("I giorni in cui hai studiato 4 ore sono %d\n", contaGiorni(4));
printf("Le ore studiante durante tutto il mese sono %d\n", somma());
return 0;
}




















