0% encontró este documento útil (0 votos)
17 vistas3 páginas

Tarea 2.3

Tarea de la materia Programacion II, de la carrera Ingenieria en Informatica, UAJMS, TARIJA, BOLIVIA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
17 vistas3 páginas

Tarea 2.3

Tarea de la materia Programacion II, de la carrera Ingenieria en Informatica, UAJMS, TARIJA, BOLIVIA.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

TAREA 2.

3
Tema: Recursividad

INSTRUCCIONES
1. Todas las funciones requerida deben ser implementadas usando recursividad.
2. Cada problema debe ser guardado en un archivo denominado: Problema1.cpp,
Problema2.cpp, etc., según el número del problema.
2. De ser necesario, pueden usarse una o más función adicionales.

Problema1:

Escribir la función: int cantidadPalabras(string frase), que devuelva la cantidad


de palabras existentes en la frase. El programa principal debe leer una frase con
una o más palabras, las que estarán separadas por simples espacios; luego debe
llamar a la función cantidadPalabras() e imprimir el resultado que la función
devuelve.
EJEMPLO DE ENTRADA
hola mundo como estas
EJEMPLO DE SALIDA
4

EJEMPLO DE ENTRADA
una palabra
EJEMPLO DE SALIDA
2

Problema2:

Escribir la función: int fibonacci(int n), que devuelva el n-ésimo término de la


serie de Fibonacci. El programa principal debe leer un número natural: n, llamar a
la función fibonacci() e imprimir el resultado que esa función devuelve.
EJEMPLO DE ENTRADA
7
EJEMPLO DE SALIDA
13

EJEMPLO DE ENTRADA
10
EJEMPLO DE SALIDA
55

Aclaración: recordar que la función de Fibonacci es:


1 1 2 3 5 8 13 21 34 55 ...

Problema3:

Escribir la función: int contarSubcadenas(string cad, char c), que devuelva la


cantidad de subcadenas de letras consecutivas iguales al caracter c, que existen en
la cadena cad. El programa principal debe leer una cadena y un carácter, llamar a
la función contarSubcadenas() e imprimir el resultado que esa función devuelve.
EJEMPLO DE ENTRADA
bbbaaaannnannaaa
a
EJEMPLO DE SALIDA
3
EJEMPLO DE ENTRADA
Esta es una prueba
e
EJEMPLO DE SALIDA
2

Problema4:

Escribir la función: int contarLetras(string frase), que devuelva la cantidad de


letras existentes en la cadena, ignorando cualquier otro carácter. El programa
principal debe leer una frase, llamar a la función contarLetras() e imprimir el
resultado que esa función devuelve.
EJEMPLO DE ENTRADA
¡hola mundo!.
EJEMPLO DE SALIDA
9

EJEMPLO DE ENTRADA
Los simbolos: < > se denominan parentesis angulares.
EJEMPLO DE SALIDA
41

Problema5:

Escribir la función: void eliminarRepetidos(vector<int>& vec) que elimine todos los


elementos repetidos del vector, dejando solo la primera aparición u ocurrencia;
para ello, no se debe usar ninguna estructura de datos extras. El programa
principal debe leer un número entero: n, luego leer n números enteros, cargarlos al
vector e imprimir el mismo en una línea, por último llamar a la función:
eliminarRepetidos() e imprimir el contenido del vector en otra línea.
EJEMPLO DE ENTRADA
9
2 5 8 2 3 9 5 8 7
EJEMPLO DE SALIDA
2 5 8 2 3 9 5 8 7
2 5 8 3 9 7

Problema6:

Escribir la función: vector<int> separar(vector<int>& vec), que devuelva un nuevo


vector con los elementos de índice impar de vec, quedando en vec solo los elementos
de índice par. El programa principal debe leer un número natural: n, luego leer n
números enteros y cargarlos en el vector, a continuación imprimir el mismo en una
línea, luego llamar a la función separar() e imprimir vec y por último imprimir el
nuevo vector que la función devuelve, en otra línea.
EJEMPLO DE ENTRADA
13
1 2 3 4 5 6 7 8 9 10 11 12 13
EJEMPLO DE SALIDA
1 2 3 4 5 6 7 8 9 10 11 12 13
1 3 5 7 9 11 13
2 4 6 8 10 12

Problema7:
Escribir la función: void rotar90Izq(vector<vector<int>>& vec) que rote la matriz
cuadrada, 90 grados en sentido levogiro (en sentido contrario a las agujas de
reloj). El programa principal debe leer un número entero: n, que es el orden de la
matriz cuadrada, luego debe leer n x n números enteros y los cargue en una matriz e
imprima la misma; a continuación llame a la función: rotar90Izq() y vuelva a
imprimir la matriz, tal como se muestra en el ejemplo de salida.
EJEMPLO DE ENTRADA
3
1 2 3 4 5 6 7 8 9
EJEMPLO DE SALIDA
1 2 3
4 5 6
7 8 9

3 6 9
2 5 8
1 4 7

Problema8:

Escribir la función: bool filaYColumnaIguales(vector<vector<int>>& vec), que


devuelva 1 si existe alguna fila con los valores iguales a alguna columna,
manteniendo el orden de los valores de izquierda a derecha y de arriba hacia abajo.
El programa principal debe leer un número entero: n, que es el orden de la matriz
cuadrada, luego leer n x n números enteros y los cargue en la matriz y la imprima;
a continuación llame a la función filaYColumnaIguales() e imprima el resultado que
esa función devuelve.
EJEMPLO DE ENTRADA
4
7 2 4 2
9 3 3 4
2 4 5 3
2 3 4 3
EJEMPLO DE SALIDA
1

Problema9:

Escribir la función: bool esSimetrica(vector<vector<int>>& matriz) que devuelva: 1


si la matriz es simétrica respecto a su diagonal principal, y devuelva 0 en caso
contrario. El programa principal debe leer un número entero: n, crear una matriz de
orden n, leer y cargar en la matriz n x n números enteros, llamar a la función
esSimetrica() e imprimir el resultado que esa función devuelve.

EJEMPLO DE ENTRADA
3
1 2 3
2 4 5
3 5 6
EJEMPLO DE SALIDA
1

También podría gustarte