Informatică, întrebare adresată de Grigdarpuf, 8 ani în urmă

Știe cineva cum se face aceasta problema? Va rog! E urgent!!

Anexe:

boiustef: mulţi ştiu cum se rezolvă... e o problemă super uşoară...
încearcă să relizezi singur, după următoarele sfaturi:
boiustef: citeşte n
cu un for i de la 1 la n citeşti repetat număr şi faci paralel şi suma
după ieşirea din ciclu afişezi suma
Grigdarpuf: Faza e ca profesorul nostru nu ne prea explica și are pretenții ca noi sa știm. Deci.. na, e cam greu pt un elev dintr-a șaptea
boiustef: Unul caută scuze, altul caută soluţii.....

Răspunsuri la întrebare

Răspuns de andriesboss92
0

Algoritmul este unul destul de usor. Il poti face in doua moduri..

  • Fie citesti toate elementele si le pui in vector dupa care parcurgi vectorul si faci suma elementelor..
  • Fie in timp ce citesti elementele vectorului realizezi si suma acestora.

Am ales sa iti prezint a doua varianta care este mai eficienta din punct de vedere al timpului de rulare al programului.

Adica nu fac doua parcurgeri cum ar fi prima varianta.. ci realizez din prima parcurgere suma.

Răspuns:

#include <iostream>

using namespace std;

int main()

{

       int suma=0, i, a[100], n;

       cin>>n;

       for(i=1;i<=n;i++)

       {

               cin>>a[i];

               suma=suma+a[i];

       }

       cout<<suma;

}

Explicație:

Citim cate elemente vrem sa citim.

Apoi, cele n elemente le vom pune intr-un vector.

In timp ce citim fiecare element vom aduna fiecare element nou citit cu suma elementelor anterioare.

De ex:

Citim 5 elemente; n=5

Elementele vor fi: 5 10 15 20 25

Sa parcurgem programul creat pas cu pas.

n=5

pentru i=1, 1<=5 execut

    citesc elementul 5, iar in vector, pe prima pozitie, voi avea elementul 5 (a[1]=5)

    Cum variabila S are inca valoarea 0 atunci S=S+a[1] => S=0+5= => S=5

repet structura pentru crescand valoarea lui i cu o unitate

pentru i=2, 2<=5 execut

    citesc elementul 10, iar in vector, pe pozitia a doua, voi avea elementul 10 ( a[2]=10)

    In pasul anterior S a avut valoarea 5, prin urmare variabila S va fi egala cu suma anterioara + elementul de pe pozitia a doua. => S=S+a[2]=> S=5+10 => S=15

repet structura pentru crescand valoarea lui i cu o unitate

pentru i=3, 3<=5 execut

    citesc elementul 15, iar in vector, pe pozitia a treia, voi avea elementul 15 ( a[3]=15 )

    In pasul anterior S avea valoarea 15, prin urmare variabila S va fi egala cu suma anterioara + elementul de pe pozitia a treia. => S=S+a[3] => S=15+15 => S=30

repet structura pentru crescand valoarea lui i cu o unitate

.... Si tot asa pentru i=4, si i=5

Asadar, urmand pasii descrisi mai sus, vei constata ca variabila suma realizeaza exact suma celor n numere exact in timp ce le si citim.

Prin urmare, in urma acestor pasi, variabila S, urmarind strinct exemplul dat de mine anterior cu cele 5 elemente, va avea valoarea 75 ( 5+10+15+20+25 )


boiustef: e clasa 7... ştie vectori?
andriesboss92: Sincer sa fiu... nu mai stiu cine si in ce clasa e pe site-ul asta de ceva timp... Vad persoane care au la profil "clasele x-viii" si intreaba probleme de liceu...
Sincer sa fiu nu prea stiu programa din gimnaziu pentru informatica, asa ca nu stiu ce stie si ce nu.

Daca chiar e clasa a 7... Programul scris de tine este cel mai rentabil. Dar daca intelege care e diferenta intre al meu si al tau... atunci m-as bucura mult☻
boiustef: :)))
Răspuns de boiustef
0

Răspuns:

#include <iostream>

using namespace std;

int main()

{

   int n,a,s=0;

   cin>>n;

   for (int i=1;i<=n;++i){

       cin>>a;

       s+=a;

   }

   cout<<s;

   return 0;

}

Explicație:

am realizat sfaturile pe care ţi le am propus mai sus în comentarii


Grigdarpuf: Multumesc
boiustef: cu plăcere, succese!
Alte întrebări interesante