Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Incalzire casa fara gaz/lemne

Incalzire in pardoseala etapizata

Suprataxa card energie?!

Cum era nivelul de trai cam din a...
 probleme cu ochelarii

Impozite pe proprietati de anul v...

teava rezistenta panou apa calda

Acces in Curte din Drum National
 Sub mobila de bucatarie si sub fr...

Rezultat RMN

Numar circuite IPAT si prindere t...

Pareri brgimportchina.ro - teapa ...
 Lucruri inaintea vremurilor lor

Discuții despre TVR Sport HD.

Cost abonament clinica privata

Tremura toata, dar nu de la ro...
 

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
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

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
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

    Senior Member

  • Grup: Senior Members
  • Posts: 4,528
  • Înscris: 06.03.2016
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 Member

  • Grup: Junior Members
  • Posts: 76
  • Înscris: 30.06.2017

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

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

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
#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
pai si cinurile alea ce draq rol mai au atunci? nu de aia le-am pus acolo?
a da trebuie variabile?

#8
tavitu

tavitu

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
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

    Senior Member

  • Grup: Senior Members
  • Posts: 4,528
  • Înscris: 06.03.2016
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
thx....it does work

now...

#11
dolly_c

dolly_c

    Junior Member

  • Grup: Junior Members
  • Posts: 76
  • Înscris: 30.06.2017

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

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
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: 40,570
  • Înscris: 30.07.2003

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

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

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
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
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

    be that as it may

  • Grup: Moderators
  • Posts: 31,383
  • Înscris: 10.08.2005
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

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009

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

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate