Proyecto de progra..
-
Upload
independent -
Category
Documents
-
view
4 -
download
0
Transcript of Proyecto de progra..
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