Proyecto de progra..

32
Docente: José castro medina Fecha: Integrantes:

Transcript of Proyecto de progra..

Docente: José castro medina

Fecha:

Integrantes:

CASO ESTUDIO I: Cambio de Monedas

Especificaciones

Crear un Algoritmo que permita al usuario entrar como dato una cantidad (cant) menor de Bs 10 y mostrar en pantalla el número mínimo de monedas para efectuar el cambio.

El cambio puede ser efectuado en monedas deBs 0.10, Bs 0.20, Bs 0.50, Bs 1.00, Bs 2.00y Bs 5.00.

Ejemplo de Validación

Si por ejemplo el usuario entra como dato el valor de 9.80 debe mostrarse como resultado, lo siguiente:

Monedas de Bs 5.00 = 1

Monedas de Bs 2.00 = 2

Monedas de Bs 1.00 = 0

Monedas de Bs 0.50 = 1

Monedas de Bs 0.20 = 1

Monedas de Bs 0.10 = 1

Ya que los mismo da un Total = Bs 9.80 siendo la mínima cantidad de monedas para el cambio

Pista Utilice estructuras repetitivas o bucles donde proceda

Preguntas de Control

1.Escriba el Seudocódigo (referenciado aC#.Net) para el cálculo del promedio delos números desde 2 a 99 con unincremento de la variable de control de+3, considerando los bucles:a) hacer

{…}

mientras(exp)

b) mientras

{ … }

c) para (vc = vi, vc<=vf, inc){ … }

2.Determinar si las sentencias que siguenson V o F. En caso de ser Falsas explicarpor qué? Las variables que actúan comoacumuladores solo pueden ser de tiponuméricas enteras

Un bucle hacer { … } mientras(exp)podría no ejecutarse nunca.

La sentencia intSum = intSum + 1utiliza la variable intSum como unacumulador.

El valor ASCII de los caracteres en mayúsculas es el mismo que el de los caracteres en minúsculas.

Notas Para este caso de estudio deben tenerse en cuenta las consideraciones siguientes:

Planteamiento del algoritmo de los pasosa seguir en la resolución del problemaplanteado.

Construcción de un algoritmo mediante unDiagrama de Flujo.

Seudocódigo en C#, incluyendo comentariosal mismo.

Validación del algoritmo. Prueba deescritorio.

Entrega de la documentación del caso enformato impreso y digital

Respuestas a las preguntas de control

Planteamiento del algoritmo de los pasos a seguir en la resolución del problema planteado.

1.-Análisis:

Datos: Cantidad (Cant)

Resultado: Mostrar en pantalla el cambio el numero minino de monedas para efectuar el cambio.

Formula: // se emplea la misma formula para todas las monedas

M5=cant/50 // el doy a M5 la cantidad de monedas que uso

cant=cant%50 // le resto a cant la moneda ya usada

Lógica: -Empleo de seis contadores (M5, M2, M1, M0, 50, M0,20, M0, 10)

-Empleo de 1 condiciones: cant>0&&cant<10

Significado de variables:

M5: Contador de Monedas 5

M2: Contador de Monedas 2

M1: Contador de Monedas 1

M0,50: Contador de Monedas 0.50

M0,20: Contador de Monedas 0.20

M0,10: Contador de Monedas 0.10

Cant: Cantidad

Construcción de un algoritmo mediante un Diagrama de Flujo.

Inicio

Cant

M5← 0

M2← 0

M1 ← 0

M0.5 ← 0

M0.2 ← 0

cant>0&&cant<10

No Si

Cant ← cant

M5 ← cant

Cant ← cant

M2 ← cant

Cant ← cant

M1 ← cant

Cant ← cant

M0,50 ←

Cant ← cant

M0,20 ←

M0.2 ← 0

M0.1 ← 0

Cant ← cant

M0,10←

“Menor a 10bs”

M5,M2,M1,M0,50,ioM0,20,M010

Fin

Seudocódigo en C#, incluyendo comentarios al mismo.

{

Cant =leer(dato)

M5= Ø

M2= Ø

M1= Ø

M0,50

M0,20

M0,10

Si (cant > 0 && cant < 10) //si el dato introducido mediante teclado

{ //sentencia del bucle finalize el bucle

Cant = cant * 10; //y muestra mensaje de error

M5=cant/50;

Cant = cant % 50;

M2 = cant / 20;

Cant = cant % 20;

M1 = cant / 10;

cant= cant % 10;

M0,50= cant / 5;

Cant = can t % 5;

M0,20 =cant /2;

Cant =cant % 2;

M010 = can t/ 1;

Mostrar (M5,M2,M1,M050,M020,M10)

}

sino

mostrar (“menores a 10bs”)

}

