Exercitiu C++

Discutii despre tot ce nu se incadreaza in celelalte categorii.

Moderators: Moderatori ajutatori, Moderatori

johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 00:02

Asta e problema : http://s9.postimage.org/4hypyon8v/47225 ... 3145_o.jpg
Deci trebuie sa scriu un program. Cand il rulez, el trebuie sa-mi ceara numarul de linii si de coloane a matricei A. Dupa ce fac asta, trebuie sa-mi ceara valorile...Apoi sa-mi ceara valorile lui x si y. X fiind numarul randului din matricea A si y numarul coloanei din matricea A. B va incepe de la randul x linia Y, fiind o matrice de 2 linii si 2 coloane.
Exemplu:
m=numar de randuri A=4
n=numar de coloane A=4
Valori A:
x1y1 x1y2 x1y3 x1y4
x2y1 x2y2 x2y3 x2y4
x3y1 x3y2 x3y3 x3y4
x3y1 x4y2 x4y3 x4y4
x=numarul randului de unde va incepe B=2
y=numarul coloanei de unde va incepe B=2
Deci, matricea B va arata:
x2y2 x2y3
x3y2 x3y3.
Poate sa ma ajute cineva cu rezolvarea ?
Last edited by johnnny on 24 Dec 2012, 02:02, edited 1 time in total.
User avatar
styllEE.WTF!?
Membru, skill +1
Membru, skill +1
Posts: 452
Joined: 07 Jan 2011, 18:21
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com!
Detinator server CS: ...
SteamID: ;p
Reputatie: Ban 3 luni
Has thanked: 20 times
Been thanked: 16 times
Contact:

24 Dec 2012, 00:03

Nu merge poza ...
Nick: styllEE ;x
VOT PLEASE DAU BACK >:D<
REGULI GENERALE : Afișează regulile forumului
1. Utilizati corect limba romana (folositi cuvinte intregi, virgula, punctul si cratima). NU FOLOSITI limbaj de chat!
2. Raspundeti concret! Fara offtopic, fara mesaje scurte, inutile sau deja postate!
* offtopic = reprezinta devierea de la subiectul care se discuta
3. Folosirea cuvintelor sau inregistrarea cu nume obscene/jignitoare duce la restrictionarea accesului, stergerea contului, etc.
4. Este interzis orice atac la persoana. Discutati ideea, nu persoana !
5. Restrictii reclame :
a) Reclama este permisa in subiecte atat timp cat ele au legatura cu idea care se discuta.
b) In semnatura este permisa o singura reclama SIMPLA de tip TEXT cu dimensiunea fontului setat pe NORMAL
c) Reclama nu este permisa in campurile personale gen: Locatie, CS Status.
d) Nu aveti voie sa deschideti topicuri cu referire exacta la un site in scopul obtinerii de vizite, se considera reclama !
6. Nu folositi imagini in semnatura mai mari decat 500x120. Puteti folosi mai multe imagini care, toate sa nu depaseasca marimea impusa !
7. Folositi CAUTAREA si apoi intrebati pentru ceva daca nu exista pe forum! Numele topicurilor create trebuie sa reflecte continutul subiectului pe care se discuta. Nu vor fi permise topicuri de genul: help, ajutor pls, cum fac, etc
8. Este permisa continuarea unei discutii vechi de pe forum, chiar daca aceasta a fost deschisa cu cativa ani in urma. NU se permite insa dublu-post, triplu-post sau UP-uri.
* dublu-post / triplu - post = adaugarea unor mesaje unul dupa altul intr-o discutie a forumului de catre aceeasi persoana
* UP = adaugarea unor mesaje unul dupa altul cu scopul de a scoate in evidenta discutia respectiva
9. Orice fel de continut cu caracter erotic va fi sters, iar daca este necesar se vor aplica avertismente.
10. Nu este permisa promovarea firmelor de hosting in afara de http://www.eXtreamHost.com , fie ca este vorba de o reclama directa sau indirecta.
11. Nu este permisa postarea de continut ilegal: warez, carding (bine cunoscutele "metode" de furat domenii etc.) si alte practici "neortodoxe", se vor aplica avertismente sau ban, dupa caz si antecedente.

SANCTIONAM DRASTIC INCALCAREA ACESTOR REGULI SI ORICE ABUZ !


WARNINGS/Avertismente
3 Avertismente = BAN pe forum pentru o anumita perioada de timp, in functie de gravitatea regulilor incalcate!
1 Avertisment = 15 de zile

