Documento Guia "Fundamentos de Algoritmos" I y II Etapa

Documento Guia "Microsoft Visual Basic 6.0" III y IV Etapa

miércoles, 24 de junio de 2009

Trabajo Final II etapa "Hacer Mientras" - "Repetir Hasta"


Bucle Hacer...mientras versus Bucle Repertir...hasta.

Mientras que, por ejemplo, en lenguaje C, se puede hacer uso de una instrucción repetitiva hacer...mientras, utilizándose la sintaxis:

do
{
(bloque_de_instrucciones)
} while ( (expresión_lógica) );


En Pascal, se puede emplear un bucle repetir...hasta. La sintaxis es:

repeat
(bloque_de_instrucciones)
until (expresión_lógica);


La diferencia principal, entre ambos bucles, es que:

"un bucle do...while permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera"

y, por otra parte,

"un bucle repeat...until permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, hasta que, una determinada condición sea verdadera."

Obsérvese que, en los ordinogramas del Curso de Diseño de Algoritmos, se utiliza la sintaxis de una instrucción repetitiva hacer...mientras:


Figura. Instrucción repetitiva hacer...mientras.

La sintaxis utilizada se corresponde con la empleada en el Pseudocódigo CEE (C En Español):

hacer
(bloque_de_instrucciones)
mientras ( (expresión_lógica) )


De forma que, cuando se evalúe la del bucle, SI ésta es verdadera, el se vuelve a ejecutar. Y así sucesivamente, hasta que la condición sea falsa o, mientras que, NO sea verdadera.

En consecuencia, para un bucle repetir...hasta podríamos utilizar la siguiente sintaxis en ordinogramas:


Figura. Instrucción repetitiva repetir...hasta.

Fíjese que, donde poníamos SI, ahora escribimos NO, y al revés.

Ejemplo: Se quiere diseñar el algoritmo de un programa que muestre por pantalla los primeros diez números naturales:

1 2 3 4 5 6 7 8 9 10



Utilizando un bucle hacer...mientras, la solución en Pseudocódigo CEE puede ser:
algoritmo Numeros_del_1_al_10

variables
entero contador

inicio
contador ← 1 /* Inicialización del contador */
hacer
escribir( contador ) /* Salida */
contador ← contador + 1 /* Incremento */
mientras ( contador <= 10 ) /* Condición */
fin

De manera gráfica, se puede representar como se muestra a continuación:


EJEMPLOS DE Hacer...mientras Y Repertir...Hasta.
algoritmo Area_de_una_esfera

variables
real radio

inicio
escribir( "Introduzca radio: " )
leer( radio )

/* Filtramos el radio */

mientras ( radio <= 0 )
escribir( "ERROR: El radio debe ser mayor que cero." )
escribir( "Introduzca radio: " )
leer( nadio )
fin_mientras

escribir( "El área de la esfera de radio", radio,
" es: ", 4 * 3.141592 * radio ** 2 )

fin


algoritmo Volumenes_de_cubos

variables
entero contador
real arista

inicio
escribir( "Introduzca arista: " )
leer( arista )

contador ← 0 /* Inicialización del contador */

mientras ( arista > 0 )
escribir( "El volumen de un cubo de arista ",
arista, " es: ", arista ** 3 )

contador ← contador + 1 /* Incremento */

escribir( "Introduzca arista: " )
leer( arista )
fin_mientras

escribir( "Ha calculado el volumen de ",
contador, " cubo(s)." )
fin

algoritmo Media_aritmetica_de_numeros_introducidos

variables
caracter seguir
entero acumulador, contador, numero

inicio
acumulador ← 0
contador ← 0

hacer
escribir( "Introduzca un número entero: " )
leer( numero )

acumulador ← acumulador + numero
contador ← contador + 1

escribir( "Ha introducido ", contador,
" número(s)" )
escribir( "La suma es ", acumulador )

escribir( "¿Desea introducir otro número (s/n)?: " )
leer( seguir )
mientras ( seguir <> 'n' )

