Fundamentos de programacion ss14

45
Servicio de asesoría y resolución de ejercicios [email protected] www.maestronline.com Solicita una cotización a través de nuestros correos. Maestros Online Fundamentos de programación Apoyo en ejercicios Servicio de asesorías y solución de ejercicios [email protected]

Transcript of Fundamentos de programacion ss14

Page 1: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Solicita una cotización a través de nuestros correos.

Maestros Online

Fundamentos de

programación

Apoyo en

ejercicios

Servicio de asesorías y solución de ejercicios

[email protected]

Page 2: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

[…………] Es el conjunto de instrucciones que debe seguir una computadora.

1. Software

[…………] Es el conjunto de todos los programas que usa una computadora.

2. Lenguaje procedural

[…………] Ubicación de memoria que contiene ocho bits. 3. Programa fuente

[…………] Es una pieza de información que se proporciona como entrada a un programa.

4. Compilador

[…………] Programa que traduce un programa escrito en un lenguaje de alto nivel como el C++ a un lenguaje de máquina.

5. Bit

[…………] Programa escrito en un lenguaje de programación de alto nivel que debe ser traducido para que pueda ser ejecutado por la computadora.

6. Estructuras de control

[…………] Unidad de almacenamiento más pequeña dentro de una computadora.

7. Algoritmo

[…………] Paradigma (metodología) de programación que permite diseñar programas de manera modular.

8. Byte

[…………] Secuencia de instrucciones precisas que lleva a una solución.

9. Programación estructurada

[…………] Tipo de lenguaje que permite escribir las instrucciones que le indican a la computadora cómo debe realizar una acción.

10. Programación orientada a objetos

[…………] Indican el orden en que se ejecutan las instrucciones de un algoritmo o programa.

11. Programa

[…………] Paradigma de programación que permite escribir programas en términos de objetos.

12. Datos

2. Realiza una tabla comparativa de acuerdo a la información recabada sobre programación

estructurada, orientada a objetos, orientada a eventos y tipos de errores, donde des

respuesta a los siguientes cuestionamientos:

a. ¿Qué es la programación orientada a eventos?

b. ¿Cuáles son las principales diferencias y similitudes entre la programación

estructurada, la orientada a objetos y la orientada a eventos?

c. Describe y ejemplifica los errores de sintaxis o compilación, de ejecución y lógica.

3. Escribe el algoritmo para cada uno de los siguientes problemas:

a. Calcular y desplegar la distancia que existe entre dos puntos dado que se

proporcionan como dato de entrada los dos puntos (x1, y1) y (x2, y2).

b. Determinar si el número dado como dato de entrada es “par” o “impar”.

c. Obtener y desplegar la suma de los impares de 1 a n donde n será dato de entrada.

Page 3: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Escribe el algoritmo de los siguientes problemas. Recuerda que debe de contar con todas las instrucciones claras y completas de los pasos a seguir, así como el orden en el que se deben realizar.

1. Obtén y despliega el área de un triángulo cuando el usuario proporciona como datos de

entrada la base y la altura.

2. Determina si el número dado por el usuario es “negativo”, “positivo” o “cero”.

3. Determina el promedio de los números pares y el promedio de los números impares de

una lista de valores enteros proporcionada por el usuario donde el último número es un

cero.

[…………] Herramientas que sirven de apoyo para automatizar las labores de instalación de los sistemas en un ambiente de producción.

1. Fase de codificación

[…………] Etapa dentro del desarrollo de software en la que se define el problema que se desea solucionar, especificando claramente las actividades que el programa debe realizar, así como el resultado esperado.

2. Diagrama de casos de uso

[…………] Etapa dentro del desarrollo de software en la que se detalla cada uno de los módulos que va a contener el sistema.

3. Diagrama de paquetes

[…………] Diagramas que permiten modelar e identificar las funcionalidades que deberá tener un sistema.

4. Fase de análisis

[…………] Es el proceso de ejecución del programa con una variedad de datos de prueba que determinarán si el programa tiene errores o no.

5. Fase de implementación

[…………] Diagramas para modelar los módulos que tendrá el sistema.

6. Herramientas paradeployment

[…………] Se utilizan para definir los procesos de las actividades que deberá realizar el sistema.

7. Fase de diseño

[…………] Esta fase consiste en instalar el sistema en un ambiente operativo en el que el programa ya esté trabajando con los datos reales y cualquier problema o falla que exista puede tener un impacto directo a la organización que lo utiliza.

8. Ciclo de vida de desarrollo de software

[…………] Conjunto de programas ya desarrollados para incorporar en los nuevos programas y utilizarlo para solucionar ciertos problemas de una forma más sencilla.

9. Diagrama de actividades

[…………] Secuencia de pasos que debe realizar el ingeniero de desarrollo de software para construir un sistema computacional.

10. Frameworks

[…………] Técnicas para generar los casos de prueba de un programa.

11. Fase de pruebas

[…………] Esta fase consta de la escritura en el lenguaje de programación de la representación del algoritmo desarrollado en las

12. Diseño de pruebas de caja

Page 4: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

fases anteriores. blanca y caja negra

2. Utilizando la información recabada, elabora un mapa conceptual sobre IDE, donde des

respuesta a los siguientes cuestionamientos:

a. ¿Qué es un IDE (Integrated Development Enviroment)? ¿Por qué las empresas

emplean un IDE para el desarrollo de programas?

b. Eclipse y NetBeans son dos de los principales IDEs que se emplean en las empresas.

Identifica para cada uno de ellos, qué lenguajes de programación aceptan.

c. Todo IDE contiene al menos un editor, un compilador y un depurador (debbuger).

¿Para qué se emplea el editor? ¿Para qué se emplea el depurador?

3. Realiza la fase de análisis de los siguientes problemas donde especifiques para cada uno

¿qué proceso debe realizar?, ¿qué datos debe proporcionar la persona que ejecuta el

programa (usuario)? y ¿qué valores debe desplegar el programa como resultado?

a. Determinar el área y volumen de un cilindro dado su radio (R) y altura (H).

b. Determinar el total a pagar por el cliente en una tienda que ofrece descuentos por

temporada dependiendo del total comprado:

i. Si la compra es menor a 500 pesos, el descuento es del 5%.

ii. Si la compra es de 501 a 1500 pesos, el descuento es del 10%.

iii. Si la compra es superior a 1500 pesos el descuento es del 15%.

c. Para un estudio meteorológico se registra el promedio de temperatura diaria. Con

base en los registros de un mes, se debe obtener la siguiente información:

i. La mayor temperatura del mes y el día en el que ocurrió.

ii. La menor temperatura del mes y el día en el que ocurrió.

iii. La temperatura promedio del mes.

iv. La temperatura promedio de la primera quincena del mes.

v. La temperatura promedio de la segunda quincena del mes.

d. Conociendo la masa y la distancia entre dos cuerpos se puede determinar la fuerza de

atracción que se ejerce entre ambos, por ejemplo la que existe entre la tierra y un

satélite, que se puede calcular con la siguiente fórmula:

Donde: m es la masa del satélite. M es la masa de la tierra (5.97 x 1024 kilogramos). r es la distancia entre la tierra y el satélite. G es la constante gravitatoria (6.67259 x 1011 Nm2)

Se desea hacer una aplicación que determine la fuerza de atracción ejercida entre la tierra y N satélites ubicados a distintas alturas. La aplicación debe generar un reporte que contenga lo siguiente:

Page 5: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

i. La mayor y la menor fuerza de atracción ejercida por los satélites en estudio.

ii. La fuerza de atracción promedio ejercida por los satélites.

iii. La mayor masa de los satélites estudiados.

iv. La masa promedio de los satélites estudiados.

v. La menor y mayor altura de los satélites.

Para los siguientes problemas, realiza la fase de análisis donde se especifique qué proceso debe realizar, qué datos debe proporcionar la persona que ejecuta el programa (usuario) y qué valores debe desplegar el programa como resultado.

1. Determinar la hipotenusa de un triángulo rectángulo dado que el usuario proporciona de

entrada las longitudes de sus catetos.