Mesaje private
Abuzul in orice fel de folosirea mesajelor private va duce la sanctionare. In concluzie, vi se va lua dreptul de a mai trimite mesaje.
Reclamatiile cat si penalizarile se regasesc aici: discutii-forum/reclamatii-mesaje-private-t335539.html

Suplimentar
1. In semnatura nu sunt permise linkuri catre jocuri (site-uri) gen bitefight, monstergame, etc.
2. La profilul Detinator server CS se permite reclama catre un server de Counter-Strike.
3. Orice insulta adusa asupra unui administrator se penalizeaza cu ban permanent. Orice insulta adusa asupra unui moderator se penalizeaza (in functie de gravitatea situatiei) de la avertisment pana la ban permanent.
4. Nu se permite ridicarea subiectelor cu mesaje gen "UP!" unul dupa altul, indiferent de timpul dintre raspunsuri.


Atentionari
1. Nu se permite schimbarea numelui pe forum
2. Nu aveti voie cu mai mult de 1 cont / persoana (vi se sterg toate mesajele si contul de utilizator de pe forum drept penalizare) - cei care abuzeaza si isi fac mai multe conturi, risca sa primeasca ban permanent

 

johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 02:02

Gata, merge.
User avatar
GPaul
Membru, skill +4
Membru, skill +4
Posts: 1931
Joined: 21 Mar 2009, 12:14
Detinator Steam: Da
CS Status: Inactiv. Studiu intens.
Detinator server CS: - House M.D -
SteamID: - House M.D -
Reputatie: Nume anterior: djxpaulz
Fost super moderator
Location: Cluj-Napoca
Has thanked: 8 times
Been thanked: 173 times
Contact:

24 Dec 2012, 02:07

E usoara. Incearca sa o faci si te ajutam unde nu stii.

VREAU DOAR SA INCERCI, NU SA CERI MURA-N GURA.
Image
Image
johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 02:24

Code: Select all

#include<iostream>
using namespace std;2423424

int main()
{
int n,m,i,j,a[20][20];
cout<<"m=";
cin>>m;
cout<<"n=";
cin>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];}
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
cout<<a[i][j];
}
}
Ok. Am declarat si citit matricea A. Acum, cum bag matricea B in A?
User avatar
GPaul
Membru, skill +4
Membru, skill +4
Posts: 1931
Joined: 21 Mar 2009, 12:14
Detinator Steam: Da
CS Status: Inactiv. Studiu intens.
Detinator server CS: - House M.D -
SteamID: - House M.D -
Reputatie: Nume anterior: djxpaulz
Fost super moderator
Location: Cluj-Napoca
Has thanked: 8 times
Been thanked: 173 times
Contact:

24 Dec 2012, 02:35

Te rog sa postezi 'incercarea ta' si sa ne spui unde te-ai oprit.

P.S: Nici macar nu ai deschis ide-ul.
Image
Image
johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 02:53

Este incercarea mea. Intentionat am pus acele cifre dupa 'using namespace std;' tocmai pentru a evidentia acest lucru. Daca te uiti la tastele de la telefon "2423424" inseamna "bi beibi"=citirea in engleza mea la "be baby"=in engleza mea 'fii copil!'Mesaj pentru toata lumea acum in prag de Sarbatori.
Deci, ma ajuti ??
User avatar
Raduk
Membru, skill +1
Membru, skill +1
Posts: 246
Joined: 29 Nov 2008, 08:26
Detinator Steam: Da
Location: Brasov
Has thanked: 12 times
Been thanked: 31 times

24 Dec 2012, 12:34

Iti explic eu putin ce ai de facut si apoi continui tu. E bine?

Mai declari o matrice b[3][3] si inca doua variabile in care vei stoca pozitia (linie/coloane) de unde vor fi preluate elementele pentru matricea b. (sa zicem nb si mb).

Apoi vei face in felul urmator:
- primul element din matricea b adica b[0][0] v-a fi egal cu a[nb][mb] (adica elementul de start din matricea a)
- elementul b[0][1] v-a prelua valuarea elementului a[nb][mb+1] deoarece se afla pe acceasi linie dar coloana creste cu +1
- elementul b[1][0] v-a prelua valuarea elementului a[nb+1][mb] deoarece coboram cu o linie mai jos dar coloana este cea de start
- elementul b[1][1] v-a prelua valuarea elementului a[nb+1][mb+1] deoarece ne aflam cu o linie mai jos si cu o coloana mai la dreapta.

