Explicatie FOR - C++

Salutari oameni buni:)…am si eu o intrebare/nedumerire.
Cum te poti juca cu elementele dintr-un vector?
Adica am un vector cu elementele: 1, 11,29,3,5,8,10.Cum pot sa accesez al 3 element de exemplu si sa il adun cu penultimu sa zicem.Adica cum pot accesa orice element din vector?Se poate sa imi explice cineva in cuvinte + cod(exemplu in c++).Un program cat se poate de usor si de simplu + o explicatie la fel de simpla.Multumesc mult si sper ca ma va ajuta cineva cu nelamurirea asta:)

Simplu, le accesezi direct.

std::vector<int> v = { 1, 11,29,3,5,8,10 };
int suma = v[2] + v[5];

eu ma refer cand folosesti FOR cum accesezi ce element vrei ca sa fac inmultiri,impartiri,adunari,comparatii

arr[i]
unde i este cel din for

Si mai departe poti sa faci ce vrei cu el.

imi poti arata un exemplu mai clar si cu detalii te rog?

Ca sa iti fie usor sa intelegi conceptul de vector poti sa il asemuiesti cu un raft cu polite, iar pe fiecare polita incape un singur obiect. Sa zice ca pe fiecare polita se gaseste o cifra de plastic. O caracteristica importanta a unui vector este ca numerotarea politelor incepe de la 0. De exemplu polita cea mai de jos este polita zero. Daca cineva iti zice sa iei ceva de pre prima polita din raft(adica cea mai de jos) tu trebuie sa accesezi acea pozitie prino instrcutie gen raft[0].

Parcurgerea unui vector cu instructiunea FOR poti sa o asemuiesti cu urmatoarea situatie. Ai o singura mana libera si raftul se afla intr-o camera, iar eu iti dau urmatoarea instructiune:

  • Vreau sa mergi in camera si sa contorizezi de fiecare data cand intri in camera resectiva. Contorizarea incepe de la zero. Prima vizita inseamna vizita nr zero, a doua vizita inseamna vizita nr 1, s.a.m.d;
  • De fiecare daca cand intri in camera vreau sa imi aduci ce se afla pe raftul al carui pozitie este egal cu a cata oara ai intrat in camera aceea.
  • Sa te opresti cand ai ajuns la ultimul raft.

In cazul tau ptr a accesa al 3-lea element adunat cu penultimul nu ai nevoie de instructiunea FOR.
std::vector<int> v = { 1, 11,29,3,5,8,10 }; int suma = v[2] + v[v.size()-2];

3 Likes
#include <stdio.h>

int main() {
  int values[5];

  printf("Enter 5 integers: ");

  // taking input and storing it in an array
  for(int i = 0; i < 5; ++i) {
     scanf("%d", &values[i]);
  }

  printf("Displaying integers: ");

  // printing elements of an array
  for(int i = 0; i < 5; ++i) {
     printf("%d\n", values[i] * 3);
  }
  return 0;
}

Poti sa faci o analogie cu scaunele din metrou. :slight_smile:
si o anumita persoana este la scaunul de pe pozitia 3 din acel rand si alta de pe penultima pozitie. Sa zicel ca exista o metoda sa stii cate scaune sunt intr-un vagon de metrou. Deci penultima pozitie ca fi numarul total de scaune - 2.

Exact ce a spus si @razvanp
int[] arr = { 1, 11,29,3,5,8,10 }; int suma = arr[2] + arr[arr.size()-2]; Acum pt ca in c++, precum si in alte limbaje numaratoarea incepe de la 0, elementul de pe pozitia 3 va fi arr[2]


Va multumesc mult de tot pentru ajutor!Cred ca imi este mai clar…ramane sa ma joc astazi cu vectorii ca sa inteleg mai bine principiul:)