2. Obtener el costo del boleto de avión. Se sabe que el costo por kilómetro recorrido es de

$47 por los primeros 1000 kilómetros. Para los kilómetros restantes (en caso de haberlos)

el costo es de $25.

3. Un Boeing 747 tiene la capacidad de carga para equipaje de aproximadamente 15,000

kilogramos. Se desea hacer un programa que sea útil para controlar la recepción de

equipaje para ese avión. Para esto tome en cuenta la siguiente información:

El total de los bultos no debe exceder la capacidad de carga del avión.

El peso de un bulto no debe exceder de 500 kilogramos.

El costo por kilo de bulto es:

o de 0 a 25 kg es de cero pesos.

o de 26 a 300 es de 20 pesos por kilo de equipaje.

o de 301 a 500 es de 30 pesos por kilo de equipaje.

4. El programa debe generar el siguiente reporte:

a. Cantidad total de bultos ingresados al vuelo.

b. Peso total en bultos aceptados.

c. Peso del bulto más pesado y del más liviano.

d. Peso promedio de los bultos.

e. Cantidad de pesos obtenidos por concepto de carga.

1. Relaciona las columnas y coloca en el paréntesis de la columna izquierda el número de la

descripción ubicada a la derecha que le corresponde.

Símbolos de raptor Lista de descripciones

[…………]

Estatuto de repetición.

Page 6: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

[…………]

Datos de salida para mostrar resultados al

usuario.

[…………] Operaciones o cálculos.

[…………]

Marcar el inicio o el fin del diagrama.

[…………]

Datos de entrada para solicitar al usuario que

proporcione datos a través del teclado.

[…………]

Llamada a una función o método independiente.

[…………] Estatuto condicional if.

2. Realiza el diagrama de flujo en raptor para el siguiente pseudocódigo:

Problema: Dada la velocidad de un automóvil expresada en kilómetros por hora, desplegar la velocidad expresada en metros por segundo.

Pseudocódigo:

CONVERTIR VELOCIDAD A METROS POR SEGUNDO Inicio

Pedir al usuario la velocidad en kilómetros por hora velocidad ← lectura del teclado resultado = (velocidad * 1000) / 3600

Imprimir resultado Fin

3. Escribe el pseudocódigo que le corresponde dado el siguiente algoritmo:

Problema: Dado dos valores determinar si uno de ellos es múltiplo del otro.

Page 7: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Algoritmo:

1. Leer el primer numero (numero1).

2. Leer el segundo numero (numero2).

3. Obtener el residuo de dividir numero1 entre

numero2 (residuo1 = numero1 %

numero2).

4. Obtener el residuo de dividir numero2 entre

numero1 (residuo2 = numero2 %

numero1).

5. Si el residuo1 es igual a cero, entonces el

numero1 es múltiplo del numero2 por lo

que se debe desplegar el mensaje “el

primer número es múltiplo del segundo”.

6. Si el residuo2 es igual a cero, entonces el

numero2 es múltiplo del numero1 por lo

que se debe desplegar el mensaje “el

segundo número es múltiplo del primero”.

4. Genera el pseudocódigo y el diagrama de flujo para cada uno de los siguientes

problemas. Para construir el diagrama utiliza raptor, además de la imagen del diagrama de

flujo debes incluir una imagen de la consola en la que se aprecie que el diagrama resuelve

el problema en cuestion.

a. Determinar la hipotenusa de un triángulo rectángulo dado que el usuario proporciona

de entrada las longitudes de sus catetos.

b. Dado un número indicar si es es par-positivo, par-negativo, impar-positivo o impar-

negativo.

c. Dado una lista de valores enteros determinar cuál es el mayor. Los valores son datos

de entrada al programa serán tecleados por el usuario uno a uno. El último será un

cero.

Genera el pseudocódigo y el diagrama de flujo para cada uno de los siguientes problemas. Para construir el diagrama utiliza Raptor. Además de la imagen del diagrama de flujo debes incluir una imagen de la consola en la que se aprecie que el diagrama resuelve el problema en cuestión.

1. Determina el área y volumen de un cilindro dado su radio (R) y altura (H).

2. Dado 3 números, determinar cuál es el más pequeño.

3. Dada la calificación final de los alumnos de un grupo, desplegar la cantidad de aprobados,

la cantidad de reprobados y el promedio del grupo. La cantidad de alumnos será también

un dato de entrada al programa.

Page 8: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

[…………] Declarativa que se utiliza para indicar qué librería predefinida por el lenguaje debe ser incluida al programa.

main

[…………] Textos que se incluyen en los programas que no se ejecutan y que se utilizan para entender más fácilmente lo que realizan sus instrucciones.

system(“PAUSE”)

[…………] Nombre de la función del programa que es la primera en ejecutarse.

cout

[…………] Ejemplo de la declaración de una variable que será empleada para almacenar un valor entero.

endl

[…………] Instrucción del lenguaje que se emplea para desplegar resultados en la consola de la computadora.

comentarios

[…………] Instrucción que se coloca generalmente casi al final del programa para solicitar a la computadora que detenga la ejecución del programa hasta que el usuario presione alguna tecla.

#include

[…………] Instrucción que le indica a la computadora que el programa termino correctamente.

;

[…………] Instrucción del lenguaje que se emplea para leer los valores que serán proporcionados por el usuario a través del teclado.

int edad;

[…………] Símbolo que se debe colocar al final de cada instrucción del programa.

return EXIT_SUCCESS;

[…………] Instrucción del lenguaje que se emplea para pasar el cursor al siguiente renglón.

cin

2. Escribe el pseudocódigo, el diagrama de flujo y el programa que resuelva el siguiente

problema, tomando en cuenta los criterios que a continuación se señalan:

Problema:

Dada la capacidad del disco duro de la computadora expresada en gigabytes, realizar los cálculos necesarios para expresarla en megabytes, kilobytes y bytes.

a. El diagrama de flujo debe ser construido en Raptor. Se espera que entregues el

diagrama de flujo funcionando por lo que además se debe incluir una imagen en la

que se demuestre su funcionamiento.

b. El programa debe ser escrito empleando Dev C++.

c. El programa debe incluir comentarios de encabezado.

Escribe el pseudocódigo, el diagrama de flujo y el programa que resuelva el siguiente problema, de acuerdo a los siguientes criterios:

Problema:

Page 9: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Dado una cantidad en pesos, convertir a su equivalente para los siguientes tipos de monedas: Libras, Euros, dólares USA, dólares Canadiense y dólares australianos.

1. El diagrama de flujo debe ser construido en Raptor. Se espera que entregues el diagrama

de flujo funcionando por lo que además se debe incluir una imagen en la que se

demuestre su funcionamiento.

2. El programa debe ser escrito empleando Dev C++.

3. El programa debe incluir comentarios de encabezado.

Elabora un reporte que incluya los siguientes elementos para cada uno de los problemas solicitados:

1. Fase de análisis

a. Entradas

b. Procesos

c. Salidas

2. Fase de diseño

a. Pseudocódigo

b. Diagrama de flujo e imagen que muestre el funcionamiento del programa en Raptor

c. Casos de prueba

3. Fase de codificación

a. Programa computacional

4. Fase de pruebas

a. Reporte de los resultados de las pruebas

Problema 1

El conjunto de ecuaciones lineales:

Se puede resolver usando la regla de Cramer:

Usando estas ecuaciones escribe un programa para encontrar los valores de X1 y X2 para los valores a11, a12, a21, a23, c1 y c2 dados por el usuario.

Page 10: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Problema 2

Juan está construyendo una alberca por lo que necesita que le ayudes elaborando un programa que determine la cantidad de mosaicos que se requieren para forrarla. Él cuenta con las dimensiones de la alberca la cual tendrá una forma rectangular. En la tienda le han indicado las medidas de los mosaicos, la cantidad de mosaicos que tiene cada caja y el costo de cada una. El programa debe generar un reporte con la siguiente información:

Cantidad de mosaicos que se requieren para forrar la

alberca.

Cantidad de cajas a comprar.

El total a pagar.