Validación del algoritmo. Pruebade escritorio.

CANT M5

M2

M1

M0,50

M0,20

M0, 10

8, 50

1 1 1 1 0 0

3, 50

0 1 1 1 0 0

1, 50

0 0 1 1 0 0

0, 50

0 0 0 1 0 0

0 0 0 0 0 0 0

6, 30

1

0

1

0 1 1

1, 30

0 0

1

0 1 1

0,30

0 0 0 0 1 1

0, 10

0

0

0 0 0 1

0

0

0

0

0

0

0

Preguntas de Control

1. Escriba el Seudocódigo (referenciado a C#.Net) para elcálculo del promedio de los números desde 2 a 99 con unincremento de la variable de control de +3, considerandolos bucles:

a) hacer{…}

Mientras (exp)

b) mientras{ … }

c) para (vc = vi, vc<=vf, inc){ … }

RESPUESTAS:

a) {

C = ØX = Øi = 2Hacer{C = C + i

X = X + 1i = i + 3}Mientras (i< 99)N = C / X

Mostrar (N) }

b) {C = ØX = Øi = 2Mientras (i< 99)

{C = C + iX = X + 1i = i + 3}N = C / XMostrar (N)}

c){

C = ØX = ØPara(i=2,i<=99,3)

{

C = c+iX = x+i}

N = C / XMostrar(N)

}

2. Determinar si las sentencias que siguen son V o F. Encaso de ser Falsas explicar

por qué?

Las variables que actúan como acumuladores solo puedenser de tipo numéricas enteras v

puede ser de número entero o real porque se suma la cantidad variables.

Un bucle hacer {…} mientras (exp) podría no ejecutarsenunca.F

la condicional al final obliga a que el bucle se ejecutepor lo menos UNA VEZ.

La sentencia intSum = intSum + 1 utiliza la variableintSum como un acumulador.v

se denomina contador cuando el valor que se suma a la variable es fijo.

El valor ASCII de los caracteres en mayúsculas es elmismo que el de los caracteres en minúsculas.F

porque todos los caracteres de un teclado sea mayúscula o minúscula vienen con diferentes valores.

CASO ESTUDIO II: Estadísticas Hospital

Especificaciones

En meses pasados se inauguró un nuevo hospital en la provincia de Ichilo, y se quiere crear un algoritmo para llevar una estadística según la atención dispensada enel hospital.

Los resultados (estadística) que la Administración quisiera llevar son los siguientes:

Promedio de pacientes atendidosmensualmente.

Recaudación mensual realizada porconcepto de consulta externa, sabiendoque el cobro es de Bs 10 por paciente.

Día del mes (día 5, día 15, etc) en quese atendieron más pacientes y cuantosfueron éstos.

Cuantas veces en el mes se atendieron másde 500 pacientes en un día.

Luego se quiere obtener las estadísticas mencionadas para un periodo de 30 días ya que se tienen la cantidad de pacientes que asistieron cada uno de esos días.

Ejemplo para 15 días

Si se tiene que la cantidad de pacientes por día fueron:

Día: 01 Pctes: 325; Día: 02 Pctes: 456;

Día: 03 Pctes: 528; Día: 04 Pctes: 509;

Día: 05 Pctes: 498; Día: 06 Pctes: 501;

Día: 07 Pctes: 475; Día: 08 Pctes: 345;

Día: 09 Pctes: 643; Día: 10 Pctes: 587;

Día: 11 Pctes: 654; Día: 12 Pctes: 400;

Día: 13 Pctes: 432; Día: 14 Pctes:

396;

Día: 15 Pctes: 385;

Entonces:

Promedio de pacientes= 475.6

Recaudación Mensual= 71340 Bs

Día del mes de mas pacientes atendidos= día11 con 654 pacientes

Veces de atención a mas de 500 pacientes = 6 días

Notas Para este caso de estudio deben tenerse en cuenta las consideraciones siguientes:

Planteamiento del algoritmo de los pasosa seguir en la resolución del problemaplanteado.

Construcción de un algoritmo mediante unDiagrama de Flujo.

Seudocódigo en C#, incluyendo comentariosal mismo.

Validación del algoritmo. Prueba deescritorio.

Entrega de la documentación del caso enformato impreso y digital

Respuestas a las preguntas de control

Planteamiento del algoritmo de los pasos a seguir en la resolución del problema planteado.

1.-Análisis:

Datos: Un periodo de 30 dias

Cantidad de pacientes por dia

El cobro de 10 bs. Por paciente,

Resultado: El promedio de paciente

Recaudación mensual

Día del mes con más pacientes atendidos

