Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cu ce va aparati de cainii agresi...

Nu imi platiti coletul cu cardul ...

Mi-au disparut amigdalitele ?

Exista vreun plan de terorizare p...
 Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 

Nu inteleg for-ul si acoladele lui ...

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

#1
g0dafk

g0dafk

    Member

  • Grup: Members
  • Posts: 462
  • Înscris: 10.11.2016
#include <iostream>
using namespace std;
int main() {
int v[100] = { 1,2,3,4,5 }, a[100] = { 8,9 }, c[100], n = 2, m = 5;
int p, q, i, j, x;
//cout << "Lungimea primului vector: "; cin >> m;
//cout << "Lungimea celui de-al doilea vector: "; cin >> n;
/*for (i = 0; i < m; i++) {
cout << "v[" << i << "]="; cin >> v[i];
cout << endl;
}
for (j = 0; j < n; j++) {
cout << "v[" << j << "]="; cin >> v[j];
cout << endl;
}
*/
int k = 2;
//cout << "Pozitia de pe care se incepe intercalarea: "; cin >> k;
//salvez in vectorul c elementele de la pozitia k in sus
for (i = 0; i < m; i++)
if (i == k) {
for (x = 0; x < m - k; x++) {
c[x] = v[i];
i++;
}
}
// pun in vectoru v incepand cu pozitia k elementele din vectoru a
i = k;
for (j = 0; j < n; j++) {
v[i] = a[j];
i++;
}
//adaug in vectoru i elementele din vectoru c
x = 0;
for (i = m - n + 1; i < m + n; i++) {
v[i] = c[x];
x++;
}
//for (i = m - n + 1; i < m + n + 1; i++)
// v[i] = c[x];
// for (i = 0; i < m - n + 1; i++);
// cout << v[i] << " ";
// cout << endl;

// for (x = 0; x < m - k; x++)
// cout << c[x] << " ";
// cout << endl;
for (i = 0; i < m + n; i++)
cout << v[i] << " ";
}



Ala de sus e codu pentru bagarea unui vector in alt vector incepand cu o pozitie practic ( fara a folosii cuvinte fancy ).

Intrebarea mea e... de ce urmatoarele doua comenzi nu imi dau acelasi rezultat :
x = 0;
for (i = m - n + 1; i < m + n; i++) {
v[i] = c[x];
x++;
}


for (x=0;x<m-k;x++)
for (i=m-n+1;i<m+n;i++)
v[i]=c[x];


prima comanda imi afiseaza ce trebuie adica 1 2 8 9 3 4 5
dar a doua imi afiseaza 1 2 8 9 5 5 5
..... ce-mi scapa?

Edited by g0dafk, 17 November 2017 - 17:46.


#2
Robiacs

Robiacs

    Senior Member

  • Grup: Senior Members
  • Posts: 5,923
  • Înscris: 18.10.2010
N-am sa inteleg niciodata de ce va faceti viata mai grea dand variabilelor nume de genul. Te ingreuneaza si pe tine si face si codul greu de citit pentru ceilalti...

#3
andreim77

andreim77

    Senior Member

  • Grup: Senior Members
  • Posts: 4,235
  • Înscris: 11.04.2006
KISS

#4
tavitu

tavitu

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

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
Vezi documentația la for http://en.cppreferen...pp/language/for , în special relația dintre for și while și rescrie codul tău for ca while, poate așa înțelegi mai bine.

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Debuggerul iti arata ce se intampla, pas cu pas:

https://forum.softpe...-mini-tutorial/
https://forum.softpe...recursivitatea/

#6
edy_3dz

edy_3dz

    Rau sau bun

  • Grup: Senior Members
  • Posts: 3,241
  • Înscris: 30.08.2008
x = 0;
for (i = m - n + 1; i < m + n; i++) {
v[i] = c[x];
x++;
}


In for-ul asta o sa mergi cu i de la m - n + 1 la m + n o singura data, incrementand x-ul la fiecare pas, pe cand in

for (x=0;x<m-k;x++)
for (i=m-n+1;i<m+n;i++)
v[i]=c[x];


o sa mergi cu i de la m - n + 1 la m + n de m - k ori, si incrementezi x-ul doar dupa fiecare iteratie a lui i de la m - n + 1 la m + n. Normal ca ai rezultate diferite Posted Image

#7
soarce

soarce

    Active Member

  • Grup: Members
  • Posts: 1,467
  • Înscris: 02.10.2008

 Robiacs, on 17 noiembrie 2017 - 18:14, said:

N-am sa inteleg niciodata de ce va faceti viata mai grea dand variabilelor nume de genul. Te ingreuneaza si pe tine si face si codul greu de citit pentru ceilalti...
E simplu: nu toti s-au nascut cu K&R in brate. Omul cat traieste invata.

#8
A10Warthog

A10Warthog

    Member

  • Grup: Moderators
  • Posts: 902
  • Înscris: 12.11.2017

 Robiacs, on 17 noiembrie 2017 - 18:14, said:

N-am sa inteleg niciodata de ce va faceti viata mai grea dand variabilelor nume de genul. Te ingreuneaza si pe tine si face si codul greu de citit pentru ceilalti...

Fiindcă ăștia care predau prin licee nu au lucrat în domeniu și nici nu au fost interesați să evolueze.

@g0dafk: Recomand articolul ăsta dupa ce te lamurești

#9
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,441
  • Înscris: 10.08.2005

 soarce, on 17 noiembrie 2017 - 20:59, said:

E simplu: nu toti s-au nascut cu K&R in brate. Omul cat traieste invata.
pai daca a invatat sa formuleze cuvinte, de ce s-ar intoarce la litere acolo unde trebuie sa exprime idei.
for (i = 0; i < m; i++)
fie i un numar natural,
pe parcursul intervalului [0, m), cu pasul 1, (i++)
se executa ce este in acolade

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

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