Nota: no se pueden vender medias cajas de mosaicos ni tampoco se pueden vender mosaicos sueltos. Investiga cómo redondear los resultados.

Problema 3

Se va a colocar una máquina para calcular el costo por el uso de un estacionamiento. Se te pide realices un programa que dada la cantidad de horas que se utilizó el estacionamiento y la cantidad de dinero que el cliente dará a la máquina para pagar, genere un reporte con el el monto total y la cantidad de monedas de 10, 5, 2 y 1 que se debe como cambio.

Para realizar el programa toma en cuenta lo siguiente:

El costo por hora de estacionamiento es de 12 pesos.

La maquina solo contará con monedas de 10, 5, 2 y 1

peso.

La cantidad máxima que puede pagar el cliente es 999

pesos.

El programa debe tratar de dar el menor número de

monedas a cambio.

Ejemplo:

Si el cliente usó el estacionamiento por 6 horas y paga con un billete de 100 pesos, el programa debe indicar que se debe pagar $72 pesos por lo que hay que regresar $28 pesos: 2 monedas de 10, 1 monedas de 5, 1 moneda de 2 y 1 monedas de 1.

Solución de un problema realizando el análisis, diseño (pseudocódigo o diagrama de flujo), y la programación en un lenguaje computacional.

Instrucciones para realizar evidencia:

1. Con base en tus conocimientos, indica los pasos del ciclo de vida del desarrollo de

un software.

Page 11: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

2. Lee el siguiente problema:

Una tienda de música tiene la necesidad de generar un pequeño sistema para controlar su inventario.

3. Realiza la solución del problema, considerando:

a. El programa deberá cumplir las siguientes necesidades:

Mostrar el catálogo de productos que registran en su inventario (actualmente se

dedican a vender CD‟s, DVD‟s y Blu Rays).

Preguntar al usuario el precio de compra y precio de venta de cada tipo de

producto.

Preguntar al usuario cuántas unidades va a registrar de cada uno de los

productos.

Solicitar el nombre, dirección y teléfono del proveedor.

Calcular el monto de compra.

Calcular las ganancias que se van a obtener cuando se venda todo.

Mostrar cuánto dinero se tiene invertido y en qué productos.

Mostrar las ganancias totales que se van a obtener con el inventario registrado.

Imprimir la información en pantalla.

4. La solución deberá contener lo siguiente:

a. Análisis: Examina los requerimientos y genera una lista de todas las necesidades

detalladas que identifiques del sistema. Define las entradas, salidas y el proceso.

b. Diseño: Plantea el algoritmo de la solución utilizando pseudocódigo y diagramación en

Raptor. Valida el diagrama de flujo y muestra las evidencias de la consola de Raptor.

Indica también los casos de prueba para asegurar que tu programa funciona

correctamente (mínimo tres casos de prueba, cada prueba deberá tener un

identificador, la descripción de la prueba, las entradas y las salidas esperadas).

c. Codificación: Programa la solución utilizando C++, incluye el comentario de

encabezado donde muestres lo que realiza el programa, las entradas y las salidas

(puedes incluir comentarios simples dentro del programa para mejorar el

entendimiento de tu programa).

d. Pruebas: Ejecuta las pruebas y documenta la evidencia de cada caso de prueba.

Genera el reporte de la ejecución de pruebas.

Recuerda que el programa deberá usar las mejores prácticas de indentación y orden del código.

5. Con base en lo anterior, elabora un reporte del procedimiento que realizaste para

desarrollar el software y los problemas que presentaste para lograr su correcto

funcionamiento.

Nota: No olvides incluir el proyecto de Dev C++, así como el diagrama de flujo en Raptor.

Page 12: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Escribe a la derecha del declarativo la respuesta que se solicita.

1. Indica para cada uno de los siguientes si cumplen (SI) o no (NO) con las reglas que

establece C++ para dar nombre a las variables. Sigue solamente las reglas de C++.

a. hola_

b. PALABRA

c. _hola

d. uno+uno

e. algo#

f. ev@lua

g. numeroPagina

h. message

i. número

j. dinero$

k. lista de palabras

l. 1palabra

m. tarea#1

n. una_pal

o. tarea1_

p. tamaño

2. Selecciona el tipo de dato más adecuado para almacenar cada uno de los siguientes

datos. Escoge entre short, int, double, char, string o bool.

a. Número de matrícula, por ejemplo, A0117345

b. Nombre de persona

c. Edad

d. Sueldo del empleado

e. Clave para estado civil (s, c, v, d)

f. Siglas de la carrera que estudia

g. Letra inicial del apellido paterno

h. Resultado de comparar si dos números son iguales

i. Precio del artículo

j. Número del empleado (entero, de 6 dígitos)

3. Escribe la declaración completa de la variable o constante para cada caso.

Ejemplo:

Una variable double para guardar un impuesto

Respuesta: double impuesto;

a. Variable entera que guardará un número de alumno

b. Variable de tipo flotante que guarda una velocidad

c. Variable de tipo carácter que guarda una clave de una sola letra

d. Constante que guarda que el número de la empresa es 45

e. Variable de tipo boleana que indica si el alumno estudia carrera bilingüe o no

Page 13: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Realiza cada uno de los siguientes ejercicios marcando el recuadro correspondiente.

1. Indica si la aseveración es correcta (SI) o incorrecta (NO)

Sí No La variable Edad es la misma que la variable edad.

Sí No La palabra IF es una palabra reservada en C++.

2. Marca el recuadro Sí, si es un identificador válido en C++. En caso contrario, marca el

recuadro No. Considera sólo las reglas de C++.

Ejemplo: Sí No Horas:Minutos

Sí No edad

Sí No Clave-Depto

Sí No Depto25

Sí No FLOAT

Sí No número

Sí No character

Sí No Z

Sí No Cantidad_Dias

Sí No 125Doc

Sí No Nombre Mes

Sí No años

Sí No aumento%

Sí No int

Sí No Double

Sí No ?meses

3. En los siguientes, marca el recuadro Sí, si la declaración de variables o constantes es

correcta, es decir, si el compilador no marca error. En caso contrario, marca el

recuadro No.

TIP: Para verificar en la computadora si tu respuesta es correcta, escribe un programa que contenga la declaración. Verifica una declaración a la vez.

Ejemplos:

Sí No double a, b, c;

Sí No INT a, b;

Sí No int uno = 1, dos, tres;

Sí No char ampersand = "&";

Sí No float X, x = y = 10;

Page 14: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Sí No char pareja = "AB";

Sí No char Letra = Z;

Sí No const float IVA = 0.15;

Sí No float sueldo = 4525.38;

Sí No int Mes1; Mes2;

Sí No short uno, dos = 10;

Sí No double const descuento = 10;

Sí No long numerotote;

Sí No const rebaja = 10, aumento = 15;

Sí No char porciento = '%';

Sí No const Numero = 20;

Contestando las preguntas en los siguientes ejercicios; después, escribe el programa empleando las instrucciones para el desplegado en pantalla y caracteres de escape.

1. Indica que despliegan en pantalla los siguientes estatutos.

cout << "Esteban\'s home";

cout << 5 + 3 << " = " << "5 + 3";

int num1 = 45, num2 = 386; cout << num1 << ' ' << num2;

cout << "Hola" << "Amigo";

cout << "X = " << 4.5000;

cout << "\"Hola\"";

cout << "X = 4.5000";

cout << "Hola" << endl << "Amigo";

cout << "\'Mundo\'\n\'Universal\'";

cout << '$';

2. Escribe en la columna VALOR ASIGNADO A LAS VARIABLES el valor que se le asigna a

las variables especificadas después de ejecutar la instrucción de lectura y los datos

tecleados por el usuario correspondiente.

TIP: Utiliza el siguiente programa para verificar tus resultados.

#include <iostream> int main () { int num1, num2, num3; char a, b, c;

//instrucción de lectura

Page 15: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

//instrucción para desplegar el valor asignado a las variables utilizadas en la instrucción de lectura return 0; }

INSTRUCCIÓN DE LECTURA

DATOS

TECLEADOS

