Aritmetica: potenza

Iterativa MN = Pot(M, N) = M*M*…*M (N fattori) Function PotIter(M, N: Integer): LongInt; Var   I, Risp: LongInt; Begin   Risp:=1;   For I:=1 to N Do       Risp:=Risp*M;   PotIter:=Risp; End; Ricorsiva M0 = 1, per N = 0 MN = M*MN-1, altrimenti oppure Pot(M, N) = 1, per N = … Leggi tutto

Aritmetica: prodotto

Iterativo M*N = 0, per N = 0 M*N = M+M+…+M (N addendi), altrimenti Function ProdIter(M, N: Integer): LongInt; Var   I : Integer;   Risp: LongInt; Begin   Risp:=0;   For I:=1 To N Do       Risp:=Risp+M;   ProdIter:=Risp; End; Oppure M*N = 0, per N = 0 M*N = INCREMENTAN(0, m), … Leggi tutto

Aritmetica: somma

Iterativa Osserva le diverse versioni M+N = M+1 … +1 (N volte) M+N = ((…((M+1)+1)…)+1) Somma(M, N) = Successivo(Successivo(…Successivo(M)…)) Somma(M, N) = SuccessivoN(M) Function SomIter(M, N: LongInt): LongInt; Var    I: LongInt; Begin    For I:=1 To N Do       Inc(M);         { M:=M+1; } { M:=Succ(M); }    SomIter:=M; End; … Leggi tutto

Algoritmo di Euclide

L’algoritmo di Euclide permette di calcolare il massimo comun divisore, MCD, tra due numeri interi. Vedi Wikipedia: Algoritmo di Euclide. Algoritmo Dati due numeri naturali a e b se b è zero allora la risposta è a altrimenti si divide a per b e si assegna ad r il resto della divisione se r=0 allora la … Leggi tutto

La torre di Hanoi

Il problema Nel tempio di Brahma si trova una piattaforma di ottone con tre perni di diamanti. Sul primo di tali perni sono infilati 64 dischi d’oro, di dimensioni decrescenti, che formano una torre. Si deve portare la torre sul terzo perno, spostando un solo disco alla volta e in modo che mai un disco … Leggi tutto

Problemi con caratteri

Un carattere Restituire il maiuscolo (minuscolo) corrispondente È maiuscolo (minuscolo, cifra)? Due caratteri Sono la stessa lettera? a=A / a=a / A=a, A=A Quanto vale la somma dei codici tra i due caratteri? Determinare i due caratteri che si trovano a una certa distanza, prima e dopo, di un certo carattere Sequenze di caratteri Concatenare … Leggi tutto

Contare i caratteri

I problemi con i testi (parole, frasi) sono diversi da quelli con i numeri… Quanti caratteri in un testo? Quante vocali, consonanti? Quante maiuscole, minuscole? Quante A, B, C, …, Z? Per contare quante volte compare ciascun lettera puoi cominciare così… Var    CONTATORI: Array[‘A’..’Z’] of Word; (* fino a ~65000*)    frase    : … Leggi tutto

Problemi con numeri casuali

Genera numeri casuali Testa o croce? Una cifra Nell’intervallo [0, A[ Nell’intervallo [A, B[ Nell’intervallo [-A, A[ Lanciare i dadi Un dado Lancia continuamente un dado e si ferma con l’estrazione del 3 2 dadi n dadi Lettere casuali Maiuscola Minuscola Maiuscola o minuscola Vocale Giocare con il computer Indovino io – Il computer prova … Leggi tutto