Programma e consiglio.

di il
9 risposte

Programma e consiglio.

Ciao a tutti! La traccia del programma da realizzare in C++ è:
Si scriva un programma che assegnati in input due vettori A e B di interi entrambi di riempimento N ed un numero intero K<=N restituisca la somma dei primi K elementi di A e degli ultimi K elementi di B.
L'ho svolto in questo modo:
#include <iostream>
#define N 7
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
int A[N], B[N], K, somma=0,somma2;

for(int i=0;i<N;i++) {
cout<<"A["<<i<<"]=";
cin>>A;
}

for(int i=0;i<N;i++) {
cout<<"B["<<i<<"]=";
cin>>B;

}

do {
cout<<"K<=N";
cin>>K;
} while(K>N);

for(int i=0;i<K;i++) {
somma+=A;
somma2+=B[N-i-1];
}
cout<<"La somma dei primi"<<K<<"elementi di A e'"<<somma<<endl;




cout<<"la somma degli ultimi"<<K<<"elementi di B e'"<<somma2;
return 0;
}

Tuttavia non ottengo la giusta somma2. Come mai? Dove sbaglio? Inoltre, pongo una domanda un po' inutile, forse, ma che non so a chi altri competenti in materia chiedere. So che non esiste un algoritmo per progettare algoritmi ma quali sono i consigli che potreste darmi quando mi trovo dinanzi ad una prova d'esame di informatica (ad ingegneria) il cui tempo per scrivere un programma è appena un'ora e quando il più delle volte si va nel pallone?Confido in voi...

9 Risposte

  • Re: Programma e consiglio.

    Avevo dimenticato di inizializzare somma2!! Ho notato che hai poi riscritto per ogni variabile il tipo, non è possibile scrivere una volta il tipo e poi elencare le variabili separandole con una virgola come ho fatto io?
  • Re: Programma e consiglio.

    Ah ho capito, grazie mille!
  • Re: Programma e consiglio.

    Puoi tranquillamente dichiararle a gruppi, basta che dal punto di vista del tuo progetto sia chiaro.

    Se scrivi

    int totaleA, totaleB;

    non ci sono controindicazioni ...
  • Re: Programma e consiglio.

    ultrasound91 ha scritto:


    Vero, non ci sono cambiamenti, nè a compile-time nè a run-time.
    Però se bisogna prendere in considerazioni il modello a oggetti, allora le dichiarazioni devono essere distinte.
    @ultrasound: per piacere! Le dichiarazioni distinte con il modello ad oggetti non centrano una cippa!!!

    E' solo una questione stilistica!

    Perche' si fanno singolarmente? Spesso perche' a fianco ci si mette il commento!
    Poi, una volta che si prende un'abitudine che non ha controindicazioni, si continua su quella strada!
  • Re: Programma e consiglio.

    migliorabile ha scritto:


    @ultrasound: per piacere! Le dichiarazioni distinte con il modello ad oggetti non centrano una cippa!!!
    Concordo con il parere "tecnico" di migliorabile ...
    E' solo una questione stilistica!
    Esatto ... se li raggruppi "logicamente" puoi commentarle più facilmente ...

    Dopo la compilazione, sparisce tutto ...
  • Re: Programma e consiglio.

    ultrasound91 ha scritto:


    Allora anche la seguenti scrittura è valida:
    
    int a; int b; int c;
    string  t; string k, d;
    
    Certo che è "valida" (altrimenti il compilatore ti darebbe un errore) ... In C puoi fare grosse "porcherie" dal punto di vista stilistico ... ma dichiarare una variabile per volta mi sembra un po' troppo ...
  • Re: Programma e consiglio.

    ultrasound91 ha scritto:


    1) E' possibile commentare le variabili singolarmente
    int i, j, k; // Indici per i cicli
    2) E' possibile dichiarare le variabili nel punto dell'algoritmo in cui iniziano a servire, quindi le posizioni possono essere diverse
    int min, max;

    min = max = 0;
  • Re: Programma e consiglio.

    ultrasound91 ha scritto:


    Terzo motivo, se c'è un problema con una variabile, il warning verrà segnalato per l'intera riga di codice, che verrà sottolineata per intero.
    Non ho mai avuto problemi ad individuare errori in una linea con più variabili ... in genere è un problema per i novellini ...
  • Re: Programma e consiglio.

    ultrasound91 ha scritto:


    Non è un problema per nessuno
    Sei tu che hai detto che era un problema...
Devi accedere o registrarti per scrivere nel forum
9 risposte