Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Deparazitare externa pisici fara ...

Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle
 Problema mare cu parintii= nervi ...

switch microtik

Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...
 Crapaturi placa

cum imi accesez dosarul electroni...

Momentul Aprilie 1964

Sursa noua - zgomot ?
 A fost lansat Ubuntu 24.04 LTS

Pareri apartament in zona Berceni?

Free streaming SkyShowtime de la ...

Skoda Fabia 1.0 TSI (110 CP)- 19 ...
 

[TEMA] Dificultate citire matrice

- - - - -
  • Please log in to reply
3 replies to this topic

#1
DaRakNa

DaRakNa

    Junior Member

  • Grup: Members
  • Posts: 35
  • Înscris: 18.03.2005
Salutare!

Am o matrice cu m linii si n coloane; m,n diferite de 0.
Am nevoie de un algoritm de citire pe diagonala astfel:

Pentru matricea
a[2][3]
1 2 3
4 5 6
sirul rezultat este 1 2 4 3 5 6
a[4][3]
1 2   3
4 5   6
7 8   9
10 11 12
sirul rezultat este: 1 2 4 3 5 7 6 8 10 9 11 12

Am scris programul insa am nevoie de ajutor in a determina in mod corect variabila param care este influentat de m si n.

#include<iostream>
#include<fstream>
using namespace std;
void main()
{
int m,n,mat[20][20];
ifstream myReadFile;
myReadFile.open("in.txt");
myReadFile>>m>>n;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
myReadFile>>mat[i][j];
}
}
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cout<<mat[i][j]<<" ";
}
cout<<endl;
}
int sign=0,param=-1;
for(int i=2;i<=n+m;i++)
{
for(int j=1;j<=m;j=j++)
{
for(int k=1;k<=n;k++)
{
if(j+k==i)cout<<mat[k-sign][j+sign]<<" ";
if(i==((n*m/2)+param))sign=n-m;
//nu am reusit sa determin modalitatea prin care se calculeaza parametrul corect pentru o citire corecta
// 4 X 3 este -1
// 3 X 4 este -1
// 5 X 4 este -4
// 3 x 2 este +1
}
}
cout<<endl;
}
myReadFile.close();
}
/*valoari in.txt
3 4
1 2 3 4 21
5 6 7 8 31
9 10 11 12 41
51 61 71 81 91
101 102 103 104 105
*/



#2
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,442
  • Înscris: 10.08.2005
ceva de genul
https://en.wikipedia...i/Sawtooth_wave

#3
Rhesus

Rhesus

    Senior Member

  • Grup: Senior Members
  • Posts: 2,884
  • Înscris: 22.04.2014
Uite, un cod frumos. Sper să-l înțelegi! Modelează exact ideea sugerată de MarianG.
void selectedRead (const int **p, int linii, int coloane){
for (int c=0,l=0 ; c+l<=linii+coloane-2 ; c<coloane-1 ? c++ : l++){
		 int copyC=c;
		 int copyL=l;
		 while (copyC >=0 && copyL <= linii-1){
				 cout << p[copyL][copyC] << ' ';
				 copyC--;
				 copyL++;
		 }
}
}


Edited by Rhesus, 01 July 2015 - 18:55.


#4
DaRakNa

DaRakNa

    Junior Member

  • Grup: Members
  • Posts: 35
  • Înscris: 18.03.2005

View PostRhesus, on 01 iulie 2015 - 18:54, said:

Uite, un cod frumos. Sper să-l înțelegi! Modelează exact ideea sugerată de MarianG.
void selectedRead (const int **p, int linii, int coloane){
for (int c=0,l=0 ; c+l<=linii+coloane-2 ; c<coloane-1 ? c++ : l++){
		 int copyC=c;
		 int copyL=l;
		 while (copyC >=0 && copyL <= linii-1){
				 cout << p[copyL][copyC] << ' ';
				 copyC--;
				 copyL++;
		 }
}
}



Multumesc Rhesus si MarianG, cu ocazia asta am inteles si operatia ternara (exp1 ? exp2 : exp3)

Am reusit sa inteleg si sa folosesc algoritmul tau.

Nu am reusit sa transmit matricea prin referinta. Am incercat cu &mat, fara succes insa,  drept pentru care am modificat parametrul din subprogramul tau din "const  int **p" in int p[20][20].

Intrebare: de ce folosesti var1<=var2-1 cand poti folosi var1<var2 ?

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate