Herramientas de usuario

Herramientas del sitio


curso-cpp:contenedor-vector

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
Última revisión Ambos lados, revisión siguiente
curso-cpp:contenedor-vector [2017/02/11 00:22]
santo [Matrices]
curso-cpp:contenedor-vector [2017/10/12 18:18]
santo [Ejercicios]
Línea 120: Línea 120:
 ==== Ejercicios ==== ==== Ejercicios ====
  
-  - Dada una secuencia de números, determinar cuántas veces aparece cada uno de los números del 1 al 10 en la secuencia. +  - [[http://​juez.oia.unsam.edu.ar/#/​task/​cuenta_numeros/​statement|Dada una secuencia de números, determinar cuántas veces aparece cada uno de los números del 1 al 10 en la secuencia]]
-  - Dada una secuencia de números, determinar cuál es el número que más veces aparece en la secuencia, así como cuántas veces aparece. +  - [[http://​juez.oia.unsam.edu.ar/#/​task/​mas_aparece/​statement|Dada una secuencia de números, determinar cuál es el número que más veces aparece en la secuencia, así como cuántas veces aparece]]
-  - Dada una secuencia de números distintos, determinar cuántos pares de números hay cuya suma sea un múltiplo de 10. +  - [[http://​juez.oia.unsam.edu.ar/#/​task/​cuenta_pares/​statement|Dada una secuencia de números distintos, determinar cuántos pares de números hay cuya suma sea un múltiplo de 10]]
-  - Dada una secuencia de números distintos, determinar cuántos pares de números hay cuya suma sea un número primo. +  - [[http://​juez.oia.unsam.edu.ar/#/​task/​cuenta_primos/​statement|Dada una secuencia de números distintos, determinar cuántos pares de números hay cuya suma sea un número primo]]
-  - Dada una secuencia de números distintos, determinar cuántas ternas (combinaciones de tres) de estos números forman un triángulo (considerando que los números son las longitudes de los lados). Por ejemplo, 2 4 5 son longitudes que forman un triángulo, pero 1 2 5 no (si lo intentamos, primero dibujamos el lado de 5, y luego los lados de 1 y 2 entre los dos son demasiado cortos y "no alcanzan"​ a cerrar un triángulo junto con el lado de 5).+  - [[http://​juez.oia.unsam.edu.ar/#/​task/​cuenta_triangulos/​statement|Dada una secuencia de números distintos, determinar cuántas ternas (combinaciones de tres) de estos números forman un triángulo]] (considerando que los números son las longitudes de los lados). Por ejemplo, 2 4 5 son longitudes que forman un triángulo, pero 1 2 5 no (si lo intentamos, primero dibujamos el lado de 5, y luego los lados de 1 y 2 entre los dos son demasiado cortos y "no alcanzan"​ a cerrar un triángulo junto con el lado de 5).
  
 ===== Modificando el tamaño de un vector ===== ===== Modificando el tamaño de un vector =====
Línea 134: Línea 134:
   * Si v es un vector, con ''​v.resize(nuevoTam)''​ podemos cambiar su tamaño al nuevo valor, que está indicado por ''​nuevoTam''​. Si este valor es más chico que el tamaño actual de ''​v'',​ los elementos sobrantes del final se pierden.   * Si v es un vector, con ''​v.resize(nuevoTam)''​ podemos cambiar su tamaño al nuevo valor, que está indicado por ''​nuevoTam''​. Si este valor es más chico que el tamaño actual de ''​v'',​ los elementos sobrantes del final se pierden.
   * Con ''​v.push_back(e)'',​ **agregamos** el elemento ''​e''​ al final de toda la lista. Por ejemplo si ''​v''​ es un ''​vector<​int>'',​ ''​v.push_back(15)''​ le agrega un 15 al final. El tamaño de un vector aumenta en 1 cuando se hace push_back.   * Con ''​v.push_back(e)'',​ **agregamos** el elemento ''​e''​ al final de toda la lista. Por ejemplo si ''​v''​ es un ''​vector<​int>'',​ ''​v.push_back(15)''​ le agrega un 15 al final. El tamaño de un vector aumenta en 1 cuando se hace push_back.
-  * Con ''​v.pop_back()''​ podemos **borrar** el último elemento de la lista. El tamaño se reduce en 1 al hacer pop_back.+  * Con ''​v.pop_back()''​ podemos **borrar** el último elemento de la lista. El tamaño se reduce en 1 al hacer pop_back. Es por lo tanto una forma más práctica de hacer ''​v.resize(v.size()-1)''​.
  
 ==== Ejercicio ==== ==== Ejercicio ====
  
-    - Se debe leer una secuencia de números positivos que viene de la entrada, pero no sabemos su longitud: la secuencia termina cuando viene un **cero**, que indica que ya no hay que leer más. El programa debe determinar si la secuencia dada tiene repetidos o no.+    - Se debe leer una secuencia de números positivos que viene de la entrada, pero no sabemos su longitud: la secuencia termina cuando viene un **cero**, que indica que ya no hay que leer más. [[http://​juez.oia.unsam.edu.ar/#/​task/​busca_repetidos/​statement|El programa debe determinar si la secuencia dada tiene repetidos o no]].
  
 ===== Sobre el uso de ''​.size()''​ en comparaciones ===== ===== Sobre el uso de ''​.size()''​ en comparaciones =====
Línea 178: Línea 178:
 </​code>​ </​code>​
  
-Al escribir ''​for (int x : v)'',​ directamente ''​x''​ va tomando todos los valores ''​v[i]''​ del ejemplo anterior, es decir, "la iteración se hace sola", lo cual es mucho más cómodo cuando simplemente queremos procesar una vez cada elemento en orden. Cuando queremos trabajar con varios elementos a la vez, generalmente será más cómodo usar la "​iteración clásica"​ que vimos antes.+Al escribir ''​for (int x : v)'',​ directamente ''​x''​ va tomando todos los valores ''​v[i]''​ del ejemplo anterior, es decir, "la iteración se hace sola", lo cual es mucho más cómodo cuando simplemente queremos procesar una vez cada elemento en orden. Cuando queremos trabajar con varios elementos a la vez, generalmente será más cómodo usar la "​iteración clásica"​ que vimos antes (pues queremos tener a mano la variable ''​i''​ que indica la posición actual).
  
 ===== Matrices ===== ===== Matrices =====
Línea 257: Línea 257:
 ==== Ejercicios ==== ==== Ejercicios ====
 En estos ejercicios, suponer que primero se da una línea con un N y un M, que indican la cantidad de filas y columnas respectivamente de la matriz, y luego N líneas con M valores cada una, indicando el contenido de cada fila. En estos ejercicios, suponer que primero se da una línea con un N y un M, que indican la cantidad de filas y columnas respectivamente de la matriz, y luego N líneas con M valores cada una, indicando el contenido de cada fila.
-    - Dada una matriz de números, imprimir las sumas de sus filas y sus columnas (N + M valores en total). +    - Dada una matriz de números, ​[[http://​juez.oia.unsam.edu.ar/#/​task/​suma_filas/​statement|imprimir las sumas de sus filas y sus columnas]] (N + M valores en total). 
-    - Dada una matriz de números, imprimir la matriz traspuesta, es decir, aquella que tiene en la fila i, columna j, lo que la original tenía en la fila j, columna i. +    - Dada una matriz de números, ​[[http://​juez.oia.unsam.edu.ar/#/​task/​matriz_traspuesta/​statement|imprimir la matriz traspuesta]], es decir, aquella que tiene en la fila i, columna j, lo que la original tenía en la fila j, columna i. 
-    - Dado un rectángulo de números enteros (podrían ser negativos), ​¿Cuál ​es la máxima suma posible de un subrectángulo de mayor suma? Un subrectángulo se forma tomando los elementos de un conjunto de filas y columnas todas **contiguas**,​ sin dejar "​agujeros"​. Notar que el subrectángulo no puede ser vacío. +    - Dado un rectángulo de números enteros (podrían ser negativos), ​¿[[http://​juez.oia.unsam.edu.ar/#/​task/​max_sum_rect/​statement|Cuál ​es la máxima suma posible de un subrectángulo de mayor suma]]? Un subrectángulo se forma tomando los elementos de un conjunto de filas y columnas todas **contiguas**,​ sin dejar "​agujeros"​. Notar que el subrectángulo no puede ser vacío. 
-    - Dado un rectángulo de **letras** y una lista de palabras, ​¿Cuáles ​de las palabras aparecen en esta sopa de letras? Las palabras pueden aparecer en horizontal (tanto hacia la derecha como hacia la izquierda) o en vertical (tanto hacia arriba como hacia abajo). No se cuentan las posibles apariciones en diagonal.+    - Dado un rectángulo de **letras** y una lista de palabras, ​¿[[http://​juez.oia.unsam.edu.ar/#/​task/​sopa_de_letras/​statement|Cuáles ​de las palabras aparecen en esta sopa de letras]]? Las palabras pueden aparecer en horizontal (tanto hacia la derecha como hacia la izquierda) o en vertical (tanto hacia arriba como hacia abajo). No se cuentan las posibles apariciones en diagonal.
curso-cpp/contenedor-vector.txt · Última modificación: 2017/10/29 19:25 por santo