Dar inainte de asta mai trebuie sa verifici ca pozitia de start (nb si mb) sa nu fie pe ultima linie/coloana. Adica nb<n && mb<m.

Am explciat cam tot ce e de explicat, acum sper ca ai inteles daca nu pot reveni cu o schita.
johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 13:34

Am inteles asta. In teorie e usor. Dar nu inteleg cum sa scriu matricea B...adica ea incepe de la x si y...daca x=2...cum scriu ca primul termin din B e randul 2 din A ? Crezi ca e posibil sa lasi un cod cu matricea B ?
User avatar
Raduk
Membru, skill +1
Membru, skill +1
Posts: 246
Joined: 29 Nov 2008, 08:26
Detinator Steam: Da
Location: Brasov
Has thanked: 12 times
Been thanked: 31 times

24 Dec 2012, 13:53

E mai simplu decat crezi:
- elementul din matricea a, linia 3, coloana 3 se acceseaza ca nume_matrice[linia][coloana] adica a[3][3].
- daca vrei sa ii dai acestui element valuarea 5 o sa ai: a[3][3]=5
- sau daca vrei sa stochezi intr-o variabila (n sa zicem) continutul elemntului a[3][3] o sa ai: n=a[3][3].

In concluzie daca in primul element al matricei b (coloana 0, linia 0) un element din matricea a (sa zicem linia 2, coloana 4) o sa ai: b[0][0]=a[2][4].

In cazul tau faci in felul urmator:

Code: Select all

nb = 3; // linia de la care v-a incepe preluarea datelor din matricea A.
mb = 4; // coloana de la care v-a incepe preluarea datelor din matricea A.

// Si acum ai:
// pentru primul element vom extrage informatiile de la coordonatele specificate
b[0][0] = a[nb][mb]; 
// pentru al-II-lea element din B mergem o coloana spre dreapta (adica mb+1)
b[0][1] = a[nb][mb+1];

// si facem asa pentru cele 4 elemente.
Ai inteles despre ce e vorba?
johnnny
Membru, skill +1
Membru, skill +1
Posts: 139
Joined: 03 Nov 2012, 20:09
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 21 times
Been thanked: 16 times
Contact:

24 Dec 2012, 14:45

Am inteles Raduk. Multumesc mult. aia nu intelegeam, cum sa scriu ca primul termen din B este termenul de pe linia x si coloana y din A.
User avatar
bogdhy
Membru, skill +1
Membru, skill +1
Posts: 361
Joined: 29 Dec 2010, 16:50
Detinator Steam: Da
Has thanked: 27 times
Been thanked: 19 times

24 Dec 2012, 15:56

| Afiseaza codul
[code]#include <iostream.h>

int a[10][10],b[10][10],m,n,x,y;

void citeste(int a[][10],int n,int m)
{
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{	
			cout<<"a["<<i<<"]["<<j<<"]="; cin>>a[j];
			
		}
}


void afisare(int a[][10],int n,int m)
{
	for(int i=1;i<=n;i++)
	{	for(int j=1;j<=m;j++)
			cout<<a[j]<<" ";
		cout<<endl;
	}
	
}

void construire(int x,int y)
{
	for(int i=1;i<=2;i++)
	{	for(int j=1;j<=2;j++)
		{	
			b[j]=a[x][y];
			y++;
		}
		x++;
		y=y-2;
	}
}

int suma()
{	
	int S=0;
	for(int i=1;i<=2;i++)
		for(int j=1;j<=2;j++)
			S+=b[j];
		
	return S;

}

int main()
{
	cout<<"n= "; cin>>n;
	cout<<"m= "; cin>>m; cout<<endl;
	
	citeste(a,n,m); cout<<endl;
	
	cout<<"<----------- Matricea A ----------->"<<endl<<endl;
	
	afisare(a,n,m); cout<<endl;
	
	cout<<"x= "; cin>>x;
	cout<<"y= "; cin>>y;
	
	construire(x,y); cout<<endl;
	
	cout<<"<----------- Matricea B ----------->"<<endl<<endl;
	
	afisare(b,2,2); cout<<endl;
	
	cout<<"Suma este egala cu "<<suma();
	
}[/code]
Image
Post Reply

Return to “Discutii generale”

  • Information