POR EL USUARIO

VALOR ASIGNADO A

LAS VARIABLES

cin >> num1; 45<enter> num1 = 45

cin >> a; ABCD<enter> a = ______________

cin >> num1 >> a >> num2; 4/5<enter>

num1 =____________

a = ______________

num2 =____________

cin >> a >> b >> c; ABC<enter>

a = ______________

b =______________

c = ______________

cin >> num1 >> num2 >> num3; 10 20 30<enter>

num1 =____________

num2 =____________

num3 =____________

cin >> num1 >> num2 >> num3;

10<enter>

20<enter>

30<enter>

num1 =____________

num2 =____________

num3 =____________

3. Escribir un programa que despliegue lo siguiente en la esquina superior izquierda de la

pantalla:

¿Quién eres?

Escribe un programa que despliegue lo siguiente en la esquina superior izquierda de la pantalla:

Page 16: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Realiza cada uno de los siguientes ejercicios sobre la evaluación de expresiones aritméticas y relacionales.

1. Indica el valor que tomará cada una de las siguientes expresiones. Muestra el

procedimiento para llegar al resultado.

11 / 3 * 2.0 / 4

((5 * 3 + (4 + 3)) + 6) / 2 + 5

4 – (5 – 9) + 8 % 6

32 - 3 * 7 / 5 * 4

(18 / 4 % 2) - (6 / 4.0 * 3 / 2)

1 % 9 * 8 - 5 / 2.0

1 + 6 * 2 – 7.0 / 2

(8 + 5 * 4) / 7 + (13 % 2)

2. Indica cuál es el resultado de las siguientes expresiones. Muestra el orden en el que se

evalúan los operadores.

a. (-5.0 * 4 < 5) && (11 / 3 == 2)

b. 5 % 3 - 6 + 5 / 2) != (7 % 4 – 17 / 3)

c. (-5.0 * 4 != -20) || (17 / 5 >= 2)

d. („a‟ != „A‟) && („p‟ > „j‟)

e. (5 % 2 + 6 – 5 / 2 ) >= ( 8 % 5 * 2)

f. !(5 > 8) && (3.0 >= 3)

3. Escribe una expresión booleana para cada uno de los siguientes incisos:

a. Que verifique si el valor de la variable a es igual al valor

de alguna de las variables b o c (Es decir, si a es igual

a b, o bien si a es igual a c). Supón que las

variables a, b y c son de tipo char.

Page 17: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

b. Que verifique si el valor de la variable x es impar y

además diferente de 9. Supón que la variable x es de

tipo int.

c. Que verifique si el valor de la variable a es diferente de

los valores s y n. Supón que la variable a es de

tipochar.

d. Que verifique si el valor de la variable p está en el

rango de -100 a 100 (incluyendo los límites) pero sin

incluir el rango de -10 a 10.

4. Realiza el análisis, diseño e implementación de un programa que obtenga la cantidad de

kilómetros de una pista cuyas dimensiones están expresadas en millas y yardas.

Ejemplo de la ejecución del programa:

Longitud de la pista

¿Cuál es la cantidad de Millas? 26 ¿Cuál es la cantidad de Yardas? 385 Una pista de 26 millas y 385 yardas tiene una longitud de 42.186

5. Realiza el análisis, diseño e implementación de un programa que sea útil para evaluar

polinomios de grado 3. Debe solicitar los coeficientes del polinomio y el valor de x,

después desplegar el resultado de la evaluación.

P(x) = Ax3 + Bx2 + Cx + D

Ejemplo de la ejecución del programa:

Valor de A: 5 Valor de B: 4 Valor de C: 3 Valor de D: 2

Page 18: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Valor de X: 1 P(1) = 5 x^3 + 4 x^2 + 3 x + 2 = 14

Importante: El programa debe desplegar el polinomio tal y como se muestra en el ejemplo.

Contesta los siguientes ejercicios sobre expresiones aritméticas relacionales y lógicas.

1. En la siguiente tabla, escribe el resultado de cada una de las expresiones aritméticas e

indica marcando el recuadro correspondiente si el resultado es un número entero o con

punto decimal.

EXPRESIÓN RESULTADO ¿El resultado es un número entero o un

número con punto decimal?

10 / 4.0 2.5 Entero Con punto decimal

30 + 10 / 4 Entero Con punto decimal

100.0 / 8 Entero Con punto decimal

34 – 2 * 3.3 Entero Con punto decimal

40 + .5 – 30 * 2 Entero Con punto decimal

75 % 6 * -1 Entero Con punto decimal

(1 % 5 * 3)/6 Entero Con punto decimal

Ejemplo del programa:

#include <iostream> using namespace std; int main () { cout << 10/3; return 0; }

2. En cada expresión aritmética, escribe sobre la línea de la derecha cuál será el resultado al

evaluarla. Suponer que A y B son variables enteras con valor de 3 y 10 respectivamente.

A % (B + 14) / B ___________________

1 / ( 6 - ( 1 + A) ) ___________________

Page 19: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

8 / 2.5 + 35 / 3 ___________________

50 / 2.5 + 13.0 / 8 ___________________

(10.8 + 4) / 4 * 2 ___________________

7.5 – 28 % 5 * 2 ___________________

20 % 4 + 1.5 * 3 / 5 ___________________

A + (B + 14.6) / B ___________________

3. En cada inciso, indica cuál será el valor de las variables involucradas después de ejecutar

la instrucción. Supón que A y B son variables enteras con valor de 4 y 8

respectivamente.

A = ++A * 2; A = ______

A = --A * B++; A = ______ y B = ______

4. Determina si cada una de las siguientes expresiones booleanas es falsa o verdadera.

Supón que aux y temp son variables de tipo int y valen 5 y 8, respectivamente.

( temp )

( ! (temp != 8 ) )

( aux == 4 || temp==8 )

( aux == 4 && temp==8 )

( ( aux > 10 ) && !( temp == 13 || temp ==16 ) )

5. Analiza, diseña e implementa un programa que obtenga la edad y peso de una persona

en los siguientes objetos astronómicos; utiliza la información de la siguiente tabla:

PARA CALCULAR EL PESO

EN EL PLANETA REALIZA

LA SIGUIENTE OPERACIÓN

PARA CALCULAR LA EDAD

EN EL PLANETA REALIZA LA

SIGUIENTE OPERACIÓN

Page 20: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Mercurio El peso x 0.38 La edad x 4.1476

Venus El peso x 0.9 La edad x 1.431434

Luna El peso x 0.17 La edad x 1

Marte El peso x 0.38 La edad x 0.531293

Júpiter El peso x 2.53 La edad x 0.084033

Saturno El peso x 1.07 La edad x 0.033898

Urano El peso x 0.91 La edad x 0.011904

Neptuno El peso x 1.13 La edad x 0.006060

Plutón El peso x 0.07 La edad x 0.004032

Ejemplo de la ejecución del programa:

Resuelve los siguientes ejercicios.

1. Escribe el valor que toman las variables en cada una de las siguientes secuencias de

instrucciones:

int v = 9, t = 5; if ( (v > 5) && (t <= 2) ) {

Valor final de

v_____

Page 21: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

v -= t; } t = t / 3;

t ____

int b =26, j = 24; if ( ( j < b) || ( j < 22) ) { j = j / 6; } b = b + j;

Valor final de

b ____

j _____

int m = 15, y = 22, g = 25; if ( (m < y) && ( g > y) ) { y = (y + 6) / 2; g += y - m; } else { g = g + 6 / 2; y = y + g / (4 + 2); m = m - 2; }

Valor final de

m ____

y ____

g _____

char p = ‘a’, h = ‘w’; if ( !( (p != ‘A’) || (p != ‘a’) ) ) { h = ‘j’; } else { h =p + 1; }

Valor final de

p _____

h _____

int a = 8, d = 10; if ( (d > a) || (d / 2 == 5.0) ) { a -= d; } else { a += d; } d = d / 3;

Valor final de

a _____

d _____

