Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Moartea actritei Stela Popescu si...

Nintendo Wii stricat

Laptop 1200-1400 EUR din Irlanda ...

Lentile zilnice de vedere.
 Achizitie PC - maxim 2350 lei

Realitatea TV de 6 ani in insolve...

probleme centrala Sime 25 bf

criterii pentru caști de tel...
 USB schedule - plug in si plug out

Unde gasesc acest fes?

Daca ați avea mintea de acum v-ar...

Ajutor cu bani pentru setare rout...
 Internet radio pe mobil

Recomandare hotel munte la ski

Razboiul atomic - cum sa supravie...

Cum fac sa vand o masina adusa di...
 
Forumul Softpedia folosește "cookies" pentru a oferi utilizatorilor o experiență completă. Vezi detalii sau închide mesaj (x)

programel scurt problema

- - - - -
  • Please log in to reply
28 replies to this topic

#1
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330
int a;
int b;
int c= ((a*a)+ (b*b ))/2;
int main()
{
   cout<<"introdu prima cateta";
   cin>>a;
   cout <<"introdu a doua cateta";
   cin>>b;
   cout <<"lungimea ipotenuzei este:"<<c<<;
return 0;

eroare
error: expected primary-expression before ';' token|

am mai avut si alte erori dar pe parcurs le-am rezolvat

Edited by high_energy, 16 July 2017 - 13:35.


#2
tavitu

tavitu

    Active Member

  • Grup: Members
  • Posts: 1,732
  • Înscris: 16.02.2009
  • ID membru: 420,799
1. Îți lipsește } de la sfârșit.
2. int c= ((a*a)+ (b*b ))/2; asta nu face cea ce crezi tu ca face, cel puțin nu unde ai pus-o tu și nici formula matematica nu e corectă.
3. <<c<<; aici e problema, ultimul << e incorect, întotdeauna trebuie să ai << urmat de o expresie apoi ;.

Edited by tavitu, 16 July 2017 - 13:43.


#3
red46

red46

    Active Member

  • Grup: Senior Members
  • Posts: 2,966
  • Înscris: 06.03.2016
  • ID membru: 947,982
  • Locație: Galați, România
Eu zic să pui mâna să citești și să lași experimentele de genul, căci n-o să ajungi nicăieri dacă nu cunoști cum funcționează limbajul de programare.

Dacă ăsta e tot programul,  n-ai inclus în proiect librăria <iostream> și nici n-ai declarat utilizarea namespace-ului "std".

Edited by red46, 16 July 2017 - 13:56.


#4
dolly_c

dolly_c

    Junior

  • Grup: Junior Members
  • Posts: 39
  • Înscris: 30.06.2017
  • ID membru: 991,592

View Posthigh_energy, on 16 iulie 2017 - 13:34, said:

int a;
int b;
int c= ((a*a)+ (b*b ))/2;
int main()
{
   cout<<"introdu prima cateta";
   cin>>a;
   cout <<"introdu a doua cateta";
   cin>>b;
   cout <<"lungimea ipotenuzei este:"<<c<<;
return 0;

eroare
error: expected primary-expression before ';' token|

am mai avut si alte erori dar pe parcurs le-am rezolvat
Ai rezolvat? Din ce vad, cu acest program vrei sa calculezi ipotenuza unui triunghi dreptunghic. Ma bucur ca, cineva se mai gandeste si la programare in C++.  Dar daca a si b sunt catetele si c ipotenuza, atunci c=sqrt(a*a+b*B).

#5
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330

View Posttavitu, on 16 iulie 2017 - 13:40, said:

1. Îți lipsește } de la sfârșit.
2. int c= ((a*a)+ (b*b ))/2; asta nu face cea ce crezi tu ca face, cel puțin nu unde ai pus-o tu și nici formula matematica nu e corectă.
3. <<c<<; aici e problema, ultimul << e incorect, întotdeauna trebuie să ai << urmat de o expresie apoi ;.
1 nu am mai copiat si ala insa in program exista
2 aici s-ar putea sa fie problema. stai sa incerc

View Postred46, on 16 iulie 2017 - 13:46, said:

Eu zic să pui mâna să citeşti şi să laşi experimentele de genul, căci n-o să ajungi nicăieri dacă nu cunoşti cum funcționează limbajul de programare.

Dacă ăsta e tot programul,  n-ai inclus în proiect librăria <iostream> şi nici n-ai declarat utilizarea namespace-ului "std".
nu , nu e tot ele sunt incluse

@tavitu
asa:
cout <<"lungimea ipotenuzei este:"<<c;

View Postdolly_c, on 16 iulie 2017 - 13:53, said:

