ALGORITMOS Y QBASIC

CASTRO ÁLVAREZ JUAN SEBASTIÁN GONZÁLEZ PATIÑO CHRISTIAN GOYENECHE RODRÍGUEZ KAREN JULIETH RAMÍREZ SOTO LINA MARÍA ROMERO CASTAÑO NICOLÁS

INSTITUCIÓN EDUCATIVA TÉCNICO INDUSTRIAL PEDRO ANTONIO MOLINA FACULTAD DE SISTEMAS GRADO 9º SANTIAGO DE CALI 2011
Página 1 de 20

ALGORITMOS Y QBASIC

CASTRO ÁLVAREZ JUAN SEBASTIÁN GONZÁLEZ PATIÑO CHRISTIAN GOYENECHE RODRÍGUEZ KAREN JULIETH RAMÍREZ SOTO LINA MARÍA ROMERO CASTAÑO NICOLÁS

Trabajo de sistemas de primer período

PROFESOR HERNANDO DELGADO INSTITUCIÓN EDUCATIVA TÉCNICO INDUSTRIAL PEDRO ANTONIO MOLINA FACULTAD DE SISTEMAS GRADO 9º SANTIAGO DE CALI 2011
Página 2 de 20

TABLA DE CONTENIDO

Página INTRODUCCIÓN OBJETIVOS ALGORITMOS Y QBASIC 1. ALGORITMOS 1.1 DEFINICIÓN 1.2 CARACTERÍSTICAS 1.3 HISTORIA 2. PSEUDOCÓDIGO 2.1 DEFINICIÓN 2.2 CARACTERÍSTICAS 2.3 ESTRUCTURA 2.4 EJEMPLO 3. LENGUAJE DE PROGRAMACIÓN 3.1 LENGUAJE MÁQUINA 3.2 LENGUAJE DE BAJO NIVEL (ENSAMBLADOR) 3.3 LENGUAJE DE ALTO NIVEL 4. DIAGRAMAS DE FLUJO 4.1 SÍMBOLOS UTILIZADOS EN EL DIAGRAMA DE FLUJOS
Página 3 de 20

5 6 7 7 7 7 8 8 8 9 9 9 10 10 10 11 12 13

Página

4.2 REGLAS PARA LA CREACIÓN DE DIAGRAMAS 4.3 EJEMPLO 5. MICROSOFT QBASIC 6. VERSIONES 7. COMANDOS PRINCIPALES 8. COMO TRABAJA CONCLUSIONES BIBLIOGRAFÍA

14 15 16 16 17 18 19 20

Página 4 de 20

INTRODUCCIÓN

En el siguiente trabajo pretendemos presentar una serie de concepto y definiciones propios del estudio de los Algoritmos, su análisis y diseño. En el mismo podremos encontrar los conceptos de algoritmo y algunos de sus componentes, análisis y diseño. También veremos los diferentes tipos de formas y tamaños o medidas en que se pueden almacenar y representar los datos y estructuras en un algoritmo De igual forma podremos ver las definiciones y algunas características, reglas, normas, tipos de algoritmos de búsqueda y ordenación así como sus aplicaciones.

Página 5 de 20

OBJETIVOS  General :  Posibilitar la estudiante alcanzar una visión sistemática conocemos sobre Los Algoritmos Computacionales. de lo que 

Específicos :  Introducir los conceptos propios sobre Algoritmo, su importancia en el mundo de las aplicaciones para computadoras y el manejo de lógica de programación.  Proporcionar una idea de su uso.  Visualizar sus ventajas e importancia.  Definir sus tipos y variantes.  Proporcionar conceptos sobre su análisis y diseño.  Proporcionar concepto sobre las técnicas de diseño.  Desglosar sus variantes (ordenación, búsqueda, etc.).

Página 6 de 20

