Está en la página 1de 27

Imaginemos un mundo libre La paz interior comienza en el momento en el que

decides no permitir, que ninguna persona o evento,


tome el control de tus emociones.

Vectores, Matrices y Punteros enc++


Search
with 65 comments

Estimados lectores y fans, les pido disculpas por este humilde y sencillo post, se que este tutorial es una Aldea Yanapay
humillacin a su inteligencia y profesionalismo, pero comprendan que esto va dedicado a personas que como
Android Arequipa
yo recin empiezan con sus primeros pininos en C++. Espero de verdad le sea til a alguien.
Argentina Bolivia
Escribir todo esto, me cost una noche entera y mucho caf. Parte de los conceptos aqu los aprend en clases Books Brasil C++
de la U y mucho tambin lo aprend por cuenta propia. As que agradecimientos al teacher Patricio del cual Cerebro Colombia
aprend muchsimo. Una vez ms a ustedes y a los tantos miles de seguidores que me leen a diario las Cultura Hacker
disculpas del caso.

Vamos ir avanzando de a pocos as que no se preocupen y desesperen porfavor, paciencia. La idea es que esta
Cusco Debian
seccin crezca con su ayuda, feedback y motivacin. Luego vamos a ver ejemplos con objetos, clases,
Django
sobrecarga de operadores, mtodos de bsqueda, ms ordenacin, punteros, listas, pilas, colas, templates Documentales
por ahora sigo practicando y haciendo simples cosas con este lenguaje. Google
Games

VECTORES Summer of
Un vector, tambin llamado array(arreglo) unidimensional, es una estructura de datos que permite agrupar
Code Haskell
elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno despues de otro. A este
grupo de elementos se les identi ca por un mismo nombre y la posicin en la que se encuentran. La primera
KDE Lima Linux
posicin del array es la posicin 0. Mountain
Podramos agrupar en un array una serie de elementos de tipo enteros, otantes, caracteres, objetos, etc. Biking Music
Nikola Tesla Nokia
Crear un vector en C++ es sencillo, seguimos la siguiente sintaxix: Tipo nombre[tamanyo];
Open Source
Ejm:
Opinin
1 int a[5]; // Vector de 5 enteros
Create PDF in your applications with the Pdfcrowd HTML to PDF API Personal PerPDFCROWD
1 int a[5]; // Vector de 5 enteros
2 float b[5]; // vector de 5 flotantes Personal Per
3 Producto product[5]; // vector de 5 objetos de tipo Producto Planet KDE Planet KDE-
Podramos tambin inicializar el vector en la declaracin: es Programming Books

1 int a[] = {5, 15, 20, 25, 30};


Qt Randy Pausch
2 float b[] = {10.5, 20.5, 30.5, 12.5, 50.5} Ruby on Rails
3 Producto product[] = {celular, calculadora, camara, ipod, usb}
Software Libre
Como hay 5 elementos en cada array, automticamente se le asignar 5 espacios de memoria a cada vector,
pero si trato de crear el vector de la forma int a[] , el compilador mostrar un error, porque no indiqu el Traveling
tamao del vector ni tampoco inicializ sus elementos. Trekking
Asigno valores a los elementos de un vector indicando su posicin:
. My Android apps
1 int a[4] = 30; // le asigno el valor 30 a la posicin 4 del vector.
2 product[2].setPrecio(300) // le asigno un precio de 300 al producto en la posicin 2.

Obviamente el mtodo setPrecio() debe de estar implementado. Para llenar, recorrer e imprimir un vector
podemos utilizar un bucle for:

1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int dim;
7 cout << "Ingresa la dimension del vector" << endl;
8 cin >> dim; // Supongamos que ingrese 10
9 int vector[dim]; // mi vector es de tamanyo 10
10
11 for(int i = 0; i < dim; i++){
12 vector[i] = i * 10;
13 cout << vector[i] << endl;
14 }
15
16 return 0;
17 }

La salida del programa mostrar: 0 10 20 30 40 50 60 70 80 90 Fcil verdad? Bien ahora creen 2 o ms


vectores y empiecen a hacer funciones bsicas como sumar, restar, buscar, ordenar, moda, etc que ayudan
mucho a ir desarrollando la lgica. No vale copiar y pegar, mejor es practicar, practicar y practicar.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Aqu una funcin simple para sumar 2 vectores a y b y poner el resultado en un tercer vector c:

