• No se han encontrado resultados

Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros EJERCICIOS A PROGRAMAR

N/A
N/A
Protected

Academic year: 2021

Share "Laboratorio 4 Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros EJERCICIOS A PROGRAMAR"

Copied!
5
0
0

Texto completo

(1)

Laboratorio 4

Tema 6. Procedimientos: Acciones, Funciones y Pase de Parámetros

EJERCICIOS A PROGRAMAR

En este laboratorio debes desarrollar programas capaces de usar acciones, funciones y pase de parámetros utilizando lenguaje C++, creando programas que compilen y corran en el entorno Linux. Ejercicios: todos deben agregarse en el mismo archivo .cpp, el cual debe compilar

NOTA: en todos los ejercicios debe solicitarse los valores de entrada al usuario, leerlos y realizar las validaciones necesarias en los datos de entrada.

1. Adapta el programa utilizado en el laboratorio 3 de manera de llamar en la Acción Principal a una acción llamada calcularSerie(n, x, z, res) que recibe por parámetro los valores de tipo entero n, x, z dados por el usuario e informa el resultado en la variable res.

Considera en tu solución que el valor de n puede ser cualquier valor positivo, mientras que el valor de z puede ser cualquier valor en el rango [2..5] y el valor de x puede estar entre [0..4]. La sumatoria de la parte 1 debe resolverse utilizando el equivalente en C++ del ciclo Mientras. En parte 2, la productoria debe resolverse con el ciclo Para. La sumatoria en la parte 3 debe resolverse con un ciclo en C++ equivalente al Repetir.

El factorial debe calcularse llamando a la función calFactorial(x) desde la acción calcularSerie(n, x, z, res) donde el factorial de i o i! = i * (i-1)! con 1! = 1 y 0! = 1.

Las validaciones sobre los datos de entrada se realizan en la Acción Principal, incluyendo la posibilidad de error por división entre cero; el resultado de la serie res también se debe escribir esta acción Principal.

)

/

*