ALGORITMOS Y QBASIC 1. ALGORITMOS 1.1 DEFINICIÓN Un algoritmo es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea específica, como la solución de un problema en que se expresan como de la computadora que los ejecuta. En cada problema el algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en una computadora distinta; sin embargo el algoritmo siempre será el mismo. Por ejemplo en una analogía con la vida diaria, una receta de un plato de cocina se puede expresar en español, inglés o francés, pero cualquiera que sea el lenguaje, los pasos para la elaboración del plato se realizaran sin importar el cocinero. Para llegar a la realización de un programa es necesario el diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa. 1.2 CARACTERÍSTICAS Las características fundamentales que debe cumplir todo algoritmo son:  Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a realizar sin criterios de interpretación.  Ser finito: Un número específico y numerable de pasos debe componer a algoritmo, el cual deberá finalizar al completarlos.  Tener cero o más entradas: Datos son proporcionados a un algoritmo como insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones que comprende.  Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un algoritmo que hace algo y nunca sabemos que fue. El devolver un resultado no debe ser considerado como únicamente ³verlos´ en forma impresa o en pantalla, como ocurre con las computadoras. Existen muchos otros mecanismos susceptibles de programación que no cuentan con una salida de resultados de esta forma. Por salida de resultados debe entenderse todo medio o canal por el cual es posible apreciar los efectos de las acciones del algoritmo.  Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no usando nada más ni nada menos que aquello que se requiera para y en su ejecución.

Página 7 de 20

1.3 HISTORIA La palabra algoritmo proviene del nombre del matemático llamado Abu Abdullah Muhammad bin Musa al-Khwarizmi que vivió entre los siglo VIII y IX. Su trabajo consistió en preservar y difundir el conocimiento de la antigua Grecia y de la India. Sus libros eran de fácil comprensión, de ahí que su principal valor no fuera el de crear nuevos teoremas o nuevas corrientes del pensamiento, sino el de simplificar las matemáticas a un nivel lo suficientemente bajo para que pudiera ser comprendido por un amplio público. Cabe destacar que como señaló las virtudes del sistema decimal indio (en contra de los sistemas tradicionales árabes) y cómo explicó que, mediante una especificación clara y concisa de cómo calcular sistemáticamente, se podrían definir los algoritmos que fueran usados en dispositivos mecánicos similares a un ábaco en vez de las manos. También estudió la manera de reducir el número de operaciones necesarias que formaban el cálculo. En el siglo XIX, se produjo el primer algoritmo para un computador. La autora fue Ada Byron, en cuyos escritos se detallaban la máquina analítica en 1842. Por ello que es considerada por mucho como la primera programadora aunque, desde Charles Babbage, nadie completó su máquina, por lo que el algoritmo nunca se implementó. 2. PSEUDOCÓDIGO 2.1 DEFINICIÓN El pseudocódigo es un lenguaje de algoritmos. En sí es una mezcla de lenguaje de programación y de lenguaje natural. La idea del pseudocódigo consiste en aprovechar la flexibilidad y poder expresivo del lenguaje natural por un lado, y las reglas de composición de los lenguajes de programación de alto nivel por el otro. El pseudocódigo utiliza para representar las acciones sucesivas palabras reservadas en inglés, similares a sus homónimas en los lenguajes de programación, tales como Start, End, Stop, If-then-else, While, etc. La escritura del pseudocódigo exige normalmente Sangría en el margen de diferentes líneas.

Página 8 de 20

2.2 CARACTERÍSTICAS Las principales características de este lenguaje son:  Es una forma de representación sencilla de utilizar y de manipular.  Facilita el paso del programa al lenguaje de programación.  Es independiente del lenguaje de programación que se vaya a utilizar.  Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en pseudocódigo debe permitir la descripción de:  Instrucciones primitivas.  Instrucciones de proceso.  Instrucciones de control.  Instrucciones compuestas.  Instrucciones de descripción. 2.3 ESTRUCTURA Cabecera:  Programa.  Módulo.  Tipos de datos.  Constantes.  Variables. Cuerpo:  Inicio  Instrucciones  Fin 2.4 EJEMPLO Start {Cálculo de impuesto y salario} Read nombre, hora, precio_hora Salario_bruto horas * precio_hora Tasa 0.1 * salario_bruto salario_bruto ± tasa Salario_neto End
Página 9 de 20

Write nombre, salario_bruto, tasa, salario_neto