1 #include <iostream>
2 using namespace std;
3
4 void sumar(int a[], int b[], int c[],int dim) {
5 for (int i = 0; i < dim; i++) {
6 c[i] = a[i] + b[i];
7 }
8 }
9
10 void imprimir(int v[], int dim)
11 {
12 for(int i = 0; i < dim; i++) {
13 cout << v[i] << endl;
14 }
15 cout << endl << endl;
16 }
17
18 int main()
19 {
20 int dim;
21 cout << "Ingresa la dimensin" << endl;
22 cin >> dim;
23
24 int a[dim];
25 int b[dim];
26 int c[dim];
27
28 for(int i = 0; i < dim; i++) {
29 a[i] = i * 10;
30 b[i] = i * 5;
31 }
32
33 cout << "Vector A " << endl;
34
35
imprimir(a, dim);

. Social Networks
36 cout << "Vector B " << endl; Facebook
37 imprimir(b, dim); Instagram
38
39 sumar(a, b, c, dim); Twitter
40 cout << "Vector C " << endl;
41
42 imprimir(c, dim); Free and Open
43 return 0;
44 } Source So ware

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Si ingreso una dimensin de 10, este programa me dara:

Vector A

0 10 20 30 40 50 60 70 80 90

VECTOR B

0 5 10 15 20 25 30 35 40 45

VECTOR C

0 15 30 45 60 75 90 105 120 135

Entonces para tomar en cuenta:

Todo vector debe tener de nido un tipo de dato.


Todo vector necesita de una dimensin o tamanyo.

El cdigo de arriba se puede mejorar muchsimo con objetos y clases, este es solo un pequeo ejemplo.

MATRICES
Una matriz es un vector de vectores o un tambin llamado array bidimensional. La manera de declarar una
matriz es C++ es similar a un vector:

1 int matrix[rows][cols];

int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especi car el numero de
las y columnas.

Las matrices tambin pueden ser de distintos tipos de datos como char, oat, double, etc. Las matrices en C++
Worth Reading
se almacenan al igual que los vectores en posiciones consecutivas de memoria.
Android Developers Blog
Usualmente uno se hace la idea que una matriz es como un tablero, pero internamente el manejo es como su Coding Horror
de nicin lo indica, un vector de vectores, es decir, los vectores estn uno detrs del otro juntos. Joel on Software
Paul Graham
La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subndices que van PyDanny
en los corchetes.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Si coloco int matriz[2][3] = 10; estoy asignando al cuarto elemento de la tercera la el valor 10. XDA Developers

No olvidar que tanto las como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz
podemos usar igualmente un bucle. En este caso usando 2 for:
Twitter
RT @kdecommunity: Plasma
1 for(int i = 0; i < rows; i++) { 5.9 Kicks o 2017 in Style
2 for(int j = 0; j < cols; j++) { kde.org/announcements/
3 matrix[i][j] = i % j; 10monthsago
4 } KDE and Slimbook. A laptop
5 } for people who love KDE.
bu .ly/2k4wnPI #KDE
PUNTEROS 10monthsago
First post on Medium. Website
El valor de todas las variales que manejamos en nuestros programas se almacenan en memoria y tienen una screenshot generator with
direccin. Un puntero es una variable especial que apunta a la direccin de memoria de una variable. Python and the Selenium
WebDriver: bu .ly/2jynsWo
El puntero tiene a su vez su propia direccin. Todas estas direcciones tienen un formato hexadecimal. twitter.com/i/web/status/8
11monthsago

Los punteros son herramientas muy poderosas con muchas utilidades y enormes ventajas como veremos ms Check out my ride on Strava:
strava.com/activities/733
adelante. A grandes rasgos, un puntero me permite desplazarme en la memoria, apuntar, redireccionar a https://t.co/q7l4qbg38G
ciertas variables, funciones, mtodos, objetos, etc sin necesidad de mover grandes bloques de datos, lo cual 1yearago
nos ahorra muchsimo el consumo de memoria en los programas. What 2 Years of Android
Development Have Taught Me
Un puntero se debe declarar de acuerdo al tipo de dato al que apunta. Ejem: the Hard Way Thoughts by
Aritra Roy bu .ly/2clTh1X
1 int *var; // un puntero que puede apuntar a cualquier variable de tipo entero. #AndroidDev 1yearago
2 char *u; // puntero de tipo char Follow @ronnyml
3 Persona *per; // puntero de tipo persona

Para determinar,asignar la direccin de una variable en c++, se usa el operador & y para obtener el contenido Recent Posts
de un puntero utilizamos el operador * Ejem: The Progress Principle and the
Power of SmallWins
1 int a; // entero
2 int *b; // puntero a entero Mountain Biking: Maukallaqta
3 a = 20; // a tiene 20 PumaOrqo
4 b = &a; // asigno la direccin de a al puntero b Cdigo de Conducta de la
5 comunidadKDE
6 cout << b << endl; // imprime la direccin de memoria de a;
7 cout << *b; // imprime 20, osea el contenido de a Mountain Biking: Laguna de
Huaypo -> Huarocondo -
Ahora analicemos las siguientes instrucciones y veamos como las variables van cambiando de valor en tiempo >Izcuchaca

