shara21jonny Posted March 31, 2012 Report Posted March 31, 2012 Am un vector t, care contine 55 de elemente.Mai am o matrice generata din acest vector,M (10x10), care va contine 100 de elemente.Am un alt vector, u, ce contine 10 elemente.Trebuie sa inmultesc matricea M cu vectorul u, apoi sa afisez pe rand toate acestea.Toate calculele sunt bune, numai ca atunci cand listez vectorul t, ultimile 5 elemente ale acestuia sunt primele 5 din vectorul u.pentru a lista vectorul t, folosesc codul : for i:=1 to dim do begin write(t[i]:7:3,''); end;Unde dim reprezinta cele 55 de elemente ale mele, si este dat de forumla dim=n(n+1)/2. In schimb, variabila n este 10, si mai reprezinta dimensiunea matricei M si dimensiunea vectorului u.Totul este corect, mai putin partea cu listarea, care se face dupa ce toate acestea au fost definite in prealabil iar produsul dintre cele 2 a fost efectuat.De exemplu, daca lui t ii atribui pentru toate cele 55 de elemente valoarea 1, iar lui u de 10 ori valoarea 3, cand listez t va arata de 50 de ori valoarea 1, iar in continuare de 5 ori valoarea 3.Mentionez ca in toate situatiile de definire si de listare am folosit aceleasi variabile i, si j, iar pentru orice n<=9, programul functioneaza corect. INSA PENTRU n>10, PROBLEMA PERSISTA IN ACELASI MOD : NUMAI ULTIMILE 5 ELEMENTE FIIND PRELUATE DIN VECTORUL u. Chiar daca am n=11, sau n=12, sau n=13.Aveti idee cam care ar putea fi problema ? Quote
ionut.hulub Posted April 1, 2012 Report Posted April 1, 2012 mai bine ne arati tot codu.asa nu prea stiu exact ce are, dar presupun ca nu ai alocat suficienta memorie pentru vectorul u si din cauza asta se produce o depasire (verifica daca nu ai locat doar 10) din cauza careia programul iti scrie in t fara sa vrei sand faci asignarea sau cand faci inmultirea.daca nu iti e de ajutor, posteaza tot codu sa vedem mai bine care e treaba. Quote