int r = 0, n = 28; if ((n > 20) && (n % 2 == 0)) { if ( n < 10) { r += 5; } else

Valor final de

r _____

n _____

Page 22: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

{ r = 22; } } else { r++; }

int c = 0, f = 28; if ( (c >= 12) || (c <= 3) ) { f /= 2; } c += 7; if (f % 2 == 0) { if (f / 2 != c) { c++; } }

Valor final de

c ____

f _____

int e = 20, k = 10; if ( (e != k * 2 ) && (e / 2 == k) ) { e /= 2; } else { if ( !(e + 5 == 25) ) { e -= k * 2; } else { e += k / 2; } }

Valor final de

e ____

k _____

int s = 10, w = 20, x = 30; if ( (s >= w / 2 ) && (x / 3 == s) ) { if ( (x * 2 > w ) ) { w -= x / 2; } else { w += s / 2; } }

Valor final de

s ____

Valor final de

w _____

Valor final de

Page 23: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

else { if ( (w + 5 == 25) ) { s -= x * 2; } else { s *= 2; } } x /= 2;

x _____

2. Realiza el análisis, diseño e implementación de un programa que pida al usuario 2 fechas

del mismo año es decir, debe solicitar día y mes de cada fecha y mostrar en la pantalla un

mensaje que indique cuál de las dos fechas ocurre primero, o bien, si son iguales.

Ejemplo de la ejecución del programa:

Día 1: 12 Mes 1: 5 Día 2: 21 Mes 2: 5

La fecha 1 ocurre primero

3. En una tienda venden discos de música. El precio está en clave de acuerdo con la

siguiente tabla:

Clave Precio

A 59.90

B 129.90

C 179.90

D 250.00

Page 24: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Escribe un programa que pida al usuario la clave del CD que va a comprar y le muestre su precio.

Nota: Debes utilizar la instrucción switch para resolver este ejercicio.

Realiza los siguientes ejercicios diseñados para practicar los temas de estructuras de decisión.

1. Indica que despliegan cada una de las siguientes secuencias de programación según el

valor de la variable N especificado en la columna derecha. En caso de que no se

despliegue nada, escribe la palabra “NADA”.

if ( N != 40 ) { cout << ‚AB‛ ; } if ( !( N < 101 ) ) { cout << ‚CD‛ ; }

Con N = 60, despliega ____

Con N = 10, despliega ____

if ( N > 40 ) { cout << ‚AB‛ ; } if ( N <= 101 ) { cout << ‚CD‛ ; if ( N > 40) { cout << ‚EF‛ ; } }

Con N = 10, despliega ____

Con N = 100, despliega ____

Con N = 1000, despliega ____

if ( N > 40 ) { cout << ‚AB‛; } else { cout << ‚CD‛; }

Con N = 41, despliega ____

Con N = 40, despliega ____

if ( N == 40 ) { cout << ‚AB‛ ; } else { cout << ‚CD‛ ; } cout << ‚EF‛ ;

Con N = 41, despliega ____

Con N = 40, despliega ____

Page 25: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

if ( N ) { cout << ‚AB‛ ; } else { cout << ‚CD‛ ; cout << ‚EF‛ ; }

Con N = 0, despliega ____

Con N = 40, despliega ____

if ( !N ) { cout << ‚AB‛ ; cout << ‚CD‛ ; } else { cout << ‚EF‛ ; }

Con N = 0, despliega ____

Con N = 40, despliega ___

if ( N <= 40 ) { cout << ‚AB‛ ; if ( N >= 10 ) { if ( N <= 20 ) { cout << ‚CD‛; } } else { cout << ‚EF‛; } }

Con N = 0, despliega ____

Con N = 10, despliega ____

Con N = 30, despliega ____

Con N = 40, despliega ____

if ( N <= 40 ) { if ( N != 10 ) { cout << ‚AB‛; } else { cout << ‚CD‛; } }

Con N = 41, despliega ___

Con N = 30, despliega ____

Con N = 10, despliega ___

switch ( N ) { case 40: cout << ‚AB‛; case 41: cout << ‚CD‛; break; case 42: cout << ‚EF‛; }

Con N = 40, despliega ___________

Con N = 41, despliega ___________

Con N = 43, despliega ___________

Page 26: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

switch ( N ) { case 40: cout << ‚AB‛; switch( R ) { case 10: cout << ‚CD‛; case 20: cout << ‚EF‛; default: cout << ‚GH‛; } case 41: cout << ‚IJ‛; if ( R == 30 ) cout << ‚KL‛; case 42: cout << ‚MN‛; }

Con N = 40 y R = 30, despliega ___________

Con N = 41 y R = 10, despliega ___________

Con N = 40 y R = 10, despliega ___________

2. Analiza, diseña y escribe un programa que solicite al usuario el ángulo de la línea y

determine y despliegue el cuadrante al que pertenece. Cabe aclarar que si el ángulo es

exactamente 0, 90, 180, 270 y 360 la línea no reside en ningún cuadrante por lo que debe

indicar que cae en un eje. Considera lo siguiente:

El cuadrante en el que reside una línea trazada desde el origen es determinado por el ángulo que forma la línea con el eje x positivo como sigue:

Un ángulo entre 0 y 90 grados está en el

CUADRANTE I

Un ángulo entre 90 y 180 grados está en el

CUADRANTE II

Un ángulo entre 180 y 270 grados está en

el CUADRANTE III

Un ángulo entre 270 y 360 grados está en

el CUADRANTE IV

Realiza los siguientes ejercicios relacionados con las estructuras de repetición for, while y do…while.

1. Indica qué despliega cada una de las siguientes secuencias de programación y después

comprueba tu respuesta ejecutando el código.

for ( int k= 5; k >= 5; k--) { cout << "A"; }

Despliega:

for ( int k = 10; k > 5; k++) {

Despliega:

Page 27: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

cout << "A"; cout << k }

int i = 10; while ( i < 13 ) { cout << "A"; } cout << "BB";

Despliega:

int i = 2; do { cout << "A-"; i++; } while ( i < 8 );

Despliega:

int m = 20; do { m = m / 2; cout << m << ‚ ‚; } while ( m >= 0 );

Despliega:

int m = 3; while ( m < 21 ) { cout << ‚A‛ << m; m += 3; }

Despliega:

2. Escriba en los rectángulos el valor o expresión que se necesita para que la sección del

programa realice la actividad especificada en la primera columna.

Lo que debe hacer la

sección del programa Sección del programa

Desplegar en pantalla el

resultado de obtener la

siguiente suma:

7+6+5+4+3

int suma = 0;

for( int i = ; ; i--) { suma += i; } cout << suma;

Al final del ciclo, la

variable numdebe contener

un valor entre 100 y 999

incluyéndolos a ambos.

int num; do { cout << ‛número?‛;

Page 28: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

cin >> num;

} while ( );

Desplegar en la pantalla la

siguiente secuencia de

valores:

(1, 10)

(2, 9)

(3, 8)

(4, 7)

(5, 6)

for(int a = , b=10; a < b; , ) { cout <<"( "<< a << " , " << b << " ) "<<endl; }

3. Escribe las secciones de programa que se solicitan.

Lo que debe hacer la sección del programa Sección del programa

a. Desplegar en pantalla los valores pares en el

rango 2 a 100

b. Obtener la suma de todos los valores que

teclee el usuario. Se sabe que el último

número que tecleará el usuario será un cero.

c. Contar cuántos valores dados por el usuario

fueron necesarios para que su suma genere un

valor mayor a 5000

4. Realiza el análisis, diseño e implementación de un programa que lea un número entero N,

que representa la cantidad de números enteros a pedir, y para cada número indique si el

número es par o impar. Posteriormente debe de indicar cuántos números fueron pares y

cuantos fueron impares.

Ejemplo de la ejecución del programa:

¿Cuantos números serán? 5 Valor del número 1: 5 El número 5 es impar Valor del número 2: 12

Page 29: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

El número 12 es par Valor del número 3: 34 El número 34 es par Valor del número 4: 7 El número 7 es impar Valor del número 5: 1 El número 1 es impar

La cantidad de números pares es 2 La cantidad de números impares es 3