de ejecucin:

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
1 #include <iostream> Mountain Biking: Pikillaqta ->
2 Laguna de Huacarpay ->Lucre
3 using namespace std;
4 The KDE LaKademy 2014
5 int main() experience So Paulo,Brazil.
6 { So Paulo Brasil.
7 int a;
KDE Connect: Connecting your
8 int b;
9 devices toKDE
10 cout << "Ingresa el valor de a: "; Mountain Biking: Izcuchaca ->
11 cin >> a; Killarumiyoq ->Limatambo
12 cout << endl;
Lakademy 2014 KDE
13
14 cout << "Ingresa el valor de b: "; AmricaLatina
15 cin >> b;
16 cout << endl;
17 Recent Comments
18 // Punteros de tipo entero orley on Manejo de Strings con
19 int *p;
Qt QString ,
20 int *p2;
21 QChar,QStringList
22 cout << "Antes" << endl; Vectores Ttulo del sitio on
23 cout << "Variable a = " << a << endl; Vectores, Matrices y Punteros
24 enc++
25 cout << "Direccion de a = " << &a << endl << endl;
26 Jhonatan on Vectores,
27 cout << "Variable b = " << b << endl; Matrices y Punteros enc++
28 cout << "Direccion de b = " << &b << endl << endl; Estefania Gutierrez on La
29 importancia de
30 // Tiene basura al principio, podria inicializar con *p=0 aprenderIngls
31 cout << "Contenido de p (Basura)= " << *p << endl;
32 cout << "Direccion de p = " << &p << endl << endl; alvaro246blog on Vectores,
33 Matrices y Punteros enc++
34 cout << "Despues" << endl; Pedro on Manejo de Strings
35 a++; con Qt QString ,
36 p= &a; QChar,QStringList
37
38 cout << "Contenido de p = " << *p << endl; muelas on Quicksort en C++
39 // p ahora tiene la direccin de b Skater on La importancia de
40 p = &b; aprenderIngls
41 // Le sumo 20 al contenido de p, es decir, estoy incrementando el valor de b
42 *p +=20; william on Vectores, Matrices
43 y Punteros enc++
44 cout << "Variable a = " << a << endl; stage de verano en tarragona
45 cout << "Variable b = " << b << endl << endl; on La importancia de
46 aprenderIngls
47 // p ahora tiene la direccin de a
48 p=&a;
49
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
49 Ronny Yabar on La energa de
50 // Contenido de p es igual al contenido de a * 5 Cusco y el Pago a
51 *p = a * 5; laPachamama
52
53 cout << "Contenido de p = " << *p << endl; Vir on La energa de Cusco y el
54 cout << "Variable a = " << a << endl << endl; Pago a laPachamama
55 WSQ10 Lists | Daniel
56 // Tiene basura al principio, podria inicializar con *p2=0 Amaro's Blog on Vectores,
57 cout << "Contenido de p2 (Basura) = " << *p2 << endl; Matrices y Punteros enc++
58 cout << "Direccion de p2 = " << &p2 << endl << endl;
59 Javier Burgos on La
60 // El contenido de p es asignado al contenido de p2 importancia de PPK para
61 p2 = p; elPer
62 Ronny Yabar on La
63 // Incremento 15 al contenido de p2 importancia de PPK para
64 *p2 += 15; elPer
65
66 cout << "Contenido de p2 = " << *p2 << endl;
67 // p apunta a otra direccin de memoria,se desplaza 4 bytes en memoria
68 p++; Blog Stats
69 1,337,673 hits
70 // El contenido de esa nueva direccin
71 cout << "Contenido de p (Basura) = " << *p << endl;
72
73 return 0; Archives
74 } January 2016
September 2015
La salida del programa:
May 2015
ANTES March 2015
January 2015
Variable a = 10 September 2014
August 2014
Direccion de a = 0x22 74
July 2014

Variable b = 2 May 2014


March 2014
Direccion de b = 0x22 70 February 2014
January 2014
Contenido de p (BASURA) = -1017291943
December 2013

Direccion de p = 0x22 6c October 2013


September 2013
DESPUES August 2013

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Contenido de p = 11 July 2013
May 2013
Variable a = 11 April 2013
March 2013
Variable b = 40
February 2013

Contenido de p = 55 January 2013


