Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Montaj aer conditionat in balcon ...

joc idem Half Life gratis

PC game stream catre Nvidia Shiel...

Pompa de apa HEPU ?!
 Vreau o masina electrica de tocat...

Cum ajunge remorca de tir inapoi ...

Alt "Utilizator nou" pe T...

ULBS INFORMATICA
 Index preturi

Boxa membrana tweeter infundata

Am nevoie de poze cu un curcubeu

Whisky for Mac
 Xiaomi 14 Gpay

Izolare zid exterior de scandura

Dezinstalare drivere W11 23H3

Recomandare masina de spalat fiab...
 

nelamurire rezultat probleme ( matrice )

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

#1
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Salut!Am rezolvat o problema cu matrice doar ca am o nelamurire in legatura cu rezultatele pe care mi le da programul.
cerinta: Se citeste o matrice cu m linii si n coloane cu elemente nr intregi.Afisati elementele "cadru" pornind de la primul element (a[0][0]) in sensul invers acelor de ceasornic.Interschimbati elementele primei coloane cu elementele ultimei coloane si afisati matricea dupa interschimbare.
#include <iostream>
using namespace std;
int a[20][25],m,n,i,j;
void citire(int a[20][25], int &m, int &n)
{
	cout<<"m=";cin>>m;
	cout<<"n=";cin>>n;
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
	{
		cout<<"a["<<i<<"]["<<j<<"]=";
		cin>>a[i][j];
	}
}
void afisare_c(int a[20][25], int m, int n)
{
	for(i=0;i<m;i++)
		cout<<a[i][0]<<" ";
	for(j=1;j<n;j++)
		cout<<a[m-1][j]<<" ";
	for(i=m-2;i>=0;i--)
		cout<<a[i][n-1]<<" ";
	for(j=n-2;j>0;j--)
		cout<<a[0][j]<<" ";

}
void interschimb(int a[20][25], int m, int n)
{
	int c;
	for(i=0;i<n;i++)
		{
			c=a[i][0];
			a[i][0]=a[i][n-1];
			a[i][n-1]=c;
		}
}
void afisare(int a[20][25], int m, int n)
{
	for(i=0;i<m;i++)
	{
	   for(j=0;j<n;j++)
			cout<<a[i][j]<<" ";
	   cout<<endl;
	}
}
int main()
{
	citire(a,m,n);
	afisare_c(a,m,n);
	interschimb(a,m,n);
	afisare(a,m,n);
	return 0;
}

Programul functioneaza oarecum doar ca la afisarea elementelor cadru mi-l afiseaza pe primul element de doua ori( o data la inceput si o data la sfarsit) si nu stiu unde gresesc.De asemenea,elementele de pe ultima linia nu mi le interschimba iar prima linie nu mi-o afiseaza deloc.Cred ca gresesc la un for, dar nu-mi dau seama la care.
Am atasat o poza.
Rezultatele ar trebui sa fie: 0 3 6 9 1 2 8 5 2 1 si atat.Fara ultimul 0.
Si afisarea matricei: 2 1 0
                                 5 4 3
                                 8 7 6
                                 2 1 9
Multumesc!

Attached Files



#2
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Eu as incepe prin a vedea cand se afiseaza end-of-line. Dar apropo, de debug ai auzit?

#3
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Da, dar nu stiu sa-l folosesc

#4
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Ok, atunci pune intrebarea altfel. Uite un mini articol in care am incercat sa acopar introducerea in debugging.
Insa strict la problema ta, ti-am o intrebare care te duce direct la raspuns. Nu sari peste informatii. Asadar, cand afisezi "end of line"?

Edited by Cy_Cristian, 15 January 2018 - 21:44.


#5
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Cand vrem sa trecem la un rand nou...cred eu

#6
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Nu te-am intrebat la modul general. Poate intrebarea nu este foarte clara. Cand afiseaza "end of line" programelul tau? Ruleaza pe hartie intai. Urmareste codul si spune-ne cand se trece la rand nou.

#7
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Pai dupa ce interschimb prima coloana cu ultima creez o noua functie de afisare.Parcurg liniile si coloanele si afisez elementele din matricea cu elementele interschimbate punand spatiu intre ele.Sincer sa fiu,nu stiu cand se trece la un rand nou.Eu am copiat secventa de afisare pe care ne-a predat-o profa.Ma gandesc ca dupa ce se termina linia,se trece la un rand nou..

#8
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Eu deduc ca la momentul actual tu nu intelegi ce face programelul respectiv. Incearca sa sapi, nu lasa valul asta sa se asterne.
Acum avem 2 directii. Daca inveti doar pentru o nota, poti sa continui sa asimilezi cunostinte in mod automat, fara sa intelegi ce anume reprezinta.
Daca vrei sa inveti, incearca sa sapi si sa vezi ce anume se intampla. Se pare ca ai aruncat o privire pe articolul de debugging. Incearca sa aplici in programele pe care nu le intelegi,

PS: Trecerea la un nou rand in programelul tau este data de secventa de cod.
cout<<endl;
Intrebare, spune exact in ce moment se apeleaza acea linie.

#9
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Pentru fiecare linie i, afisam elementele de pe acea linie apoi trecem la un rand nou.Deci dupa ce se afiseaza ultimul element de pe linia i, atunci se trece la un rand nou.

#10
Cy_Cristian

Cy_Cristian

    Active Member

  • Grup: Members
  • Posts: 1,845
  • Înscris: 22.02.2009
Putem trage concluzia ca acum intelegi care este problema si ca topicul poate fi considerat inchis?

#11
tutuN_

tutuN_

    Junior Member

  • Grup: Members
  • Posts: 137
  • Înscris: 21.09.2014
Spre rusinea mea,n-am inteles care este problema si nu inteleg de ce nu-mi afiseaza prima linie.In alte probleme pe care le-am facut afisarea era corecta.Problema de mai sus am rezolvat-o azi la clasa pe foaie cu profa, iar acasa am vrut sa vad daca functioneaza.

Edited by tutuN_, 15 January 2018 - 22:43.


#12
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,427
  • Înscris: 10.08.2005
@OP si daca maine cineva iti cere o matrice mai mare ce faci ?

renunta la variabile globale


void citire(int a[20][25], int &m, int &n)
{
	 cout<<"m=";cin>>m;
	 cout<<"n=";cin>>n;
	 for(i=0;i<m;i++)
			 for(j=0;j<n;j++)
	 {
			 cout<<"a["<<i<<"]["<<j<<"]=";
			 cin>>a[i][j];
	 }
}
m si n pot fi mai mari decat 20 respectiv 25,

plus ca functia ar trebui sa citeasca doar matricea, nu si marimea acesteia.

ce este afisare_c ?

De unde incepe si unde se termina afisrea cadrului ?

Anunturi

Bun venit pe Forumul Softpedia!

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