(

*

!

!

*

!

*

2

/

1

1

1

3

1

2

x

z

n

i

z

j

x

z

x

i

n

i

n

i

i

j

 

parte 1 parte 2 parte 3

2. Construya una acción que solicite edades al usuario, las valide, calcule el promedio de edades, indique cuántas son mayores a un valor x pasado por parámetro y el porcentaje de estas edades sobre el total. El usuario indicará en la Acción Principal cuántas personas participan en el estudio. Los resultados deben ser informados (escritos) en la Acción Principal.

3. Realice una acción llamada dibujar(entero ast, tipo) que dibuje por pantalla una figura compuesta de asteriscos * , la acción debe recibir un número entero y dibujar (o escribir internamente) una figura según tres posibles patrones.

(2)

En la acción Principal se solicita el tamaño n de la base de la figura y el tipo (1, 2 o 3), se validan los datos de entrada y se llama a la acción dibujar(n, tipo). El valor de n es suministrado por el usuario y debe estar entre 3 y 8.

Ejemplo para dibujar(4, 1): * * * * * * * * * * * * *

Ejemplo para dibujar(5, 2): * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Ejemplo para dibujar(3, 3): *

* *

* * * * *

*

4. Escriba una función llamada millasAKilometros, que convierta una distancia en millas a kilómetros (1milla = 1.60935km). Esta acción recibirá como parámetros: el nombre de la ciudad origen, el nombre de la ciudad destino y la distancia en millas entre ellas y debe retornar la distancia entre las ciudades en kilómetros.

Desarrolle además una Acción Principal en donde se invoque a la función millasAKilometros para convertir e informar la distancia en kilómetros de un conjunto de ciudades. La cantidad n de pares de ciudades a procesar se le pregunta al usuario en la Acción Principal.

Entrada Salida

¿Cuál es la cantidad de pares de ciudades a procesar? (se lee el valor n dado por el usuario) CiudadA CiudadB 332 Entre la CiudadA y la CiudadB hay: 534.30Km CiudadC CiudadD 150 Entre la CiudadC y la CiudadD hay: 241.40Km CiudadE CiudadF 9 Entre la CiudadE y la CiudadF hay: 14.484Km CiudadG CiudadG 12 Entre la CiudadG y la CiudadH hay: 19.312Km

5. Realice una solución algorítmica que calcule e informe el resultado de la ecuación c(a), para valores enteros a y n solicitados al usuario y validados por usted:

c(a) = ∑(i=0, n) ( f(i*a)^i / i! )

dónde: f(k)= k*k! y n! = n*(n-1)! con 1!=1 y 0!=1 Debe utilizar llamadas a acciones o funciones con parámetros para calcular f(k) y n!

6. Defina una acción llamada TFloyd(n, op) la cual para un entero n dado por el usuario, muestre el Triángulo de Floyd o el Triángulo de Floyd Invertido. El Triángulo de Floyd es un triángulo rectángulo formado con números naturales. Para crearlo, se crea una secuencia de enteros consecutivos que comienza con un 1 y se continúa la secuencia de manera que cada línea contenga un número más que la anterior. El Triángulo de Floyd Invertido muestra también un triángulo que trabaja con valores consecutivos cambiando el patrón. Ejemplos:

(3)

TFloyd(5, ‘n’) debe escribir un Triángulo de Floyd normal, con el patrón:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

TFloyd(5, ‘i’) debe escribir un Triángulo de Floyd invertido, con el patrón:

1 8 2 7 3 6 4 5 5 4 6 3 7 2 8 1

Cuestionario Laboratorio 4

Tema 6. Procedimientos

1. ¿Cuándo es más recomendable escribir los valores dentro de la acción o función que los calcula, y cuándo se recomienda informarlos por parámetro o por retorno para escribirlos en la Acción Principal?

1.a. ¿Para qué se utiliza el paradigma de Programación Basado en Procedimientos?

1.b. Permite resolver problemas complejos descomponiéndolos en partes menos complejas 1.c. Aumenta la eficacia de los algoritmos

1.d. Apoya la modularización y reutilización del código 1.e. Todas las anteriores

1.f. Ninguna de las anteriores

Explique brevemente la respuesta seleccionada

2. ¿En una función en C++ se puede incluir más de una sentencia return? Justifique su respuesta 2.1. Verdadero

2.2. Falso

3. ¿Cómo se representa el pase de parámetros por referencia en C++? 3.1. No existe, C++ sólo utiliza el pase de parámetros por valor

3.2. Existe, pero no requiere ningún símbolo especial, es el pase de parámetros por defecto 3.3. Existe, se utiliza el carácter & para indicar las variables pasadas por referencia en la llamada

al procedimiento

3.4. Existe, se utiliza el carácter & para indicar las variables pasadas por referencia en la declaración formal o prototipo del procedimiento.

(4)

RESTRICCIONES

El laboratorio debe ser desarrollado en C++, bajo el sistema operativo Ubuntu. Sugerimos la utilización de geany como ambiente de desarrollo en Linux y en Windows sugerimos el uso de Dev C++.

Se debe usar lectura y escritura estándar. Se permite usar tipos de datos básicos, operaciones aritméticas, estructuras de control condicional, iterativas y procedimientos. Se permite el uso de elementos de la Librería Estándar de C++ (stdio, iostream, string, cmath, math, entre otras).

Cualquier copia será penalizada para todos los involucrados con la nota de CERO (0) puntos, además del reporte respectivo al Profesor de la Sección y a la Coordinadora de la Materia.

 Se debe seguir estrictamente el formato de entrada de datos y mensajes de salida cuando se indique en los enunciados, de lo contrario esto repercutirá en su nota.

Detalles de entrada: Escritura y lectura estándar. Detalles de la salida

Se escribirá por salida estándar una cadena o string que representa la respuesta a cada ejercicio. ENTREGA DEL LABORATORIO

El laboratorio es de realización individual y la entrega del mismo será hasta viernes 07 de octubre de 2016 a las 11:00 p.m, pero puedes enviarlo antes.

 Se debe enviar el código del laboratorio al correo-e del preparador de tu sección de laboratorio (consultar http://www.compuefectiva.com/algoritmosyprogramacion/grupodocente.html) y copiar también al correo [email protected]

El asunto del correo-e debe cumplir con el siguiente formato :

AyP_Sección_

Lab4

_Cédula por ejemplo: AyP_C2_

Lab4

_12345678

 El archivo con la solución a enviar por correo-e (.cpp) y el archivo con las respuestas al cuestionario (.pdf) debe guardarse respetando el siguiente formato para su nombre, sin usar acentos o ñ:

Lab4_

Seccion_NombreyApellido_Cedula.cpp y .pdf

por ejemplo, para María Angélica Peñaloza:

Lab4

_C2_MariaPenaloza_12345678.cpp (código programa)

Lab4

_C2_MariaPenaloza_12345678.pdf (cuestionario)

 Archivos de laboratorios o proyectos que no cumplan con este formato de nombre NO SERÁN CORREGIDOS. No se aceptarán envíos posteriores con el nombre corregido.

NO SE ACEPTARÁN ENVÍOS posteriores a la fecha y hora indicada, correos que no respeten el formato del asunto y del nombre de archivo, o archivos enviados a un correo-e que no sea el del preparador correspondiente.

(5)

CONSULTAS:

 Aprovechar la sección semanal de consultas para aclarar con tu preparador dudas sobre el laboratorio o aspectos de programación en C++.

 En el sitio web de la materia están publicados los horarios en que los Preparadores darán consultas de laboratorio en Sala de Micros.

¡YO HAGO MIS PROYECTOS Y LABORATORIOS!

Los proyectos y laboratorios son actividades de investigación, por ello los alumnos deben

iniciar el análisis, diseño y desarrollo de la solución con antelación a la fecha de entrega.

No es requisito que la materia o las herramientas a usar en la solución de los proyectos o

laboratorios hayan sido vistas en clases. El alumno debe investigar en manuales y

tutoriales de lenguaje C++.

¡YO QUIERO FORMARME COMO UN EXCELENTE PROGRAMADOR@!

Referencias

Documento similar

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)