Las veces que se atendió a más de 500 pacientes

Formula: Sumador / Contador

R = sp * 10

Lógica: Un bucle con # interacción conocidas

Condicional Simple, Condicional doble

Empleo de 2 sumadores

Empleo de 2 contadores

Construcción de un algoritmo mediante un Diagrama de Flujo.

i>=5 && i<=15

no si

pctes>500

No SI

Inicio

rca=0;dia=0;su=0;c=0;

diamax=0;

Su←su+pctes

rca←Rca+(pctes*10)

P ← SU/candia

c← c+1

P,rca,dia,c

Fin

i←30,1

pctes

Dia←i

Diamax←pctes

Seudocódigo en C#, incluyendo comentarios al mismo.

{

candia=leer (dato)

rca= Ø

dia= Ø

su= Ø

diamax= Ø

Para (i = 1, i < = candia, 1)

{

pctes = leer (dato)

su = su + pctes

rca=rca+(pctes*10)

si(i>=5 && i<= 15)

{

Si(diamax<ptces

Dia=i

Diamax=ptes

}

si (pctes > 500)

{

P=su/candia

Mostrar(p,rca,dia,c)

}

Mostrar (”error”)

}

Validación del algoritmo. Prueba de escritorio.

rca

Dia

Su C Diamax i Pctes

0 1 0 0 325 1 325

3250 2 325 1 456 2 456

7810 3 781 2 528 3 528

13090 9 1309 3 643 4 509

18180 11 1818 4 654 5 498

23160 2316 5 6 501

28170 2817 6 7 475

32920 3292 7 8 345

36370 3637 8 9 643

42800 4280 10 587

48630 4863 11 654

55170 5517 12 400

59170 5917 13 432

63490 6349 14 396

67450 6745 15 385

71300 7130 16 333

74630 7463 17 454

79170 7917 18 234

81510 8151 19 223

83740 8374 20 561

88300 8830 21 456

90410 9041 22 211

92520 9252 23 331

95830 9583 24 234

99950 9995 25 412

102390 10239 26 244

107820 10782 27 543

112130 11213 28 431

115660 11566 29 353

119190 11919 30 234

121530 12153

CASO ESTUDIO III: Conversiones entre Sistemas Numéricos Posicionales

Especificaciones

Creación de un Algoritmo que permita al usuario entrar un número decimal como dato (n1) y convertirlo, según un segundo dato de tipo carácter (c), a su correspondiente binario (c = B), octal (c = O) o hexadecimal (c = H).

Ejemplo Si el usuario entra el valor 179 el resultado será

10110011 si se pide la conversión a binario(c = B) o

263 si se convierte a octal (c = O) o

B3 si es a hexadecimal (c = H)

Pistas Vea el método de las divisiones sucesivas estudiado en clases.

Utilice una estructura repetitiva o bucle

Preguntas de control

Cuál es la diferencia que existe entrelos bucles condición al inicio, condiciónal final y número de iteracionesconocidas. Explique y ponga ejemplos deestos tipos de bucles..

Para el seudocódigo que se muestra acontinuación:para ( vc = 4, vc <= 15, 9)

{…

}

Diga cuál es el valor de vc una vez que termine de ejecutarse el bucle?

Notas Para este caso de estudio deben tenerse en cuenta las consideraciones siguientes:

Planteamiento de los pasos a seguir en laresolución del problema planteado.

Construcción de un algoritmo mediante unDiagrama de Flujo.

Seudocódigo en C#.Net, incluyendocomentarios al mismo.

Validación del algoritmo. Prueba deescritorio.

Entrega de la documentación del caso enformato impreso y digital

Respuestas a las Preguntas de Control

*Planteamiento del algoritmo de los pasos a seguir en la resolución del problema planteado.

1.-Análisis:

Datos: N1, C

Resultado: Mostrar en pantalla el resultado de la conversión de Binario, Octal o Hexadecimal.

Formula: R← N1%2

N1←N1/2

N←N*10+R

Lógica: Empleo de condicional doble y condicional con salida múltiple

Empleo de bucles con condición al incio

Condiciones: N1 != 0

C=”B”

Significado de Variables

N1: Dato ingresado por el usuario

C: Carácter ingresado por el usuario que indica la base a la cual convertiremos N1

A: representa el valor de 10

B: representa el valor de 11

C: representa el valor de 12

D: representa el valor de 13

E: representa el valor de 14

F: representa el valor de 15

Construcción de un algoritmo mediante un Diagrama de Flujo.

Inicio

N1

C

R= 0

N= 0

C=B

N1>0 C=0

N1>0 C←H

si no

N1←0

si

R← N1%16

N1← N1/16

R

N← r+n

R← N1%8

N1← N1/8

N←

A C E

r=1r=1 r=1r=1 r=1 r=1

B D F Otro valor

N1←N1/2

N←N*10+R

R← N1%2

fin

“ErrorN

N N

SEUDO CODIGO

{

R= 0

N= 0

SI(C==B)

{

Mientras (N1>0)

{

R=N1%2;

N1=N1/2;

N=N*10+R;

}

}

Si no {

Si(C==0)

{

Mientras (N1>0)

{ R=N1%8;

N1=N1/8;

N=N*10+R;

}

}

Si no {

si(C==H)

{

Mientras (N1>0)

{R=N1%16;

N1=N1/16;

Tomar

Tomar(r)

{

Caso 10 :r=a;

Caso 11:r=b;

Caso 12 :r=c;

Caso 13:r=d;

Caso 14:r=e;

Caso 15:r=f;

N=N*10+R;

}

}

}

}

Mientras(N>0)

{

R=N%10;

N=N/10;

N1=N1*10+R;

}

Mostrar (N1)

}

CASO ESTUDIO IV: Áreas de Círculos

Especificaciones

Crear un algoritmo que permita obtener el promedio de las áreas (Aprom) calculadas a partir de los valores de radio (r) entradospor el usuario desde teclado.

El resultado también incluirá los valores de mayor área (Amax) y menor área (Amin) calculadas.

Fórmulas A_Circ = r2

Preguntas de Control

Cuál es la diferencia que existe entrelas estructuras condicionales de salidasimple, doble y múltiple. Explique yponga ejemplos de estos tipos de bucles.

Notas Para este caso de estudio deben tenerse en cuenta las consideraciones siguientes:

Planteamiento del algoritmo de los pasosa seguir en la resolución del problemaplanteado.

Construcción de un algoritmo mediante unDiagrama de Flujo.

Seudocódigo en C#, incluyendo comentariosal mismo.

Validación del algoritmo. Prueba deescritorio.

Entrega de la documentación del caso enformato impreso y digital

Respuestas a las preguntas de control

*Planteamiento del algoritmo de los pasos a seguir en la resolución del problema planteado.

1.-Análisis:

Datos: N // Cantidad de Circulos

R // Radio de cada Circulo

Resultado: Mostrar en pantalla el promedio de las áreas, el área máximo y el área mínimo

Formula: A_Circ = 3.1416 * r2 ;

Aprom = SA / CA

Lógica: Empleo de bucle con # de iteraciones conocidas

Empleo de condicionales simples y dobles

Empleo de un contador (CA)

Empleo de un sumador (SA)

Significado de Variables

Amax: Área Máxima

Amin: Área Mínima

S: Sumador de Áreas

n: Cantidad de números ingresado

r: Valor de Radio Ingresado

Aprom: Promedio de la Áreas

A_circ: Área del circulo

Construcción de un algoritmo mediante un Diagrama de Flujo.

A_circ >Amax

A_circ >Amin

Inicio

I= 1,

n

r

A_circ=3.1416*r*r

Amax= A_circ

Amin=A

S=S +

P=S/N

S=0

A_Circ=0Amax=0

Amin=99999

SEUDO CODIGO

{

N =Leer (N)

S=0;

A_Circ=0;

Amax= 0;

Amin= 9999999999;

Para(I=0,n)

{

R= Leer(r)

A_circ = 3.1416*(r*r);

SI (A_circ>Amax)

{

Amax=A_circ;

}

SI (A_circ<Amín)

{

Amín=A_circ;

}

S = S+A_circ;

}

P = S/N

Mostrar(P, Amax, Amin);

}

P, Amin,Amax

Fin

Validación del algoritmo. Prueba de escritorio.

n Amax Amin S r A_circ Aprom

3 0 99999 0 0 0 0

78 78 78 5 78 169

380 50 128 4 50

508 11 380

Preguntas de Control

Cuál es la diferencia que existe entre las estructurascondicionales de salida simple, doble y múltiple. Expliquey ponga ejemplos de estos tipos de estructuras.

Estructuras Condicionales de Salida Simple

Si es verdadera se ejecutan determinadas acciones.

Si es falso no pasa nada

Si

No

Estructura Condicionales de Salida Doble

Si es verdadera se ejecutan determinadas acciones.

Si es falso se ejecutan otras acciones

No Si

Exp

Estructura de Salidas Múltiples

Muestra múltiples caminos a seguir dependiendo del valor inicial “VI” o carácter “C” ingresado, cada una ejecutando una determinada acción distinta a las demás. “Otro Valor” se ocupa cuado ninguna constante coincide con el valor inicial.

Vi

A B N Otro Valor