Ordinare due dati

Due soli dati da ordinare, cioè il più piccolo deve precedere il più grande. Scambiare il contenuto di due variabili Procedure SCAMBIA(Var X, Y: Real); Var   Temp: Real; Begin   Temp:=X;   X:=Y;   Y:=Temp; End; Scambiare i valori contenuti nell’array V alle posizioni a e b Procedure SCAMBIA(Var V: Vettore; a, b: Integer); … Leggi tutto

Fusione di sequenze

A partire da due sequenze ordinate, v1 e v2, si vuole realizzare una terza sequenza ordinata v3. Esempi v1=(1, 2, 4, 5) v2=() v3=(1, 2, 4, 5) v1=(1, 2, 4, 5) v2=(20, 30, 40, 60) v3=(1, 2, 4, 5, 20, 30, 40, 60) v1=(1, 2, 4, 5, 7, 10) v2=(2, 3, 4, 6) v3=(1, 2, … Leggi tutto

Ricerca binaria

La ricerca binaria si applica agli array ordinati. Essa controlla se l’elemento richiesto si trova nella posizione centrale dell’array altrimenti concentra la ricerca nella parte BASSA se ha trovato un elemento MAGGIORE ALTA se ha trovato un elemento MINORE e continua finché non trova l’elemento, oppure rimane da esaminare un sottoarray vuoto. Esempio Sia V … Leggi tutto

Ricerca sequenziale

Individuare la posizione di un certo elemento all’interno di una sequenza data. Posizione di un valore k all’interno di un array v Function Posizione(V: Vettore; N: Integer; K: Real): Integer; Var   i, Risp: Integer; Begin   Risp:=0;   For i:=1 to N do       If(V[i] = K) Then         … Leggi tutto

Problemino di Carla

Quando è necessario scegliere chi interrogare oppure chi spostare in classe potrebbe essere utili avere un  generatore automatico di sequenze casuali di vittime predestinate del sistema scolastico nazionale… Algoritmo Quanti allievi in classe? Acquisisci tutti nomi Mescola i nomi in modo imparziale Comunica la sequenza di nomi Esempio Elenco prima = { ‘Antoniol’, ‘Canzio’, ‘Cappellaro’, … Leggi tutto

Lanciare i dadi – 2

Lanciare 2 dadi più volte e conteggiare le uscite Ciascuna faccia del singolo dado ha probabilità 1/6 (16,6… %) La probabilità della somma dipende dalle combinazioni disponibili… Combinazioni # probabilità 2 1+1 1 1/36 2,77.. % 3 1+2 2+1 2 2/36 5,55.. % 4 1+3 2+2 3+1 3 3/36 8,33.. % 5 1+4 2+3 3+2 … Leggi tutto

Lanciare i dadi – 1

Lanciare un dado più volte e conteggiare le uscite Ciascuna faccia del dado ha probabilità 1/6 (16,6… %) Quanti lanci sono necessari per avere dati attendibili? Frequenze assolute e/o relative? Type CONTATORI  = Array[1..6] of LongInt; Var  C1, C2, C3 : CONTATORI; Procedure Vedi(CONTA: CONTATORI; n: Longint); Var    i: Byte;    x: Real; Begin … Leggi tutto

Sistema lineare

Il problema Risolvere un sistema lineare (2 equazioni, 2 variabili) Utilizzando uno dei metodi disponibili (sostituzione, confronto, …) si arriva alla soluzione Sono necessari un certo numero di passaggi e le formule finali sono di difficile memorizzazione. Osserva che la divisione non è possibile se ad-bc=0. Metodo di Cramer L’algoritmo di Cramer è semplice da … Leggi tutto

Equazione 2° grado

Risolvere un’equazione di secondo grado ax2+bx+c=0, dati i coefficienti a, b e c. Analisi Un po’ di matematica…   Esempi Istanza Elaborazione Risposta 1 x2-5x+6=0 a=1 b=-5 c=6 D=b2-4ac=… D=1>0 x1=… x2=… 2 3 2 x2+2x+1=0 a=1 b=2 c=1 D=b2-4ac=… D=0 x1,2=-2/2 -1 3 x2+x+1=0 a=1 b=1 c=1 D=b2-4ac=… D=-3<0 … Impossibile Program SecondoGrado; Var … Leggi tutto

Equazione 1° grado

Risolvere un’equazione di primo grado ax+b=0, dati i valori dei coefficienti a e b. Analisi Un po’ di matematica… Esempi Istanza Elaborazione Risposta 1 x+2=0 a=1 b=2 x=-2/1 -2 2 2x-3=0 a=2 b=-3 x=-(-3)/2 3/2 3 0x+0=0 a=0 b=0 0=0 Indeterminata 4 0x+2=0 a=0 b=2 2=0 Impossibile Program PrimoGrado; Var     a, b: Real; … Leggi tutto