Sunteți pe pagina 1din 18

Laboratorio 02: Ejercicios de programacin en C

Solicitado: Ejercicios 02: Soluciones estructuradas en C

M. en C. Edgardo Adrin Franco Martnez


http://www.eafranco.com
edfrancom@ipn.mx
@edfrancom

edgardoadrianfrancom

Estructuras de datos (Prof. Edgardo A. Franco)

Problema 01

Planteamiento
Diagrama de flujo

Problema 02

Planteamiento
Diagrama de flujo

Problema 03

Planteamiento
Pseudocdigo

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Contenido

Problema 04

Planteamiento
Pseudocdigo

Simulando el tiempo
Ejercicios 02: Soluciones estructuradas en C

Se necesita realizar un programa que calcule el sueldo


neto de un trabajador, el programa recibir el sueldo base
del empleado y le descontar el impuesto sobre la renta
segn la siguiente tabla:

Rangos del sueldo base

Descuento de impuesto

$0.00 - $1000.00

5% del sueldo base

$1001.00 - $5000.00

15% del sueldo base

>$5000.00

30% del sueldo base

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 01

Diagrama de flujo
que da solucin al
problema 01

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 01 (Diagrama de flujo)

Dados tres nmeros enteros de entrada a, b y c,


mostrarlos a la salida ordenados de forma descendente.
E.g. si la entrada es:
a=6, b=5, y c=90;
La salida ser: 90, 6, 5.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 02

E.g. si la entrada es:


a=60, b=50, y c=9;
La salida ser: 60, 50, 9.
5

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Diagrama de flujo
que da solucin al
problema 02

Realizar un programa que calcule el cubo de una serie de


nmeros positivos introducidos uno a uno, si se introduce
un nmero negativo se deber terminar el programa.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 03

procedimiento Cubo
numeroEntrada()
mientras numero>=0 hacer
cubo=numero*numero*numero
Salida() cubo
numeroEntrada()
fin mientras
fin procedimiento

Pseudocdigo que
da solucin al
problema 03

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 03 (Pseudocdigo)

Realizar un programa que muestre la serie de Fibonacci


hasta el termino n, el cual es recibido al inicio y debe ser
mayor a 2. Al mostrar la serie se deber mostrar termino a
termino a la salida con un retraso de 0.5 segundos.
Recordar que los dos primeros nmeros de la serie son 0 y 1.
El resto se calcula como la suma de los dos nmeros
inmediatos que le preceden.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 04

E.g. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,


9

procedimiento Fibonacci
repetir
nEntrada()
hasta que (n>2)
primero 0
Salida() primero
EsperarMedioSegundo()
segundo 1
Salida() segundo
EsperarMedioSegundo()
elemento 3
repetir
siguiente primero+segundo
Salida() siguiente
EsperarMedioSegundo()
primero segundo
segundo siguiente
elemento elemento+1
hasta que(elemento>n)
fin procedimiento

Pseudocdigo que
da solucin al
problema 04

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 04 (Pseudocdigo)

10

El lenguaje ANSI C no incluye libreras estndar con


funciones para retrasos de tiempo.
El compilador MinGW actualmente usado, incluye una
librera no estndar llamada <windows.h>, esta incluye a
la funcin Sleep, la cual recibe como parmetro el nmero
de milisegundos que el programa duerme antes de
continuar su ejecucin.
Si se desea obtener los mismo resultados en Linux se
deber de utilizar la funcin sleep(), sin la librera
<windows.h>.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Simulando el tiempo

11

El siguiente cdigo solo funciona bajo Windows y


compilando con MinGW.
<windows.h> no pertenece a la biblioteca estndar de C.
#include<stdio.h>
#include<windows.h>
int main(void)
{
short i=0;
while(i<100)
{
printf("\n%d",i);
Sleep(500); //Esperar 500 milisegundos
i++;
}
}

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Simulando el tiempo

12

Problema 01: Escribir un programa que determine si un ao es


bisiesto. Una ao es bisiesto si el mltiplo de 4.

