Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Aiuto codice!!!
Forum - C/C++ - Aiuto codice!!!

Avatar
stella.p (Normal User)
Newbie


Messaggi: 11
Iscritto: 31/10/2009

Segnala al moderatore
Postato alle 16:53
Giovedì, 21/01/2010
Questa è la traccia:
1. Legge da tastiera un numero intero n, 1<=n<=25 ed un numero
positivo eps";
2. Legge da tastiera un vettore w€IR^n e una matrice R€IR^(nXn);(€=APPARTIENE)
3. Calcola la norma del max, di w;
4. Costruisce il vettore v^(0) dividendo il vettore w per la sua norma;
5. Costruisce la matrice A = eps*traspostaR*R;
6. Genera le seguenti successioni, per k>=1:
v^(k) = Av^(k-1)
bk = ||(v^(k-1))-v^(k)||max
7. Stampa ad ogni iterazione bk;
8. Arresta il calcolo quando bk<=eps oppure k = 100;
9. Stampa il numero k delle iterazioni effettuate;
10. Stampa le componenti dell'ultimo vettore v^(k) calcolato.

IO HO FATTO FINO AL PUNTO 5, MA IL 6 7 E 9 NON RIESCO PROPRIO.. QUALCUNO PUò DARMI UN SUGGERIMENTO:hail::hail::hail:??? GRAZIE MILLE A TUTTI

PM Quote
Avatar
Lawliet (Normal User)
Expert


Messaggi: 386
Iscritto: 09/04/2009

Segnala al moderatore
Postato alle 17:26
Giovedì, 21/01/2010
visto che non sei nuova: http://www.pierotofy.it/pages/extras/forum/2/78115-leggere ... leggiti un pò il regolamento, anche se del C++ ma è equivalente per il C.
Riguardo alle tue tracce, cosa non riesci a fare? Posta il codice di quello che hai fatto e vediamo un pò tutti insieme.

PM Quote
Avatar
stella.p (Normal User)
Newbie


Messaggi: 11
Iscritto: 31/10/2009

Segnala al moderatore
Postato alle 18:14
Giovedì, 21/01/2010
Lo conosco il regolamento del forum.. forse mi sono spiegata male io.. Non voglio che qualcuno mi faccia il codice, vorrei solo qualche suggerimento per continuare, poi me lo finisco io..

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6379
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 20:21
Giovedì, 21/01/2010
Visto che i vari punti sono collegati, perche' non mostri il codice per i punti che hai risolto (magari commentandolo) ?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
stella.p (Normal User)
Newbie


Messaggi: 11
Iscritto: 31/10/2009

Segnala al moderatore
Postato alle 19:55
Venerdì, 22/01/2010
Ecco una bozza del codice che ho fatto.. sicuramente ci saranno molte imprecisioni, ma l'avevo scritto su un foglio per esercitarmi per la prova scritta che purtroppo non è al pc, quindi non potrò controllare gli errori..

Codice sorgente - presumibilmente C

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #define N 25
  5.  
  6. typedef double vettore [N];
  7. typedef double matrice [N][N];
  8.  
  9. void leggi_n(double&);
  10. void leggi_eps(double);
  11. void leggi_w(vettore,int);
  12. void leggi_R(matrice,int,int);
  13. void norma_w(vettore,int, double);
  14. void crea_v(vettore, int);
  15. void crea_trasposta(matrice,int,int);
  16. void crea_A(matrice, matrice, matrice,int,int);
  17. .
  18. .
  19. .
  20.  
  21. void leggi_n(double&n)
  22. {
  23.      printf("\n\nInserisci il numero n:");
  24.      printf("\n\n                          n= ");
  25.      scanf("%lf",&n);
  26.      
  27.      return;
  28. }
  29.  
  30. void leggi_eps(double e)
  31. {
  32.      printf("\n\nInserisci la tolleranza:");                
  33.      printf("\n\n                         e = ");
  34.      scanf("%lf",&e);
  35.      return e;
  36. }
  37.  
  38. void leggi_w(vettore w, int n)
  39. {
  40.      int i;
  41.      for (i=1;i<n;i++)
  42.      printf("inserisci componente numero %d del vettore w",i);
  43.      scanf("%f",v[i]);
  44.      return;
  45. }
  46.  
  47. void leggi_R(matrice R, int n)
  48. {
  49.      int i,j;
  50.      printf("\n\nIntroduci gli elementi della matrice A: ");
  51.       for (i=0; i<n; i++){
  52.           for (j=0; j<n; j++){
  53.               printf("\n\nA[%d,%d]=",i,j);
  54.               scanf("%f",&A[i][j]);}}
  55.       return;
  56. }
  57.  
  58. void norma_w(vettore w, int n, double a)
  59. {
  60.       a=fabs(u[0]);
  61.       for(i=0;i<n;i++)
  62.       if (fabs(u[i])>a)
  63.       a=u[i];
  64.       printf("\n\nLa norma del massimo e' %f",a);
  65.       return;
  66. }
  67.  
  68. void crea_v(vettore v, int n, double a)
  69. {
  70.      int vett=0;
  71.      for (i=0; i<n; i++)
  72.      vett+=(w[i])/a;
  73.      v[i]=vett;
  74.      return;
  75. }
  76.  
  77. void crea_A(matrice A, matrice R, matrice Rt, int e, int n)
  78. {
  79.      int i,j,k,prodotto=0;
  80.      for (i=0; i<n; i++)
  81.           for (j=0; j<n; j++)
  82.      Rt[i][j]=R[j][i];
  83.      
  84.      for(k=0;k<n;k++)
  85.      prodotto=prodotto+(e)*Rt[i][k]*R[k][j];
  86.      A[i][j]=prodotto;
  87.      return;
  88. }
  89.  
  90. main()
  91. {
  92.       ...
  93. }


PM Quote