- Pasos
- Tipos
- Análisis del
problema - Diseño del
algoritmo. - Mandatos e
instrucciones - Variables vectores y
matrices
- El programador diseña un programa, para
resolver un problema particular. - Diseñar es un proceso
creativo. - El proceso de
diseño de un programa consta
de los siguientes pasos o etapas:
Pasos | Etapa | Descripción |
1 | Análisis del problema | Conducen al diseño detallado por medio un |
2 | Diseño de algoritmo | |
3 | Codificación | Se implementa el algoritmo en un código escrito en un lenguaje de |
4 | Compilación y ejecución | Traduce el programa fuente a programa en |
5 | Verificación | Busca errores en las etapas anteriores y los |
6 | Depuración | |
7 | Documentación | Son comentarios, etiquetas de texto, |
Concepto |
|
Algoritmo: es un método para resolver un problema | Preciso: implica el orden de realización de |
Definido: si se sigue dos veces, se obtiene el | |
Finito: Tiene un numero determinado de pasos, |
Método | Descripción | Ejemplos |
Algorítmico | Utiliza un algoritmo y puede ser implementado en una |
|
Heurística: | Se apoya en el resultado obtenido en un análisis de alternativas de |
|
|
| Ejemplos |
Los algoritmos se pueden expresar por: | Formulas | |
Diagramas de flujo Norte-Sur,Top-Down |
| |
Pseudo código | inicio leer a,b,c calcular escribir perímetro fin |
- Quick Basic es un lenguaje de
programación estructurado y el algoritmo
se representara en seudo código y/o diagrama de
flujo.
Requiere la clara definición del
problema donde se indique que va hacer el programa y cual ve a
ser el resultado.
Debe detallarse las especificaciones de entrada
y salida,
Los requisitos que definen el análisis
son :
Para ver el
gráfico seleccione la opción
"Descargar"
La ecuación de segundo grado se
define algebraicamente como :
La solución general viene dada por la
expresión algebraica : (Algoritmo)
|
|
| periférico |
1 | Análisis del problema |
|
|
2 | Def. del problema | Hallar raíces ecua. 2do grdo |
|
3 | Especif. de entrada | coeficientes a, b, c | Teclado |
4 | Especif. de salida | X1, X2 | Pantalla Impresora |
Entrada: por teclado
coef | Descripción | Codificación en |
a | team. cuadrático | INPUT "Coef a =";A |
b | term. lineal | INPUT "Coef b =";B |
c | term. independiente | INPUT "Coef c =";C |
Calculo | Expresión algebraica | Codificación en QBasic |
| X1=((-B+SQR(B^2-4*A*C)) | |
X2=((-B-SQR(B^2-4*A*C)) |
Proceso:
Salida: Visualización de :Datos de entrada:
A,B,C
Datos procesados: Raices: X1,
X2
Variable | Significado | Codificación en QBasic |
A,B,C | Coef | PRINT"A=";A; "B=";"C=";C |
X1 | primera raíz | PRINT"X1=";x1 |
X2 | primera raíz | PRINT"X2=";X2 |
- Análisis de proceso implica que
hace el programa. - Diseño implica como se hace o
realiza la tarea (problema) solicitado
En el diseño:
- El todo es la sumatoria de las
partes. - Divide el todo en varias
partes.
En la resolución de un problema
complejo, se divide en varios sub problemas y
seguidamente se vuelven a dividir los sub problemas en
otros mas sencillos, hasta que puedan implementarse en el
computador.
Esta característica define lo que se entiende
como diseño descendente( Top-Down / Norte-Sur ) o
diseño modular.
El proceso de ruptura del problema en cada
etapa se llama refinamiento
sucesivo.
- Cada problema se resuelve mediante un
modulo (subprograma) y tiene un solo punto de entrada y
un solo punto de salida. - Un programa bien diseñado consta de
un programa principal (modulo de nivel mas alto) que
llama a subprogramas (módulos de nivel mas bajo),
que a su vez pueden llamar otros sub programas.
Los programas que se
estructuran de esta forma, se dicen que tienen diseño
modular y el método de
romper el programa en modos pequeños se llama
programación modular.
Los módulos pueden ser planificados,
codificados, compilados y depurados independientemente pueden ser
intercambiados entre si.
Este proceso implica la ejecución de los
siguientes pasos:
1 | programar un modulo |
2 | comprobar un modulo |
3 | depurar el modulo |
4 | combinar el modulo con módulos |
este proceso convierte el
resultado del análisis del problema en un diseño
modular con refinamientos sucesivos que permiten una
traducción a un lenguaje que
se denomina diseño del algoritmo.
El algoritmo se puede representar por
medio de dos formas :
Pseudo
código
Diagrama de flujo:
Pseudo código: es el lenguaje de
especificación de algoritmos y
tiene una estructura:
Las instrucciones se escriben en ingles o en palabras similares
al ingles o español
que facilitan la escritura de
programación
Para la resolución de una
ecuación de segundo grado se
escribiría
inicio
Introducir coeficientes a, b y
c
Imprimir títulos primera
raíz, segunda raíz, no tiene
solución,
Calcular raíz 1 y raíz
2
Imprimir raíz 1 y raíz
2
Fin
Diagramas de flujo (flows charts): Es
la representación grafica del algoritmo; según la
ANSI consta de una simbologia , que tiene los siguientes
significados:
Para ver el gráfico
seleccione la opción "Descargar" del menú
superior
Símbolos del Diagrama de
flujo
Codificación
:
Programación:
Windows/Dos/
Quick Basic = Editor de texto.
Programa: definición:
conjunto de datos y
sentencias:
Un programa tiene la
forma
Para ver
el gráfico seleccione la opción
"Descargar"
En el editor de Quick Basic se
escribiría codificado el seudo
código
que tendría la
forma:
REM Programa para calcular las
soluciones
REM de una ecuacion de segundo
grado
PRINT "Escriba los valores de
A, B y C"
C$="Calculos"
INPUT " A,B,C", A, B,
C
R = (B ^ 2 – 4 * A * C) ^
.5
LET X1 = (-B + R) / (2 *
A)
LET X2 = (-B + R) / (2 *
A)
PRINT " A="; A, " B="; B, "C=";
C
PRINT "X1="; X1, "X2=";
X2
END
En el Menú
|
|
|
| Ejecutar |
|
|
En la pantalla
veríamos:
Mandato (command): es una orden
aislada de efecto inmediato.
Ejemplo:
Mandato | Descripción |
RUN | Ordena la ejecución de un |
LIST | Escribe En la pantalla el listado del |
SAVE. | Guarda, graba el programa como un archivo de |
Instrucción: es una
orden contenida en un programa.
Ejemplo:
Instrucción | Descripción |
Escribe en pantalla. | |
INPUT | Introduce (entra datos) |
Edición de un
programa: un programa esta formado por
líneas secuenciales que se ejecutan en forma descendente
(Up Down)
Para dar por terminada una
línea se pulsa la tecla Enter (Return) en cualquier parte
de la misma. Para cambiar una línea basta volver a
teclearla.
- Se puede corregir una línea
(borrar, rescribir ) en pantalla o bien con el mandato
EDIT. - Se pueden incluir varias
instrucciones en una misma línea, separándolos
por dos puntos. - Una línea de pantalla
(cuarenta u ochenta posiciones) es diferente de una
línea de programa (doscientos cincuenta y seis
posiciones).
Modo
Directo:
Modo
Programa
Run
Ventana
activa
Ventana
inmediata
mandato | Descripción |
CLS | borra la pantalla |
Recomendaciones:
- Todo programa debe estar
documentado con comentarios; la primera línea debe
contener el titulo del programa. Los comentarios deben de ir
precedidos de la palabra clave REM o de un apostrofo ( ‘
) - Si una línea ya tiene otras
instrucciones, el comentario debe ir al final de la
línea. - Los comentarios solo aparecen en el
listado del programa y no aparecen escritos en la pantalla
durante la ejecución.
Constantes:
QBasic, trabaja con dos tipos de
datos:
Datos | Tipos |
numéricos: | Enteros (INT) Enteros largos (LNG) de simple precisión (SGL) de doble precisión (DBL) |
alfanuméricos | hileras o cadenas (STR) fila de caracteres en ASCII ( |
- Las constantes alfanuméricas
pueden ser enteras o fraccionarias, se representan en forma
decimal; se puede emitir el cero a la izquierda del punto
decimal. Ejemplo
3452 | -12.67 | .23 | +12345 |
Estos son ejemplos de valores
numéricos de punto fijo; se puede emplear una
notación de punto
flotante.
Mantisa | letra | exponente |
1,23456E+15 |
|
123456.0000000000 |
|
1.234567890789456D–10 | 0.000000000123456789012456 |
- El numero máximo de cifras
significativas con que se trabaja
es:
6 para la precisión simple
(SNG)
16 para la precisión doble
(DLB)
- En las constantes de punto fijo hay
que añadir el carácter
# - Las constantes alfanuméricas
son hileras de caracteres; se escriben entre comillas, Ej.
"Hola " ; " A47EC
Variables vectores y
matrices:
- Una variable es una zona de
memoria que
almacena un dato
X | R A M |
|
DIA $ |
| |
Peso |
| |
-23.5 |
| |
lunes |
| |
80 |
|
- Una variable se identifica mediante
un nombre. El nombre de una variable numérica debe
empezar por una letra y puede ir sucedido de otras letras y / o
otros dígitos (X, A, B1, peso,
T341) - Una variable alfanumérica
debe terminar con el carácter
$ (x$, a23$, dias$,) - Están terminantemente
prohibidas los nombres de variables
que contengan palabras claves de Basic (PRUN,
LIST, NIF$,) - Las variables de
precisión doble y enteros se identifican
añadiendo el carácter # o el carácter % ,
también se pueden declarar
como
DEFDBL
A
Los comentarios que se incluyan deben
ser significativos
Documentación
interna:
- Va incluida dentro del
código del programa fuente, por medio de comentarios que
ayudan a la comprensión del
código. - Todas las sentencias comienzan con
la sentencia REM o su equivalente el
carácter apostrofe (
‘).
El programa en si no los necesita y
los ignora. Hace que los programas sean
comprensibles.
Documento cedido
por:
JORGE LUIS CASTILLO
TEJEDA