December 2012
Variable a = 55 September 2012
July 2012
Contenido de p2 (BASURA) = 2293680
May 2012

Direccion de p2 = 0x22 68 April 2012


February 2012
Contenido de p2 = 70 December 2011
November 2011
Contenido de p (BASURA) = 2293680 October 2011
September 2011
El contenido de p y p2 al principio es basura porque no tienen ningun valor asignado aun.
August 2011
Podriamos asignar el valor NULL a un puntero para luego posteriormente en algun problema que se me June 2011
presente saber el estado del puntero y saber si contiene algo o no, as: May 2011
March 2011
int *p = NULL; November 2010
August 2010
ARITMTICA DE PUNTEROS July 2010
May 2010
En las ltimas sentencias del programa anterior: p++; cout << *p pueden visualizar que estoy incrementando
April 2010
el puntero p en 1. Esto quiere decir que el puntero se desplazara 4 bytes en memoria (en este caso por ser
March 2010
entero) y entonces apuntar a otra direccin.
February 2010
Por eso es que el nuevo contenido de p es basura o bueno el contenido de lo que tiene esa nueva direccin a la January 2010
que apunta. Supongamos que de nimos un entero y puntero de tipo char: December 2009
October 2009
1 char c;
2 char *d; August 2009
3 July 2009
4 d= &c; // asigno la direccion de c a d
5 c = 'u'; // asigno el valor u a mi variable c May 2009
6 c--; // desplazo una posicion a c April 2009
7 cout << *d;
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
7 cout << *d; March 2009
February 2009
No Imprimira u porque jense que desplaz c en sentido negativo 1 byte (los char ocupan a 1 byte). Es decir,
November 2008
que si d estaba apuntado a una direccin como por ejemplo 0x22 99, despues del c estar apuntando a algo
como 0x22 98 October 2008
August 2008
Para tomar en cuenta, cosas que no puedo hacer con punteros: July 2008
May 2008
1 int a = 15;
2 int *p; April 2008
3 December 2007
4 double *q;
November 2007
5 void *r;
6 May 2007
7 // No puedo hacer lo siguiente: April 2007
8 p = a; // estoy asignando una variable a un puntero y un puntero es una direccin.
9 March 2007
p = &50; // 50 es un valor constante y no una variable, por lo tanto no tiene direccin.
10 p = &(a+1); // una expresin no tiene direccin. January 2007
11 p = 30; // igual que el primer error, 30 es un entero.
12 &a = p; // no puedo cambiar la direccin de una variable. December 2006
13 p = q; // p es puntero de tipo entero y q de tipo double. November 2006
October 2006

Un puntero de tipo void, es un puntero al cual le podemos asignar cualquier tipo de puntero. Por lo tanto si September 2006
podriamos hacer esto: r = p; August 2006
June 2006

VECTORES Y PUNTEROS
RSS
Cuando declaramos un vector int v[10] el nombre del vector, o sea v, es un puntero al primer elemento del
The Progress Principle and the
vector, es decir a v[0].
Power of Small Wins

Entonces como un vector es un puntero al primer elemento del mismo, tambin podramos hacer aritmtica de
punteros con el vector. Pages
Contact
1 (v + 1) ; // apunta a v[1];
2 *(v + 5); // me refiero al contenido de v[5]
3
4 // Y tambin puede colocar ndices a los punteros:
5
6 int *p; // puntero de tipo entero
7 p = &v[0]; // p apunta a la direccin del vector v[0] o tambin a v. p = v
8 p[8] = 80; // le asigno el valor 80 al puntero en la posicion 8, es decir a v[8]

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
VECTORES DINMICOS
Lo que vimos en el inicio de este post, son vectores estticos, puesto que tienen una cantidad ja de memoria
asignada y tamao de nido que no podemos modi carlo. Sin embargo, un vector podra tener una cantidad
variable de datos, a este se le llama un vector dinmico.

Para usar vectores dinmicos necesitamos gestionar memoria dinmica. Si bien es cierto que es trae enormes
ventajas, el hacer un mal uso de la memoria dinmica nos podra traer problemas desastrozos.

Por eso es importante que que cuando creemos vectores dinmicos tambin liberemos la memoria utilizada.
Obviamente eliminaremos la memoria utilizada cuando ya no necesitamos ms usar, en este caso, un
determinadao vector.

El operador new sirve para reservar memoria dinmica. El operador delete se usa para liberar la memoria
dinmica reservada con new.

Para liberar memoria de un array dinmico usamos delete[] El espacio de memoria que hemos reservado con
new tendr vida hasta que nalize la ejecucin del programa o cuando liberemos ese espacio con delete.