El algoritmo comienza con la palabra Start y finaliza con la palabra end, en inglés (en español, Inicio y Fin). Entre estas palabras, sólo se escribe una instrucción o acción por línea. La línea encerrada entre llaves {...} se denomina comentario. Es una información al lector del programa y no realiza ninguna instrucción ejecutable; sólo tiene efecto de documentación interna del programa. Algunos autores suelen utilizar corchetes en lugar de llaves [...]. 3. LENGUAJE DE PROGRAMACIÓN Los lenguajes de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc. Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro. Los lenguajes de programación de una computadora en particular se conocen como código de máquinas o lenguaje de máquinas. Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra computadora diferente. Para que estos programas funcionen para diferentes computadora hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo. 3.1 LENGUAJE MÁQUINA Se llama lenguaje máquina a las instrucciones que se dan directamente a la computadora, utilizando una serie de dígitos binarios o bits, representados por los números 0 y 1 que especifican una operación. Aunque este lenguaje es el que entiende la computadora, es muy difícil de manejar en la comunicación humana. Las instrucciones en lenguaje máquina dependen del hardware de la computadora y, por lo tanto, diferirán de una computadora a otra. 3.2 LENGUAJE DE BAJO NIVEL (ENSAMBLADOR) Los lenguajes de bajo nivel son más fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador (assembler lenguaje). Las instrucciones en lenguaje ensamblador son conocidas como nemotécnicos.

Página 10 de 20

Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: En inglés, ADD, SUB, DIV, etc. En español, SUM, RES, DIV, etc. Una instrucción típica de suma sería: ADD M, N, P Esta instrucción podría significar "sumar el número contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P". Evidentemente es mucho más sencillo recordar la instrucción anterior con un mnemotécnico que su equivalente en código máquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora (en esto se diferencia esencialmente del lenguaje máquina) sino que requiere una fase de traducción al lenguaje máquina. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje maquina se conoce como programa objeto, ya directamente entendible por la computadora. El traductor de programas fuente a objeto es un programa llamado ensamblador (assembler), existente en casi todas las computadoras. NOTA: No se debe confundir el programa ensamblador, encargado de efectuar la traducción del programa fuente escrito a lenguaje maquina, con el lenguaje ensamblador (assembly language), lenguaje de programación con una estructura y gramática definidas. Los lenguajes ensambladores presentan la ventaja frente a los lenguajes maquina de su mayor facilidad de codificación y, en general, su velocidad de cálculo. 3.3 LENGUAJE DE ALTO NIVEL Los lenguajes de alto nivel son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Otra razón es que un programa escrito en un lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones del programa de la computadora no dependen del diseño del hardware o de una computadora en particular. En consecuencia, los
Página 11 de 20

programas escritos en lenguajes de alto nivel son portables o transportables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras; al contrario que los programas en lenguaje máquina o ensamblador que sólo se pueden ejecutar en un determinado tipo de computadora. Los lenguajes de alto nivel presentan las siguientes ventajas:  El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes.  La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y puestas a punto de los programas son más fáciles.  Reducción del coste de los programas.  Transportabilidad. Los inconvenientes se concretan en:  Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo.  No se aprovechan los recursos internos de la máquina que se explotan mucho mejor en lenguajes máquina y ensambladores.  Aumento de la ocupación de memoria.  El tiempo de ejecución de los programas es mucho mayor. Al igual que pasa con los lenguajes ensambladores, los programas fuente tienen que ser traducidos por programas traductores, llamados compiladores e intérpretes. Los lenguajes de programación de alto nivel existentes en la actualidad son muy numerosos, aunque la práctica demuestra que su uso mayoritario se reduce a BASIC, COBOL, PASCAL, C, C++. En el campo de la primera enseñanza se reduce a LOGO, PILOT. 4. DIAGRAMAS DE FLUJO Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema. Su correcta construcción es sumamente importante porque, a partir del mismo se escribe un programa en algún Lenguaje de Programación. Si el Diagrama de Flujo está completo y correcto, el paso del mismo a un Lenguaje de Programación es relativamente simple y directo.
Página 12 de 20

Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos funcionales conectados entre sí por " Tuberías " y "Depósitos" de datos que permite describir el movimiento de los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos, Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema, Los canales por donde circulan los datos. Además de esto podemos decir que este es una representación reticular de un Sistema, el cual lo contempla en términos de sus componentes indicando el enlace entre los mismos. 4.1 SÍMBOLOS UTILIZADOS EN EL DIAGRAMA DE FLUJO Los diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo, algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos. Algunos símbolos estándares. Que se requieren con frecuencia para diagramar programas de computadora se muestra a continuación: SÍMBOLO SIGNIFICADO Inicio o fin del programa. Pasos, procesos o líneas de instrucción de programa de cómputo.

Operaciones de entrada y salida. Toma de decisiones y Ramificación. Conector para unir el flujo a otra parte del diagrama

Disco magnético.

Cinta magnética.

Página 13 de 20

Conector de página.

Líneas de flujo.

Anotación.

Desplaye, para mostrar datos.

