Jump to content

ldd.man25

Members
  • Posts

    86
  • Joined

  • Last visited

Everything posted by ldd.man25

  1. Pai asta vreau sa zic, de unde stii ca nu or sa fie mai mult de 100 de elemente? Sau 100 este maximul pentru oricare vector? adica maximul poate sa fie si mai mare de 100?
  2. Ai citit ce am scris la EDIT? In problema asta nu se specifica maximul pt vectorul P, deoarece se poate rezolva si fara un vector P, dar arata mai "urat". Vreau sa stiu daca putem afla noi maximul exact, pt ca nu este dat de problema. Mai citeste cerinta care e mai sus, poate ma insel eu totusi.
  3. Satanate si virtute domnu' Totusi, nu inteleg ce face a[++m] M trebuia declarat 0 la inceput sau ce? Si a e defapt vectorul pentru P, nu? Sunt cam confuz. Poti sa explici mai detaliat te rog? Ce sunt M si A defapt? Si de ce ai luat a[100] la inceput si nu a[3]? Sau a[orice altceva]? EDIT: am inteles acum ce face programelul, problema e ca nu mi se pare corect faza cu a[100] la inceput, daca dau peste 100 de p-uri nu merge. Suna stupid, dar nu e corect. P-ul se introduce pana cand are valoarea 0...Cum l-am facut eu mai sus, este mai putin "estetic", dar corect. Si eu vreau sa arate si FRUMOS si CORECT =]] Multumesc pt ajutor oricum, dar hai sa ne mai gandim Cum mortii lui sa-l introduc pe P intr-un vector, pana cand ia valoarea 0. Maximul vectorului ar trebui sa fie egal cu numarul de introduceri. Mindfuck, alte idei?
  4. Sa trecem la subiect, problema suna in felul urmator: "Cunoscand numarul de locuitori din n orase, se doreste determinarea numarul de orase a caror populatie depaseste o valoare p specificata. La o singura executie a programului, pot fi specificate mai multe valori P pana la introducerea valorii 0, avand semnificatia sfarsit prelucrare." Exemplu date intrare si date de iesire: Date intrare Date de iesire: Cum a rezolvat boss: #include<iostream> using namespace std; int main() {long n,p; int i,j,k=0; cout<<"Introduceti numarul de orase: ";cin>>n; int locuitori[n]; for(i=0;i<n;i++) { cout<<"nnNumarul de locuitori din orasul "<<i+1<<" :";cin>>locuitori[i]; } cin>>p; //citesc P if(p!=0)//verific daca e diferit de 0 do { k++; //cu asta tin evidenta la P-uri, chiar daca nu e necesar. j=0; //cu J contorizez cate orase a gasit cu locuitori mai multi ca P for(i=0;i<n;i++) if(locuitori[i]>p)j++; cin>>p; cout<<"nnPentru P"<<k<<" , s-au gasit "<<j<<" orase."; }while(p!=0); cout<<"nnSfarsit prelucrare."; return 0;} Programul e bun si imi da rezultatul dorit, DAR vreau sa stiu daca e vreun mod de a-l introduce pe P fara sa dea urat pe consola. Adica: http://imgur.com/2YGfpKS Dupa ce il introduc de doua ori, incepe sa se incurce cu cout-ul si nu-mi place. Vreau sa stiu daca se poate sa-l introduc si pe P separat, si dupa sa se afiseze rezultatele. Ma gandeam sa fac un vector pentru P, dar nu stiu care sa fie numarul maxim, deoarece cere sa fie introdus pana cand se da valoarea 0. Dupa m-am gandit sa-l citesc pe P si sa-l afisez de fiecare data intr-un fisier, pana se introduce 0, si dupa sa incep sa citesc fisierul, problema e ca nu stiu cum sa citesc dintr-un fisier .out Complicata treaba. Fara subprograme sau alte minuni. Multumesc anticipat celor care au citit si incearca sa ma ajute <3
  5. Interesante exercitiile alea, or sa le fac si eu cand am timp, mi-ar prinde bine o recapitulare cu fibonacci si ce mai e pe acolo. @Gabriel R, esti mate info simplu sau intensiv info?
  6. Uite aici, cum arata mai pe romaneste la mine. Si multumesc Courage pt link-uri, momentan cu clasa am ajuns la vectori si vreau sa ii inteleg bine, acum or sa ma uit si peste subprogramele alea. #include<iostream> #include<fstream> using namespace std; int main() {int a,b; ifstream in("date.in"); ofstream out("date.out"); in>>a; while(in>>b) { while(a!=b) if(a>b)a=a-b; else b=b-a; } cout<<"nnCMMDC-ul tuturor numerelor este: "<<a; return 0;}
  7. Multumesc pentru raspuns si timpul acordat, dar nu inteleg nimic din ce ai scris inainte de int.main() si dupa return 0; Si de aici rezulta ca nici ce ai scris intre int main si return 0 nu prea au sens pt mine Nu mai conteaza, stiu sa rezolv problema aia acum. edit: o rezolv acum pe limba mea sa vezi cam la ce nivel sunt.
  8. Mai flacai... Mi-a dat la teza urmatoarul exercitiu: "Din fisierul date.in se citeste un sir de numere naturale nenule, sa se afiseze pe ecran CMMDC-ul tuturor numerelor." Trebuia sa citesc toate numerele din acel fisier si sa afisez CMMDC-ul tuturor. Am stiut sa fac CMMDC-ul, dar nu stiam pana cand sa tot citesc, asa ca am facut pana cand se citeste 0, avand in vedere ca in acel fisier sunt numere naturale nenule si in speranta ca o data citite toate numerele, or sa se opreasca. Am facut niste teste acum si nu prea a fost asa #include<iostream> #include<fstream> using namespace std; int main() { unsigned a,b,c; ifstream in("date.in"); in>>a; while(a!=0) { cout<<a<<'n';in>>a; } return 0; } Daca in date.in am DOAR urmatoarele date: De ce el tot continua sa citeasca si de unde citeste restul numerelor pe care le afiseaza? La exemplul asta, se afiseaza Care e comanda sa citesc pana cand se termina toate numerele din fisier? Stiu ca trebuie sa fie ceva cu "eof", gen while(!eof..."
  9. #include<fstream> using namespace std; int main() { int x,n,c,nr,copy,i,j=0,y; ifstream f("palindrom.in"); ofstream g("palindrom.out"); f>>n; //citesc primul numar din fisier for(i=1;i<=n;i++) //afisez pe primul rand din fisierul de iesire, cele 'n' numere. { f>>x; g<<x<<' '; } f.close(); //inchid f. ifstream h("palindrom.in"); //deschid iar h>>n; //acum se citesc numerele de la capat din palindrom in. for(i=1;i<=n;i++) //citesc cele n numere { h>>x; //le prelucrez si verific daca sunt palindromuri copy=x; nr=0; while(copy!=0) { c=copy%10; nr=nr*10+c; //in "nr" se salveaza inversul numarului citit copy/=10; } if(x==nr) // daca inversul este egal cu numarul initial (=palindrom) { //il afisez j++; g<<'n'<<x; } } if(j>0)g<<'n'<<"S-au gasit "<<j<<" palindromuri."; //afisez pe ultimul rand cate palindromuri am gasit. else g<<'n'<<"Nu s-a gasit niciun palindrom."; h.close();g.close(); return 0;} Acum imi merge, acolo e ce am rezolvat eu, nu am mai avut timp sa postez / rezolv asta saptamana trecuta Oricum, multumesc pentru ajutor tuturor.
  10. daca in fisierul de intrare sunt numerele: trebuie citite si verificate doar primele 3, pt ca '3' e primul nr. daca fac un FOR doar pt a le citi si afisa pe toate (toate 3), dupa daca as mai face iar un FOR, ar continua sa citeasca pe 51, 66... si eu vreau sa le citeasca de la capat, or sa incerc cu f.close(); si ifstream f din nou, sa vad daca le citeste de la inceput. aici nu prea inteleg eu ce vrea sa inseamne asta uite aici, am scris iar, dar imi da eroare daca fac cum ai zis, vezi ca am scris niste comentarii noi #include<fstream> using namespace std; int main() { int x,n,c,nr,copy,i,j=0,y; ifstream f("palindrom.in"); ofstream g("palindrom.out"); f>>n; //citesc primul numar din fisier for(i=1;i<=n;i++) //afisez pe primul rand din fisierul de iesire, cele 'n' numere. { f>>x; g<<x<<' '; } f.close(); //dau f.close cum ai zis tu. ifstream f("palindrom.in"); //aici da eroare: " redeclaration of 'std::ifstream f' " f>>n; for(i=1;i<=n;i++) //asta e FORul pentru citirea numerelor de la capat { // si aflarea inversului, daca este palindrom, il afisez pe rand nou f>>x; // problema e ca nu merge sa citesc fisierul de la capat, pt ca a dat eroarea de mai sus copy=x; nr=0; while(copy!=0) { c=copy%10; nr=nr*10+c; copy/=10; } if(x==nr) { j++; g<<'n'<<x; } } if(j>0)g<<'n'<<"S-au gasit "<<j<<" palindromuri."; //afisez pe ultimul rand cate palindromuri am gasit. else g<<'n'<<"Nu s-a gasit niciun palindrom."; f.close();g.close(); return 0;}
  11. Exact asta ar trebui sa se afiseze daca fisierul de intrare este asa. (doar ca inainte de '1', ar trebui sa ai un '7', ca sa citeasca 7 numere) Nu eram sigur ca pot (nu daca am voie, ci daca merge) sa citesc aceleasi valori de doua ori dintr-un fisier. M-am gandit si eu, sa fac un for(i=1;i<=n;i++) {f>>x;g<<x<<' ';} Si apoi mai fac iar acelasi for, de unde selectez palindromurile si le afisez. Exista o problema totusi: primul numar citit, este numarul de numere care trebuie citite, deci, daca la sfarsitul for-ului de mai sus, nu se termina numerele din acel fisier, programul e gresit Exista vreo comanda sa inceapa sa citeasca valorile din fisier, de la capat? asa ar merge. Sau sa le afisez si in alt fisier, de unde sa le citesc iar si sa le verific daca sunt palindromuri. Problema e ca nu cred ca merge sa citesc si si afisez intr-un acelasi fisier (am incercat si nu am reusit)
  12. Salut tuturor, am o problema in manualul de info de cls a X-a care nu imi da si nu stiu daca e gresit problema sau nu ii gasesc eu solutia potrivita. Vreau sa o rezolv doar cu materia invatata pana acum, adica doar cu if, while, for. Fara vectori. " Din fisierul palindrom.in se citeste un numar natural nenul n, iar de pe urmatoarea linie se citesc n numere naturale nenule, separate prin cate un spatiu. In fisierul palindrom.out, sa se afiseze pe prima linie sirul citit, pe urmatoarele linii numerele care sunt palindromuri, iar pe ultima linie cate palindromuri s-au gasit sau un mesaj corespunzator. (un palindrom este un nr simetric, de exemplu 15451, 121) Stiu cum sa rezolv in mare parte problema, nu reusesc sa afizes sirul de numere citit pe primul rand (asa cum cere) si apoi sa afizes in jos pe randuri diferite doar numerele care sunt palindromuri. O simpla idee, s-au sa-mi spuneti daca e posibil sau nu ar fi de folos, multumesc anticipat. Ce am facut pana acum: #include<fstream> using namespace std; int main() { int x,n,c,nr,copy,i,j=0,y; ifstream f("palindrom.in"); ofstream g("palindrom.out"); f>>n; //aici citesc numarul de numere din fisierul palindrom.in for(i=1;i<=n;i++) { f>>x; //aici citesc numarul g<<x<<' '; //afisez pe primul rand toate numerele. copy=x; nr=0; //ii fac o copie pe care o folosesc la aflarea inversului while(copy!=0) { c=copy%10; nr=nr*10+c; // inversul numarului este in variabila "nr" copy/=10; } if(x==nr) // daca numarul original este egal cu inversul.. { j++; // cu 'j' contorizez cate palindromuri am gasit g<<'n'<<x; //afisez pe celalalt rand palindromul, dar stiu ca aici e buba. } } if(j>0)g<<'n'<<"S-au gasit "<<j<<" palindromuri."; //afisez pe ultimul rand cate palindromuri am gasit. else g<<'n'<<"Nu s-a gasit niciun palindrom."; f.close();g.close(); return 0;} Apropo, de exemplu, in palindrom.in am datele astea: si in palindrom.out, dupa rularea programului imi afiseaza:
  13. Da, trebuia 'sau', multumesc Mi-am cam iesit din mana in astea 3 luni Topicul asta poate fi inchis, multumesc din nou pentru raspunsuri.
  14. Ce inseamna un "proces", sa mai dau o instructiune gen b=2; ? Exemplul asta l-am dat random, nu are legatura cu programul.
  15. Salut tuturor! Acum pe la sfarsitul verii am mai deschis si eu codeblockul si am inceput sa recitesc lectiile din clasa a IX-a, etc. Dintr-un anumit motiv, nu-mi merge sa fac o repetitiva cu test final care sa ma puna sa introduc numarul daca nu este format din patru cifre. Practic trebuie introdus un numar de patru cifre si vreau sa folosesc un do while, dar nu merge. Daca introduc '1' de exemplu, se termina programul. Mi se intampla si pe desktop si pe laptop (in ultimul caz de abea am instalat codeblockul). Scriu eu ceva gresit sau? Multumesc celor care au citit. #include<iostream> using namespace std; int a,b,s=0; int main() { cout<<"Introduceti un numar natural de 4 cifre: "; do cin>>a; while(a<1000&&a>9999); return 0; }
  16. do cin>>n;while(n>999999);
  17. Cum adica "bloc separat"? Si de ce crezi ca nu a structurata? Nu am facut Pascal deloc pana acum, totusi am vazut programul instalat in calculatoarele liceului. Courage, merci pentru ajutor.
  18. Ce inseamna ok=true si "and-ul" folosit in primul for? Gen &&ok!=0 ?
  19. Intre timp am mai facut niste programe cu numere prime, la care nu am avut nevoie de ajutor si de voi posta cand consider ca am timp. Acum am ajuns la algoritmul pt determinarea numerelor prime. //Algoritm pt determinarea numerelor prime. #include<iostream> #include<math.h> using namespace std; int main() { int n,i,k=1; cout<<"Introduceti numarul: ";cin>>n; for(i=2;i<=sqrt(n);i++) if(n%i==0){k=0;i=n;} if(k!=0)cout<<"Nr prim."; else cout<<"Numarul nu este prim."; return 0; } Primul exercitiu dupa acesta a fost "se citest n de la tastatura, sa se afiseze toate numerele prime pana la acel nr citit", asta am facu singur. Al doilea: se citeste un nr nat n, sa se afiseze primele n numere naturale prime. Exemplu: se citeste 4, afisare 2,3,5,7. Nu prea am idei la asta, stiu ca trebuie cu un while sau do while, dar nu stiu ce conditii sa pun. Niste idei ar fi de ajutor, multumesc.
  20. Sau, alta formulare la acest programel: #include<iostream> using namespace std; int main() { unsigned n,d=2,p; cin>>n; while(n!=1) { if(n%d==0) { p=0; while(n%d==0){p++;n=n/d;} cout<<d<<"^"<<p<<endl; } d++; } return 0; }
  21. Am ajuns la lectia cu "Algoritmi de divizibilitate", numere prime si alea alea "Scrieti un program care sa afiseze descompunerea in factori primi ai unui nr natural n citit de la tastatura" Ce am scris eu in caiet: "Caut divizori pornind de la 2 in sus, pt fiecare divizor gasit calculam ordinul de multiplicitate impartind succesiv pe n la divizor si calculand numarul de impartiri efectuate. Dupa care afisam atat divizorul gasit, cat si multiplicitatea sa. Procedeul se repeta cat timp numarul mai poate avea divizori. (cat timp nr!=0)." Acum ca citesc a 2-a oara, nu prea mai inteleg atat de bn . #include <iostream> using namespace std; int main() { int n,i=2,k=0; cout<<"Introduceti numarul:";cin>>n; while(n!=0) { while(n%i==0){k++;n=n/i;} } return 0; } De aici nu mai stiu cum sa fac, as prefera o explicatie cum se face, ca sa il pot termina eu, nu sa primesc programul pe tava. Multumesc! Nu injurati de acoladele de la primul while, ma gandeam ca poate mai umplu cu ceva intre timp
  22. Mda, ai dreptate , era cam incurcat programul oricum, multumesc pt raspuns! (Eram cam obosit si acuma am vazut ca am creat un topic nou, asta poate sa fie inchis) edit: defapt nu eram atat de obosit, topicul a fost creat de administrator, am observat de abea acum. Oricum, nu mai am treaba aici, am inteles cum se face.
  23. Mda, am revenit cu o problema noua 4. Să se afiseze toate numerele naturale de maxim patru cifre care are proprietatea că sunt egale cu pătratul cifrelor lor. (exp : n=81, s=8+1=9 si 81=9*9) #include <iostream> using namespace std; int main(){ int c,i=0,s=0,x; while(i<=9999){ i++; s=0; while(i!=0){c=i%10; s=s+c; i=i10;} x=s*s; if(x==i){cout<<i<<' ';} } return 0;} buba e ca imi da eroare la linia 8, expected ";" before numeric constant. M-am uitat de zece ori pana acuma si nu am gasit sa lipseasca nici un ';'. Cere sa se afiseze toate numerele de 4 cifre, care su patratul sumei cifrelor egale cu ele, cred ca e destul de corect, pareri?
  24. what can I say? Looking forward to learn about that shi' , multumesc pt raspunsuri si timpul acordat
  25. Multumesc Courage, dar nu stiu ce face linia asta: cout<<"n["<<i<<"]="; Nu am invatat nimic despre parantezele astea patrate pana acum (exercitiile le-am gasit pe internet, nu ni le-a dat profu)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.