5. Realiza el análisis, diseño e implementación de un programa que pregunte el tipo de

boleto (A, N, I), muestre su precio y luego pregunte si hay otro cliente, si el usuario

contesta que sí, debe repetir el proceso. Considera lo siguiente:

Un parque de diversiones tiene una máquina para vender boletos de 3 tipos:

A Adulto que cuestan $120,

N Niños que cuestan $75 y

I Adultos con credencial del INSEN que

cuestan $60.

Para comprar los boletos en esta máquina debe solicitarse uno a la vez. Puedes suponer que la máquina tiene una cantidad ilimitada de boletos.

Ejemplo de la ejecución del programa:

Tipo de boleto: A El boleto cuesta: $120.00 Otro boleto (s/n)? s Tipo de boleto: I El boleto cuesta: $60.00 Otro boleto (s/n): n Fin del programa

6. Realiza el análisis, diseño e implementación de un programa que lea del teclado números

enteros y los vaya sumando. Debe detenerse cuando la suma de los números leídos sea

1000 o más y mostrar el total de la suma y la cantidad de números que se sumaron.

Solución a un problema por medio de un algoritmo, diagrama de flujo y codificación en un lenguaje computacional de última generación que involucre condicionales y ciclos.

Instrucciones para realizar evidencia:

Page 30: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1. Resuelve el siguiente problema:

Una escuela necesita un programa que ayude a obtener el promedio de las calificaciones

de sus grupos, con ello ahorraría tiempo y mejoraría el desempeño de esta actividad.

2. Para la definición del programa se debe considerar la siguiente información:

a. La cantidad de grupos que se van a promediar.

b. La cantidad de calificaciones por grupo que se van a introducir.

c. Las calificaciones de cada uno de los grupos (las calificaciones pueden contener

números decimales).

d. Que el programa promedie cada uno de los grupos y mostrar el resultado al usuario.

e. Que el programa valide las calificaciones introducidas y estas se encuentren entre 0 y

100 inclusive.

f. El programa deberá preguntar al usuario, al terminar, si desea seguir promediando

otro grupo, por lo tanto deberá ejecutarse infinitamente hasta que el usuario indique lo

contrario.

3. Una vez que se cuenta con la información y las especificaciones para el desarrollo del

programa, la solución deberá contener lo siguiente:

a. Análisis: examina los requerimientos y genera una lista de todas las necesidades

detalladas que identifiques del sistema. Define las entradas, salidas y el proceso.

b. Diseño: plantea el algoritmo de la solución utilizando pseudocódigo y diagramación en

Raptor. Valida el diagrama de flujo y muestra las evidencias de la consola de Raptor.

Indica también los casos de prueba para asegurar que tu programa funciona

correctamente (mínimo 3 casos de prueba, cada prueba deberá tener un identificador,

la descripción de la prueba, las entradas y las salidas esperadas).

c. Codificación: programa la solución utilizando C++, incluye el comentario de

encabezado donde muestres lo que realiza el programa, las entradas y las salidas

(puedes incluir comentarios simples dentro del programa para mejorar el

entendimiento de tu programa).

d. Pruebas: ejecuta las pruebas y documenta la evidencia de cada caso de prueba.

Genera el reporte de la ejecución de pruebas.

Recuerda que el programa deberá usar las mejores prácticas de indentación y orden del código.

4. Elabora un reporte con el procedimiento que realizaste para desarrollar el software y los

problemas que presentaste para lograr su correcto funcionamiento. No olvides incluir el

proyecto de Dev C++, así como el diagrama de flujo en Raptor.

Contesta cada uno de los siguientes ejercicios. Posteriormente desarrolla el programa que se te solicita.

Page 31: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

1. Determina el valor de las siguientes expresiones que hacen uso de funciones

predefinidas.

TIP: Para verificar los resultados con la computadora, escribe un programa que contenga la expresión dentro de un cout.

Expresión Resultado Expresión Resultado

abs ( -123 ) sqrt ( 4.0 * 4 + 5 * 5 )

ceil ( 3.4 ) floor ( 3.4 )

pow ( 10 + 2.0 , 4 ) sqrt ( pow ( 5.0 , 4 ) )

2. Utiliza las funciones de la biblioteca Math para crear los programas que resuelvan las

siguientes expresiones matemáticas.

3. Crea un programa para desplegar la información de los siguientes códigos utilizando la

biblioteca iomanip:

Rellene las casillas con los caracteres que se despliegan.

int num1 = 45, num2 = 386; cout << setw(4) << num1 << ' ' << setw(5) << num2;

int num1 = 7132; cout << setw(2) << num1;

Page 32: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

double valor = 2599.89; cout << setiosflags(ios::fixed); cout << "$ " << setprecision(2) << valor;

cout << setiosflags (ios::left); cout << setw(14) << setfill('=') << "hola";

cout << setiosflags (ios::right); cout << "Uno" << setw(6) << setfill('+') << 1;

4. Escribe un programa que permita calcular la distancia entre dos puntos (x1, y1) y (x2, y2).

Recuerda que la fórmula para calcular la distancia es:

La altura que alcanza una pelota lanzada a una velocidad v en metros/segundo en un ángulo θ está dada por la fórmula:

Escribe un programa que calcule la altura máxima que alcanzará una pelota si se conoce la velocidad en millas/hora y el ángulo en grados. No se te olvide convertir la velocidad a las unidades correctas (1 milla equivale a 1 609 metros). Además toma en cuenta que seno2θ = ½ - ½ coseno(2θ)

Responde cada uno de los siguientes ejercicios. Al terminar desarrolla el análisis, diseño e implementación del programa que se solicita.

1. Indica cuál es el valor que se asignará a la variable m (de tipo int) en cada una de las

instrucciones que hacen uso de las siguientes funciones:

int mod(int k) { return k % 8; }

int mul (int a, int b) { return mod(a*b); }

a. m = mod(10); m=

Page 33: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

b. m = mul(10, 8); m=

c. m = mod(mod(100)); m=

d. m = mod(100) + mod(10); m=

e. m = mul(abs(-2), 5); m=

f. m = mul(mul(18, 10), mod(9)); m=

g. m = mul(10, mod(8)); m=

2. Marque el recuadro Sí, si la declaración de la función es correcta, es decir, el

compilador no marca error. En caso contrario marque el recuadro No.

¿Es correcto? Declaración de la función

Sí No char funcion1 ( );

Sí No int funcion2 ( int A, B, C );

Sí No void funcion3 ( int A, char B, int C, double D, double

E );

Sí No void funcion6 ( int A=12 );

Sí No char funcion7 ( A char, B char );

3. Relaciona las columnas, colocando en el paréntesis de la columna izquierda el número del

estatuto return (columna derecha) que es el más coherente de acuerdo a la declaración de

la función.

( ) int funcion1 ( char caracter1 , char caracter2 ) ;

1. return;

( ) double funcion3 ( void ) ; 2. return 34.78;

Page 34: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

( ) char funcion4 ( int contador ) ; 3. return ‘a’;

( ) double funcion6 ( char caracter , int numero ) ;

4. return –345;

( ) long funcion7 ( ) ; 5. return 88000;

4. Una compañía de renta de automóviles desea un programa para emitir las facturas de sus

clientes. La forma de cobro es la siguiente:

a. Se cobra la cantidad fija de $1,000 si no se rebasan los 300 Km.

b. Para distancias mayores a 300 km:

Si distancia > 300 km y <= 1,000 km: $1,000 + ($5 por cada km arriba de los 300).

Si la distancia es mayor que 1,000 km: $1,000 + ($5 por cada km arriba de los 300

hasta los 1,000) + ($3 por cada km arriba de los 1,000).

Ejemplos:

Kilometraje Cantidad a cobrar

30 $1,000

300 $1,000

310 $1,000 + (10 km * $5) = $1,050

1,000 $1,000 + (700 km * $5) = $4,500

1,010 $1,000 + (700 km * $5) + (10 km * $3) = $4,530

Restricción: El programa deberá realizar el cálculo de la cantidad a cobrar en una función aparte de la función main, que reciba el kilometraje y regrese como resultado de la función el precio. Esta función no deberá desplegar.

