Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum sterg mails din Promotions

Vanzare cumparare fara transfer b...

Receptie ciudata, in functie de t...

Dupa 20 ani de facultate, am uita...
 Mobile.de ofera imprumut de bani ...

problema test grila

Digi24 a disparut de pe TV Lg

Drept de proprietate intelectuala...
 Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebui sa vindem imobiliarele ...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 

Paralele cu diagonala principala

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

#1
player2001

player2001

    New Member

  • Grup: Junior Members
  • Posts: 6
  • Înscris: 01.11.2017
Salut ...cum as putea sa separ paralelele diagonalei principale :
#include <iostream>
using namespace std;
int  main()
{
    int mat[20][20];
    int n,i,j,d;
    cin>>n;
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
    cin>>mat[i][j];
    }
    for(i=0;i<n;i++)
    {
    for(j=0;j<n;j++)cout<<mat[i][j]<<" ";
    cout<<endl;
    }
    d=n-1;
    while(d>=0)
    {
    for(i=0;i<n-d;i++)cout<<mat[i][i+d]<<" ";
    d--;
    }
    return 0;
}
asta e codul care l-am folosit ,dar mi le da una dupa alta pe aceiasi linie
Pt
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
sa-mi afiseze
4
3 8
2 7 12

#2
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,266
  • Înscris: 06.01.2007
Iti lipseste un cout<<endl; dupa(sau inainte de) d--;

Insa, mai elegant, ecuatia unei paralele cu diagonala este i=j+d, unde.
Tie iti lipsesc cateva diagonale acolo. In total sunt 2n-1 paralele, nustiu care ti-a fost intentia.
Pentru :
d ∈ [-n+1 , n-1]
i ∈ [0 , n-1]
j ∈ [0 , n-1]
Avem pentru d ∈ [-n+1 , n-1], fixat:
i ∈ [d, d+n-1] ∩ [0 , n-1]
sau, altfel zis
pentru d>=0
i ∈ [d, n-1]
iar pentru d<0
i ∈ [0, d+n-1]

si j=i-d

Deci, eu as face asa(daca e sa le afisez pe toate 2n-1 paralelele):
for(d=-n+1; d<0; d++) //d<0
{
   for(i=0; i<d+n; i++)
	   cout<<mat[i][i-d]<<" ";
   cout<<endl;
}
// aici deja avem d=0, dar... hai sa fie mai clar.
for(d=0; d<n; d++) //d>=0
{
   for(i=d; i<n; i++)
	   cout<<mat[i][i-d]<<" ";
   cout<<endl;
}

//Daca le vrei in ordine inversa, scrii forurile for(d=n-1;d>=0;d--) respectiv for(d=0;d>-n;d--), avand grija care din ele e pentru d>=0 respectiv d<0


Poti utiliza si operatorul ? : pentru a putea folosi un singur for.
Scrii ceva de genul:
for(d=-n+1; d<n;d++)
{
   for(i=(d>=0 ? d : 0); i<(d>=0 ? n : d+n); d++)
		cout<<mat[i][i-d]<<" ";
   cout<<endl;
}



#3
player2001

player2001

    New Member

  • Grup: Junior Members
  • Posts: 6
  • Înscris: 01.11.2017

View Postmaccip, on 14 noiembrie 2017 - 00:01, said:

Iti lipseste un cout<<endl; dupa(sau inainte de) d--;

Insa, mai elegant, ecuatia unei paralele cu diagonala este i=j+d, unde.
Tie iti lipsesc cateva diagonale acolo. In total sunt 2n-1 paralele, nustiu care ti-a fost intentia.
Pentru :
d ∈ [-n+1 , n-1]
i ∈ [0 , n-1]
j ∈ [0 , n-1]
Avem pentru d ∈ [-n+1 , n-1], fixat:
i ∈ [d, d+n-1] ∩ [0 , n-1]
sau, altfel zis
pentru d>=0
i ∈ [d, n-1]
iar pentru d<0
i ∈ [0, d+n-1]

si j=i-d

Deci, eu as face asa(daca e sa le afisez pe toate 2n-1 paralelele):
for(d=-n+1; d<0; d++) //d<0
{
for(i=0; i<d+n; i++)
cout<<mat[i][i-d]<<" ";
cout<<endl;
}
// aici deja avem d=0, dar... hai sa fie mai clar.
for(d=0; d<n; d++) //d>=0
{
for(i=d; i<n; i++)
	 cout<<mat[i][i-d]<<" ";
cout<<endl;
}

//Daca le vrei in ordine inversa, scrii forurile for(d=n-1;d>=0;d--) respectiv for(d=0;d>-n;d--), avand grija care din ele e pentru d>=0 respectiv d<0


Poti utiliza si operatorul ? : pentru a putea folosi un singur for.
Scrii ceva de genul:
for(d=-n+1; d<n;d++)
{
for(i=(d>=0 ? d : 0); i<(d>=0 ? n : d+n); d++)
cout<<mat[i][i-d]<<" ";
cout<<endl;
}



Mersi ! Imi trebuia toate diagonalele.... nu mi-a dat seama ca endl trebuia pus dupa d--;eu am incercat sa-l pun dupa mat[i][i+d]

#4
versacic

versacic

    Junior Member

  • Grup: Members
  • Posts: 197
  • Înscris: 28.10.2017
Mie nu-mi merge programul

Imi da vreo 2-3 erori in MingGW

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

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