Siempre es recomendable liberar memoria para posteriormente no tener problemas con excesivo consumo de
memoria. Un simple ejemplo:

1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int *pv;
7 int dim;
8
9 cout << "Ingresa el tamanyo del vector" << endl;
10 cin >> dim;
11 pv = new int[dim];
12
13 for(int i = 0; i < dim; i++){
14 pv[i] = i * i;
15 cout << pv[i] << endl;
16 }
17
18 delete[] pv;
19 return 0;
20 }

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
MATRICES Y PUNTEROS
Supongamos que declaro una matriz int m[5][5] Como dijimos anteriormente, el nombre o identi cador de un
vector es un puntero al primer elemento del vector.

En el caso de matrices el nombre de la matriz, en este ejemplo v, es un puntero que apunta al primer elemento
del primer vector de la matriz.

Entonces m es un doble puntero.m es igual a &m[0] que es igual a la direccion de &m[0][0].

Si declaramos un puntero int *pm y luego igualamos pm = m, p ahora puede desplazarse por los valores de m.
*p; // contenido de m[0], el cual apunta al primer elemento de ese vector, es decir, m[0][0]

Tambin puedo referirme a los contenidos con aritmtica de punteros:

1 /* desplazo una posicin a p, se refiere al contenido de m[1],


2 el cual apunta al primer elemento de ese vector, es decir, m[1][0] */
3 *(p + 1);
4
5 /* desplazo una posicin en el vector principal y este a su vez se desplaza una posicin en ese vector,
6 es decir, me refiero al contenido de m[1][1];*/
7 *(*(p + 1) + 1);
8
9 p[2][4] = 20; // asigno el valor 20 a la posicin 2,4 de la matriz
10 *(*(p + 2) + 4) = 20 // es lo mismo que la asignacin anterior
11 *(pm[2] + 4) = 20 // tambin lo mismo
12
13 // En conclusin:
14 p[i][j] = *(*(p + i) + j) = *(pm[i] + j)

MATRICES DINMICAS
Para crear una matriz dinmica debemos de crear un doble puntero int **pm y samos al igual que los vectores
el operador new para reservar memoria y delete para liberar. Primero tenemos que crear el vector que
contendr a otros vectores especi cando el numero de vectores que tendra este vector principal. Ejem:

1 pm = new int* [rows]; // creo el vector de punteros principal


2 for(int i = 0; i < rows; i++) {
3 pm[i] = new int[cols]; // para crear los vectores dentro del vector principal
4 }

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Ahora s veamos un simple programa que crea una matriz dinmica, asigna valores, muestra el contenido de
cada uno de los elementos los elementos as como sus direcciones de memoria.

Tambin mostramos la matriz usando aritmtica de punteros:

1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 // Puntero a una matriz
7 int **pm;
8
9 int cols;
10 int rows;
11
12 cout << "Ingresa nro de filas: ";
13 cin >> rows;
14
15 cout << endl;
16 cout << "Ingresa nro de columnas: ";
17 cin >> cols;
18
19 pm = new int* [rows];
20 for (int i = 0; i < rows; i++) {
21 pm[i] = new int[cols];
22 }
23
24 cout << "Elementos de la Matriz con sus direcciones: " << endl;
25 for (int i = 0; i < rows; i++) {
26 for (int j = 0; j < cols; j++) {
27 pm[i][j] = i + j;
28 cout << pm[i][j] << "--> ";
29 cout << &pm[i][j] << endl;
30 }
31 cout << endl;
32 }
33 cout << endl;
34
35 cout << "Elementos de la Matriz con sus direcciones, con aritmtica de punteros: "
36 for (int i = 0; i < rows; i++) {
37 for (int j = 0; j < cols; j++) {
38 // Aritmtica de punteros
39 *(*(pm + i) + j) = i + j;
40 cout << *(*(pm + i) + j) << "--> ";
41 cout << &pm[i][j] << endl;
42 }
43 cout << endl;
Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
43 cout << endl;
44 }
45
46 // Elimino cada vector de la matriz
47 for (int i = 0; i < rows; i++) {
48 delete[] pm[i];
49 }
50
51 // Elimino el vector principal
52 delete[] pm;
53
54 return 0;<!--EndFragment-->
55 }

La salida del programa: Ingresa el nro de las: 6 Ingresa el nro de columnas: 4

1 //Elementos de la Matriz con sus direcciones


