Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278

    [C]tema d'esame informatica economia(non l'ho capito)

    quello sotto è un tema d'esame dell'università Bicocca di milano...esami di informatica per economia ecommercio......

    non riesco a capire come faccia a funzionare...perchè N-1?perchèN-2 e perchè i--?RisP[i] = (rip + AP[i] + BP[i]) % 4;
    rip = (rip + AP[i] + BP[i]) / 4;}
    perchè di questo....
    sotto vi ho scritto il testo con la soluzione del proff...io non riesco a capire come funzioni.....quale procedimento attui...
    mi potete dare maggiori delucidazioni?






    Siano date le definizioni seguenti:

    #define N 20

    int A[N], B[N], Ris[N+1];

    Le componenti degli array A, B e Ris possono contenere solo i 4 valori interi 0, 1, 2 e 3. Interpretiamo una sequenza di N cifre in {0,1,2,3} come un numero intero positivo rappresentato in base 4; ad esempio, se A contiene 00000 00000 00013 22100

    esso rappresenta il numero 1*46 + 3*45 + 2*44 + 2*43 + 1*42.

    Scrivere il codice C (PASCAL) di una funzione che prende in ingresso due parametri di tipo array di interi di N elementi AP e BP, interpretati come numeri interi in base 4 (come testé spiegato), riempie un parametro RisP di tipo array di N+1 int con il risultato della somma in base 4 dei due array.

    Si assuma che i tre vettori AP, BP e RisP siano stati riempiti al di fuori di tale funzione, e che RisP contenga inizialmente tutte componenti nulle.

    #include <stdio.h>
    #define N 20


    void moltiplica(int AP[N], int BP[N], int RisP[N])
    { int i, rip;

    rip=(AP[N-1] +BP[N-1])/4;
    RisP[N-1] = (AP[N-1] +BP[N-1])%4;
    for(i=N-2;i>=0;i--)
    { RisP[i] = (rip + AP[i] + BP[i]) % 4;
    rip = (rip + AP[i] + BP[i]) / 4;}
    }

    int main(void) //NON RICHIESTO DAL TESTO
    { int a[N]={1,0,0,3,2,0,1},
    b[N]={1,0,2,3,2,2,1}, r[N], i;

    moltiplica(a,b,r);

    for(i=0;i<N;i++)
    printf("%d",r[i]);
    printf("\n");
    return 0;}

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Cominciamo dallo spiegare come mai viene richiesta la somma

    "... con il risultato della somma in base 4 dei ..."

    e poi si calcola il prodotto

    "moltiplica(a,b,r);"

    ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278
    for(i=N-2;i>=0;i--)



    perchè fa questa dichiarazione?perchè non fa i++, ma i--?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da stejano
    for(i=N-2;i>=0;i--)



    perchè fa questa dichiarazione?perchè non fa i++, ma i--?
    Semplicemente perche' un ciclo non deve *sempre* partire da un valore minore per raggioungerne uno maggiore ... a volte e' necessario fare il contrario e quindi il contatore deve diminuire.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.