escribir( "La media aritmética es ",
acumulador / contador )
fin
algoritmo Calculo_de_sumas

variables
caracter seguir
entero acumulador, n1, n2

inicio
acumulador ← 0

hacer
escribir( "Introduzca primer número: " )
leer( n1 )
escribir( "Introduzca segundo número: " )
leer( n2 )
escribir( "La suma es ", n1 + n2 )

acumulador ← acumulador + n1 + n2

escribir( "¿Desea realizar otra suma (s/n)?: " )
leer( seguir )
mientras ( seguir <> 'n' )

escribir( "La suma total es ", acumulador )
fin

EJERCICIOS

-Elabore un algoritmo que lea para un conjunto de 50 estudiantes, tres notas de evaluaciones con los sgtes valores: nota1 30%, nota2 35%, nota3 35%. Para cada estudiante se debe calcular la nota definitiva, cuantos estudiantes ganaron y cuantos perdieron (teniendo en cuenta que la nota para aprobar es mayor o igual que 3.0), calcular cuántos pueden habilitar(2.0<=nota<3.0), cual es el promedio de notas de los que ganaron, cual es el promedio general de notas definitivas?.

- Diseñe un algoritmo que muestre los numeros primos que existen entre 1 y 100.


Fecha limite de entrega: 17 de julio de 2009

miércoles, 13 de mayo de 2009

Guía para crear correo en GMAIL y sus aplicaciones

Debes crear un correo electronico en GMAIL que será tu correo institucional para trabajos, evaluaciones y comunicaciones. El correo debe tener la forma nombre1apellido1.idetp@gmail.com, esto quiere decir primer nombre, primer apellido punto idetp.

Los nombre y apellidos con "ñ" se remplasará esta letra por una "n", los apellidos como "de las salas" van con las dos "s". es importante que escriban los nombres tal cual como aparecen registrados, ojo con la ortografía y con la palabra "idetp" algunos se equivocan y colocan "idept".

Para entender la forma de crearlo mira el siguiente video:



Nota: no se aceptan EMAILs en otras cuentas de correo o correos mal creados en Gmail (que no tengan la forma: nombre1apellido1.idetp@gmail.com)

Otra forma si tu navegador es Mozilla Firefox



Para crear Grupos y Contactos...



Cambiar tema de nuestra cuenta de correo Gmail





Vincular mi Cuenta de Gmail en Youtube 2009



Como adjuntar un archivo y enviar un mensaje desde gmail




Cargar fotos en Gmail




Chatear con Gmail

viernes, 27 de marzo de 2009

Ejercicios de Algoritmos Secuenciales

Objetivos: Al final de la clase los alumnos serán capaces de:
1. Comprender las estructuras secuenciales y resolver problemas usando dichas estructuras.
2. Elaborar algoritmos, y flujogramas para estructuras secuenciales.

ESTRUCTURAS BÁSICAS.
Un problema se puede dividir en acciones elementales o instrucciones, usando un número limitado de estructuras de control (básicas) y sus combinaciones que pueden servir para resolver dicho problema.
Las Estructuras Básicas pueden ser:
Secuenciales: cuando una instrucción del programa sigue a otra.
Selección o decisión: acciones en las que la ejecución de alguna dependerá de que se cumplan una o varias condiciones.
Repetición, Iteración: cuando un proceso se repite en tanto cierta condición sea establecida para finalizar ese proceso.





Estructura Secuencial.
Se caracteriza porque una acción se ejecuta detrás de otra. El flujo del programa coincide con el orden físico en el que se han ido poniendo las instrucciones.
Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc.
Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa:
Definición de variables (Declaración)
Inicialización de variables.
Lectura de datos
Cálculo
Salida

Ejemplo 1.
Se desea encontrar la longitud y el área de un círculo de radio 5.
Solución.
El objetivo del ejercicio es encontrar la longitud y el área de un círculo con un radio conocido y de valor 5. Las salidas serán entonces la longitud y el área. (Fase 5 del algoritmo)
Sabemos que la longitud de un círculo viene dada por la fórmula 2 * pi * radio y que el área viene dada por pi * radio al cuadrado. (Fase 4 del algoritmo)