Contesta las siguientes preguntas sobre funciones definidas por el programador y posteriormente realiza el programa.

1. Coloca una cruz en el cuadro de cada llamada incorrecta a la función 1 y a la función 2.

Una llamada incorrecta sería aquella en la que el compilador marca error.

Suponer que se tienen declaradas las siguientes variables:

int A = 3 , B = 6 , C = 9 ;

Page 35: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Función 1: int misterio ( int x, int y, int z ) ;

Marque con una cruz las llamadas incorrectas:

C = misterio ( ) ;

C = misterio (misterio (1, 2, 3));

cout << misterio ( A , B ) ;

B = misterio ( 8 ) ;

A = B + misterio( A, B, C));

cout << misterio ( 1 , , 9 ) ;

cout << misterio ( A , B , C ) ;

F = misterio ( misterio (1,2,3), misterio(4,5,6), misterio(7,8,9) );

Función 2: void otro_misterio ( double d, char c ) ;

Marque con una cruz las llamadas incorrectas:

cout << otro_misterio ( 5.15, „a‟ );

otro_misterio ( 5.15, „a‟ );

A = otro_misterio ( 5.15, „a‟ );

otro_misterio ( (A * 22 + 1.7 ) / B , „$‟ );

otro_misterio (otro_misterio(5.15, „a‟ ) );

2. Realiza el análisis, diseño e implementación de un programa que lea como un número

entero, la fecha de nacimiento en el formato aaaammdd y calcule el número mágico de la

persona.

El número mágico de una persona puede considerarse como la suma de los dígitos de su día de nacimiento y repitiendo el proceso hasta que la suma de los dígitos dé como resultado un

número menor a 10.

Ejemplo: Si la persona nació el 14 de junio de 1995, la entrada que se daría al programa es 19950614 y su número mágico se calcularía de la siguiente manera: 1 + 9 + 9 + 5 + 0 + 6 + 1 + 4 = 35 3 + 5 = 8

Restricción: El programa debe contener al menos una función que reciba como parámetro un número de más de 1 dígito y regrese la suma de sus dígitos.

1. En los siguientes incisos indica con qué valor se inicializa cada elemento del arreglo. Si el

elemento no se ha inicializado y sólo contiene un valor que no es predecible, indícalo

colocando una X en su casilla.

Page 36: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

a. int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

for (int i=0; i< 10; i = i + 2)

{

a[i] = a[i] + 2;

}

a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

b. double c[7];

for (int i=0; i < 7; i+=3)

{

c[i] = i;

}

c[0] c[1] c[2] c[3] c[4] c[5] c[6]

c. int c[] = {1, 2, 3, 4, 5, 6, 7};

for (int i=6; i > 0; i--)

{

c[i] = c[i-1];

}

c[0] c[1] c[2] c[3] c[4] c[5] c[6]

2. Realiza el análisis, diseño e implementación de un programa que lea 10 valores enteros

positivos o negativos en el rango del 1 al 10 y posteriormente para cada número dado,

desplegar en renglones consecutivos la cantidad en asteriscos que representa.

Page 37: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Ejemplo:

Proporcione 10 números: Número[ 1] : 10 Número[ 2] : -10 Número[ 3] : -8 Número[ 4] : 1 Número[ 5] : 6 Número[ 6] : -5 Número[ 7] : 5 Número[ 8] : 3 Número[ 9] : -2 Número[10] : 7

| * * * * * * * * * *

* * * * * * * * * * |

* * * * * * * * |

| *

| * * * * * *

* * * * * |

| * * * * *

| * * *

* * |

| * * * * * * *

Restricción:

El programa debe contener al menos dos funciones una para leer los números y almacenarlos en un arreglo unidimensional y otra u otras para desplegar la línea de asteriscos.

3. Realiza el análisis, diseño e implementación de un programa que sea útil para comparar

dos listas de enteros. El programa debe determinar si las listas son o no son iguales.

Considera que dos listas de números son iguales si tienen los mismos elementos y éstos

se encuentran en el mismo orden. No se sabe con anticipación cuántos valores contendrá

el arreglo, lo único que se sabe es que no son más de 20.

Page 38: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Ejemplo 1:

¿Cuántos elementos tienen los arreglos? 5 Teclea los valores del primer arreglo: 1 3 5 7 9 Teclea los valores del segundo arreglo: 1 3 5 7 9 Ambos arreglos son iguales.

Ejemplo 2: ¿Cuántos elementos tienen los arreglos? 5 Teclea los valores del primer arreglo: 1 3 5 7 9 Teclea los valores del segundo arreglo: 9 7 5 3 1 Ambos arreglos son diferentes.

Restricción: El programa debe contener al menos dos funciones una para verificar si los arreglos son o no iguales y otra para leer los valores del arreglo.

Realiza el análisis, diseño e implementación de un programa que lea dos conjuntos de valores enteros positivos (A y B), calcule y despliegue:

A unión B

A intersección B

A – B

Se sabe que los conjuntos no tendrán más de 20 valores enteros.

Ejemplo:

¿Tamaño del conjunto A? 5 Teclea los valores del conjunto A: 1: 2 2: 4 3: 6 4: 8 5: 10 ¿Tamaño del conjunto B? 4 Teclea los valores del conjunto B: 1: 4 2: 7 3: 8 4: 9 A unión B: 2 4 6 8 10 7 9 A intersección B: 4 8 A – B: 2 6 10

Realiza los siguientes ejercicios sobre el uso de arreglos bidimensionales.

1. Escriba en las áreas grises, el valor que le corresponde a cada una de las posiciones del

arreglo bidimensional declarado como: int valores [4][6];

Page 39: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

10 7 -3 7 12 5

12 80 15 -4 -1 0

3 9 51 11 0 2

-2 -7 17 2 -1 2

2. Contesta las siguientes preguntas en relación a la siguiente declaración:

int arr [3][2] = { {1, 2}, {3, 4}, {5, 6} };

A. ¿Cuántos renglones tiene la variable arr? _____________ B. ¿Cuántas columnas tiene la variable arr? _____________ C. ¿Qué número se encuentra en la casilla arr[1][1] ? _______________ D. ¿En qué casilla se encuentra el número 6? _______________

3. En cada inciso indique con qué valor se inicializa cada elemento del arreglo. Si el

elemento no se ha inicializado y sólo contiene un valor que no es predecible, indíquelo

colocando una X en su casilla.

inti arreglo[2][4] = { {1, 2 , 3, 4}, {5, 6, 7, 8} } ;

int arreglo [2, 4] ;

for ( int r = 0 ; r < 2 ; r++ )

{

for ( int c = 0 ; c < 4; c++ )

{

arreglo[r, c] = 2*r + c ;

}

}

int arreglo [4, 2] ;

for ( int r = 0 ; r < 2 ; r++ )

{

for ( int c = 0 ; c < 4; c++ )

Page 40: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

{

arreglo[r, c] = c;

}

}

int arreglo [3, 3] ;

for ( int m = 0 ; m < 3 ; m++ )

{

arreglo[m, m] = 1;

}

4. Realiza el análisis, diseño e implementación de un programa que cree y despliegue una

matriz cuadrada del tamaño que especifique el usuario la cual esté llena de nueves,

excepto por los elementos de ambas diagonales los cuales deben ser unos. Puedes

considerar que la matriz no tendrá una dimensión superior a 15.

Ejemplo: Cuál es la dimensión de la matriz? 10

La matriz resultante es: 1 9 9 9 9 9 9 9 9 1 9 1 9 9 9 9 9 9 1 9 9 9 1 9 9 9 9 1 9 9 9 9 9 1 9 9 1 9 9 9 9 9 9 9 1 1 9 9 9 9 9 9 9 9 1 1 9 9 9 9 9 9 9 1 9 9 1 9 9 9 9 9 1 9 9 9 9 1 9 9 9 1 9 9 9 9 9 9 1 9 1 9 9 9 9 9 9 9 9 1

5. Realiza el análisis, diseño e implementación de un programa que llene con valores al azar

