Está en la página 1de 4

Programación II – Nivelación y Repaso de Programación I

Práctico 0 – Nivelación y Repaso de Programación 1

 Ejercicio 1
Se desea escribir un programa que calcule la cantidad de aprobados y reprobados
de un curso de programación. La condición para aprobar el curso es obtener al
menos 60 puntos entre la suma de los dos parciales. No se conoce la cantidad
exacta de alumnos del curso, pero se sabe que posee al menos un inscripto. El
programa irá leyendo los datos que el usuario ingresa por teclado y finalmente
mostrará por pantalla la cantidad de aprobados y reprobados.
a) Escribir un algoritmo en seudocódigo que resuelva este problema.
b) Implementar un programa main en C++ que ejecute el algoritmo anterior.

Nota: En este ejercicio no se permite usar estructuras de datos auxiliares (arreglos,


listas, etc.) y tampoco se permite utilizar procedimientos ni funciones.

 Ejercicio 2
Se desea realizar un programa que implemente las siguientes
operaciones:
o int SumaIterativa (int n)
/* calcula la suma de todos los enteros que hay entre 1 y n, de forma iterativa */
o int SumaRecursiva (int n)
/* calcula la suma de todos los enteros que hay entre 1 y n, de forma recursiva */
o int PotenciaIterativa (int a, int b)
/* calcula el resultado de elevar ab de forma iterativa */
o int PotenciaRecursiva (int a, int b)
/* calcula el resultado de elevar ab de forma recursiva */
a) Haga un programa en C++ que implemente las operaciones anteriores.
Solamente se permite realizar sumas y multiplicaciones, sin usar
operaciones predefinidas por C++.
b) Agregue al programa un bloque main que pida al usuario valores por teclado,
luego llame a las operaciones anteriores, y posteriormente emita el resultado por
pantalla.

 Ejercicio 3
Dado el siguiente archivo Arreglo.h para un módulo que trabaja con un arreglo
de enteros:
#ifndef _arreglo
#define _arreglo
const int TAM = 50;
typedef int arreglo[TAM];
void cargar (arreglo &arre);
/* carga por teclado los valores del arreglo */
void mostrar (arreglo arre);
/* muestra por pantalla los valores del arreglo */
int promedio (arreglo arre);
/* calcula el promedio de los valores del arreglo */

Página 1|4 CeRP del Suroeste – Programación II :: 2015


Programación II – Nivelación y Repaso de Programación I

bool pertenece (arreglo arre, int x);


/* indica si el valor x pertenece al arreglo o no */
void maxPos (arreglo arre, int &max, int &pos);
/* devuelve el valor máximo del arreglo y su posición */
#endif

a) Escriba el archivo Arreglo.cpp que implemente las operaciones anteriores.


b) Haga un módulo principal que incluya al módulo Arreglo y en cuyo bloque
main se declare una variable de tipo arreglo y se llame a las operaciones
anteriores. Luego emita los resultados por pantalla.

 Ejercicio 4
Dado el siguiente archivo Estudiante.h para un módulo que define los datos
que posee un estudiante de un centro educativo:
#ifndef _estudiante
#define _estudiante
typedef struct { long int cedula;
int anioCarrera; char
grupo;
} estudiante;
void cargar (estudiante &e);
/* carga los datos del estudiante, leyéndolos por teclado */
void mostrar (estudiante e);
/* muestra los datos del estudiante por pantalla */
long int darCedula (estudiante e);
/* retorna la cédula del estudiante */
int darAnioCarrera (estudiante e);
/* retorna el año de carrera del estudiante */
char darGrupo (estudiante e);
/* retorna el grupo del estudiante */
#endif

Se pide: Escriba el archivo Estudiante.cpp que implemente las operaciones


anteriores.

 Ejercicio 5
Dado el siguiente archivo Escuela.h para un módulo que define un arreglo
con tope de estudiantes de un centro educativo:
#ifndef _escuela
#define _escuela
#include “Estudiante.h”
const int MAX = 150;
typedef struct { Estudiante arreglo [MAX];
int tope;
} arrayConTope;
void inicializar (arrayConTope &act);
/* inicializa el tope en cero */