Si definimos las variables como: (fase 1 del algoritmo)
L = Longitud A = área R = radio pi = 3.1416 hagamos el algoritmo:
Inicio
Pi <- 3.1416 (definición de un valor constante)
R <- 5 (radio constante ya que es conocido su valor)
A <- pi * R ^ ² (asignación del valor del área)
L <- 2 * pi * R (asignación del valor de la longitud)
Escribir (A, L) (salida del algoritmo)
Fin

Representación en Diagrama de Flujo para el ejemplo:




En este ejercicio no existen datos de entrada ya que para calcular el área y la longitud necesitamos únicamente el radio y el valor de Pi los cuales ya son dados en el problema.

Ejemplo 2.
Modificar el problema anterior para que sea capaz de calcular el área y la longitud de un círculo de cualquier radio requerido.

Solución.
El problema es el mismo con la variante de que ahora ya existe un dato de entrada, puesto que el radio puede ser cualquiera y será necesario que el usuario sea quien lo introduzca de teclado. Usando las misma definición de variables tenemos:
Algoritmo:
Inicio
pi <- 3.1416 (fase de inicialización)
Leer (R) (fase de lectura)
A <- pi * R ^ ² (fase de cálculos)
L <- 2 * pi * R
Escribir ( A, L ) (fase de salida)
Fin
Note que la instrucción de asignación fue cambiada por la instrucción leer.
En el flujograma deberán cambiarse también los símbolos que los representan:



Ejemplo 3.
Leer el sueldo de tres empleados y aplicarles un aumento del 10, 12 y 15% respectivamente. Desplegar el resultado.
Salidas: Sueldos finales
Entradas: Salarios de los empleados
Datos adicionales: aumentos del 10, 12 y 15%
Cálculos:
Sueldo final = sueldo inicial + aumento
Aumento = sueldo inicial * porcentaje/100
Definición de variables:
Sf1, Sf2, Sf3 = los sueldos finales
S1, S2, S3 = salarios de los empleados
Aum1, aum2, aum3 = aumentos

ALGORITMO
Inicio
Leer (S1,S2,S3)
Aum1 <- S1 * 0.10
Aum2 <- S2 * 0.12
Aum3 <- S3 * 0.15
Sf1 <- S1 + Aum1
Sf2 <- S2 + Aum2
Sf3 <- S3 + Aum3
Escribir (SF1,SF2,SF3)
Fin


FLUJOGRAMA:




Ejercicios para resolver en la casa:
Para cada ejercicio escriba su algoritmo en pseudocodigo y su flujograma.
1. Escribe un programa que calcule el área de un círculo de cualquier radio.
2. Escribe un programa que lea una cantidad depositada en un banco y que calcule la cantidad final después de aplicarle un 20% de interés.
3. Un maestro desea saber que porcentaje de hombres y que porcentaje de mujeres hay en un grupo de estudiantes.
4. Un alumno desea saber cual será su calificación final en la materia de Lógica Computacional. Dicha calificación se compone de tres exámenes parciales cuya ponderación es de 30%, 30% y 40%
5. Una farmacia aplica al precio de los remedios el 10% de descuento. Hacer un programa que ingresado el costo de los medicamentos calcule el descuento y el precio final

6. Haga tabla de seguimiento para encontrar los resultados de las variables dadas en el siguiente algoritmo:
Algoritmo Verifica
Entero: x, y, z
Inicio
X <- 40
Y <- 25
Z <- x – y
Y <- X
Escribir ( y, x)
Escribir (z)
Fin.



El trabajo debe ser enviado en formato de Microsoft Word al Correo: angelviloria.idetp@gmail.com desde su correo creado en gmail con la forma nombreapellido.idetp@gmail.com (debe ser solo el primer nombre y el primer apellido seguido de .idep.

Nota: no se aceptan trabajos en otras cuentas de correo o en correos mal creados en Gmail (que no tengan la forma: nombre1apellido1.idetp@gmail.com)