Jump to content

Recommended Posts

Am si eu nevoie de ajutorul vostru intro problema de C++. Eu nu am mai pus mana pe C++ de 3 ani de zile, si am uitat cam cum se rezolvau problemele, spre rusinea mea. Fara prea multa vorbaraie, problema suna asa:

Se citeste un tablou unidimensional.

Sa se afle :a) Suma elementelor divizibile cu 5.

b)Suma elementelor cu proprietatea ca sunt divizibile cu 2 dar nedevizibile cu 3.

c) Suma elementelor cu proprietatea ca sunt egali cu suma vecinilor din stanga si suma vecinilor din dreapta .

Pentru cel ce ma ajuta, mii de multumiri, si poate la nevoie il ajut si eu. Sunt recunoscator pe buna dreptate!

Multumesc anticipat! :D

Link to comment
Share on other sites

Citire tablou unidimensional (a.k.a. matrice p?tratic?)


int a[100][100], i, j; // Definim matricea si contoarele.
int n=3; // Numarul de linii si coloane - el poate fi citit de la tastatura.

for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
cout << "a[" << i << "][" << j << "] = ";
cin >> a[i][j];
}
}

Divizibilitatea cu 5

if ( a[i][j]%5 == 0 ) {
suma += a[i][j];
}

Divizibilitatea cu 2 dar f?r? 3


if ( (a[i][j]%2 == 0) && (a[i][j]%3 != 0) ) {
suma += a[i][j];
}

Suma elem. cu proprietatea c? sunt egali cu suma vecinilor din stânga ?i dreapta


if ( a[i][j] == a[i][j-1] + a[i][j+1] ) {
suma += a[i][j];
}

Codurile cu suma le introduci în for-uri identice cu cele de la citire, de la 1 pân? la n. Define?ti tu ce trebuie. Codul este netestat, scris pe loc.

Link to comment
Share on other sites


#include <iostream.h>
#include <conio.h>
int main()
{ clrscr();
int n; //numarul de elemente din tablou
cout<<"Introduceti numarul de elemente din vector: ";
cin>>n;

int a[100];

int sa = 0, sb = 0; //suma de la punctul a si suma de la punctul b
for (int i=0; i<n; i++)
{
cout <<"a["<<i<<"]= ";
cin>>a[i];
if (a[i]%5 == 0) sa += a[i];
if ((a[i] % 2 == 0) && (a[i] % 3 != 0)) sb += a[i];
}
cout<<endl<<"Suma elementelor din vector divizibile cu 5 este: "<<sa;
cout<<endl<<"Suma elementelor din vector divizibile cu 2, dar nu si cu 3 este: "<<sb;
getch();
return 0;
}

Punctele a) si B). La c) nu prea am inteles ce vrei.

LE: wtf pr00f?!? tablouri unidimensionale = matrici patratice? De cand? Eu stiam ca sunt vectori...

Edited by TheTime
Link to comment
Share on other sites

LE: wtf pr00f?!? tablouri unidimensionale = matrici patratice? De cand? Eu stiam ca sunt vectori...

C?cat, sunt prost. Profesorul meu de info spune tablou atunci când se refer? la matrici (ceea ce este corect). Când am citit unidimensional, m-am gândit la matrice p?tratic?. Sunt obosit, asta e. Revin cu rezolvarea complet?. Cât despre punctul c), singura rezolvare având în vedere exprimarea problemei este suma vecinilor s?i (i-1 + i+1).

Link to comment
Share on other sites


#include <iostream.h>
void main()
{
int n; //numarul de elemente din tablou
cout<<"Introduceti numarul de elemente din vector: ";
cin>>n;

int a[100];

int sa = 0, sb = 0; //suma de la punctul a si suma de la punctul b
for (int i=0; i<n; i++)
{
cout <<"a["<<i<<"]= ";
cin>>a[i];
if (a[i]%5 == 0) sa = sa + a[i];
if ((a[i] % 2 == 0) && (a[i] % 3 != 0)) sb = sb + a[i];
}

int sc = 0; //suma de la c)
for (i=1; i<n-1; i++)
{
if (a[i] == (a[i-1]+a[i+1])) sc = sc + a[i];
}
cout<<endl<<"Suma elementelor din vector divizibile cu 5 este: "<<sa;
cout<<endl<<"Suma elementelor din vector divizibile cu 2, dar nu si cu 3 este: "<<sb;
cout<<endl<<"Suma elementelor egale cu vecinii lor este: "<<sc;
}

Rezolvare completa, cod curat, ca pentru clasa a 11-a :D

Te inteleg perfect pr00f.. se mai intampla.

Link to comment
Share on other sites

Am rescris codul. El se afl? pe http://sprunge.us/STdT . Am ?i explicat ce era necesar prin comentarii la linia respectiv?.

Ca fapt divers

else if ( (i != 0) && (i != n) )

ar trebui sa fie

else if ( (i != 0) && (i != n-1) )

deoarece nu vei ajunge niciodata la n oricum (un vector cu n elemente are de la elementul 0 la elementul n-1, deci trebuie sa verifici ca i sa nu fie egal cu n-1 <=> n-1 +1 = n, a[n] iti da exceptie, presupunand ca vectorul are n elemente, nu 100 cum e in exemplu)

Link to comment
Share on other sites

Ca fapt divers
else if ( (i != 0) && (i != n) )

ar trebui sa fie

else if ( (i != 0) && (i != n-1) )

deoarece nu vei ajunge niciodata la n oricum (un vector cu n elemente are de la elementul 0 la elementul n-1, deci trebuie sa verifici ca i sa nu fie egal cu n-1 <=> n-1 +1 = n, a[n] iti da exceptie, presupunand ca vectorul are n elemente, nu 100 cum e in exemplu)

?tiu asta. Mai sus aveam scris else if ( i == n-1 ) (ultimul element). Dar eram rupt de oboseal? asear?, ?i l-am ratat pe ?la.

Link to comment
Share on other sites

Am revenit cu inca 3 probleme, in speranta ca ma va mai ajuta lumea :D Si raman la fel indatorat! Ele suna cam asa:

Sa se afle toate elementele dintr-un tablou unidimensional cu proprietatea ca sunt egale cu media aritmetica a celorlalte elemente din tablou.

Sa se construiasca un tablou unidimensional ce contine elementele din sirul lui Fibonacci.

Sa se construiasca un tablou unidimensional dupa urmatoarea regula Sn=1 daca n=0, Sn=n*Sn daca n>=1. // Aici cred ca Sn pleaca de la 1

Link to comment
Share on other sites

Asta deja e magarie! Dupa atata timp tot nu ti-a intrat la cap sa incerci macar sa ai vointa sau sa te lasi complet. Ce e atat de greu in intelegerea acestor cerinte ? Rezolvarea lor ? Nu stii sa declari un vector pe care sa-l parcurgi citindu-l sau scriind in el, bun. Dar cu ce te ajuta o astfel de problema rezolvata daca nu-ti apartine, daca ramai la fel de lemn ?

in speranta ca ma va mai ajuta lumea

Eu te-as ajuta cu cea mai mare placere, dar spune-mi si mie unde te impotmolesti, unde te chinui tu atat de mult si tot nu-ti iese, dai de un greu pe care nu-l poti duce mai departe si ai nevoie de ajutor ?

Ai vreun scop in viata sau chiar nu cunosti semnificatia cuvantului "indatorat" ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...