Página 2|4 CeRP del Suroeste – Programación II :: 2015


Programación II – Nivelación y Repaso de Programación I

bool estaLleno (arrayConTope act);


/* indica si el array con tope se llenó o no */
bool existeEstudiante (arrayConTope act, long int ced);
/* indica si el estudiante con cédula ced existe en el array
con tope o no */
void insertarEstudiante (arrayConTope &act, estudiante e);
/* inserta al estudiante en la primer posición disponible */
/* precondición: el estudiante no existe y el arreglo no se llenó */
void desplegarEstudiantes (arrayConTope act);
/* muestra por pantalla todos los estudiantes del arreglo */
int contarPorGrupo (arrayConTope act, int anio, char grupo);
/* dados un año de carrera y un grupo, cuenta cuántos
estudiantes del arreglo están en dicho año y grupo */
#endif

a) Escriba el archivo Escuela.cpp que implemente las operaciones anteriores.


b) Haga un módulo principal que incluya al módulo Escuela y en cuyo bloque
main se declare una variable de tipo arrayConTope y se llame a las
operaciones anteriores. Luego emita los resultados por pantalla.

 Ejercicio 6
Dado el siguiente archivo Lista.h para un módulo que trabaja con una lista de
números enteros:
#ifndef _lista
#define _lista
typedef struct nodoL { int info;
nodoL * sig;
} * lista;
void crear (lista &L);
/* crea una lista vacía */
void insFront (lista &L, int n);
/* inserta el valor n al frente de la lista */
bool esVacia (lista L);
/* indica si la lista está vacía o no */
int sumaIterativa (lista L);
/* devuelve la suma de los valores de L, en forma iterativa */
int sumaRecursiva (lista L);
/* devuelve la suma de los valores de L, en forma recursiva */
void mostrarIterativo (lista L);
/* muestra por pantalla los valores de L, en forma iterativa */
void mostrarRecursivo (lista L);
/* muestra por pantalla los valores de L, en forma recursiva */
bool perteneceIterativo (lista L, int n);
/* indica si n pertenece a L, en forma iterativa */
bool perteneceRecursivo (lista L, int n);
/* indica si n pertenece a L, en forma recursiva */
#endif

a) Escriba el archivo Lista.cpp que implemente las operaciones anteriores.

Página 3|4 CeRP del Suroeste – Programación II :: 2015


Programación II – Nivelación y Repaso de Programación I

b) Haga un módulo principal que incluya al módulo Lista y en cuyo bloque


main se declare una variable de tipo lista y se llame a las operaciones
anteriores. Luego emita los resultados por pantalla.

 Ejercicio 7
Dado el siguiente archivo ABB.h para un módulo que trabaja con un árbol binario
de búsqueda de números enteros:
#ifndef _ABB
#define _ABB
typedef struct nodoA { int info; nodoA * hizq;
nodoA * hder;
} * ABB;
void crear (ABB &a);
/* crea un árbol binario de búsqueda vacío */
void insertarRecursivo (ABB &a, int n);
/* inserta el valor n en el árbol binario de búsqueda en la
posición que le corresponde, en forma recursiva */
int sumaRecursiva (ABB a);
/* devuelve la suma de los valores de a, en forma recursiva */
int contarRecursiva (ABB a, int m);
/* cuenta cuántos múltiplos de m hay en a, en forma recursiva */
void mostrarRecursivo (lista L);
/* muestra por pantalla los valores de a, en forma recursiva y
ordenados de menor a mayor */
bool perteneceIterativo (lista L, int n);
/* indica si n pertenece a a, en forma iterativa */
bool perteneceRecursivo (lista L, int n);
/* indica si n pertenece a a, en forma recursiva */
#endif

a) Escriba el archivo ABB.cpp que implemente las operaciones


anteriores.
b) Haga un módulo principal que incluya al módulo ABB y en cuyo bloque main
se declare una variable de tipo ABB y se llame a las operaciones
anteriores. Luego emita los resultados por pantalla.

Página 4|4 CeRP del Suroeste – Programación II :: 2015

También podría gustarte