2 0> 03d2c90 1> 03d2c94 2> 03d2c98 3> 03d2c9c
3 1> 03d2ca8 2> 03d2cac 3> 03d2cb0 4> 03d2cb4
4 2> 03d2cc0 3> 03d2cc4 4> 03d2cc8 5> 03d2ccc
5 3> 03d3ab8 4> 03d3abc 5> 03d3ac0 6> 03d3ac4
6 4> 03d3ad0 5> 03d3ad4 6> 03d3ad8 7> 03d3adc
7 5> 03d3ae8 6> 03d3aec 7> 03d3af0 8> 03d3af4
8
9 //La matriz con aritmtica de punteros
10 0> 03d2c90 1> 03d2c94 2> 03d2c98 3> 03d2c9c
11 1> 03d2ca8 2> 03d2cac 3> 03d2cb0 4> 03d2cb4
12 2> 03d2cc0 3> 03d2cc4 4> 03d2cc8 5> 03d2ccc
13 3> 03d3ab8 4> 03d3abc 5> 03d3ac0 6> 03d3ac4
14 4> 03d3ad0 5> 03d3ad4 6> 03d3ad8 7> 03d3adc

En mi caso esa son las direcciones de memoria.

El cdigo fuente de este y otros ejercicios de C++ est disponible en Github: https://github.com/ronnyml/C
Tutorial

Gracias por tu visita al Blog. Puedes seguirme en Twitter haciendo click en el siguiente enlace: Follow
@ronnyml

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Advertisements

Like
Be the first to like this.

Related

Operaciones con matrices - Listas enlazadas - Clase Algoritmos de bsqueda -


Clase Matriz en c++ Lista,Nodo en c++ Haskell
In "C++" In "C++" In "Haskell"

Written by Ronny Yabar Posted in C++


July 4, 2009 at 5:32 pm Tagged with C++, Matrices C++, Matrices en C++, Matriz en C++, Punteros C++,
Vectores C++, Vectores en C++

Tail recursion Operaciones con matrices Clase Matriz enc++

65 Responses

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Subscribe to comments with RSS.

ay no mames. pues se ve que no tienes nada que hacer pero gracias me haz carmen cadenita
salvado en mi clase de c++ por que soy bien huevon
July 11, 2009 at 2:10 am

Reply

Muy buen aporte, yo estoy empezando en la programacion y este tutorial, me ha Eymard


servido mucho. Gracias. Sigue adelante con tus proyectos, son de bendicion.
July 21, 2009 at 6:15 pm

Reply

estuvo interesante gracias por la ayuda batusai


August 2, 2009 at 8:24
pm

Reply

Excelente trabajo. Muchas gracias por compartirlo. Santiago


August 13, 2009 at 1:57
am

Reply

excelente programacion sergio


September 2, 2009 at 2:24
pm

Reply

les agradesco su aporte JAVIER


September 2, 2009 at 2:25
pm

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Reply

ps muchas gracias por dedicarte a esto, la verdad a mi me es de mucha utilidad, lupe


solbre todo x q es una materia muy complicada. September 4, 2009 at
m esta costando demasiado trabajo entender y no c como hacer para lograr
12:45 am
comprender estos temas tan importantes.
el semestre pasado reprobe esta materia sin comprender absolutamente nada. y
este semestre m esta pasando lo mismo.
tengo miedo!!

Reply

Muchas gracias por tus aportes, realmente tenia ciertos conocimientos a cerca juanm
de matrices, pero en lo que tenia dudas es en los punteros. Ya que los punteros
September 8, 2009 at
son elementos muy importantes para pra emplearlos en lenguaje c++
12:24 am

Reply

Hola, ante todo felicitarte por compartir tus conocimientos.espero puedas Oliver
ayudarme, hice un simple programa donde el usuario ingresa cdigos del September 12, 2009 at
producto con sus respectivos precios y stock, cada uno en diferentes vectores,
5:46 am
para que despus el usuario nuevamente ingrese el cdigo y el programa brinde
la informacin de precio y stock que ingreso anteriormente, el programa ya lo
hice pero lo que no puedo hacer es poder almacenar los cdigos pero que
contengan caracteres no solo nmeros, para que me entiendas mejor tengo este
tipo de cdigos, cod{1243,2343,5535,5465,}pero lo que deseo es que los
cdigos sean de este tipo cod{x001,l463,j664,.} gracias de antemano por la
respuesta, espero no incomodar con mi pregunta.
Reply

@Oliver eso lo puedes solucionar usando templates, una de las ms interesantes Ronny Yabar Aizcorbe
y potentes caractersticas de c++. Mira esta breve introduccin: September 15, 2009 at
http://gfaraj.wordpress.com/2007/05/01/templates-de-c-una-introduccin/ y
7:55 pm
despus estudia templates a fondo.
Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Ronny muchas gracias por tu ayuda!!! te pasaste!!

Oliver
September 15, 2009 at
11:51 pm

