In ce mediu lucrezi? turbo c, visual studio 6 ; visual studio.net?
Si de altfel explica-ne clar unde este problema, ce nu-ti da bine..
Început de alina_ally23, Mar 3 ian 2006 · 132 răspunsuri · 106.875 vizualizări
In ce mediu lucrezi? turbo c, visual studio 6 ; visual studio.net?
Si de altfel explica-ne clar unde este problema, ce nu-ti da bine..
Editat Mie 23 mai 2007 22:59
borland c++
Dou
Editat Joi 24 mai 2007 08:20
deci nr prietene inseamna :
a=suma divizorilor lui b(fara b)
si
b=suma divizorilor lui a(fara a)
si divizorii merg pana la n/2 pt ca nu exista divizori mai mari decat jumatatea unui numar si mai stii ca n nu se pune ca divizor.
Dar unde am gresit ? Numi dau seama
miam dat seama de greseala. trebuia sa pornesc divizorii de la 1 nu de la 2 
Fie x un nr natural, x>2. Scrie un algoritm care sa determine cel mai mare nr prim, mai mic decat x si cel mai mic nr prim mai mare decat x.
Am incercat sa rezolv prima parte cu cel mai mare nr prim, mai mic decat x
#include<iostream.h>
void main()
{ int x,p,prim,div;
cin>>x;
prim=1;
p=x-1;
while (p!=0)
{ for (div=2;div<=p/2;div++)
{ if (p%div==0) prim=0;
{ if (prim==0) p=p-1; else cout<<p; }}}}
Imi da foarte prost momentan
Ruleaza-le in debugger; fara debugger este dificil sa gasesti probleme
daca tin minte eu bine borland c++ se aseamana la IDE cu delphi si atunci
1) ctrl+f5 - watch pe o variabila, sau un membru al unei clase
2) f5 break pe o linie
(ce am scris mai sus e valabil 100% in delphi, insa cred ca e la fel)
numa bine
Pogramul este urmatorul
#include<iostream.h>
void main()
{
int a,b,sa=0,sb=0,i;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
for(i=2;i<a/2;i++)
{
if(a%i==0)
sa+=i;
}
for(i=2;i<(b/2);i++)
{
if(b%i==0)
sb+=i;
}
if((a==(sb+b))&&(b==(sa+a)))
cout<<a<<"si"<<b<<"sunt numere prietene";
else
cout<<a<<"si"<<b<<"nu sunt numere prietene";
/*sa este suma divizorilor lui a
sb este suma divizorilor lui b
*/
}
Daca vrei sa urmaresti executia programului de duci in meniul Debug pe optiunea Add watch si scrii numele variabilei pe care vrei sa o urmasesti (de exemplu sa) (poti urmari si mai multe variabile) apoi de duci in meniul Windows si selectezi optiunea Watch Window (parca asa se numeste , dar mai nu stiu exact pentru ca lucrez de mult timp in Visual) dupa care ii dai Run. Mult succes si daca mai ai vreo nelamurire da mesaj si mai vorbim.
trebuie să citesc dintr-un fişier (in care in fiecare linie este cite un cuvint ) sirul de caractere din fiecare linie intr-un string, please help
Acum ceea ce stiu eu merge pe borland c++ 3.41 .Pentru alte IDE gen Dev-CPP vei avea nevoie sa linkezi manual biblioteca.
La inceputul programului vei include headerul string.h in care se afla functiile de care ai tu nevoie.Declari o variabila char de ce lungime ai nevoie (Ex: cuvant[21]) si pentru a citi din fisierul declarat cu
ifstream fin("fisier.txt");
vei folosi codul urmator
while(!fin.eof())
fin.getline(cuvint,21);
Sa explicam putin.Nu ai mentionat daca stii cate cuvinte ai de citit asa ca vom folosi functia eof() pentru a determina sfarsitul fisierului din care citesti.Pentru a putea folosi aceasta functie trebuie inclus si headerul io.h.Functia getline() citeste intreaga linie (asa cum ai spus cate un cuvant pe linie) si memoreaza acest sir in variabila cuvant.Acel 21 este numarul maxim de caractere citite in variabila cuvant.Acest lucru se mai putea face si asa :
while(!fin.eof())
{
fin.get(cuvint,21,'\n');
fin.get();
}
cu specificatia ca trebuia sa'i spui tu caracterul de sfarsit '\n' pentru a citi o linie si trebuia apelata iar functia get() pentru a extrage caracterul delimitator ('\n') pentru a nu fi citit in variabila.In speranta ca am fost de ajutor si ca nu am facut vreo greseala (a cam trecut ceva vreme de cand am atins borland c++) iti urez bafta si...somn usor
:P :P
:roll:
I'm back 
Foloseste functiile fopen si fgets.. si consulta help-ul, parcursul unui fisier face parte din notiunile de baza.