Ai rezolvat? Din ce vad, cu acest program vrei sa calculezi ipotenuza unui triunghi dreptunghic. Ma bucur ca, cineva se mai gandeste si la programare in C++.  Dar daca a si b sunt catetele si c ipotenuza, atunci c=sqrt(a*a+b*Posted Image.
a patrat + b patrat = c patrat
deci?
ca sa il aflii pe c poti imparti la 2

in fine am alta chestie acum...
programul merge dar indiferent ce cifre bag imi da 0

:((((((
am folosit
int c= sqrt(a*a+ b*B);
si imi da tot zero
de ce asta?
am folosit numai numere intregi naturale

am folosit si asa
int c= (a*a+ b*B);
si tot 0 imi da ...care e problema?

#6
tavitu

tavitu

    Active Member

  • Grup: Members
  • Posts: 1,732
  • Înscris: 16.02.2009
  • ID membru: 420,799
#include <iostream>
using namespace std;

int a; // în acest punct variabila a are valoarea 0
int b; // în acest punct variabila b are valoarea 0
int c = (a*a+b*B) / 2; // în acest variabila c primește valoarea (0*0 + 0*0)/2 = 0
int main() { //în acest punct începe execuția programului
cout<<"introdu prima cateta";
cin>>a;
cout <<"introdu a doua cateta";
cin>>b;
cout <<"lungimea ipotenuzei este:"<<c; //în acest punct valoarea variabilei c este 0
return 0;
}


Nu sunt bine declarate și inițializate variabilele a, b, dar mai ales c. Trebuie mutate în alta parte. Trebuie să citești mai mult drespre cum funcționează și cum alocă C și C++ variabilele.

Edited by tavitu, 16 July 2017 - 14:37.


#7
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330
pai si cinurile alea ce draq rol mai au atunci? nu de aia le-am pus acolo?
a da trebuie variabile?

#8
tavitu

tavitu

    Active Member

  • Grup: Members
  • Posts: 1,732
  • Înscris: 16.02.2009
  • ID membru: 420,799
Păi cin nu poate să se întoarcă în trecut. Dacă la momentul c = (a*a +b*Posted Image / 2, a, respectiv b au valoarea 0, atunci c va avea valoarea 0 îndiferent că mai târziu a sau/și b vor avea alte valori. Trebuie să modifici valorea lui c la momentul potrivit.

Edited by tavitu, 16 July 2017 - 14:32.


#9
red46

red46

    Active Member

  • Grup: Senior Members
  • Posts: 2,966
  • Înscris: 06.03.2016
  • ID membru: 947,982
  • Locație: Galați, România
Normal că nu merge, doar nu degeaba ți-am recomandat să înveți bazele şi abia apoi să te apuci de experimente.
#include <iostream>
using namespace std;

int a;
int b;
int c;
int main()
{
   cout<<"introdu prima cateta";
   cin>>a;
   cout <<"introdu a doua cateta";
   cin>>b;
   c= ((a*a)+ (b*b ))/2;
   cout << "lungimea ipotenuzei este:"<<c;
}


Tu pui programul să facă operații cu valori nule.

#10
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330
thx....it does work

now...

#11
dolly_c

dolly_c

    Junior

  • Grup: Junior Members
  • Posts: 39
  • Înscris: 30.06.2017
  • ID membru: 991,592

View Posthigh_energy, on 16 iulie 2017 - 14:37, said:

thx....it does work

now...
OK. Imi place ca te straduiesti la un programel in C++!

#12
MarianG

MarianG

    Guru Member

  • Grup: Moderators
  • Posts: 17,066
  • Înscris: 10.08.2005
  • ID membru: 43,530
  • Locație: Iasi
Asta numesti tu straduinta?
Nici macar nu s-a interesat care este formula corecta.
asta inseamna sa te prefaci

Quote

a patrat + b patrat = c patrat
deci?
ca sa il aflii pe c poti imparti la 2
destul de evident, pentru ca inversul operatiei de ridicare la patrat este impartirea la doi.
b2 + h2=i2

View Posthigh_energy, on 16 iulie 2017 - 14:30, said:

pai si cinurile alea ce draq rol mai au atunci? nu de aia le-am pus acolo?
au rolul de a citi / scrie in consola
dar in fine, cica te-ai straduit

View Postred46, on 16 iulie 2017 - 14:33, said:

Tu pui programul să facă operații cu valori nule.
Spunem ca sunt valori neinitializate, se intampla sa fie nule

View Posttavitu, on 16 iulie 2017 - 14:31, said:

Păi cin nu poate să se întoarcă în trecut. Dacă la momentul c = (b*b+a*a) / 2, a, respectiv b au valoarea 0, atunci c va avea valoarea 0 îndiferent că mai târziu a sau/și b vor avea alte valori.

Edited by MarianG, 16 July 2017 - 15:23.


#13
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 32,027
  • Înscris: 30.07.2003
  • ID membru: 5,142

View Posthigh_energy, on 16 iulie 2017 - 14:30, said:

pai si cinurile alea ce draq rol mai au atunci?
Pentru viitor, fa debug in mediul de dezvoltare (apesi o tasta specifica) si va merge pas cu pas prin cod, poti inspecta variabilele, vezi pe unde o ia executia in fiecare moment si astfel iti dai seama de ce nu rezulta cum credeai.

#14
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330

View Postneagu_laurentiu, on 16 iulie 2017 - 15:36, said:

Pentru viitor, fa debug in mediul de dezvoltare (apesi o tasta specifica) si va merge pas cu pas prin cod, poti inspecta variabilele, vezi pe unde o ia executia in fiecare moment si astfel iti dai seama de ce nu rezulta cum credeai.
adica in codeblocks in bara de sus sa dau debug? am inteles
am rezolvat, merge, de atunci am mai facut un programel tot pe baza de formula de calcul
a avut o singura eroare la inceput apoi am mai adaugat si niste cazuri anume cu if si else si a aparut alta eroare insa am rezolvat si programul merge perfect
asta e programul
#include <iostream>
using namespace std;
// program miscare rectilinie uniforma
int a;
int b;
int c;
int d;
int e;
int main()
{
   cout<<"introdu pozitia initiala\n";
   cin>>a;
   cout<<"introdu timp initial\n";
   cin>>b;
   cout<<"introdu timp la finis\n";
   cin>> c;
   cout<<"introdu viteza\n";
   cin>>d;
   e=a+d*(c-B);
   if (b>c)
   {
   cout<<"timpul la finis nu poate fi egal cu 0 sau negativ";
   }
   if (d=0)
   {
   cout<<"alergatorul nu s-a miscat";
   }
    else
    {
    cout<<"pozitia finala este:" <<e;
    }
   return 0;
}

de fapt la primul if ar fi trebuit sa fie asa(dar merge oricum)
if (b>c&&b=0)
   {
   cout<<"timpul la finis nu poate fi mai mic ,egal decat/cu timpul initial, egal cu 0 sau negativ";

#15
tavitu

tavitu

    Active Member

  • Grup: Members
  • Posts: 1,732
  • Înscris: 16.02.2009
  • ID membru: 420,799
Nu mai declara variabilele în afara lui main(). E un obicei prost.

#16
high_energy

high_energy

    Active Member

  • Grup: Members
  • Posts: 1,366
  • Înscris: 18.05.2017
  • ID membru: 988,330
pai la primul programel tocmai prin asta s-a rezolvat o problema

anyway cam atat cu programarea pe ziua de azi. intentionez zi de zi sa fac cate un programel.....dupa care strang asa o colectie si le postez aici ca exe. sau ca fisiere main.cpp pentru a se putea observa exact cum am facut pentru a va putea face o parere despre cat de mult am progresat

#17
MarianG

MarianG

    Guru Member

  • Grup: Moderators
  • Posts: 17,066
  • Înscris: 10.08.2005
  • ID membru: 43,530
  • Locație: Iasi
high_energy, asta impresie o ai tu,
s-a rezolvat "asa" pentru ca ai initializat variabilele inainte de a rula programul main,

View Posthigh_energy, on 16 iulie 2017 - 16:46, said:

pai la primul programel tocmai prin asta s-a rezolvat o problemaanyway cam atat cu programarea pe ziua de azi. intentionez zi de zi sa fac cate un programel.....dupa care strang asa o colectie si le postez aici ca exe. sau ca fisiere main.cpp pentru a se putea observa exact cum am facut pentru a va putea face o parere despre cat de mult am progresat
sau cont pe github / serviciu similar

#18
tavitu

tavitu

    Active Member

  • Grup: Members
  • Posts: 1,732
  • Înscris: 16.02.2009
  • ID membru: 420,799

View Posthigh_energy, on 16 iulie 2017 - 16:46, said:

pai la primul programel tocmai prin asta s-a rezolvat o problema
NU, nu asta a rezolvat problema. Problema a fost că, tse calcula o expresie atunci când variabilele a și b aveau valorea 0 și se salva valoarea calculată în variabila c înainte să se citească de la tastatură valoarea lui a, respectiv b, iar după ce se citea de la tastatură o valoarea pentru a, respectiv una pentru b, valorea variabile c era valoarea inițială, cea calculată atunci când a, respectiv b aveau valoarea 0. Rezolvarea problemei a constat în faptul că se calculează valoarea expresiei sqrt(a*a+b*B) după ce se citește de la tastatură pe a și pe b.

Declararea variabilelor se face cât mai aproape de locul unde le vei folosi. Nu declari variabile în afara lui main() dacă le vei folosi doar în interiorul lui main().
#include <iostream>
#include <cmath>
using namespace std;
int main() {
   
	int a;
	int b;
	cout << "introdu prima cateta ";
	cin >> a;
	cout << "introdu a doua cateta ";
	cin >> b;
   
	float c = sqrt(a*a+b*B);
	cout << "lungimea ipotenuzei este: " << c << '\n';
	return 0;
}



Anunturi


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users