Presentación
El desarrollo vertiginoso de las computadoras ha hecho que cada tipo de persona comiencen tener acceso a la programación de sus propias máquinas, facilitando así el estudio y desarrollo de programas para la solución de problemas particulares en las empresas, oficinas y en mismo hogar.
La necesidad de implementar metodologías para el aprendizaje de la programación en diferentes lenguajes y paquetes de utilidad, obliga al cuestionamiento sobre el desarrollo de la lógica estructurada en las personas comunes obligándose, así, a pensar sobre la forma de ejecución de cualquier acción tanto humana como mecánica o de sistemas. El desarrollo del módulo de algoritmos y flujogramas es un tema fundamental en el diseño de programas por lo cual el alumno debe tener buenas bases que le sirvan para poder desarrollar de manera fácil y rápida sus programas.
Los Algoritmos
Un elemento básico para el funcionamiento del computador es el Software, el cual está formado por una serie de instrucciones y datos que permiten el aprovechamiento de los diversos recursos de la computadora, para resolver gran cantidad de problemas. El software está constituido por programas los cuales son un conjunto detallado de instrucciones que instruyen al procesador para realizar determinados procesos particulares. Los datos pueden ser cualquier información que necesite el programa: caracteres, números, imágenes, etc. Por otro lado un computador es incapaz de hacer cosas por su propia iniciativa, hace únicamente lo que se le ordene para lo cual es necesario especificarle detalladamente paso a paso de que manera debe ejecutar un conjunto de órdenes.
Un Algoritmo es un conjunto ordenado y finito de pasos o instrucciones que conducen a la solución de un problema específico.
Solución de Problemas por Medio de la Computadora
- Definición del Problema:
Esta fase está dada por el enunciado del problema y consiste es estudiar el problema planteado dividiendo tantas partes como sea posible, para obtener una idea clara y concisa sobre lo que se desea obtener como resultado. ¡Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa. - Análisis del Problema: Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
- Los datos de entrada.
- Cuál es la información que se desea producir (salida)
- Los métodos y fórmulas que se necesitan para procesar los datos.
- Diseño del Algoritmo: Consiste en describir las secuencias ordenadas de pasos que conducen a la solución de un problema dado. Las características de un buen algoritmo son:
- Ser algoritmo: Tiene que consistir en una secuencia de instrucciones claras y finitas, es decir debe estar compuesto por un número determinado de pasos que tiene fin sin importar el número de instrucciones a utilizar.
- Ser correcto: El algoritmo ha de resolver el problema planteado en todas sus facetas, teniendo en cuenta todas las posibles situaciones que puedan plantearse y no debe permitir dobles interpretaciones
- Ser eficiente:
todos los pasos, instrucciones u operaciones deben optimizarse de manera que se obtenga la solución más corta y eficiente de resolver el problema planteado - Codificación :
La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo).
Algoritmos Cuantitativos
Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del proceso. De igual forma estos tipos de algoritmos describen tres partes esenciales.
Algoritmos Cualitativos
Son aquellos en los que se describen cualquier acción o conjunto de acciones utilizando palabras pero siempre enmarcadas en tres estructuras fundamentales.
Ejercicios para desarrollar la Habilidad Practica
1. Diseñe un algoritmo que permita hallar la suma y el promedio de tres números
Se definen: EP/S
Entrada: Números enteros (Numero1, numero2,numero3) Proceso: Sumar los 3 números y calcular su Promedio Salidas: Suma, Promedio
Pseudocódigo
INICIO
LEER numero1, numero2, numero3
suma = numero1 + numero2 + numero3
promedio = suma / 3
IMPRIMIR suma, promedio
FIN
2. Determinar la suma de los N primeros números enteros de acuerdo a la siguiente
fórmula: Suma = N*(N+1)/2
Se definen: E/S
Entrada: Número entero (N) Proceso: Calcular suma por fórmula: Salida: Suma
Pseudocodigo
INICIO
Ingresar un número entero
Leer (N)
Suma = N*(N+1)/2
Escribir( suma)
FIN
3. Realizar un algoritmo y Diagrama de Flujo para calcular el área de un rectángulo cuyos
datos base y altura se leen desde teclado y el resultado se visualizara en la pantalla.
Algoritmo Rectángulo;
Variables
area , base, altura ¨enteros;
Pseudocodigo
Inicio
Escribir ( “Ingrese la base y altura de una rectángulo”)
Leer ( base );
Leer ( altura );
area ¨ (base * altura)
Imprimir( área );
Fin_Alg
Algoritmos mas complejos y completos
Ejemplo de algoritmo para descomponer un número en sus factores primos
Proceso Factorizacion
Escribir «Ingrese el numero: «
Leer num
Escribir «Factorizacion: «
factorizar<-verdadero
Mientras factorizar Y num>1 hacer
div<-0
Si num/2 = trunc(num/2) Entonces
Escribir 2
num<-num/2
Sino
div<-1; factor_primo<-Verdadero
Mientras div<=rc(num) Y factor_primo Hacer
div <- div+2
Si num/div = trunc(num/div) Entonces
factor_primo <- Falso
FinSi
FinMientras
Si factor_primo Entonces
escribir num
factorizar<-falso
sino
escribir div
num<-num/div
factor_primo<-verdadero
FinSi
FinSi
FinMientras
FinProceso
Ejemplo básico que ilustra la sintaxis para declarar nuevas funciones en pseudocódigo.
// funcion que no recibe ni devuelve nada
SubProceso Saludar
Escribir «Hola mundo!»
FinSubProceso
// funcion que recibe un argumento por valor, y devuelve su doble
SubProceso res <- CalcularDoble(num)
res <- num*2 // retorna el doble
FinSubProceso
// funcion que recibe un argumento por referencia, y lo modifica
SubProceso Triplicar(num por referencia)
num <- num*3 // modifica la variable duplicando su valor
FinSubProceso
// proceso principal, que invoca a las funciones antes declaradas
Proceso PruebaFunciones
Escribir «Llamada a la funcion Saludar:»
Saludar // como no recibe argumentos pueden omitirse los paréntesis vacios
Escribir «Ingrese un valor numérico para x:»
Leer x
Escribir «Llamada a la función CalcularDoble (pasaje por valor)»
Escribir «El doble de «,x,» es «, CalcularDoble(x)
Escribir «El valor original de x es «,x
Escribir «Llamada a la función Triplicar (pasaje por referencia)»
Triplicar(x)
Escribir «El nuevo valor de x es «, x
FinProceso
OPINIONES Y COMENTARIOS