Yo tambien buscaba un tutorial que no sea tan teorico sino practico aprendo KAREN
mucho gracias por compartirlo. September 13, 2009 at
11:33 pm

Reply

anduve navegando por internet buscando informacin de estos y nalmente maria


encontre este espacio que aclar mis dudas
October 2, 2009 at 4:05
pm

Reply

Felicitaciones por tus aportes, no me funciono el delete para borrar un elemento edna
de una matriz, podrias colaborarme con esto. Gracias October 26, 2009 at 10:33
pm

Reply

Este codigo no funciona en code::blocks LoLo


es mas: October 28, 2009 at 9:03
for(int i=0;i<dim;i++)
pm
La estructura del bucle for es:
for(initializacin; condicional; paso) sentencia

asi que no entiendo, ni mi compilador tampooco este &lt.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
:(

Reply

@LoLo si funciona lo que pasa es que cuando copie el cdigo del editor , el Ronny Yabar Aizcorbe
wordpress transform el smbolo < en &lt, pero ya est corregido y muchas
October 29, 2009 at 12:17
gracias por el apunte. Lo prob en code::blocks y tambin funciona.
am

Reply

wooo, lo q no aprend en clases (x jugar solitario jeje) lo aprend aqu, me salvast Gilda
la vida, y a unos compaeros q tuvieron examen y les ayud. grax December 8, 2009 at 5:01
pm

Reply

Hola Ronny, gracias por tu tutorial en espanol. Alexandra


Estoy buscando un IDE o entorno para c++, que January 16, 2010 at 2:43
pueda marcar mis errores de sintaxis en rojo mientras digito, pm
me pregunto si g++, el compilador de GNU lo puede hacer?

gracias por tu buena voluntad


Reply

Alexandra, si piensas usar un IDE para C++, podras usar Code::Blocks que tiene Ronny Yabar Aizcorbe
las caractersticas que deseas y muchas ms. Adems es multiplataforma. January 17, 2010 at 5:09
pm

Reply

Gracias por la informacion, me sirvio mucho jorge


March 11, 2010 at 8:50 pm

Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
worale sta perfect. ntendi muy bn waw adry
March 25, 2010 at 2:15 am

Reply

hola, me parecio una explicacion muy completa. yoh


es posible crear un clase contenedora de objetos, por ejemplo creo una clase April 18, 2010 at 5:29 am
persona y aparte creo una clase listapersona la cual almacenara los objetos de la
clase persona, es eso posible.

ya que con punteros se ve algo complicado.

alguna referencia??

Reply

super la informacion hay q practicar mucho nexus


May 11, 2010 at 11:50 pm

Reply

Hola Deli
Muy buen tuto y super bien eexplicado. July 16, 2010 at 4:12 am

Es muy facil comprender estos temas debido a la simplicidad y claridad en la


explicacion de tus temas.
Felicidades
Reply

Sabes , estoy en la preparatoria y es muy di cil sabes como hacer un vector me mario
quedan todabia 1 aos si podrias mostrar algo basico ! September 28, 2010 at
6:29 am

Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Excelente aporte.
CARRARO
December 18, 2010 at 2:14
pm

Reply

gracia por su trabajo a sido de mucha ayuda geny


April 12, 2011 at 2:41 pm

Reply

me ayudo mucho sere el mas poderoso de los programadores xD dydier


June 20, 2011 at 8:02 pm

Reply

UF excelente gracias por la supe explicacin ahora si estoy lista para el quiz Yessenia
por que entend mas aqu que en clase GRACIAS !! c= (@PhoebeXenia)
September 13, 2011 at 2:04 am

Reply

!Felicidades!! y muchas gracias por este conocimiento compartido. solo un favor francisco Ramos M.
ms recomiendame
November 23, 2011 at
una bibliogra a basica para aprender desde cero.de lenguaje c y c++
12:25 pm

Reply

Muy buen aporte me sirvio mucho para la U. Saludos desde argentina theco
November 27, 2011 at 8:42
am

Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
wow gracias por subir esta informacin tan clara y fcil por que en otras
Carolina Martinez
paginas no le entiendo nada
June 28, 2012 at 7:44 pm

Reply

me parece de gran ayuda !! muchas gracias! Francisco Ramos


July 3, 2012 at 6:18 pm

Reply

gracias x el aporte me sirvi mucho para cultura general y bsica.. baylover


August 1, 2012 at 4:47 pm

Reply

felicitaciones por su buen trabajo!!! gracias por la informacion ..me sirvio mucho laban gupioc orlando
para aclarar mis dudas.. October 20, 2012 at 10:07
pues sigan a delante con la programacion y exitos OK.
pm

Reply

gracioa por la ayuda iveth


October 26, 2012 at 2:54
pm

Reply

Bueniiiiisimo brooo Gracias mil :D Gabriel Valencia


November 7, 2012 at 2:06
pm

Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
gracias
mary
December 10, 2012 at
10:47 am

Reply

muchas gracias esta de 10 este tuto ony


December 15, 2012 at 11:05
pm

Reply

Esta Muy Bueno Tu Trabajo (Like) "Luis" #include


February 21, 2013 at 10:52
am

Reply

Esto Me Ayudo Mucho =) "Luis" #include


