sicilianul Posted February 23, 2012 Report Posted February 23, 2012 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! Quote
pr00f Posted February 23, 2012 Report Posted February 23, 2012 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 5if ( a[i][j]%5 == 0 ) { suma += a[i][j];}Divizibilitatea cu 2 dar f?r? 3if ( (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 dreaptaif ( 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. Quote
sicilianul Posted February 23, 2012 Author Report Posted February 23, 2012 Multumesc mult si pentru atat. Quote
TheTime Posted February 23, 2012 Report Posted February 23, 2012 (edited) #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 . La c) nu prea am inteles ce vrei.LE: wtf pr00f?!? tablouri unidimensionale = matrici patratice? De cand? Eu stiam ca sunt vectori... Edited February 23, 2012 by TheTime Quote
sicilianul Posted February 23, 2012 Author Report Posted February 23, 2012 Multumesc si tie TheTime dar problema e pusa cuiva de clasa a 11a si daca ii prinde cu biblioteca conio.h isi da seama ca nu ei au rezolvat problema. Si nu e la mate-info... Quote
TheTime Posted February 23, 2012 Report Posted February 23, 2012 Atunci scoate liniile urmatoare:#include <conio.h>clrscr();getch();sunt mai mult pentru aspect, merge bine si fara ele Quote
pr00f Posted February 23, 2012 Report Posted February 23, 2012 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). Quote
sicilianul Posted February 23, 2012 Author Report Posted February 23, 2012 Deci nu e bun cum ai zis prima oara? Quote
TheTime Posted February 23, 2012 Report Posted February 23, 2012 #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 Te inteleg perfect pr00f.. se mai intampla. Quote
sicilianul Posted February 23, 2012 Author Report Posted February 23, 2012 va multumesc pentru timpul acordat si pentru implicatie. Sunt profund recunoscator Quote
pr00f Posted February 23, 2012 Report Posted February 23, 2012 Am rescris codul. El se afl? pe http://sprunge.us/STdT . Am ?i explicat ce era necesar prin comentarii la linia respectiv?. Quote
sicilianul Posted February 23, 2012 Author Report Posted February 23, 2012 E super ok mersi inca odata ) Quote
u0m3 Posted February 24, 2012 Report Posted February 24, 2012 Am rescris codul. El se afl? pe http://sprunge.us/STdT . Am ?i explicat ce era necesar prin comentarii la linia respectiv?.Ca fapt diverselse 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) Quote
pr00f Posted February 24, 2012 Report Posted February 24, 2012 Ca fapt diverselse 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. Quote
sicilianul Posted March 17, 2012 Author Report Posted March 17, 2012 Am revenit cu inca 3 probleme, in speranta ca ma va mai ajuta lumea 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 Quote
cmiN Posted March 18, 2012 Report Posted March 18, 2012 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 lumeaEu 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" ? Quote
cifratorul Posted March 18, 2012 Report Posted March 18, 2012 e si vina voastra ca le faceti temele si ii incurajati sa vina iar cu alte probleme. cand cineva vine si posteaza doar un enunt de problema si imediat se gaseste cineva sa posteze rezolvarea ce crezi ca va urma? Quote
Nytro Posted March 18, 2012 Report Posted March 18, 2012 Imi cer scuze, e vina mea, am rezolvat problema. Quote