Indice del forum
 FAQ   Cerca   Lista utenti   Gruppi   Registrati   Profilo   Messaggi privati   Log in 
Aiuto programma c++

 
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript...
Precedente :: Successivo  

Autore

Messaggio

maris.p
Novizio


Registrato: 30/10/09 12:27
Messaggi: 9

MessaggioInviato: Ven Ott 30, 2009 12:30 pm    Oggetto: Aiuto programma c++

Rispondi citando


La traccia dice:
Scrivere un programma C++ che acquisisce da tastiera un numero intero
positivo n <=50 e successivamente le componenti reali u1,u2,...,un di un vettore u e ne determina un k-riordinamento ciclico delle componenti
(k intero), cioè il vettore v ottenuto da u traslando tutte le componenti di |k| ,(modulo di k),posti verso destra o sinistra a seconda del segno di
k (gli elementi che escono
da un lato rientrano dall'altro); infine il programma deve scrivere il vettore v sul video.

Io l'ho scritto in questo modo:
#include <stdio.h>
#include <stdlib.h>
main()
{
int n,i,k; float u[50],v[50];
printf("\n\ninserisci un numero intero positivo n=");
scanf("%d",&n);
if (n>50) return 0;
for(i=1;i<=n;i++)
{ printf("\n dammi la componente numero");
printf(" %d del vettore u ",i);
scanf("%f",&u[i]); }
printf("\n\nil vettore u ottenuto e':");
for (i=1;i<=n;i++)
{printf("\n %f",u[i]);}
printf("\n\ninserisci il valore k:");
scanf("%d",&k);
if (k<0)k=-k;
printf("\n\n il vettore v ottenuto e':");
for (i=1;i<=n;i++)
{u[i]=v[i+k];
printf("\n\n%f",u[i]);}
system ("PAUSE"); return 0;
}
Però purtroppo non va Sad . Sapete dirmi dov'è l'errore?
grazie mille a tutti..

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Ott 30, 2009 2:44 pm    Oggetto:

Rispondi citando


Beh, intanto quando prendi i valori dei vettori li scrivi su u e poi fai u[i] = v[i+k] invece dovresti mettere u anche a destra, e poi non considei il fatto che deve essere ciclico, quindi quando superi il numero n devi tornare indietro, il codice seguente fa quello che vuoi tu:
Codice:
#include <stdio.h>
#include <stdlib.h>
main()
{
int n,i,k; float u[50],v[50];
printf("\n\ninserisci un numero intero positivo n=");
scanf("%d",&n);
if (n>50) return 0;
for(i=0;i<n;i++)
{ printf("\n dammi la componente numero");
printf(" %d del vettore u ",i+1);
scanf("%f",&u[i]); }
printf("\n\nil vettore u ottenuto e':");
for (i=0;i<n;i++)
{printf("\n %f",u[i]);}
printf("\n\ninserisci il valore k:");
scanf("%d",&k);
//if (k<0)k=-k; non ci vuole!
printf("\n\n il vettore v ottenuto e':");
for (i=0;i<n;i++)
{
if(i+k<n)
printf("\n\n%f",u[i+k]);
else
printf("\n\n%f",u[i+k-n]);
}
system ("PAUSE"); return 0;
}

_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

maris.p
Novizio


Registrato: 30/10/09 12:27
Messaggi: 9

MessaggioInviato: Ven Ott 30, 2009 5:35 pm    Oggetto:

Rispondi citando


ciao e grazie mille per il tuo aiuto, mi hai avvicinato molto alla soluzione ma ancora non ci siamo. La prof. ci ha fatto un esempio di come dovrebbe uscire il programma:
u=1 2 4 8 9
per k=-1 si ha v= 2 4 8 9 1
per k=+2 si ha v= 8 9 1 2 4
e così via..
sto impazzendo Mad

Top

Profilo Invia messaggio privato

cali1981
Site Admin


Registrato: 16/01/06 22:01
Messaggi: 836

MessaggioInviato: Ven Ott 30, 2009 6:15 pm    Oggetto:

Rispondi citando


Cosa c'è che non va? Cioè, il programma modificato cosa fa di diverso da questo?
_________________
Visita anche il sito Agriturismo Umbria per maggiori informazioni sull'Umbria!

Realizzazione siti web e applicazioni ASp.NEt, C/C++, C#

Top

Profilo Invia messaggio privato Invia e-mail

maris.p
Novizio


Registrato: 30/10/09 12:27
Messaggi: 9

MessaggioInviato: Ven Ott 30, 2009 6:33 pm    Oggetto:

Rispondi citando


se metto lo stesso vettore u=1 2 4 8 9, il programma che mi hai scritto dà:

per k=2 si ha v= 4 8 9 1 2 invece che 8 9 1 2 4
per k=-1 si ha v= 0 1 2 4 8 " 2 4 8 9 1

sarà sicuro una piccolezza,ma nn riesco a trovarla..

Top

Profilo Invia messaggio privato

Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione: c#, c++, Java, HTML, PHP, Javascript... Tutti i fusi orari sono GMT
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
Forum del sito TuttoMontefalco.it - Umbria - Italy topic RSS feed 


Torna al sito TuttoMontefalco.it


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it

SoftGreen 1.1 phpBB theme by DaTutorials.com
Copyright © DaTutorials 2005