February 21, 2013 at 10:53
am

Reply

Muchas gracias por esta informacin me ayudo muchisimo! Saludos desde Juan Jose Alegre
Paragay March 18, 2013 at 10:27
pm

Reply

ya se de donde saca las tareas el wey de mi maestro. anonimo por si ve mi


maestro el comentario
April 4, 2013 at 8:17 pm

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Reply

Muchas gracias saludos desde la Ponti cia Universidad Catolica de Valparaiso, Pato
Chile!
October 15, 2013 at 11:29
pm

Reply

gracias XD Csar Ivn Delgado


Ailva
October 24, 2013 at 5:05 am

Reply

Buen aporte gracias me ha aclarado algunas dudas drv


December 2, 2013 at 4:53
am

Reply

An teniendo mucho tiempo este aporte, sigue ayudando a nosotros los Ricardo
iniciadores. December 3, 2013 at 1:51
Gracias!
pm

Reply

Hola. Muchas gracias por tomarte el tiempo de escribir esto. Ha pasado unos Betto Rodriguez
buenos aos ya pero an sigue siendo muy til.
March 22, 2014 at 10:53
Saludos.
pm

Reply

gracias muy buenas respuestas encuentro aca

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
wilson
July 15, 2014 at 11:10 pm

Reply

yes muy buena meryderu


October 2, 2014 at 10:47
pm

Reply

[] https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y- Untitled
punteros-en-c/ [] May 5, 2015 at 7:05 pm

Reply

[] https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y- #Mastery23 #Mastery26


punteros-en-c/ [] #TC1017
May 5, 2015 at 7:13 pm

Reply

[] Para mas informacin acerca de matrices dinamicas pueden consultar el #Mastery26 - Creation and
siguiente enlace:https://ronnyml.wordpress.com/2009/07/04/vectores- use of matrixes in C++
matrices-y-punteros-en-c/ []
May 6, 2015 at 5:28 pm

Reply

[] here is the web page that help me for this mastery #Mastery23
https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-punteros-
May 6, 2015 at 8:52 pm
en-c/ []
Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Thank you so much very useful
joserafael1990
May 16, 2015 at 11:17 pm

Reply

muy buena informacion gracias entendi mas que a mi profesor que no le he juancardenas21
entendido nada en todo el semestre gracias podrias hacer una tutorias de todo May 19, 2015 at 9:50 pm
seria muy chevere asi como esta informacion gracias (Y)
Reply

Simplemente genial amigoexcelente explicacin dejas todo bien claroyo Jose


estoy empezando a programar May 28, 2015 at 1:59 pm
estoy en el segundo ao de ingeniera en informatica y me ayudo bastante tu
tutorialgracias
Reply

Sinceramente perfecto para los que iniciamos, muchas gracias :D Zteven


June 4, 2015 at 12:00 pm

Reply

Muchas gracias por el aporte! :D Muy honorable tu iniciativa de compartir Giancarlo Tupac
informacin con quienes ms lo necesitan n.n
Gutierrez
November 5, 2015 at 10:44 am

Reply

[] https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y- Mastery 26 | Octavios Blog


punteros-en-c/ [] November 25, 2015 at 3:04 pm

Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
[] https://ronnyml.wordpress.com/2009/07/04/vectores-matrices-y-
WSQ10 Lists | Daniel
punteros-en-c/ []
Amaro's Blog
April 7, 2016 at 9:22 pm

Reply

Gracias, yo soy un novato, aun no entiendo bien lo de punteros, pero muy buen william
aporte, se agradece May 18, 2016 at 9:02 pm

Reply

Gracias! alvaro246blog
March 16, 2017 at 12:36
am

Reply

Gracias Carnal Jhonatan


June 20, 2017 at 4:49 pm

Reply

[] Referencias Referencia 1 Referencia 2 Referencia 3 [] Vectores Ttulo del sitio


July 10, 2017 at 8:01 am

Reply

Leave a Reply

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD
Enter your comment here...

Blog at WordPress.com.

Create PDF in your applications with the Pdfcrowd HTML to PDF API PDFCROWD

También podría gustarte