Esercizi di Fisica per le classi 2F e 2A

1) Un blocco di massa 15 kg si trova su un piano orizzontale sul quale è presente un coefficiente di attrito statico pari a 0,25. A questo blocco è legata una corda attaccata, all’altro capo, ad un blocco di massa m incognita posto su di un piano inclinato di 40° sul quale c’è lo stesso coefficiente di attrito statico. Calcola:
a) quale deve essere il valore di m affinché l’intero sistema possa mettersi in movimento;
b) con quale accelerazione si muove l’intero sistema, una volta in moto, sapendo che il coefficiente di attrito dinamico è pari a 0,12.
[m >= 8,3098 kg; a = 1,1689 m/s²]

2) Una pallina di plastilina di massa 25 g e raggio 1 cm, cade nell’acqua con regime turbolento. Sapendo che l’acqua ha una densità di 1000 kg/m³, calcola utilizzando un intervallo dt per l’integrazione numerica di 0,1 s la posizione e la velocità a t = 0,2 s. Cr = 0,4
[metodo Eulero base: 0,098 m; 1,718625153 m/s;
metodo di Eulero modificato: 0,293975863 m; 1,718625153 m/s]

3) Un corpo di massa 80 kg è posto su un piano sul quale c’è un coefficiente di attrito pari a 0,35. Una persona spinge il corpo dall’alto verso il basso con un angolo di 25° rispetto all’orizzontale e una forza di 380 N. Calcola: a) quanto vale la forza di attrito; b) il lavoro della forza di attrito, quando il corpo viene spostato di 9,2 m.
[330,61 N; -3041,6 J]

4) Una macchinina di massa 120 g viene lanciata da un bambino con una velocità di 1,2 m/s su per una salita. Calcola fino a che altezza giunge la macchinina prima di fermarsi. Il bambino, in realtà, vuol fare superare alla macchinina un piccolo dosso di altezza 15 cm; con quale velocità deve lanciare la macchinina per riuscire nel suo intento?
[7,347 cm; 1,715 m/s]

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;
}

Calcolo numerico

Scrivere il metodo main della classe Main del progetto CalcoloNumerico in modo che calcoli:

  1. la derivata della funzione y=sin(x) in un punto x letto da tastiera e la visualizzi sullo schermo;
  2. la derivata della funzione Radice y=sqrt(4-x^2) in un punto x letto da tastiera e la visualizzi sullo schermo;
  3. 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:
http://liceocuneo.it/oddenino/informatica/teorica/calcolo-numerico/

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;
}