Problema con gli algoritmi di ricorsione

di il
1 risposte

Problema con gli algoritmi di ricorsione

(scusate se ho postato lo stesso post nella sezione "sviluppo software" ma non avevo notato questa sezione )
Ciao a tutti, sono uno studente, e, domani, ho un compito in classe d'informatica ma dato che sono stato assente per più di una settimana ho perso svariate spiegazioni. Ho diversi problemi per quanto riguarda la ricorsione. Per esempio, so fare la function per calcolare la potenza o il fattoriale di più numeri, tuttavia non so fare diverse function ricorsive come quella per il calcolo della somma degli elementi pari di un vettore.
Uso il turbo pascal:

function sommapari(vet:intero; n:integer):integer;
var som:integer;
begin
if n=1
then som:=1
else if vet[n] mod 2 = 0
then som:=vet[n]+sommapari(vet,n-1)
end;

Dove sta l'errore? Qual'è il giusto procedimento? Help plz.
Grazie.

1 Risposte

  • Re: Problema con gli algoritmi di ricorsione

    
    function sommapari(vet: intero; n: integer): integer;
    var som: integer;
    begin
        if n = 1 then
           som := 0
        else 
           begin
              som := sommapari(vet, n-1)
              if vet[n] mod 2 = 0 then
                 som := vet[n] + som;
           end;
        sommapari := som;  // se è Pascal
        Result := som;         // se è Delphi
    end;
    
Devi accedere o registrarti per scrivere nel forum
1 risposte