Chirurgia endoscopică a hipofizei
"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală. Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale. www.neurohope.ro |
[TEMÃ] Matrice: transpusã, maxim
#1
Posted 24 February 2013 - 16:32
Salutare
Am o problema in C care spune asa: Se da o matrice patratica cu n linii si coloane, ale carei valori se citesc de la tastatura. Se cere: 1) Sa se afiseze traspusa matricei date, si sa se stocheze valoare acesteia. 2) Sa se calculeze cel mai mare numar din matrice, de cate ori apare si pe ce pozitii. punctul 1 l-am facut, la punctul 2 am dificultati . cine ma poate ajuta ? Programul meu arata cam asa: #include<stdio.h> int main() { int n,mat[10][10],m,x,i,j,k=0,max=0; printf("Se calculeaza o matrice patratica.\n\n"); printf("\nDati n="); scanf("%d",&n); for(i=0;i<=n-1;i++) { for(j=0;j<=n-1;j++) { printf("mat[%d][%d]= ",i,j); scanf("%d",&mat[i][j]); } } printf("\n+---- Matricea este: \n"); for(i=0;i<=n-1;i++) { printf("\n"); for(j=0;j<=n-1;j++) { printf("%d ",mat[i][j]); } } printf("\n\n+---- Transpusa matricei este: \n"); for(j=0;j<=n-1;j++) { printf("\n"); for(i=0;i<=n-1;i++) { printf("%d ",mat[i][j]); } } for(j=0;j<=n-1;j++) for(j=0;j<=n-1;j++) { x=mat[i][j]; mat[i][j]=mat[j][i]; mat[j][i]=x; } for(i=1;i<=n;i++) for(j=1;j<=m;j++) mat[i][j]; k=1; for(i=1;i<=n;i++) for(j=1;j<=n;j++) printf("%d",mat[n][j]); for(i=2;i<=n-1;i++) for(i=2;i<=n-1;i++) printf("%d",mat[i][n]); for(i=1;i<=k+1;i++) { if(mat[i]>max) {max=mat[i]; k=1; } else if(mat[i]==max) k++; } } printf("max= "); } |
#2
Posted 24 February 2013 - 16:46
Cam lasa de dorit exprimarea unui membru din 2011.
1 - formateaza codul 2 - ce nu merge, unde sunt problemele ? Edited by george90, 24 February 2013 - 16:46. |
#3
Posted 24 February 2013 - 17:21
Salut,
Nu inteleg ce problema sesisezi in exprimarea mea, te referi la cea verbala sau cea informatica? Apoi codul compileaza dar ultima parte da o eroare pentru ca ultima parte a codului nu este corecta dar l-am postat ca sa arat cum am gandit problema.Pana unde afiseaza traspusa matricei codul e corect, pe urma nu reusesc sa fac sa-mi calculeze cel mai mare nr din matrice si sa-l stocheze de fiecare data cand il intalneste, si apoi la final sa afiseze toate locatiile cu numarul stocat. Trebuie cineva sa ma ajute sa-mi spuna daca am pornit bine cu ultima parte a codului sau trebuie sa am alta abordare. |
#4
Posted 24 February 2013 - 18:01
E banal sa afli cel mai mare numar din matrice. La fiecare iteratie compari numarul curent cu cel precedent si daca e mai mare il stochezi in variabila MAX si resetezi contorul. Daca e egal cu MAX incrementezi contorul. Daca nu e mai mare treci mai departe.
|
#5
Posted 24 February 2013 - 18:07
george90, on 24 februarie 2013 - 16:46, said:
Cam lasa de dorit exprimarea unui membru din 2011. 1 - formateaza codul 2 - ce nu merge, unde sunt problemele ? Daca da: De ce nu-l indrumi unde poate fi gasit si eventual daca este cazul si cum se foloseste? |
#6
Posted 24 February 2013 - 18:23
prima data cauti max
max=0 i=1,n j=1,n daca a[i][j]>max atunci max<-a[i][j] apoi cauti pe ce pozitii e max i=1,n j=1,n daca a[i][j]= max atunci scrie "max se gaseste pe ... contor++ sper ca ai inteles ideea totusi, de ce nu folosesti c++ ? sunt mai scurte comenzile de citit si scris Edited by opop, 24 February 2013 - 18:25. |
#7
Posted 24 February 2013 - 18:41
Foarte ineficient pseudo-codul tau. E nevoie de o singura parcurgere a matricii pentru rezolvarea ambelor probleme.
|
#8
Posted 24 February 2013 - 18:52
JayBird, on 24 februarie 2013 - 18:41, said:
Foarte ineficient pseudo-codul tau. E nevoie de o singura parcurgere a matricii pentru rezolvarea ambelor probleme. Oricum, la nivel de liceu nu cred ca e o problema asta. Edited by opop, 24 February 2013 - 18:54. |
#9
Posted 24 February 2013 - 19:50
opop, on 24 februarie 2013 - 18:23, said:
prima data cauti max max=0 i=1,n j=1,n daca a[i][j]>max atunci max<-a[i][j] apoi cauti pe ce pozitii e max i=1,n j=1,n daca a[i][j]= max atunci scrie "max se gaseste pe ... contor++ sper ca ai inteles ideea totusi, de ce nu folosesti c++ ? sunt mai scurte comenzile de citit si scris un raspuns de genul asta asteptam, si tin cont si de observatia lui jaybird cred ca e suficient un cuplu de for pentru ambele. O sa postez daca l-am rezolvat. Mersi mult! |
#10
Posted 24 February 2013 - 21:35
opop, on 24 februarie 2013 - 18:23, said:
daca a[i][j]>max atunci max<-a[i][j] Logica acestei afirmatii ma depaseste. opop, on 24 februarie 2013 - 18:23, said:
totusi, de ce nu folosesti c++ ? sunt mai scurte comenzile de citit si scris c++ implica folosirea claselor si a programarii orientate pe obiecte. Cum programul lui este unul scurt cu doar 2 taskuri, este mai normal de a fi scris in C sau Pascal. De asemenea, nu inteleg ce vrei sa zici prin "sunt mai scurte comenzile de scris si citit" Vrei sa zici ca printf("%i %s %c", someInt, someString, someChar);e mai greu decat std::cout<<someInt<<someString<<someChar;? Poate sunt cateva caractere in plus, dar eu consider ca e mai clar primul. Daca vrei sa scrii un numar cu doar 2 zecimale care e mai scurt? printf("%.2f", someFloat);sau std::cout.precision(2); std::cout<<someFloat; ? Edited by nucL3ar, 24 February 2013 - 21:39. |
|
#11
Posted 24 February 2013 - 22:43
Filozofezi doar de dragu de a te da destept ?
scanf("%d",&n) cin>>n e cam jumate, dumbass |
#12
Posted 24 February 2013 - 23:24
std::cin>>n vrei sa zici.
De asemenea, scrii pe calculator, nu pe foaie, deci nu vad problema. Edited by nucL3ar, 24 February 2013 - 23:25. |
#13
Posted 24 February 2013 - 23:48
std ala e total in plus acolo avand in vedere ca e implicit peste tot.
|
#14
Posted 24 February 2013 - 23:56
nucL3ar, on 24 februarie 2013 - 21:35, said:
Logica acestei afirmatii ma depaseste. Nasol. De fapt, nu e nicio afirmatie, e o linie de (pseudo)cod. Si e vorba de o atribuire care are loc atunci cand comparatia respectiva se evalueaza la true. Vad ca programare stii (mai bine zis, stii sa cauti cearta din nimic). Te-ai incurcat la asa chestie simpla? PS. Nu intotdeauna codul scurt este si cel mai lizibil. Daca ma uit peste un printf("%0.f0l9qblw",x) peste ceva timp, s-ar putea sa trebuiasca sa consult documentatia oficiala a printf pentru a intelege ce dumnezeu se petrece acolo. Un comentariu ajuta, ce e drept, dar un cod "bun" se citeste si se intelege fara alte lamuriri suplimentare sau referinte la cai verzi pe pereti. Edited by msmihai, 24 February 2013 - 23:58. |
#15
Posted 25 February 2013 - 16:05
Domnilor, nu va mai certati , eu am inteles ideea lansata de opop. nucL3ar a argumentat bine de ce fac programul in C si nu in C++ si de fapt programul se cere in C, eu nu vad diferenta foarte mare in scris citit intre ele, diferenta cea mare se face cand se fac programe orientate pe obiecte si atunci clar C-ul e depasit, programelul meu e banal chiar la nivel de liceu dar am niste lacune pe care vreau sa le acopar. inca n-am terminat programul. Nu-mi afiseaza locatiile tuturor max care-i intalneste. Dar imi mai bat capu putin.
|
|
#16
Posted 25 February 2013 - 16:32
Bigbandit, on 25 februarie 2013 - 16:05, said:
Dar imi mai bat capu putin. Gândeşte şi tu înainte de a posta. A, şi avem o arie de Incepatori. N-o avem degeaba. Dacă te-am mai găsit cu nereguli d-ăstea, te-am ars. Succes la programare. |
#17
Posted 25 February 2013 - 17:58
msmihai, on 24 februarie 2013 - 23:56, said:
Nasol. De fapt, nu e nicio afirmatie, e o linie de (pseudo)cod. Si e vorba de o atribuire care are loc atunci cand comparatia respectiva se evalueaza la true. Vad ca programare stii (mai bine zis, stii sa cauti cearta din nimic). Te-ai incurcat la asa chestie simpla? Ok, o să încerc să-ți explic mai simplu, cu un exemplu. daca a[i][j]>max atunci max<-a[i][j] Fie un coș cu a[j] mere. În coș pot intra maxim 10 mere, dar prin anumite metode s-au forțat 12 mere. Astfel, conform afirmației lui, cum 12 mere > 10 mere => 10 mere < -12 mere. (minus doișpe mere) Dar stai nene, cum adică -12 mere? Pleacă de aici, vrei să-mi furi banii! |
#18
Posted 25 February 2013 - 18:31
nucL3ar, on 25 februarie 2013 - 17:58, said:
Ok, o să încerc să-ți explic mai simplu, cu un exemplu. daca a[i][j]>max atunci max<-a[i][j] Fie un coș cu a[j] mere. În coș pot intra maxim 10 mere, dar prin anumite metode s-au forțat 12 mere. Astfel, conform afirmației lui, cum 12 mere > 10 mere => 10 mere < -12 mere. (minus doișpe mere) Dar stai nene, cum adică -12 mere? Pleacă de aici, vrei să-mi furi banii! "<-" In contextul dat este un operator de atribuire. La fel cum este in pascal ":=". Confunzi notiunile, sau nu le pricepi. Edited by Cy_Cristian, 25 February 2013 - 18:32. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users