Jump to content
thekidno1

Putin ajutor c++ low level

Recommended Posts

De curand am luat o carticica de c++ pentru clasa a 10-a (eu trec a 9-a) si nu prea m-am familiarizat cu subprogramele.

Am incercat sa fac un program pentru a scoate un element dintr-un vector de pe o pozitie stabilita.

Am reusit sa o fac fara subprogram dar cand am bagat cu subprogram imi afiseaza cateva tampenii dupa rezultat.

De ex am vectorul nr.elem=4,v={1,2,3,4}si ii dau sa stearga elementul de pe pozitia 2.Il sterge si afiseaza 1 3 4 2293116.Ce am gresit?

Codul fara subprogram:[C++] #include<iostream> using namespace std; main() { int v[100],n,i,j,p; cout<< - Pastebin.com

Codul cu subprogram:[C++] #include<iostream> using namespace std; void sterg(int v[100],int n,int p) {i - Pastebin.com

Link to comment
Share on other sites

Ceea ce e gresit e faptul ca tu il decrementezi pe 'n' in functie si modificarea e valabila doar in functie. Cand te intorci in main 'n' va fi tot 4 si deasta iti afiseaza un element in plus. Ar trebui sa dai return la n si sa il salvezi cand apelazi functia sau sa il trimiti pe 'n' ca pointer sau prin referinta.

  • Downvote 1
Link to comment
Share on other sites

Ceea ce e gresit e faptul ca tu il decrementezi pe 'n' in functie si modificarea e valabila doar in functie. Cand te intorci in main 'n' va fi tot 4 si deasta iti afiseaza un element in plus. Ar trebui sa dai return la n si sa il salvezi cand apelazi functia sau sa il trimiti pe 'n' ca pointer sau prin referinta.

Rezolvat.L-am trimis prin referinta "&".Multumesc

Link to comment
Share on other sites

Eu nu inteleg de ce este numit "Subprogram"? Mi se pare a fi o functie. Apelezi o functie .. nu un sumbprogram (Mi se pare ciudat numit in carti).

Si "firul de executie" ar trebui sa poarte numele de subprogram ...

Anyway: Subprogramele astea Inlocuiesc (foarte des) actiuni decise prin IF.

Cred ca toata "teoria" lor e ca au fost inventate ca sa nu mai scrii acelasi fragment de cod de mai multe ori ci sa-l apelezi mai usor.

Mie mi se par foarte banale si am auzit de e recomandat sa le eviti (in concursuri/competitii) deoarece apelarea mananca memorie si timp de executie.

(Desigur sunt cazuri in care folosirea lor ajuta si executia si comoditatea programatorului...)

LE:

Am pus in loc de "int n" din functie "int & n" si a mers.

adica: &n reprezinta adresa lui n. Tu in loc sa-i transmiti valoarea ii transmiti adresa (modificarile aduse lui n in functie se fac in spatiul de memorie a lui n real .. nu se creeaza un alt n in functie) (vezi capitolui pointeri.)

Edited by yoyois
Link to comment
Share on other sites

Eu nu inteleg de ce este numit "Subprogram"? Mi se pare a fi o functie. Apelezi o functie .. nu un sumbprogram (Mi se pare ciudat numit in carti).

Si "firul de executie" ar trebui sa poarte numele de subprogram ...

Anyway: Subprogramele astea Inlocuiesc (foarte des) actiuni decise prin IF.

Cred ca toata "teoria" lor e ca au fost inventate ca sa nu mai scrii acelasi fragment de cod de mai multe ori ci sa-l apelezi mai usor.

Mie mi se par foarte banale si am auzit de e recomandat sa le eviti (in concursuri/competitii) deoarece apelarea mananca memorie si timp de executie.

(Desigur sunt cazuri in care folosirea lor ajuta si executia si comoditatea programatorului...)

Am pus in loc de "int n" din functie "int & n" si a mers.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...