(E.g. 1984. Los aos mltiplos de 100 no son bisiestos, salvo si ellos son
tambin mltiplos de 400 (2000 es bisiesto, 1800 no lo es).

Problema 02: Realizar un programa que convierta una cantidad de


metros dada en su equivalente en Pies, Yardas y Millas.
Problema 03: Realizar un programa, que calcule la mxima rea
de un terreno rectangular de lados 100-2x y x respectivamente,
para valores de x entre 10 y 300.
Problema 04: Realizar un programa que reciba un nmero de
segundos mayor a 30 y menor a 120, durante el nmero de
segundos dado el programa estar mostrando la palabra "hola"
cada 2 segundos, mostrando la palabra "soando" cada 3
segundos y mostrando los segundos restantes cada 5 segundos.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Ejercicios 02: Soluciones estructuradas en C

13

Problema 06: Realizar un programa que convierta un nmero


dado de segundos en el equivalente de minutos y segundos.
Problema 07: Realizar un programa para calcular la longitud de la
circunferencia y el rea de un crculo, para un radio introducido.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 05: Realizar un temporizador capaz de recibir al inicio


minutos, segundos y centsimas de segundo, una vez dados estos
valores deber de mostrarse en pantalla su valor hasta llegar a
cero. Al llegar a cero deber mostrar el mensaje fin del tiempo
as como sonar una alarma que indique que se a acabado el
tiempo y posteriormente terminar su ejecucin.

Problema 08: Realizar un programa que obtenga 100 trminos de


una serie numrica de dos en dos a partir de un nmero dado;
deber de haber un tiempo de retraso de 1 segundo entre cada
numero de la serie a la salida.
Problema 09: Realizar un programa que imprima la suma de los
100 primeros nmeros a partir de un nmero dado.

14

Problema 11: Realizar un programa que calcule el factorial de un nmero


dado.

Problema 12 Realizar un programa para calcular la suma de los nmeros


primos menores o iguales a un numero dado.
Problema 13: Realizar un programa para calcular los grados F y R a
partir de un nmero de C dado.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 10: Realizar un programa que reciba un nmero entero mayor


a 0 y menor a 10. El nmero recibido, ser el nmero de minutos que se
deber contar en forma regresiva hasta llegar a 0 segundos, se debe
mostrar en todo momento los minutos y segundos faltantes para llegar a
cero. Finalmente cuando el contador regresivo llegue a cero segundos, se
debe mostrar el mensaje Se termin el tiempo.

Problema 14: Realizar un programa capaz de saludar al usuario un


nmero de veces dado.

Problema 15: Realizar un programa capaz de mostrar la serie 1, 1, 2, 4, 7,


11, 18, 36, 65,..., hasta un elemento n dado.
Los dos primeros trminos son arbitrarios (el segundo impar). A partir del tercero, si el trmino anterior es
impar, se obtiene sumando los dos trminos anteriores; si es par, sumando los tres trminos anteriores.

15

Problema 17: Realizar un programa que al recibir un nmero decimal obtenga


su representacin en hexadecimal.
Problema 18: Realizar un programa que al recibir un nmero decimal obtenga
su representacin en binario.
Problema 19: Realizar un programa capaz de recibir un nmero y determinar
si este es primo no.
Problema 20: Realizar un programa capaz de recibir las horas trabajadas de
un empleado y la paga por hora para calcular el sueldo semanal de un
empleado . Cuando la horas de trabajo exceden de 40 se consideran horas
extra; las primeras 8 se pagan al doble; si las horas extra exceden de 8 se
pagan las primeras 8 al doble de lo que se pagan las horas normales y el resto
al triple.
Problema 21: Realizar un programa capaz de leer una lista de calificaciones
(0.00-10.00) y calcular el promedio, el nmero de aprobados y el nmero de
reprobados; el final de la lista de calificaciones ser si se introduce un nmero
menor a cero.os trminos son arbitrarios (el segundo impar). A partir del tercero, si el
trmino anterior es impar, se obtiene sumando los dos trminos anteriores; si es par,
sumando los tres trminos anteriores.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 16: Realizar un programa que reciba un nmero x a partir del cual
2
calcula: +10
= .

16

Problema 23: Realizar un programa que calcule la distancia entre


dos puntos de un plano 2D.

Problema 24: Realizar un programa que calcule la distancia entre


dos puntos de un plano 3D.
Problema 25: Se necesita crear un programa que le permita a una
mquina expendedora devolver el cambio con las 3
denominaciones de monedas posibles con las que cuenta. Al inicio
del programa se debern las cantidades de monedas que tiene de
$10, $5, $2 y $1. Posteriormente el programa estar recibiendo el
cambio a devolver hasta que se llegue a un Error.
Si el cambio a devolver no se puede completar se deber de mostrar
como salida Error y el programa termina.
Los dos primeros trminos son arbitrarios (el segundo impar). A partir del tercero, si el trmino
anterior es impar, se obtiene sumando los dos trminos anteriores; si es par, sumando los tres
trminos anteriores.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Problema 22: Realizar un programa que muestre la multiplicacin


de los dos nmeros mayores de una serie de nmeros positivos,
suponiendo que los datos se leen uno a uno. Un valor de cero
como entrada indicar que se ha alcanzado el final de la serie de
nmeros positivos.

17

Realizar para cada uno de los problemas anteriores una solucin estructurada,
construyendo su diagrama de flujo y pseudocdigo, finalmente codifique su
solucin en un programa debidamente documentado en lenguaje C.
Observaciones
1. Reportar el texto del ejercicio, su algoritmo en diagrama de flujo y pseudocdigo,
el cdigo en C (con colores) y las pruebas de sus programas.
2. Incluir al reporte las capturas de pantalla y explicaciones de funcionamiento de
cada programa construido.
3. El reporte es individual y tiene portada, ndice y encabezados de pagina con
nmero de pagina , titulo y nombre del alumno.
4. Enviar va Web en un archivo comprimido (ZIP, RAR o TAR), reporte y cdigos de
C de cada problema.

Algoritmia y programacin estructurada


Laboratorio 02: Ejercicios de programacin en C
Prof. Edgardo Adrin Franco Martnez

Ejercicios 02: Soluciones estructuradas en C

*Se entregar antes del da Mircoles 30 de Marzo de 2016 (23:59:59 hora


limite).

Grupo

Contrasea

1CV8

algoritmia1cv8

18

S-ar putea să vă placă și