(entre 0 y 9 inclusive) un arreglo bidimensional cuyas dimensiones son dadas por el

usuario. El programa debe:

a. Calcular y desplegar la cantidad de ceros que tiene el arreglo.

b. Calcular y desplegar la cantidad de ceros que tiene cada renglón del arreglo.

c. Calcular y desplegar la cantidad de ceros que tenga cada una de las columnas del

arreglo.

Page 41: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Puedes considerar que la matriz no tendrá una dimensión superior a 15.

Ejemplo: Cantidad de renglones del arreglo? 3 Cantidad de columnas del arreglo? 5

El arreglo que se generó es el siguiente: 1 4 5 8 0 2 0 9 7 0 3 6 2 8 9

Cantidad de ceros: 3 Cantidad de ceros por renglón: 1 2 0 Cantidad de ceros por columna: 0 1 0 0 2

Realiza los siguientes ejercicios sobre arreglos bidimensionales.

1. Contesta las siguientes preguntas en relación a la siguiente declaración:

int arr [3][4] = { {1, 2, 7, 0}, {3, 4, 8, 10}, {5, 6, 9, 11} };

A. ¿Cuántos renglones tiene la variable arr? _____________ B. ¿Cuántas columnas tiene la variable arr? _____________ C. ¿Qué número se encuentra en la casilla arr[2][2] ? _______________ D. ¿En qué casilla se encuentra el número 8? _______________

2. En cada inciso indique con qué valor se inicializa cada elemento del arreglo. Si el

elemento no se ha inicializado y sólo contiene basura (un valor que no es predecible),

indíquelo colocando una X en su casilla.

int arreglo [3, 4] ;

for ( int c = 0 ; c < 4; c++ )

{

arreglo[1, c ] = 2;

}

int arreglo [4, 3] ;

for ( int r = 0 ; r < 4 ; r++ )

{

arreglo[r, 2] = 2;

}

Page 42: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

int arreglo [3, 3] ;

for ( int m = 0 ; m < 3 ; m++ )

{

arreglo[m, 3-m - 1] = 1;

}

3. Realiza el análisis, diseño e implementación de un programa que dado el orden de un

cuadrado mágico y los valores de cada una de las celdas indique si el cuadrado mágico es

correcto. Puedes considerar que el valor de “n” no será superior a 10.

Un cuadrado mágico es una cuadrícula de 3 x 3, de 4 x 4, de 5 x 5, o en general, de n x n, en la que se acomodan ciertos números que cumplen que la suma de cualquier renglón y la suma de cualquier columna y la suma de cualquiera de las dos diagonales principales es siempre la misma.

Si el cuadrado es de 3 x 3 (orden 3), entonces tendrá 9 casillas y los números que se acomodan en él son todos los números del 1 al 9. Si el cuadrado es de 4 x 4 (orden 4), entonces tendrá 16 casillas y los números que se acomodan en él son del 1 al 16.

En general, si el cuadrado es de n x n, entonces tendrá “n” cuadrada casillas y los números que acomodaremos en él serán del 1 a n².

La suma resultante se denomina constante mágica. Una forma de calcular la constante mágica es empleando la siguiente fórmula: n (n² +1) / 2

Ejemplo: Para el siguiente cuadrado mágico la constante mágica es 15 → 3 (9 +1) / 2 = 15

8 3 4

1 5 9

6 7 2

Ejemplo:

n? 3 8 3 4 1 5 9 6 7 2 Los valores SI corresponden a un cuadrado mágico

n? 4

7 12 1 14 2 13 8 11 16 3 10 5

Page 43: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

9 6 15 4 Los valores SI corresponden a un cuadrado mágico

n? 3 9 3 4 1 5 8 6 7 2 Los valores NO corresponden a un cuadrado mágico

n? 0 Fin del programa

Requisito: La aplicación debe contener funciones que en forma general validen la constante mágica de cualquier renglón, columna o diagonal para cualquier tamaño de cuadrado.

1. Analiza el siguiente problema:

Se necesita un programa que pueda calcular indicadores sobre los jugadores de futbol más destacados. El programa debe ser capaz de leer la cantidad de goles que ha metido cada uno

de los 5 jugadores seleccionados en los últimos 6 meses

Ejemplo de datos:

Mes 1 Mes 2 Mes 3 Mes 4 Mes 5 Mes 6

J1 2 3 2 3 2 3

J2 1 5 4 1 0 3

J3 6 0 0 2 3 1

J4 4 4 4 4 0 0

J5 1 6 6 0 0 4

2. Realiza el análisis, diseño e implementación de un programa debe generar un reporte en

un archivo de texto que contenga la siguiente información:

a. El jugador que ha metido más goles.

b. El jugador que ha metido menos goles.

c. El mes en el que se anotaron más goles.

d. El mes en el que se anotaron más goles.

e. Los jugadores que no metieron goles en algún mes.

f. El mes donde hubo más jugadores que no metieron goles.

Page 44: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

Resuelve un problema en el que se involucren arreglos de datos y archivos, presentando el algoritmo, diagrama de flujo con estructura modular y su codificación en un lenguaje computacional de última generación.

Instrucciones para realizar evidencia:

1. Resuelve el siguiente problema:

En las elecciones realizadas para la región del municipio de Cancún se tuvieron los

siguientes resultados de votos:

Distrito 1 2 3 4 5

Juan Montes 194 180 221 432 820

Pedro Zapata 48 20 90 50 61

Ana Martínez 206 320 140 821 946

Rogelio Guerra 45 16 20 14 18

2. Para la definición del programa debes considerar la siguiente información, que se obtuvo

de la región de Cancún con base en sus necesidades:

a. Los datos de los votos por distrito para cada candidato deben ser leídos de un archivo.

b. Se debe producir un reporte de resultados que se imprima en un archivo y que

contenga:

i. La tabla de resultados debe estar impresa y con los títulos incluidas.

ii. Se debe mostrar el cálculo del número total de votos recibidos por cada candidato

y el porcentaje del total de votos emitidos.

iii. Se debe mostrar el candidato más votado.

iv. Si alguno de los candidatos recibe más del 50% de los votos, imprimir un mensaje

en el reporte que declare al ganador de las elecciones.

v. Si ningún candidato recibió más del 50% de los votos, se debe imprimir el nombre

de los 2 candidatos más votados, que serán los que pasarán a la segunda ronda.

3. Una vez que se tiene la información y especificaciones para desarrollar el programa, la

solución deberá contener lo siguiente:

a. Análisis: examina los requerimientos y genera una lista de todas las necesidades que

identifiques del sistema. Define las entradas, procesos y salidas.

b. Diseño: plantea el algoritmo de solución general del programa y los algoritmos para la

lógica de cada uno de los indicadores que pide el reporte. Deberás tomar en cuenta el

diseño modular para dividir la solución en subpartes a través del uso de funciones.

Genera también el diseño de casos de prueba (mínimo 5) que te permitan probar

todos los escenarios que pide el programa; no olvides tomar en cuenta los casos de

prueba en caso de que algún archivo no exista, o que el formato de entrada sea el

incorrecto (cada prueba deberá contener un identificador, la descripción de la prueba,

las entradas y las salidas esperadas).

Page 45: Fundamentos de programacion ss14

Servicio de asesoría y resolución de ejercicios [email protected]

www.maestronline.com

c. Codificación: programa la solución usando C++, incluye el comentario de encabezado

de cada una de las funciones, en donde se muestre el objetivo de la función, la

definición de parámetros y los retornos (si aplican). El programa deberá realizarse

aplicando arreglos y archivos.

d. Pruebas: ejecuta las pruebas y documenta la evidencia de cada caso de prueba.

Genera el reporte de la ejecución de pruebas.

Recuerda que el programa debe usar las mejores prácticas de documentación e indentación de código.

4. Elabora un reporte con el procedimiento que seguiste para desarrollar el software y los

problemas que presentaste para lograr el correcto funcionamiento. No olvides incluir la

justificación de tu diseño, los algoritmos de funciones, el algoritmo general y el proyecto en

DevC++.