Envía datos a la impresora.

4.2 REGLAS PARA LA CREACIÓN DE DIAGRAMAS Las reglas básicas son:  Los diagramas deben escribirse de arriba hacia abajo y/o de izquierda a derecha.  Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la información procesos, se deben utilizar solamente líneas de flujo horizontal o vertical (nunca diagonal).  Se deben evitar cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores cuando sea estrictamente necesario.  No deben quedar líneas de flujo sin conectar.  Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.  Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.  Sólo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.

Página 14 de 20

4.3 EJEMPLO

Página 15 de 20

5. MICROSOFT QBASIC BASIC es un entorno de programación constituido por un editor que permite convertir la computadora en una máquina de escribir, sofisticada para construir programas fuente, un gestionador de archivos (en el caso del PC, el propio sistema operativo), un compilador de lenguaje y un depurador para corrección de errores. El editor interactivo es la pieza central de QBasic. Es un editor que verifica la sintaxis de cada línea tan pronto se teclea. Si la sintaxis es correcta, se traduce la línea inmediatamente al código ejecutable; en caso contrario, aparece una descripción del error. Como cada línea se traduce a código ejecutable (.BAS) en el momento de introducción, se puede inmediatamente corregir y capturar la mayoría de los errores. No se precisa esperar a la compilación (.EXE) después de que se haya terminado la edición, el programa esta preparado para su ejecución. QBasic incorpora un depurador interactivo. Se puede detener un programa en cualquier punto, editar el programa y reanudar la ejecución en el punto en que se detuvo. En QBasic se puede crear de modo fácil y rápido versiones de programas (.EXE) que se ejecutan directamente desde el DOS. Cabe resaltar que el QBasic es un lenguaje de alto nivel. 6. VERSIONES Algunas de las versiones de Basic son:  Básica: (Beginner's All-Purpose Symbolic Instruction Code) Código de Instrucción Simbólica Multipropósito para Principiantes. Es un lenguaje de programación relativamente sencillo y muy antiguo, creado en el año 1963.  GwBasic: era un dialecto del lenguaje de programación BASIC. originalmente para Compaq, desarrollado por Microsoft a partir de lenguaje BÁSICA. Es compatible al BÁSICA de Microsoft/IBM, pero estaba basado en disco y no necesitaba del ROM BASIC del IBM PC, XT y posteriores computadores personales de IBM. Venía en los discos de los operativos de Microsoft para los computadores Compatible IBM PC.  QBasic: Intérprete del lenguaje BASIC que se distribuía con el sistema operativo MS-DOS a partir de su versión 5 Posteriormente dio lugar al Visual Basic para Windows.  Visual Basic: Actualmente, los programas creados en Visual Basic sólo funcionan en Windows. La aplicación Visual Basic, permite crear ventanas, botones, menús, etc. de forma sencilla con solo arrastrar y soltar los elementos. Luego se pueden definir las apariencias, posiciones y comportamientos tanto de forma visual como utilizando códigos de programación.
Página 16 de 20

7. COMANDOS PRINCIPALES  CLS: Borra la pantalla.  DECLARE: Declara una función o un sub programa.  DIM: Declara un arsenal o especifica un tipo de datos para una variable nonarray.  REDIM: Declara o vuelve a clasificar según el tamaño un arsenal dinámico, borrando cualquier valor anterior.  CLOSE: Cierra uno o más archivos o dispositivos abiertos.  END: Pone fin a un programa, procedimiento, bloque o tipo de datos definido por el usuario.  FOR...NEXT: Repite un bloque de instrucciones el número de veces especificado.  GET: Lee lo que se encuentra en un archivo en un almacenador intermediario o una variable de acceso aleatorio.  PUT: Escribe un almacenador intermediario variable o de acceso aleatorio a un archivo.  IF...THEN...ELSE: Ejecuta una instrucción o bloque de instrucciones según las condiciones especificadas.  KILL: Elimina archivos del disco.  LEN: Devuelve el número de caracteres en una cadena, o el número de bytes requeridos para almacenar una variable.  INPUT: Lee la información desde el teclado o desde un archivo.  LINE INPUT: lee una línea de hasta 255 caracteres desde el teclado o desde un archivo.  LOOP y/o UNTIL: Repite un bloque de instrucciones mientras una condición tenga el estado verdadero, o hasta que una condición adquiera el estado verdadero.  OPEN: Abre un archivo o dispositivo.  REM: Permite que las observaciones explicativas sean insertadas en un programa.  SELECT CASE: Ejecuta uno de varios bloques de la declaración dependiendo del valor de una expresión.  SUB: Define un procedimiento SUB.  TYPE: Contiene un tipo de datos que contiene uno o más elementos.  UCASE$: Convierte cadenas en letras minúsculas o letras mayúsculas.  FUNCTION: Define un procedimiento FUNCTION.  APPEND: Especifica que el archivo será abierto para dar información de salida secuencial y coloca el puntero de archivo al final del archivo. Una instrucción PRINT # o WRITE # luego anexa información al archivo.

Página 17 de 20 

BINARY: Especifica el modo de archivo binario. En este modo, es posible leer o escribir información en cualquier posición de byte del archivo usando instrucciones GET o PUT.  INPUT: Especifica que el archivo será abierto para recibir información de entrada secuencial.  OUTPUT: Especifica que el archivo será abierto para dar información de salida secuencial.  RANDOM: Especifica que el archivo será abierto en el modo de acceso aleatorio. RANDOM es el modo de archivo predeterminado.  CALL: Transfiere el control a un procedimiento SUB.  COLOR: Establece los colores presentados en la pantalla.  PRINT: Escribe los datos a la pantalla o a un archivo.  LPRINT: Imprime datos en la impresora LPT1.  LOCATE: Mueve el cursor en la pantalla a la posición especificada.  CSRLIN: Devuelve la posición actual de la fila donde se encuentra el cursor.  POS: Devuelve la posición actual de la columna donde se encuentre el cursor.  SHARED: Da el acceso de los procedimientos y las variables del módulo=nivel.  STATIC: Hace una variable local a una función o a un procedimiento y preserva su valuación entre las llamadas. 8. COMO TRABAJA No hay que seguir ningún proceso especial ni lanzar ningún programa de instalación automático. Es suficiente con copiar el archivo QBasic.exe en cualquier carpeta y opcionalmente el qbasic.hlp que es la biblioteca de ayuda. Si iniciamos desde MS DOS se ejecuta el editor a pantalla completa en modo texto y si lo lanzamos desde Windows aparecerá normalmente en una ventana de tamaño más reducido. Al iniciar un programa en modo gráfico pasará a pantalla completa. QBasic no hace cambios de ningún tipo en la configuración del sistema operativo. Aunque se trata de un programa antiguo para MS-DOS, QBasic funciona en Windows. En sistemas con Windows 98 ha ocurrido que al pasar de modo ventana a pantalla completa o viceversa el sistema se ha podido desestabilizar o bien bloquearse el teclado. También puedes ejecutarlo de forma todavía más segura usando un emulador.

Página 18 de 20

CONCLUSIONES  Luego de realizar este trabajo hemos visto como los algoritmos son una de las herramientas más complejas y aplicables en el área de la informática y el mundo de los computadores.  Pudimos comprobar que mientras más potente, completo y eficiente es el computador o la aplicación que corre sobre el mismo mas grande, complejo y exacto es el algoritmo que utiliza.  Las técnicas de desarrollo de algoritmos nos permiten encontrar la mejor solución a los problemas que se nos presentan y deben ser solucionados por el computador, estas técnicas están orientadas para utilizarse en cada uno de los niveles de complejidad y variedad o alternativas para las cuales se aplican los algoritmos  Un algoritmo es el conjunto de operaciones y procedimientos que deben seguirse para resolver un problema, es por ellos que debemos estudiarlos y conocerlos.

Página 19 de 20

BIBLIOGRAFÍA  http://correo.uan.edu.mx/~iavalos/introprog.htm#Lenguajes  http://www.desarrolloweb.com/articulos/pseudocodigo.html  http://www.rodolfoquispe.org/blog/que-es-un-algoritmo.php  http://www.lenguajes-de-programacion.com/lenguajes-deprogramacion.shtml  http://www.monografias.com/trabajos59/diagrama-flujo/diagramaflujo2.shtml  http://uproprod.blogspot.com/2007/08/aprenda-crear-diagramas-deflujo.html  http://www.monografias.com/trabajos11/tuto/tuto.shtml  http://www.scribd.com/full/52982414?access_key=key-esice4rtp20jguovch8  http://www.scribd.com/full/52985103?access_key=keyhhsnwx1sb0ab9ortq1v

Página 20 de 20

Sign up to vote on this title
UsefulNot useful