Anda di halaman 1dari 91

Lgica Computacional y Programacin

Indice
Introduccin
UNIDAD I. LGICA COMPUTACIONAL 1 Algoritmos 1.1. Concepto de algoritmo 1.2. Caractersticas de los Algoritmos 1.3. Solucin de Problemas 1.4. Anlisis del Problema 1.5. Diseo y elaboracin del Algoritmo 1.5.1. Para solucin de problemas cotidianos 1.5.2. Para solucin de problemas numricos 2 Diagramas. 2.1. De Nassi/Shneiderman (N-S) 2.2. Diagramas de Flujo 2.2.1. Simbologa 2.2.2. Reglas de Construccin 2.2.3. Elaboracin de Diagramas de flujo 2.2.4. Pruebas de Escritorio 2.2.5. Pseudocdigo Ejercicios Preguntas de resumen UNIDAD II: DATOS Y EXPRESIONES 1. Datos 1.1 Definicin 1.2 Tipos de Datos 1.2.1. Datos Numricos 1.2.2. Datos Lgicos (booleanos) 1.2.3. Datos tipo carcter. 1.3. Constantes 1.4. Variables 23 20 21 22 20 20 20 20 20 18 19 19 15 17 7 7 8 8 9 9 10 10 12 12 13 14 15 5 7

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin 2 Expresiones 2.1. Expresiones Aritmticas 2.1.1. Operadores 2.1.2. Reglas de prioridad 2.1.3. Evaluacin de Expresiones Aritmticas. 2.2. Expresiones Lgicas 2.2.1. Operadores de Relacin 2.2.2. Operadores Lgicos 2.2.3. Prioridad de los Operadores Lgicos 2.2.4. Evaluacin de Expresiones Lgicas. Ejercicios Preguntas de resumen UNIDAD III. ESTRUCTURA GENERAL DE UN PROGRAMA. 1. Programas 1.1. Concepto de Programa 1.2. Partes constitutivas de un programa 1.3. Instrucciones 1.4. Tipos de instrucciones 1.4.1. De Asignacin 1.4.2. De Lectura de Datos (entrada) 1.4.3. De Escritura de Resultados (salida) 1.4.4. De Bifurcacin 2. Elementos Bsicos de un Programa 2.1. Bucles 2.2. Contadores 2.1. Acumuladores 2.2. Interruptores 3. Escritura de algoritmos/programas 3.1 Cabecera del alg. o programa 3.2 Declaracin de Constantes Academia de Informtica 39 39 40 38 37 35 31 31 30 30 30 27 24 25 26

2 24 24 24

26 27 27 29 29 30

31

31 37

37 38 38

Cobaq No. 1 Satlite

Lgica Computacional y Programacin 3.3. Declaracin de Variables 3.4. Comentarios Ejercicios Preguntas de resumen UNIDAD IV. PROGRAMACIN ESTRUCTURADA 1. Programacin Estructurada 1.1. Tcnicas de Programacin 1.2. Programacin Modular 1.3. Caractersticas de la Programacin estructurada 1.3.1. Recursos Abstractos 1.3.2. Diseo descendente 1.3.3. Estructuras Algortmicas bsicas 1.3.3.1. Selectivas a) Estructura If then b) Estructura Case 1.3.3.2 Repetitivas a) Estructura Until b) Estructura While-do c) Estructura For-Next Ejercicios Preguntas de resumen UNIDAD V. SUBPROGRAMAS PROCEDIMIENTOS Y FUNCIONES 1. Subprogramas, Funciones y Procedimientos 1.1. Introduccin a los Subprogramas o Subalgoritmos 1.2. Funciones 1.2.1. Declaracin de las funciones 1.2.2. Invocacin de las funciones 1.3. Procedimientos (subrutinas) 1.3.1. Substitucin de Argumentos/parmetros Academia de Informtica 55 55 56 53 53 48 49 49 45 45 45 46 46 44 44

3 40 41 42 42

44 45

46

50 50 52 52 53

53 54

Cobaq No. 1 Satlite

Lgica Computacional y Programacin 1.4. Variables locales y globales 1.5. Comunicacin con subprogramas: paso de parmetros 1.6. Actividades de programacin Ejercicios Preguntas de resumen UNIDAD VI. ESTRUCTURAS DE DATOS 1. Arreglos 1.1. Arreglos Unidimensionales (vectores) 1.2. Operaciones con Vectores 1.2.1 Asignacin 1.2.2. Lectura/escritura de datos 1.3. Arreglos bidimensionales (matrices) 1.4. Operaciones con Matrices 2. Registros 2.2. Definicin 2.3. Referencia de los componentes 2.4. Aplicaciones 3. Archivos 3.1. Definicin 3.2. Campos y Registros 3.3. Organizacin 3.4. Acceso a los Registros 3.5. Tipos de Archivos 4. Operaciones con Archivos 4.1. Creacin y eliminacin de archivos 4.2. Lectura y escritura de registros. 71 72 70 62 62 62 57 58 59

60 60 61 61 61 62

63 64 64 65 65 67 67 67 70 71 71

Ejercicios

74

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

Preguntas de resumen Bibliografa 75

74

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

Introduccin
El presente documento es fruto de mi trabajo por varios aos en la educacin media superior del Colegio de Bachilleres del estado de Quertaro . Est basado en el plan de estudios de la materia de Lgica Computacional y Programacin de la capacitacin en informtica. Se han recopilado varios apuntes, conceptos de autores, estudiantes e investigadores en el rea de informtica as como actividades basadas en la experiencia vivida con los alumnos que han pasado por la capacitacin. Durante la investigacin de los temas de este programa de materia pude observar que la misma informacin es tratada con diferentes niveles de complicacin en los diversos libros, sitios y apuntes; esto muy probablemente impacta en la manera en que nuestros alumnos captan la materia. Considero que a varios maestros de computacin nos toca enfrentarnos con un problema: hacer que los alumnos aprendan con igual rapidez. Tomando en cuenta esta problemtica he tratado de abordar los temas con la mayor sencillez y precisin posible. El cuaderno est dividido en seis unidades temticas y cada una concluye con una serie de ejercicios simples y preguntas de resumen de la unidad. La unidad 1 es una introduccin a la materia donde se abordan conceptos bsicos, los cuales, sern utilizados a lo largo del curso y por lo tanto se considera necesario que los alumnos estn familiarizados con esta terminologa. La unidad 2 nos muestra la forma de identificar tipos de datos que se utilizan dentro de un programa y la manera de resolver expresiones aritmticas-lgicas-relacionales a partir de conocer los diferentes tipos de operadores. La unidad 3 nos lleva al desarrollo de programas sencillos una vez que conozcamos las partes principales de un programa, los elementos y la manera en que son tratadas las variables y las constantes. La unidad 4 es ya la aplicacin de los conocimientos aprendidos en las unidades anteriores y nos permite comprender porqu en ocasiones se tiene que dividir un Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

programa en partes. Nos mostrar cmo utilizar las estructuras condicionales y las repetitivas. La unidad 5 nos ayudar a tratar con funciones y procedimientos, la forma de crear estas estructura as como la forma en que se pueden llamar desde un programa o subprograma. La unidad 6 muestra conceptos un poco ms avanzados de programacin y tal vez, debido a la complejidad de los temas, es difcil de abordar; sin embargo se tratan en este cuaderno de apuntes con el fin de que se tenga un apoyo a la mano para aquellos interesados en el tema, que consideren necesario estudiar antes de ingresar a una carrera del rea de la informtica. Finalmente quiero agregar que este cuaderno es solo una introduccin al mundo de los algoritmos informticos; para aquellos verdaderamente interesados en los temas, sugiero utilizar la bibliografa mostrada al final del cuaderno, adems de otra, tambin navegar en internet, asesorarse con otros profesores, etc. Quiero agradecer a mis compaeros de la academia, cualquier apoyo agregado de sus conocimientos u observaciones al presente documento. Ojal que sea de gran utilidad para las generaciones que quedan de la capacitacin en informtica y que fuera de eso sea un cuaderno de apoyo para otros estudiantes que quieran aprender de la lgica de los programas basados en el lenguaje Visual Basic.

Autor I.S.C. Ma. Del Rosario Martnez Prez Docente de la capacitacin en Informtica Plantel 1, Satlite

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

UNIDAD I

LGICA COMPUTACIONAL

OBJETIVO: Construir algoritmos elementales, utilizando los principios de la programacin, para propiciar en el estudiante la habilidad de proponer soluciones sistmicas a problemas sencillos

1. Algoritmos

La computadora es una herramienta importante en el desarrollo de soluciones automatizadas especiales, sin embargo para efectuar correctamente una tarea de programacin, es necesario algo ms que la escritura de un programa en un lenguaje determinado. Desde que se plantea un problema, por sencillo que sea, hasta que se consigue los resultados se necesita llevar a cabo las siguientes fases: I. II. III. Anlisis del problema Diseo del procedimiento de solucin Escritura de la solucin en un lenguaje de programacin: Programa

1.1. Concepto de algoritmo

Se puede definir como un conjunto finito ordenado de pasos que especifican la secuencias de operaciones que se han de realizar para resolver un problema de terminado.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

Es imprescindible que el algoritmo que resuelve un problema sea absolutamente claro, sin ambigedades y, adems que contemple todas y cada una de las posibles situaciones que puedan presentarse durante la resolucin del mismo. Por ejemplo: Qu se hace cuando utilizamos la computadora para realizar una carta escrita? Inicio del algoritmo Revisar que el regulador se encuentre encendido Si est encendido entonces presionar el Power del CPU e ir al paso 4, de lo contrario habr que encenderlo Encender el Monitor y esperar a que el sistema est listo Buscar un programa que procese textos Si est, comenzar a escribir la carta e ir al paso 7, en caso contrario utilizar otra computadora Imprimir la carta. Final del algoritmo En general muchas actividades de la vida cotidiana se pueden escribir mediante algoritmos, es solo que al momento de llevarlas a cabo no pensamos que lo es.

1.2. Caractersticas de los Algoritmos

Segn el ejemplo de algoritmo que se ha presentado se puede concretar ms formalmente las caractersticas que debe tener un buen algoritmo:

Un punto de inicio Un punto de finalizacin Estar bien definido, es decir que si se sigue varias veces el algoritmo con los mismos datos de entrada, se debe obtener el mismo resultado Tener en cuenta todas las posibles situaciones que puedan plantearse Ser efectivo, esto es, resolver el problema para el que fue diseado

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ser de fcil lectura e interpretacin

10

Ser finito, y muy finito terminando en algn putno tanto en escritura como en ejecucin Ser concreto estar escrito en menos instrucciones de las que se ejecutan (gracias a las instrucciones repetitivas) Estar diseado de forma que sea independiente del lenguaje de programacin en que vaya a ser expresado.

1.3. Solucin de Problemas

La computadora deber ser capaz de entender el algoritmo que se ha escrito. La solucin a un problema es la accin que permite eliminar la diferencia entre lo que tenemos y lo que queremos. Para un mismo problema se pueden tener varias soluciones y la eleccin de la mejor depender de las circunstancias especficas. Ejemplo: Si existiera un bache enfrente de nuestra casa, tenemos varias posibilidades de solucin:

Esperar a que venga el ayuntamiento a repararlo Colocar un anuncio preventivo Colocar escombro o piedras provisionales sobre de l Repararlo con el material requerido

Cualquiera de estas soluciones se puede llevar a la prctica; sin embargo hay soluciones que son inevitablemente irnicas como la primera que posiblemente pasen semanas sin que sea reparado el dao. La segunda y la tercera no resuelven el problema solo lo mantiene oculto; y la ltima que sin lugar a dudas es la ms complicada pero es la definitiva.

1.4. Anlisis del Problema

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

11

El anlisis consiste en estudiar el problema que se ha planteado para obtener una idea clara y concisa sobre lo que se desea obtener como resultado, los datos de entrada de los que se parte y la forma en que estos datos iniciales van a llegar a la computadora. Tambin se debe estudiar el tratamiento que se ha de realizar con dichos datos, as como la informacin que se desea obtener como resultado y de qu manera debe presentarse. En resumen, despus del anlisis del problema se deben conocer tres cosas claramente:

La informacin de salida.- Qu se quiere obtener? Tratamiento de la informacin.- Cmo se tiene que obtener la informacin? Datos de entrada.-Qu datos se necesitan?

1.5. Diseo y elaboracin del Algoritmo

Se trata de escribir un algoritmo de solucin, es decir, encontrar la solucin al problema a lpiz. Se escriben los pasos y secuencias necesarias para llegar a la solucin; es el definir con ms exactitud el proceso que se describi en la fase del anlisis. El diseo es totalmente independiente del lenguaje computacional y computadora

que

se

van

utilizar.

El algoritmo se puede elaborar en forma: Grfica, usando un diagrama de flujo. De pseudocdigo.

1.5.1. Para solucin de problemas cotidianos

Los problemas cotidianos en general se pueden describir mediante algoritmos. A continuacin se muestran algunos con los que estamos familiarizados: Ejemplo 1: Qu se hace cuando llamamos por telfono? 1. Inicio del algoritmo 2. Descolgar telfono Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin 3. Esperar la seal de lnea 4. Marcar el nmero

12

5. Si no se encuentra ocupada su lnea hablar con la persona, en caso contrario colgar y volver al paso 2. 6. Colgar el telfono 7. Fin del algoritmo As como este caso hay muchos que podemos citar y en cada uno habr un algoritmo que nos muestre la manera de llegar al objetivo; ejemplos comunes son los algoritmos para:

Encender el automvil Revisar el buzn de correo Buscar un programa especfico en la TV Hornear un pan Hacer la tarea de una materia Desplazarse al colegio Etc.

1.5.2. Para solucin de problemas numricos

Las operaciones matemticas tambin suelen usarse en los algoritmos y son tambin procesos que manipulan los nmeros. En los algoritmos encontramos dos niveles bsicos de operacin: aritmticos y funciones. Las operaciones aritmticas son suma, resta, multiplicacin, divisin, potencia, raz cuadrada, etc. Las operaciones con funciones son clculos con senos, cosenos, tangentes, logaritmos, etc. Ejemplo 1: Si deseamos obtener el rea de un tringulo segn la frmula A= (B * H)/2. Si la condicin es que A o B no sean CERO. El algoritmo es: Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

13

1. Inicio del algoritmo 2. Introducir B y H 3. Multiplicar B por H y el resultado guardarlo en L 4. Dividir L entre 2 y el resultado guardarlo en A 5. Mostrar el resultado de A 6. Fin del algoritmo

Ejemplo 2: Otro algoritmo til es por ejemplo convertir Grados Fahrenheit(GF) a grados centgrados(GC). 1. Inicio del algoritmo 2. Leer la cantidad en grados Fahrenheit GF 3. GC= (5/9) * (GF-32) 4. Escribir el resultado GC 5. Fin del algoritmo Ejemplo 3: Supngase que se quiere escribir un programa que calcule el resultado de elevar un nmero A a otro B (A ). Si se supone que B es un nmero entero, entonces el clculo se puede hacer multiplicando el nmero A por s mismo tantas veces como indique el nmero B. El algoritmo sera: 1. Inicio del algoritmo 2. Introducir A y B(A como la Base y B como la Potencia) 3. Multiplicar A por A y dejar el resultado en A 4. Restar 1 a B 5. Repetir los pasos 3 y 4 hasta que B sea igual a CERO 6. Mostrar el resultado 7. Fin del algoritmo
B

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

14

2 Diagramas.

Los diagramas nos permiten representar grficamente el algoritmo de solucin que hemos planteado, mediante una simbologa estndar. A continuacin se muestran stas tcnicas y algunos ejemplos prcticos.

2.1. De Nassi/Shneiderman (N-S)

Este mtodo estucturado fue desarrollado por Nassi y Schneiderman en 1973 y perfeccionado en 1974 por Ned Chapin y es un enfoque ms estructurado, pero un poco menos visual. La principal ventaja de la grfica N-S es que adopta la filosofa de la programacin estructurada. En segundo, usa una cantidad limitada de smbolos, por lo que el diagrama de flujo ocupa menos espacio y puede ser ledo por alguien que no est familiarizado con los smbolos usados en otros tipos de diagramas de flujo.

El primer smbolo es un cuadro, que se usa para representar cualquier proceso en el programa. El segundo smbolo es un tringulo divisor de columnas, que representa una decisin (observa la similitud con el rombo en los diagramas de flujo tradicionales). La forma ms bsica de una decisin, cierto" o "falso", se muestra en esta figura, pero cualquier forma de decisin, aun las que incluyen varias condiciones alternativas, pueden ser mostradas usando este smbolo.

El tercer smbolo es el de cuadro dentro de cuadro, usado para mostrar que se realiza una iteracin. En la programacin estructurada se usa un enfoque de arriba hacia bajo. Esto significa que el analista puede comenzar trazando primero los ciclos principales y luego hacer una sangra para completar posteriormente los ciclos interiores.

En resumen, las grficas N-S pueden ser una herramienta valiosa para el analista, y son sustentadas por algunas herramientas CASE, tal como el XperCASE.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

15

Ejemplo 1: Estructura Secuencial. Diagrama de N-S para el algoritmo de obtener SUMA y PRODUCTO de 2 nmeros A y B. Introducir A y B SUMA = A + B PRODUCTO = A* B Mostrar SUMA, PRODUCTO

Ejemplo 2: Estructura Condicional. Diagrama de N-S para el algoritmo de leer un nmero y si es mayor a 20 lo muestre en pantalla. Introducir NUM NUM > 20 Verdadero Mostrar NUM Falso

2.2. Diagramas de Flujo

Definicin Es una herramienta que representa grficamente la secuencia de los pasos de un proceso. Muestra la secuencia lgica de pasos para desarrollar o resolver un proceso. Un organigrama o diagrama de flujos es una representacin semigrfica del algoritmo en cuestin. Esto nos facilita la visin descriptiva de la ejecucin del programa, as como la generacin de la traza del algoritmo. Se denomina traza de un algoritmo a la Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

16

ejecucin manual de un programa obteniendo para cada paso un resultado. Smbolos generales: Inicio y fin de un programa.

Operaciones de I/O , aritmticas y lgico-aritmticas. Decisiones lgicas. Flujo de la ejecucin.

Un diagrama de flujo facilita la visualizacin de la estructura de un proceso. Se presenta la informacin (flujos de control, entradas, salidas, etc.) y se utiliza en la fase de diseo en el desarrollo de sistemas computacionales. Ayuda en la bsqueda y deteccin de errores. Generalmente se usa para aprender un lenguaje computacional debido a lo especfico que es (para problemas grandes no es conveniente usarlo). No se usa para resolver problemas reales.

2.2.1. Simbologa

Los elementos que forman un diagrama de flujo son dibujos geomtricos con especificaciones que indican el flujo de las actividades o pasos. Los principales son: SMBOLO Inicio y Fin SIGNIFICADO

Especificacin de datos de Entrada y Salida Proceso

Condicional o Decisin

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

17

Documento Impreso

Entrada manual de datos

Salida a la pantalla

Conector dentro de la misma pgina

Conector fuera de la pgina

Almacenamiento en disco

Operacin manual

Proceso predefinido

2.2.2. Reglas de Construccin

1. Debe tener un principio y un fin

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

18

2. El flujo del diagrama es de arriba hacia abajo y de izquierda a derecha, exceptuando cuando se trata de una estructura repetitiva(bucle) donde es necesario regresar la secuencia del programa hacia arriba y/o de derecha a izquierda. 3. Los smbolos debern ir alineados con respecto a las flecha de flujo de solucin. 4. El texto de instruccin no deber extralimitar al smbolo que lo contiene. 5. Las instrucciones van explcitamente dentro del smbolo y no como textos agregados afuera del diagrama.

2.2.3. Elaboracin de Diagramas de flujo

Ejemplo 1 Supongamos que el problema a resolver es calcular el cociente de dos nmeros A y B. Lo primero que se tiene que hacer es analizar el problema y seguir el siguiente criterio general de solucin: 1. Entrada de datos 2. Proceso de datos 3. Salida de datos

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

19

1. Entrada de datos

2. Proceso de datos

3. Salida de datos

Ejemplo 2 Otra forma de elaborar diagramas es con las herramientas de dibujo de Ms Word. Si tenemos un algoritmo donde se obtiene el rea de un tringulo mediante la frmula A= (B*H)/2, con la condicin de que B o H no sean CERO. El diagrama diseado sera el siguiente:

Inicio

A, B, H

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

20

Leer B

B=0

Leer H

H=0

A= (B*H)/2

l resultados es: A

Fin

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

21

2.2.4. Pruebas de Escritorio Es una prueba necesaria para corroborar que el algoritmo plasmado representa la solucin inicial correctamente. Esta prueba consiste en:

Dar diferentes datos de entrada al programa Seguir la secuencia indicada Obtener resultados

Al realizar estos pasos, se puede comprobar si el algoritmo est correctamente escrito o si es necesario hacerle ajustes. Se recomienda dar diferentes tipos de datos de entrada y considerar todos los casos posibles para asegurarse de que el programa no produzca errores. 2.2.5. Pseudocdigo El pseudocdigo es una forma de escribir la solucin a un problema de manera que su traduccin posterior a un lenguaje de programacin de alto nivel sea sencilla. Trata de definir la solucin del problema en un lenguaje intermedio entre el humano y el de programacin. El pseudocdigo es una herramienta muy til utilizada en el diseo de algoritmos para resolver problemas que, si emplea los principios de la programacin estructurada, permite expresar el flujo de ejecucin de las instrucciones de una forma clara, sin ambigedad y usando un lenguaje natural. Consejos generales del pseudocdigo:

Todo pseudocdigo comienza con la palabra inicio y termina con la palabra fin. Cada instruccin se debe escribir en una lnea

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

22

Para su descripcin se usan una serie de palabras reservadas: If, Then, Else, While, Until, For, etc. Debe escribirse tabulado para identificar las dependencias de control. Cada estructura(For, While, Until, Case, If) deber tener un solo punto de comienzo y uno solo de trmino Se escribir en minsculas, excepto nombres de variables, ficheros, mdulos que se escribirn en maysculas.

Ejemplo Calcular la suma, resta, producto y divisin de dos nmeros. Inicio Introducir A y B SUMA= A + B RESTA = A B PRODUCTO = A * B DIVISIN = A / B Mostrar SUMA, RESTA, PRODUCTO, DIVISIN Fin Ejercicios 1. Disea un algoritmo para encender un automvil 2. Disea el algoritmo necesario para conseguir ir al cine a ver la pelcula de El ltimo episodio de la Guerra de las Galaxias 3. Disea el algoritmo para leer 2 nmeros, los compare y muestre en pantalla el nmero mayor de los dos. 4. Elabora el diagrama de Nassi/ Schneiderman para el algoritmo anterior 5. Elabora el diagrama de flujo para el algoritmo nmero 3. 6. Elabora el pseudocdigo para el algoritmo nmero 3. Resuelve las siguientes preguntas de resumen: 1. Qu fases se deben seguir parea resolver un problema? a. Definir, disear y programar b. Analizar, disear y escribir en lenguaje de pro. Su solucin Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin c. Analizar, disear y resolver d. Programar y codificar en un lenguaje de programacin 2. Qu es un algoritmo? a. Un conjunto finito y ordenado de pasos a seguir para resolver un problema b. Un conjunto infinito de pasos que resuelven el problema c. Una operacin matemtica d. Un problema sin solucin 3. Qu es un diagrama de flujo? a. Representacin esquemtica de un texto comn b. Representacin grfica de la solucin de un problema c. Dibujos extraos enlazados d. Dibujos conectados al azar 4. Qu es un pseudocdigo? a. Es un texto en prrafo b. Es una forma de escribir la solucin de un problema de manera estructurada c. Es la traduccin de palabras en ingls d. Es una estructura necesariamente secuencial

23

UNIDAD II DATOS Y EXPRESIONES

OBJETIVO: Identificar las Estructuras de Datos, mediante el reconocimiento de la informacin y la forma de estructurarla para su procesamiento.

1. Datos

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

24

1.1 Definicin

Un Dato es un carcter o conjunto de caracteres que representa el valor que toma una variable con la que opera la computadora

1.2 Tipos de Datos

Existen cuatro tipo de datos simples: Alfabticos, Numricos, Alfanumricos y Booleanos: 1.2.1. Datos Numricos

Numricos: Estn compuestos slo de caracteres numricos, el punto decimal y el


signo. Ejemplo: 3,650,000 30 1.2.2. Datos Lgicos (booleanos)

Lgicos y booelanos: Datos cuya caracterstica es que solamente pueden tomar dos
valores, verdadero y falso Ejemplo: Trabaj horas extras? A > 20? 1.2.3. Datos tipo carcter.

Alfabticos: Datos que estn compuestos por caracteres alfabticos y el carcter


blanco.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejemplo: Luisa Lpez Mxico 1.2.4. Datos de tipo texto y nmero

25

Alfanumricos: Estn compuestos por una mezcla de los dos anteriores (alfabticos
y numpericos) Ejemplo: Acceso IV, No. 235 16 de noviembre de 2003 En Visual Basic podemos utilizar los siguientes tipos de datos La tabla siguiente muestra los tipos de datos compatibles, incluyendo el tamao de almacenamiento y el intervalo. Tipo de datos Byte Boolean Integer Long (entero largo) Single (coma flotante/ precisin simple) Double (coma flotante/ precisin doble) Tamao de almacenamiento 1 byte 2 bytes 2 bytes 4 bytes 4 bytes Intervalo 0 a 255 True o False -32,768 a 32,767 -2,147,483,648 a 2,147,483,647 -3,402823E38 a 1,401298E-45 para valores negativos; 1,401298E-45 a 3,402823E38 para valores positivos -1,79769313486232E308 a -4,94065645841247E-324 para valores negativos; 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos -922.337.203.685.477,5808 a 922.337.203.685.477,5807 +/Cobaq No. 1 Satlite

8 bytes

Currency (entero a escala) Decimal

8 bytes 14 bytes

Academia de Informtica

Lgica Computacional y Programacin

26 79.228.162.514.264.337.593.543.950.335 sin punto decimal; +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del signo decimal; el nmero ms pequeo distinto de cero es +/-0,0000000000000000000000000001

Date Object String (longitud variable) String (longitud fija) Variant (con nmeros) Variant (con caracteres) Definido por el usuario (utilizando Type)

8 bytes 4 bytes 10 bytes + longitud de la cadena Longitud de la cadena 16 bytes 22 bytes + longitud de la cadena Nmero requerido por los elementos

1 de enero de 100 a 31 de diciembre de 9999 Cualquier referencia a tipo Object Desde 0 a 2.000 millones Desde 1 a 65.400 aproximadamente Cualquier valor numrico hasta el intervalo de un tipo Double El mismo intervalo que para un tipo String de longitud variable El intervalo de cada elemento es el mismo que el intervalo de su tipo de datos.

1.3. Constantes

Una constante es un dato cuyo valor permanece inalterado durante la ejecucin del programa. Se emplea para definir aquellos datos que siempre van a mantenerse invariables. Las constantes pueden ser usadas en cualquier punto en lugar de su valor, permitiendo cambiarlo cuando sea necesario, sin tener que cambiarlo en todos los sitios en que se utiliza. La expresin no puede utilizar llamadas a funciones, pues la constante se calcula en tiempo de compilacin, no en tiempo de ejecucin. Ejemplo: Direccin = Acceso IV, No. 235 FechaCaduca= 16 de noviembre de 2003 Edad= 18 Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin Pi=3.1416 1.4. Variables

27

Una Variable es un dato cuyo valor puede ser modificado durante la ejecucin de un programa. Cuando se hace mencin a una variable se est refiriendo a una pequea zona de memoria principal donde se va a alojar un valor. Existen ciertas reglas en cuanto a variables:

Claras y con referencia directa al problema. No espacios en blanco, ni smbolos extraos en ellas. Se pueden usar abreviaturas, pero solo de carcter general. No deben ser palabras reservadas del lenguaje.

TIPOS DE VARIABLES

TIPO BOOLEAN BYTE INTEGER

COMENTARIO Slo admite 2 valores TRUE o FALSE admite valores entre 0 y 255 admite valores entre -32768 y 32767 admite valores entre -2.147.483.648 y 2.147.483.647 admite valores decimales con precisin simple admite valores decimales de doble
Cobaq No. 1 Satlite

LONG

SINGLE

DOUBLE
Academia de Informtica

Lgica Computacional y Programacin

28

precisin CURRENCY STRING DATE vlido para valores de tipo moneda cadenas de caracteres fechas, permite operar con ellas

Ejemplos de declaracin de variables con Visual Basic: DIM EDAD AS INTEGER DIM EXPEDIENTE AS LONG DIM NOMBRE AS STRING DIM CIUDAD AS STRING * 20 2 Expresiones

Una expresin es una combinacin de constantes, variables, operadores aritmticos, lgicos y/o relacionales y parntesis. Existen diferentes tipos de expresiones que se aplican segn el problema que vamos a resolver; podemos utilizar todos los diferentes tipos de expresiones dentro de un mismo programa.

2.1. Expresiones Aritmticas

Una expresin es una combinacin de constantes, variables, operadores aritmticos y parntesis. En una expresin, los operadores se evalan segn prioridad presentada en la seccin 2.1.2(Reglas de prioridad). 2.1.1. Operadores Academia de Informtica Cobaq No. 1 Satlite el orden de

Lgica Computacional y Programacin

29

Operadores Aritmticos Operador ^ * / \(DIV) MOD + & Descripcin Exponenciacin (elevar a una potencia) Multiplicacin Divisin Divisin entera Residuo de la divisin entera Resta Suma Concatenacin de cadenas (combinacin)

2.1.2. Reglas de prioridad Estas Reglas establecen la Jerarqua de usos de los operadores, a continuacin se presentan los criterios de aplicacin: 1) Parntesis: ( ) 2) Exponencial: ^ 3) Negativos: 4) Multiplicacin y Divisin segn se encuentren de izquierda a derecha:* , / 5) Divisin Entera: DIV 6) Residuo de la divisin entera: MOD 7) Suma y Resta segn se encuentren de izquierda a derecha: + , 8) Concatenacin de cadenas: & NOTA: El uso de parntesis en expresiones tienen el mismo uso que en otros lenguajes (alteran la jerarqua). 2.1.3. Evaluacin de Expresiones Aritmticas. Las siguientes expresiones sern evaluadas segn la jerarqua establecida de operacin. Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

30

1. T= 50 MOD 10 5 1050 0 Como el resultado de la divisin es 5 T es igual a 0 2. Z= 50 DIV 10 5 1050 0 En este caso de la divisin tambin es 5 por lo tanto decimos que Z es igual a 5 3. W = 30 + 5^2 12 / 3 Si decidiramos introducir sta operacin directamente a la computadora, sta lo resolvera segn la jerarqua de operacin. La expresin la separamos con parntesis para mostrar el criterio de solucin: W =((30 +(5^2)) (12 / 3)) 1. Se resuelve 5^2 = 25 2. Se resuelve 12 / 3 = 4 3. Se resuelve (30 +25) = 55 4. Se resuelve (55 4) = 51 Por lo tanto el resultado de W es igual a 51 y el sobrante es 0, se concluye que

4. Y = 2^2 ^2^2+2^3 / 4 *10 MOD 5 DIV 2

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Tambin se puede mostrar bajo llaves el proceso de solucin e ir resolviendo segn los parntesis. Es decir: Y =(( ( (2^2) ^2)^2)+( ( ( ( 2^3) / 4 ) * 10 ) MOD (5 DIV 2 ) ) ) 4 16 256 8 2 20 0 256 2

31

El valor de Y en este caso es igual a 256. Si analizamos minuciosamente la expresin podemos ver que la misma cantidad de llaves corresponde a la cantidad de parntesis(abierto-cerrado) en la expresin.

2.2. Expresiones Lgicas

2.2.1. Operadores de Relacin Estos operadores sirven para representar condiciones de comparacin entre valores, ya sean numricos o alfabticos. Operador = < <= > >= <> Academia de Informtica Significado Igual a Menor que Menor o igual que Mayor que Mayor o igual que Diferente de Cobaq No. 1 Satlite

Lgica Computacional y Programacin

32

2.2.2. Operadores Lgicos Se emplean para expresar la lgica de condiciones, que existen en un problema de cualquier tipo: Operador NOT AND OR 2.2.3. Prioridad de los Operadores Lgicos La prioridad de los operadores lgicos puede variar de unos lenguajes de programacin a otros. En Visual Basic se aplican bajo la misma priordad de izquierda a derecha segn se vayan encontrando en la expresin. 2.2.4. Evaluacin de Expresiones Lgicas. Evaluar expresiones lgicas puede resultar sencillo cuando no se combinan con expresiones de tipo aritmticas; sin embargo para conseguirlo es necesario conocer las tablas de verdad con que trabajan estos operadores: AND P V V F F NOT P V F Q F V Q V F V F R V F F F P V V F F OR Q V F V F R V V V F Significado NO Y O

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin A continuacin mostramos la evaluacin de expresiones lgicas sencillas pero tambin combinadas con relacionales y aritmticas.

33

1. Mxico es pas de Amrica

AND Francia es pas de Europa AND Verdadero Verdadero

Verdadero

El resultado final de la evaluacin de esta expresin es Verdadero 2. X= 52 > 20 AND 33 < 25 OR 20= 25 OR 80 > 34 Verdadero AND 33 < 25 OR 20= 25 OR 80 > 34 Verdadero AND Falso OR 20= 25 OR 80 > 34 Falso OR Falso OR 80 > 34 Falso OR Verdadero X= Verdadero El resultado final de la evaluacin de X en esta expresin es Verdadero 3. L = NOT ( 20 < 35 AND 33 = 3 *11) L = NOT (Verdadero AND 33 = 33) L = NOT (Verdadero AND Verdadero ) L = Falso En este caso la evaluacin de la expresin fue verdadero pero con el operador NOT el resultado de la misma se convierte a Falso

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

34

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejercicios

35

1. Para cada dato de la siguiente lista identifica el tipo de dato, alfabtico, alfanumrico o boleano en caso de utilizarse dentro de un programa. a. Edad b. Nombre c. Direccin d. Sueldo e. FechaNacimiento f. FechaCaducidad g. MayorEdad h. Desempelado i. Mexicano j. Queretano 2. Evala las siguientes expresiones aritmticas a. X = 25 / 5 MOD 5 b. U = 25 ^(3 * 8 / 2 MOD 6) c. W = 100 DIV 10 MOD 3 DIV 1 d. T = 7 DIV 2 + 60 * 3 ^3 MOD 10 e. R = 3*6 ^2 + 8 / 2 * 5 / 4 45 MOD 4 3. Evala las expresiones lgico aritmticas relacionales a. ( 3 * 3) > 8 AND ( 6-1 ) * 2 < 8 OR 2^3 = 8 b. X= 53 > (20*2+12) AND 33 < 2*5^2 OR 20= 2^2+8*2 c. R = 200 MOD 10 ^2 < 100 OR 200 DIV 10 = 0

Resuelve las siguiente preguntas de resumen: 1. Cmo definiras un dato? 2. Qu tipos de datos existen en general? 3. Qu es una variable? 4. Qu es una constante? 5. Qu es una expresin? Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin 6. Qu tipos de operadores existen?

36

UNIDAD III ESTRUCTURA GENERAL DE UN PROGRAMA

OBJETIVO: Conocer los diferentes elementos que integran un algoritmo/programa, as como la estructura general que se debe seguir para el desarrollo de los mismos.

1. Programas

1.1. Concepto de Programa

Como ya se mencion anteriormente, un algoritmo es un conjunto de acciones que han de ejecutarse para la resolucin de un problema. Un programa es el mismo conjunto de instrucciones escritas en un lenguaje de programacin.

1.2. Partes constitutivas de un programa

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

37

Las partes que componen un programa son:

Declaracin de variables y constantes. En esta seccin se le indican a la


computadora las variables y constantes que van a existir en el programa.

Peticin de datos. Instrucciones que indican a la computadora que pida y


reciba los valores de los datos, que quedarn en cajones (variables) con sus valores correspondientes.

Proceso. Instrucciones que indican a la computadora qu operaciones debe


realizar con los datos y qu nombre debe asociar al resultado.

Escritura de resultados. Instrucciones que sirven para mostrar el resultado


del programa.

1.3. Instrucciones

A las acciones que componen el algoritmo se les denomina instrucciones, las cuales se dividen en cuatro grupos principales: 1. De asignacin 2. De entrada y salida 3. Condicionales 4. Repetitivas

1.4. Tipos de instrucciones

1.4.1. De Asignacin Se utilizan para signar un valor a una variable. Si la variable tena previamente otro valor este ser sustituido por el nuevo. Se puede representar una asignacin mediante el sigo =, asignando a la variable situada a la izquierda del signo lo que hay a la derecha del mismo.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejemplo B = 10 Asigna a la variable B el valor 10

38

1.4.2. De Lectura de Datos (entrada) Una instruccin de entrada implica la introduccin de datos en la memoria principal de la computadora desde dispositivos externos a la misma, por ejemplo desde el teclado, un disquete, disco duro, etc. Lo ms comn en Visual Basic es utilizar un TextBox para que el usuario introduzca un valor; mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamao que queramos en nuestro formulario. Se puede almacenar el contenido actual de este control en una variable. Ejemplo Para introducir texto en la variable nuevotexto en visual basic se puede escribir el siguiente cdigo en el evento Change del textbox Dim nuevotexto As String Nuevotexto =Tex1.Text El textbox del ejemplo puede verse en visual Basic de la siguiente manera

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

39

PROPIEDADES de un TextBox
Text: Aqu indicamos el texto que aparecer en el control. Podemos asignarle

cualquier texto en tiempo de diseo o ejecucin. Tambin podemos tomar el texto que haya introducido el usuario para tratarlo durante la ejecucin. Name: Esta propiedad la tienen todos los controles, el nombre que viene por

defecto en este caso Text1 y es el nombre con el que se conocer el control cuando lo utilicemos en el cdigo. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la funcin que tiene el control en la aplicacin para que el cdigo quede ms claro. Ejemplo, si en el textbox vamos a introducir la direccin de una persona podemos asignarle a esta propiedad el valor Direccin. MultiLine: de slo una. Alignment: Alineacin que tendr el texto dentro del control: izquierda, centro o derecha. Para que funcione la propiedad MultiLine debe estar con el valor true. Permite que introduzcamos varias lneas de texto en el control en lugar

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede

40

introducir ni modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario pueda modificarlos por error. BorderStyle: Determina el tipo de borde.

PasswordChar: Oculta un texto con un carcter simple. Tag: Almacena informacin adicional(cualquier expresin de

cadena), ej: almacenar la contrasea de su sistema. Otras propiedades que son comunes a la mayora de los controles: Backcolor: color de fondo. Forecolor: Font: color de letra. tipo y tamao de letra.

Para personalizar las combinaciones de la barra de desplazamiento en un cuadro de texto, se puede establecer la propiedad ScrollBars en Horizontal, Vertical, Both o None. Cuando la propiedad MultiLine esta en True se puede usar la propiedad Alignment para ajustar el texto.

EVENTOS PARA OBJETOS DE VISUAL BASIC


Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratn. A estos eventos se les puede asociar cdigo para que se ejecute al producir el evento. MouseMove: Mousedown: al mover el raton por encima del control. al pulsar cualquier boton del raton

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Change: Click: Doubleclick: al cambiar el contenido del control al hacer click con el botn izquierdo del ratn sobre el control

41

al hacer doble click con el con el botn izquierdo del ratn sobre el control.

Getfocus:

este evento se activa cuando el control recibe el enfoque, es decir, cuando se activa el control en tiempo de ejecucin para introducir datos en l o realizar alguna operacin.

Lostfocus:

Es el contrario del anterior evento, se activa cuando el control pierde el enfoque, es decir, se pasa a otro control para seguir introduciendo datos.

Otra manera es utilizando un Inputbox. El InputBox() Despliega un Mensaje en un cuadro de dialogo, espera que el usuario introduzca el texto o seleccione un botn y luego devuelve el contenido del cuadro de texto. Sintaxis: ValRe = InputBox(Mensaje, titulo, Posx, Posy, ArchAyuda, Context)

Mensaje: consiste de ms de una lnea, asegrese de incluir un retorno del carro chr(13) y un avance de lnea, chr(10) entre cada lnea. Puede usar la constante pre definida Vbcrlf para lograr el mismo efecto.

Titulo: Es una cadena que se despliega en la barra de titulo el cuadro de dialogo. Si se omite no aparecer nada.

Posx, Posy: Expresiones numricas que especifican el tamao de la caja. Si se omite aparecer en el centro.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

42

ArchAyuda, Context: Se usan para proporcionar ayuda sensible al contexto.

Ejemplo Si vamos a solicitar al usuario que introduzca un dato, podemos hacerlo con el inputbox, de la siguiente manera: Dim Mivalor as integer Mensaje = " Introduzca un nmero" Ttulo = "Demostracin de InputBox" ValorPred = "1" ' Establece el mensaje. ' Establece el ttulo. ' Establece el valor predeterminado. ' La siguiente linea muestra el dilogo en la posicin 100, 100. MiValor = InputBox(Mensaje, Ttulo, ValorPred, 100, 100) El resultado del cdigo anterior, es el siguiente

1.4.3. De Escritura de Resultados (salida) Las instrucciones de salida permiten la presentacin de datos desde la memoria central de la computadora hacia dispositivos externos por ejemplo, a la impresora, pantalla, disquete, disco duro, etc. Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

43

Una forma de entregar resultados al usuario con Visual Basic es tambin a travs de cajas de texto(TextBox) pero tambin con MsgBox. El MsgBox() y MsgBox Despliega un mensaje en un cuadro de dialogo y espera que el usuario seleccione un botn. Sintaxis: ValRe = MsgBox(Mensaje, tipo, titulo, ArchAyuda, Context)

Mensaje: Es una expresin de cadena que se despliega como el mensaje en un cuadro de dialogo.

Titulo: Expresin de cadena que aparece en la barra de titulo del cuadro. Tipo: Expresin numrica que es la suma de valores que especifican la cantidad y el tipo de botones por desplegar. Valor 0 1 2 3 4 5 16 32 48 64 Botn Ok(Aceptar) Ok(Cancelar) Abortar, Reiterar e Ignorar Si, No y Cancelar Si o No Reiterar y Cancelar Icono Parada Critica Signo de Interrogacin Signo de Exclamacin Icono de Informacin Constante VbOKOnly VbOKCancel VbAbortRetryIgnore VbYesNoCancel VbYesNo VbRetryCancel VbCritical VbQuestion VbExclamation VbInformation

Ejemplo Si definiramos en Visual basic un mensaje al usuario podramos usar la siguiente estructura de ejemplo:

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Dim Mensaje, Estilo, Ttulo, Ayuda, Ctxt, Respuesta, MiCadena Mensaje = "Desea continuar?" Estilo = vbYesNo + vbCritical + vbDefaultButton2 Ttulo = "Demostracin de MsgBox" Ayuda = "DEMO.HLP" Ctxt = 1000 ' Define el mensaje. ' Define los botones. ' Define el ttulo. ' Define el archivo de ayuda ' Define el tema ' del contexto ' Muestra elmensaje. Respuesta = MsgBox(Mensaje, Estilo, Ttulo, Ayuda, Ctxt) El cdigo anterior nos da como resultado el mensaje en pantalla:

44

1.4.4. De Bifurcacin Incluye las instrucciones condicionales y repetitivas

Las instrucciones Condicionales. Son aquellas que bajo la comprobacin de


veracidad o falsedad de una condicin, ejecuta uno de los grupos de acciones posibles. Existen tres tipos de condicionales:

Estructura condicional simple(If then-else- End If) Estructura condicional doble(If then-If then-else-End If-else- End If) Estructura condicional mltiple(Do Case

Las instrucciones repetitivas. Controlan la ejecucin de un grupo de instrucciones


mientras una condicin sea cierta. Existen tambin tres tipos de instrucciones repetitivas(mejor conocidas como bucles) Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

45

Estructura tipo Mientras(Do while-Loop) Estructura tipo Hasta(Do-Loop Until) Estructura tipo Para(For-Next)

2 Elementos bsicos de un Programa

Sabemos que los programas son especficos para el problema que van a resolver; sin embargo todos pueden emplear elementos comunes tales como: bucles, contadores, acumuladores o interruptores. A continuacin se describe cada elemento de manera prctica con Visual Basic

2.1. Bucles

Son estructuras que contienen una condicin de salida que permiten la repeticin de un bloque de instrucciones dependiendo de la veracidad o falsedad de la condicin. Existen tres tipos de bucles, los cuales se aplican bajo el mismo criterio, pero talvez con diferente sintaxis en los diversos lenguajes de programacin existentes. En visual basic podemos identificarlos con la estructura general que se muestra a continuacin:

Estructura tipo Mientras Do while Condicin

Instrucciones
Loop

Estructura tipo Hasta Do

Instrucciones
Loop Until Condicin

Estructura tipo Para For Contador = 1 to N

Instrucciones
Next Cont Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

46

2.2. Contadores

Es una estructura utilizada para llevar una cuenta. A la variable utilizada como contador se le suma una constante, que normalmente es 1. Ejemplo CONTADOR = CONTADOR + 1

2.1. Acumuladores

Es una estructura que permite guardar un nuevo valor tomando en consideracin el valor que ya estaba en la variable Ejemplo SUMA= SUMA + PRECIO

2 Escritura de algoritmos/programas

2.2. Interruptores

En visual Basic podemos hacer una interrupcin mediante la instruccin Go-Sub -Return Las instrucciones Go Sub-Return salta a una de las lneas especificadas, dependiendo del valor de una expresin y al finalizar regresa a la lnea siguiente del programa anterior. Se utiliza GoSub para llamar a una subrutina ubicada dentro de un procedimiento Sub. La instruccin Return hace que se reanude la ejecucin en la instruccin que est inmediatamente despus de la instruccin GoSub. La instruccin Exit Sub se

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

47

utiliza para evitar que el control de la ejecucin contine accidentalmente en la subrutina. Ejemplo: Private Sub GosubDemo() Dim Nmero ' Pide un nmero al usuario.

Nmero = InputBox("Escriba un nmero positivo para dividir entre 2.") ' Slo se utiliza la subrutina si el usuario escribe un ' nmero positivo. If Nmero > 0 Then GoSub MiRutina Debug.Print Nmero Exit Sub MiRutina: Nmero = Nmero/2 Return End Sub ' Realiza la divisin. ' Devuelve control a la instruccin que sigue, ' Utiliza Exit para evitar un error.

3. Escritura de algoritmos/programas

3.1 Cabecera del algoritmo o programa Todos los programas consisten en una o ms funciones. La nica funcin que debe estar inevitablemente presente es la de inicio, private sub, main( ), Begin, etc. siendo la primera funcin que es llamada cuando comienza la ejecucin del programa. En cdigo bien escrito, el inicio contiene lo que, en esencia, esboza lo que el programa hace. Ese esbozo est compuesto por llamadas a funciones. Aunque tcnicamente el incio no forma parte del lenguaje, hay que tratarla como si lo fuera. No intente usar esta palabra reservada como nombre para una variable, ya que probablemente confundir al compilador. Ejemplo 1: Private sub Cabecera_Click()

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

48

Ejemplo 2: Private sub Command1_GotFocus() 3.2 Declaracin de Constantes

La instruccin Const se utiliza para declarar una constante y establecer su valor. Al declarar una constante, puede asignar un nombre significativo a un valor. Una vez que se declara una constante, no se puede modificar ni se le puede asignar un nuevo valor. Una constante puede declararse dentro de un procedimiento o en la seccin de declaraciones de un mdulo, clase o estructura. Las constantes de nivel de clase o de estructura son de tipo Private de manera predeterminada, pero tambin se pueden declarar como Public, Friend, Protected o Protected Friend segn el nivel apropiado de acceso al cdigo.

Ejemplo: En Visual Basic las constantes se declaran de diversas manera(segn su alcance y contenido): Las constantes son privadas de manera predeterminada. Const Pi = 3.1416 Declaracin de constante Public. Public Const Empresa = "Mi empresita" Declaracin de constante Private Integer. Private Const Edad As Integer = 5 Declara varias constantes en la misma lnea. Const Saludo = "Hola", Pi As Double = 3.1416

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

49

3.3. Declaracin de Variables

Una variable se declara para especificar su nombre y sus caractersticas. La instruccin de declaracin para variables es Dim. Su ubicacin y contenido determinan las caractersticas de la variable. Se pueden declarar distintas variables en la misma instruccin sin necesidad de repetir el tipo de datos. En las instrucciones que se muestran a continuacin, las variables I, J y K se declaran como de tipo Integer, L y M como Long y X e Y como Single Las variables declaradas con Dim en el nivel de mdulo estn disponibles para todos los procedimientos disponibles slo dentro de ese mdulo. En el nivel de procedimiento, las variables slo estn disponibles dentro de ese procedimiento. Se recomienda utilizar la instruccin Dim en el nivel de mdulo o de procedimiento para declarar el tipo de datos de una variable. Por ejemplo, la siguiente instruccin declara una variable como Integer. Ejemplos: Sin tipo, las variables se declaran como Variant de manera predeterminada, Dim AlgnValor, MiValor Cuando se declara explcitamente una variable del tipo Integer. Dim Nmero As Integer Cuando se hacen declaraciones mltiples en una lnea. Como puede verse OtraVar es del tipo Variant porque se omite su tipo. Dim OtraVar, Elegir As Boolean, FechaNacimiento As Date Para declarar una Matriz de tipo Variant con un ndice de 51 elementos, que va de 0 hasta 50 Dim MatrizDas(50) Para declarar una matriz bidimensional de enteros. Dim Matriz(3, 4) As Integer

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

50

Para declarar una matriz tridimensional de dobles con lmites explcitos. Dim MiMatriz(1 To 5, 4 To 9, 3 To 5) As Double

3.4. Comentarios

Los comentarios son textos dentro del mismo programa que afectan la ejecucin de las lneas de cdigo o grupo de instrucciones del programa. En visual Basic se utiliza un apstrofe antes de comenzar la lnea de comentario, e inmediatamente al confirmar el texto, VB transformar a color verde ese contenido. Ejemplo A= b* 8 este es el comentario

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejercicios

51

1. Identifica los tipos de instrucciones: De entrada, Salida, asignacin o de bifurcacin para las siguientes lineas de programa: a. Saludo = Hola b. Mensaje = MsgBox("Hola buen da", vbYesNo + vbCritical, "Saludo") c. Dato = InputBox(dame el dato, solicitud, 1, 100, 100) d. If edad>12 then msgbox eres adolescente 2. Escribe el cdigo para obtener el siguiente cuadro de entrada de informacin:

3. Escribe el cdigo para obtener el siguiente cuadro de salida de informacin:

4.Declara las siguientes constantes: a. Saludo = Hola b. Nombre = Pedro c. Cantidad = 15 d. Fecha = 10/07/2004

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin e. Estatura = 1.89 f. Peso = 70 5. Declara las siguientes variables a. Edad b. Nombre c. Fecha d. Sexo e. Gnero f. DuracinPelcula

52

Resuelve las siguientes preguntas de resumen: 1. Qu es un programa? 2. Qu tipos de instrucciones existen dentro de un programa? 3. Qu hace una instruccin de asignacin? 4. Qu hace una instruccin de salida? 5. Qu hace una instruccin de entrada? 6. Qu hace un contador? 7. Qu hace un acumulador? 8. Qu es una variable? 9. Qu es una constante? 10. Para qu utilizamos un interruptor? 11. Para qu sirve un comentario en un programa?

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

53

UNIDAD IV PROGRAMACIN ESTRUCTURADA

OBJETIVO: Aplicar los principios de la programacin estructurada en la construccin de algoritmos elementales, para propiciar en el estudiante la habilidad de desarrollar soluciones sistmicas a problemas sencillos.

1. Programacin Estructurada

Divide y conquistaras. Es una de las tcnicas ms usadas en la implementacin de algoritmos es la recursin, comnmente llamada "divide y conquistaras". Los algoritmos recursivos generalmente dividen el problema original en subproblemas similares al original pero de tamao menor, los resuelven y posteriormente combinan las soluciones parciales para llegar a una solucin general. El paradigma de divide y conquistaras involucra tres pasos para cada nivel de recursin:

Divide el problema en subproblemas. Cobaq No. 1 Satlite

Academia de Informtica

Lgica Computacional y Programacin Conquista sencilla.

54 resolvindolos recursivamente. Si el

los

subproblemas

subproblema es suficientemente pequeo lo resuelve de la manera ms Combina la solucin de los subproblemas para obtener la solucin del problema original.

1.1. Tcnicas de Programacin

Para realizar un programa complicado, debemos dividirlo en partes que resuelvan subproblemas del problema original. En este caso el objetivo debe ser la descomposicin del programa en mdulos que sean ellos mismos programas de tamao pequeo y que interacten unos con otros de forma sencilla y bien definida.

1.2. Programacin Modular Mdulo es un algoritmo autocontenido, que puede ser diseado

independientemente del contexto en el que va a ser usado. Los procedimientos y funciones son los mecanismos ms comunes que ofrecen los lenguajes de programacin para permitir la modularidad. Es evidente que si esta metodologa nos lleva a tratar con subproblemas, entonces tambin tengamos la necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele llamar mdulos, de ah viene el nombre de programacin modular. En Visual Basic disponemos de dos tipos de mdulos: los procedimientos y las funciones.

1.3. Caractersticas de la Programacin estructurada

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

55

En programacin estructurada se recomienda usar la abstraccin como forma de descomponer un problema. Al llevarla a cabo se ignoran ciertos detalles de manera que el problema original se vea en forma mas simple al atender solo a que operaciones hay que realizar, pero no a como hay que realizarlas. 1.3.1. Recursos Abstractos En particular, la implementacin de un objeto debe ser escondida dentro de la abstraccin y no debe ser conocida por los objetos que lo utilicen (clientes). Segn Ingalls, "ninguna parte de un sistema complejo debera depender de los detalles internos de otras partes". La abstraccin es un concepto externo al objeto que determina la forma en que es visto por los dems. El ocultamiento de la informacin es un concepto interno que determina qu cosas deben ser vistas por los dems. complementarios. Las abstracciones, son encapsuladas y protegidas para manejarse como una nica unidad lgica que se espera funciona correctamente. particionamiento de los programas. 1.3.2. Diseo descendente Los mdulos y el encapsulamiento ayudan a manejar el conjunto de las abstracciones identificadas, sin embargo, resulta muy til y al mismo tiempo natural, clasificar u Esas abstracciones son agrupadas a su vez para formar mdulos, que constituyen las unidades fsicas de Es decir, son conceptos

organizar las abstracciones de acuerdo a su naturaleza. El ser humano siempre


tiende a clasificar los objetos que lo rodean, creando clasificaciones de especies, de elementos qumicos, de materiales, etc. Esas clasificaciones forman jerarquas que

permiten concentrarse en subconjuntos de elementos lo que facilita el estudio de los elementos como un todo.
El ejemplo ms claro de jerarqua en el modelo de objetos es el concepto de herencia. Por ejemplo, los elefantes, tigres, vacas, y caballos son todos mamferos de Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin sangre caliente.

56

Existe una clase de animales denominados mamferos que

comparten un conjunto determinado de caractersticas. Sin embargo, hay clases de animales, como las aves, que son de sangre caliente pero no son mamferos. O sea, la clase de animales de sangre caliente contempla tanto los mamferos como las aves. Todos los mamferos y todas las aves heredan las caractersticas de los animales de sangre caliente, pero pertenecen a clases diferentes de animales. Bsicamente, la herencia define una relacin entre las clases, donde una clase comparte la estructura y el comportamiento definida en una o ms clases consideradas como superiores o superclases. La herencia define entonces una

jerarqua de abstracciones, en donde una subclase hereda de una superclase, y adems puede agregar o redefinir elementos a la estructura o al comportamiento previo.
Las clases podran no tener relacin la una con la otra an cuando fueran muy similares. La herencia hace posible definir software nuevo de la misma manera en que se introduce un concepto a un persona que lo desconoce, o sea, comparndolo con algo que ya existe y con lo que ya est familiarizado. 1.3.3. Estructuras Algortmicas bsicas 1.3.3.1. Selectivas a) Estructura If then Else La sentencia If Then Else no tiene secretos puesto que es muy similar en todos los lenguajes. La estructura general es la siguiente: If condicin then bloque de sentencias Else bloque de sentencias End If

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

57

Se pueden colocar todas las sentencias de cdigo que queramos en cada uno de los bloques de sentencias, siempre que cada sentencia vaya en una lnea distinta. Si los bloques de sentencias estn formados por una sola instruccin podemos utilizar la versin reducida que ocupa una sola lnea: If condicin then sentencia else sentencia Ejemplo: If isnumeric(numero) then la variable numero es numrica else no es numerica. Tambin podemos anidar varias sentencias If then Else cuando una de las 2 opciones iniciales contiene a su vez 2 bifurcaciones dependiendo del estado de otra condicin: Ejemplo: if dato<10 then la variable dato contiene un solo dgito Else If dato<100 then la variable dato contiene 2 dgitos Else la variable dato contiene ms de 2 dgitos end If End If En el ejemplo anterior se quiere saber si la variable dato contiene uno, dos o ms dgitos. Para calcularlo no es suficiente con una sola sentencia If Then Else, por tanto se recurre a anidar 2 sentencias de este tipo. La segunda sentencia If se ejecutar si la condicin de la primera sentencia If no se cumple, es decir, si dato>=10. Una vez que se ha llegado a este punto sabemos que la variable dato contiene 2 o ms dgitos, mediante una nueva sentencia If sabremos exactamente el nmero de dgitos de la variable dato. Ejemplo 2: Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

58

Este ltimo ejemplo podra haberse escrito de otra forma utilizando la clusula ElseIf: If dato<10 then la variable dato contiene un dgito ElseIf dato<100 then la variable dato contiene dos digitos Else la variable dato contiene ms de 2 digitos End If Esta segunda opcin es perfectamente vlida cuando queremos evaluar varias condiciones, aunque tiene ms limitaciones que la estructura anterior ya que enlaza directamente el Else con el If siguiente, sin dejarnos introducir sentencias entre medias que algunas veces podramos necesitar. Podemos introducir tantas lneas ElseIF como queramos siempre antes del ltimo
Else, si es que lo necesitamos.

Para mltiples decisiones en los que dependiendo del valor de una variable queremos que se realice una accin distinta, parecido a los mens de los programas de MS DOS, no conviene utilizar la estructura IF Then, sino que el cdigo queda ms claro y resulta ms fcil de modificar utilizando la sentencia Select Algunas veces se puede condensar la construccin If..Then..Else..Endif dentro de una lnea de cdigo. Esto se logra con la funcin IIF(Si inmediato). Ejemplo: Color = IIF(elcolor < 15, elcolor, 1)

b) Estructura Case Esta sentencia permite realizar operaciones diferentes dependiendo del valor de una variable: Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

59

Estructura General: Select Case dato Case valor1 bloque de sentencias case valor2 bloque de sentencias Case valor3 bloque de sentencias case else bloque de sentencias, se ejecutan si no se cumple ninguno de los valores anteriores End Select En esta construccin, dependiendo del valor de la variable dato se ejecutar un bloque de sentencias diferente. Los valores que podemos colocar en lugar de valor1, valor2, valor3 no slo se limitan a valores constantes como nmeros y cadenas de texto, sino que podemos comparar con un nmero como podemos ver en el siguiente Ejemplo: Select Case NotaFinal Case Is < 5 Msgbox Suspendido Case 5 to 6.99 Msgbox Aprobado Case 7 to 8.99 Msgbox Notable Case Else Msgbox Sobresaliente End Select

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

60

Como se puede observar si utilizamos los operadores lgicos como >, <, =, <=, >= debemos anteponer el operador Is. Si lo que hacemos es comparar con un intervalo de valores colocaremos el operador to entre los limites del intervalo. Tambin podemos realizar comparaciones con un conjunto de valores separados por comas: P. Ej. Case 1, 3, 5. El numero es impar. 1.3.3.2 Repetitivas a) Estructura Until Proporciona una forma mas estructurada y flexible para ejecutar ciclos. Esta repite un bloque de codigo mientras una condicion es True o a partir de que la condicion sea True. Sintaxis: Do Unitil cliente.EOF Print cliente(nombre) Cliente.movenext Loop Exit Do transfiere el control a la instruccin que sigue inmediatamente al ciclo. b) Estructura While-do Ejecuta repetidamente una o mas instrucciones mientras una condicin dada es cierta. Sintaxis: While Wend Academia de Informtica Cobaq No. 1 Satlite condicin [ instrucciones]

Lgica Computacional y Programacin

61

c) Estructura Fox-Next Esta sentencia repite un grupo de instrucciones, un numero especificado de veces. Sintaxis: For contador = 1 To 10 Print cliente(nombre) Cliente.Movenext Next contador Se puede especificar tambin el intervalo Step, la cantidad que cambiar el contador cada vez que se ejecuta el ciclo. Si no se especifica, el incremento toma un valor por omisin de 1. Ejemplo: For porcentaje = 0 To 100 Step 5 Print porcentaje & % Imprime en la pantalla los porcentajes de 5 en 5 hasta llegar a 100% Next porcentaje Exit For se usa frecuentemente con la evaluacin de algunas condicionantes If..Then y transfiere el control a la instruccin que se encuentra a continuacin de Next.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

62

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejercicios: 1. Para cada caso siguiente identifica la estructura condicional o repetitiva que utilizaras para disear el programa en visual basic a. Si es mayor de 18 aos, rediga que es mayor de edad

63

b. Si calif= 7 es alumno regular, si tiene calif=8 es buen alumno, si su calif= 9 es muy buen alumno, pero si calif= 10 entonces es excelente alumno. c. Si sexo = F entonces es mujer, si sexo = H entonces es hombre d. Para 4 calificaciones obtener el promedio final de las cuatro. e. Mientras la calificacin sea mayor a 6, las vaya sumando para obtener el promedio. f. Hasta que la calificacin sea reprobatoria, dejar de sumarlas y obtener el promedo. 2. Disea el programa con Visual Basic, segn la estructura establecida para cada uno de los ejemplos anteriores Resuelve las siguientes preguntas de resumen 1. Qu es programacin estructurada? 2. Qu es programacin modular? 3. Para qu nos sirve un recurso abstracto? 4. Cules son las estructuras selectivas? 5. Cules son las estructuras repetitivas? 6. Para qu utilizaras la estructura Mientras? 7. Para qu utilizaras la estructura Hasta? 8. Para qu utilizaras la estructura Para? 9. Para qu utilizaras la estructura Si-entonces? 10. Para qu utilizaras la estructura Hacer-encaso?

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

64

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

65

UNIDAD V

SUBPROGRAMAS PROCEDIMIENTOS Y FUNCIONES

OBJETIVO: Construir los mdulos requeridos para la solucin de problemas mediante el uso de subprogramas , procedimientos y funciones como elementos bsicos de la programacin estructurada.

1. Funciones y Procedimientos.

1.1. Introduccin a los Subprogramas o Subalgoritmos El concepto de subprograma o subalgoritmo se utiliza cuando se requiere dividir un programa principal en varios subprogramas menos complejos hasta que estos sean ms fciles de resolver; esta tcnica es comnmente llamada divide y vencers. La fig. siguiente nos muestra este criterio: Algoritmo principal

Subalgoritmo 1

Subalgoritmo 2

Subalgoritmo 3

Subalgoritmo 3.1

Subalgoritmo 3.2

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

66

En la figura puede verse como un subprograma es divido a su vez en otros subprogramas, de esta manera el subprograma principal llama a sus subprogramas y stos ltimos pueden llamar a otros subprogramas.

1.2. Funciones Al igual que introducimos Procedimientos, podemos introducir Funciones en nuestra aplicacin. Una Funcin es un Procedimiento al que le pasamos uno o varios parmetros. (O Ninguno) . Al igual que los Procedimientos, pueden ser pblicas (se vern en toda la aplicacin) o privadas (se vern solamente en el formulario donde estn.

1.2.1. Declaracin de las funciones Existen funciones predefinidas por Visual Basic que simplemente se invocan y devuelven el valor correspondiente. Ejemplos de esta funciones son: Funciones con fechas Date ordenador. Time Now WeekDay 2=Lunes,...) Day Obtiene el da, a partir de una fecha Devuelve la hora actual. Devuelve la fecha y hora actual. Devuelve el da de la semana (En nmero, 1=Domingo, Devuelve la fecha de hoy. Esta fecha la toma del reloj del

Otras Funciones con nmeros

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin CInt decimales Abs Sgn Sqr Exp indicado Funciones con cadenas de texto Right (cadena, n) Extrae lo n ltimos caracteres de la cadena Valor Absoluto Signo Devuelve el valor absoluto de un nmero Parte entera Devuelve la parte entera de un nmero con

67

Devuelve el signo de un nmero Devuelve la raz cuadrada de un nmero Devuelve el nmero elevado al exponente

Raz cuadrada Exponenciacin

Mid (cadena, m, n) Extrae n caracteres de la cadena, siendo el primer carcter LCase (cadena) en minsculas. UCase (cadena) en maysculas. Len (cadena) LenB (Cadena) Devuelve la longitud de la cadena Devuelve Devuelve otra cadena igual, pero con todos los caracteres extrado el que ocupa el lugar m. Devuelve otra cadena igual, pero con todos los caracteres

1.2.2. Invocacin de las funciones Ejemplo: Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

68

Invocaremos las funciones anteriores para ver el resultado si la cadena de texto inicial es Visual Basic Resultado = Right (cadena, 10) Resultado = Lcase (cadena) Resultado = UCase (cadena) BASIC Resultado = Len (cadena) ----> Resultado = 21 ----> Resultado = sual Basic ----> Resultado = curso de visual basic ----> Resultado = CURSO DE VISUAL Resultado = Mid (cadena, 3, 10) ----> Resultado = rso de Vis

1.3. Procedimientos (subrutinas) Para saber qu es un procedimiento vamos a explicar lo que es un evento. Un Evento es algo que le puede ocurrir a un objeto. En una internase grfica, lo que le puede ocurrir a un objeto es que se le haga click, doble click, que se pase el cursor del ratn por encima, etc. Este es el Evento. El Procedimiento es la respuesta por parte de ese objeto, al evento que le est sucediendo. Esa respuesta, esa forma de Proceder del objeto al evento que le est sucediendo, debemos programarla segn nuestras necesidades, es decir, debemos escribir el cdigo que necesite nuestra aplicacin como respuesta al evento que acaba de ocurrir. Posiblemente, no queramos ninguna respuesta a muchos de los eventos que pueden acaecer a un objeto. Cada objeto tiene muchos eventos y solamente queremos aprovechar los que nos interesan. Para que un evento no produzca ningn efecto, basta con dejar sin cdigo el procedimiento correspondiente a ese evento. En los eventos que queramos que realice alguna operacin, le escribiremos en su procedimiento el cdigo necesario para que esa operacin se realice. Sin darnos cuenta, hemos comenzado a escribir el cdigo de la aplicacin. Para insertar un procedimiento extra en Visual Basic debe ir a la barra de men y seguir los pasos siguientes:

Hacer click sobre Herramientas y en el men que le desplegar, dar clic en Agregar Procedimiento Cobaq No. 1 Satlite

Academia de Informtica

Lgica Computacional y Programacin VB le presentar un cuadro donde le pedir el nombre, si quiere que sea un procedimiento o una funcin y el alcance pblico o privado

69

Escribir el contenido del procedimiento

1.3.1. Substitucin de Argumentos/parmetros Los parmetros formales tienen el mismo significado que en las funciones; los parmetros variable en aquellos lenguajes que los soporta, por ejemplo, Visual Basic estn precedidos cada uno de ellos por la palabra Dim para designar que ellos obtendrn resultados del procedimiento en lugar de los valores actuales asociados a ellos. El procedimiento se llama mediante la instruccin la palabra llamar_a(call) es opcional y su existencia depende del lenguaje de programacin.

Ejemplo Private Sub Llama_Click() Dim a, b As Integer a = Val(c1.Text) b = Val(c2.Text) Call multiplica(a, b) c4.Text = X2 c5.Text = cuadrado(b) End Sub Private Sub multiplica(a, b As Integer) Dim multi As Integer multi = a * b C3.Text = multi End Sub

1.4. Variables locales y globales

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

70

El alcance de las variables se refiere al rea del programa en las cuales es visible la variable. Hay cuatro niveles diferentes de alcances:

Nivel de Procedimiento:

Para declarar variables, ya sea implcitas o con el

enunciado DIM, es en el nivel de procedimiento. En VB, existen dos tipos de procedimientos: los procedimientos SUB y los FUCNTION. Las variables declaradas en los procedimientos son locales para ese procedimiento. Siendo accesibles solamente por los procedimientos en los cuales estn declaradas, las variables locales tienen la visibilidad mas baja y el alcance mas estrecho. Las variables locales de un procedimiento son reinicializada cada vez que llama el procedimiento. Ejemplo: Private sub label1_click() Dim nompreapellido As String . . . End Sub

Tambin se pueden declarar variables Estticas: es decir que las variables locales sean permanentes: EJ static nombre.

Nivel de Formulario:

Si se declara una variable a nivel de forma esta

disponible en cada procedimiento en esta forma.

Nivel de Mdulo:

Se crean mediante la seleccin de la opcin Agregar

Modulo del men Proyecto de VB. Los mdulos de cdigos se utilizan para conservar los subprocedimientos y funciones generales que no estn relacionados Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

71

con eventos, as como sus variables locales(publicas) y sus constantes. Variables

Publicas: para identificar una variable global, se declara con la palabra Public.
Ejemplo: Public nompreapellido As String

1.5. Comunicacin con subprogramas: paso de parmetros

Cuando un programa llama a un subprograma,la informacin se comunica a travz de la lista de parmetrosy se establece una correspondencia automatica entre los parmetros formales y actuales.Los parmetros actuales son sustituidos o utilizados

en lugar de los parmetros formales.


Y la llamada al subprograma con call nombre (A1, A2, ...,An) Donde F1, F2, . . . Fn son los parmetros formales y A1, A2, . . . An los parmetros actuales o reales. Existen dos mtodos para establecer la correspondencia de parmetros: 1. Correspondencia posicional.la correspondencia se establece aparejando los parmetros reales y formales segn su posicin en las listas: as, Fi se corresponde con Ai, donde i = 1, 2, . . . n. este mtodo tiene algunas desventajas de legibilidad cuando el nmero de parmetros es grande. 2. Correspondencia por el nombre explicito, tambin llamado mtodo de paso de

parmetros por nombre. En este mtodo, en las llamadas se indica explcitamente la


correspondencia entre los parmetros reales y formales. Existen diferentes mtodos para la transmicin o el paso de parmetros o

subprogramas. Es preciso conocer el mtodo adoptado por cada lenguaje , ya que la


eleccin puede afectar a la semntica del lenguaje. Dicho de otro modo, un mismo Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

72

programa puede producir diferentes resultados bajo diferentes sistemas de paso de parmetros. Los parmetros pueden ser clasificados como:

entradas:
(E) las entradas proporcionan valores desde el programa que llama y que se utilizan dentro de un procedimiento. En los programas funcin, las entradas son los argumentos en el sentido tradicional:

salidas:
(S) Las salidas producen los resultados del subprograma: de nuevo si se utiliza el caso una funcin, ste devuelve un valor calculado por dicha funcin, mientras que con procedimientos puede calcularse cero, una o varias salidas:

entrada/salida (E/S)
Un solo parmetro se utiliza para mandar argumentos a un programa y para devolver resultados Desgraciadamente, el conocimiento del tipo de parmetros no es suficiente para caracterizar su funcionamiento; por ello, examinaremos los diferentes mtodos que se utilizan para pasar o transmitir parmetros. Los mtodos mas empleados para realizar el paso de parmetros son: paso por valor (tambin conocido por parmetro valor) paso por referencia o diferencia (tambin conocidopor parametro variable) paso por nombre paso por resultado

1.6. Actividades de programacin.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

73

Se recomienda hacer un anlisis primero del problema, eligiendo la estructura que se adapte al problema y finalmente disear el programa en el lenguaje que mejor practiquemos o dominemos.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejercicios

74

1. Disea un programa donde aceptes dos nmeros y llames al procedimiento Ops_Aritmticas, el cual har las operaciones de suma, resta, multiplicacin y divisin entre ambos nmeros. Finalizado el procedimiento los imprima en la pantalla con la instruccin Print. 2. Disea un programa donde acepte una cantidad en dlares americanos y llame al procedimiento conversin para que convierta la cantidad de dlares a pesos mexicanos. Que muestre el resultado en un cuadro de texto. 3. Disea un programa llamado funciones, donde incluyas un botn para aplicar cada funcin siguiente: Date, Time, Now, WeekDay . Mande el resultado a cajas de texto cada una. 4. Disea un programa llamado funciones, donde incluyas un botn para aplicar cada funcin siguiente: a. Escribe un nmero con decimales en una caja de texto y aplica a travs de un botn la funcin Cint manda el resultado en otra caja de texto. b. Escribe un nmero negativo en una caja de texto y aplica a travs de un botn la funcin Abs manda el resultado en otra caja de texto. c. Escribe un nmero en una caja de texto y aplica a travs de un botn la funcin Sign manda el resultado en otra caja de texto. d. Escribe un nmero en una caja de texto y aplica a travs de un botn la funcin Sqr manda el resultado en otra caja de texto Resuelve las siguientes preguntas de resumen: 1. Qu es un subprograma? 2. Qu es un subalgoritmo? 3. Qu es un procedimiento? 4. Qu es una funcin? 5. Qu es un parmetro? 6. Qu hace una variable local? 7. Qu hace una variable global?

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

75

UNIDAD VI ESTRUCTURAS DE DATOS

OBJETIVO: Identificar las estructuras de datos mediante el reconocimiento de la indormacin y la forma estructurada para su procesamiento.

1. Arreglos

Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones.

1.1. Arreglos Unidimensionales (vectores)

En visual basic las matrices de cualquier tipo de datos requieren 20 bytes de memoria ms cuatro bytes para cada dimensin de matriz, ms el nmero de bytes que ocupan los propios datos. Puede calcular la memoria que ocupan los datos multiplicando el nmero de elementos de datos por el tamao de cada elemento. Por ejemplo, los datos de una matriz unidimensional que consten de cuatro elementos de datos tipo Integer de dos bytes cada uno, ocupan ocho bytes.

Los ocho bytes que requieren los datos ms los 24 bytes necesarios para la matriz suman un requisito total de memoria de 32 bytes para dicha matriz.
Para declarar un arreglo tipo tabla se usa cualquiera de los siguientes formatos: Ejemplos: DIM NOMTABLA(CANTRENG)

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin DIM VTAS(3) DIM CALIF(3) AS INTEGER

76

1.2. Operaciones con Vectores

Para procesar ( recordar solo operaciones y comparaciones) internamente todos los elementos de la tabla se ocupan dos ciclos for, uno externo para controlar rengln y uno interno para controlar columna y no olvidar que el primer renglon y la primera columna es la CERO.

1.2.1. Asignacin Para darle informacin a la matriz simplemente se escribe despus del smbolo igual los valores que almacenar Ejemplo: MatrizA(I) = I * 10

1.2.2. Lectura/escritura de datos La siguiente instruccin muestra un miembro miembro de una matriz Ejemplo: Msgbox matriz(1) (2)

1.3. Arreglos bidimensionales (matrices)

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

77

A veces necesitar hacer un seguimiento de la informacin relacionada de una matriz. Por ejemplo, para hacer un seguimiento de cada pxel de la pantalla del equipo, necesitar referirse a sus coordenadas X e Y. Esto se puede hacer mediante una matriz multidimensional para almacenar los valores. En Visual Basic puede declarar matrices de varias dimensiones. Ejemplo 1: La instruccin siguiente declara una matriz bidimensional de 10 por -10 en un procedimiento: Static MatrizA(9, 9) As Double Ejemplo 2 : Se puede declarar una o ambas dimensiones con lmites inferiores explcitos: Static MatrizA(1 To 10, 1 To 10) As Double Ejemplo 3: Puede hacer que tenga ms de dos dimensiones. Dim MultiD(3, 1 To 10, 1 To 15) Esta declaracin crea una matriz que tiene tres dimensiones con tamaos de 4 por 10 por 15. El nmero total de elementos es el producto de las tres dimensiones, es decir, 600.

Nota Cuando comienzamos a agregar dimensiones a una matriz, el almacenamiento total que necesita la matriz se incrementa considerablemente, por lo que se debe usar las matrices multidimensionales con sumo cuidado. Hay que tener especial cuidado con las matrices Variant, ya que son ms grandes que otros tipos de datos.

1.3. Operaciones con Matrices

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

78

Para declarar la matriz se hace como con todas las variables, especificando entre parntesis el nmero de elementos que componen la matriz: Ejemplo Dim Alumno (25) as String Hemos declarado que la variable alumno es una cadena, y que hay 25 elementos en esa matriz. Una matriz tambin se puede declarar de la siguiente forma : Dim Alumno(1 To 25) as String Podemos definir matrices de dimensin superior a dos. Podemos llegar a un mximo de 60 dimensiones. Una matriz de 5 dimensiones se declarara:

Dim Variable ( 1 To N, 1 To M, 1 To P, 1 To Q, 1 To R) entendiendo que hay N, M, P, Q y R elementos en cada una de las dimensiones respectivamente. Una variable ya declarada como una matriz puede redimensionarse a lo largo del programa mediante la instruccin ReDim ReDim Alumno (1To 25)

Mediante esta instruccin, estamos ReDimensionando una matriz ya declarada. No se puede redimensionar una matriz inexistente

Pero como trabajamos con matrices en visual basic. Puede procesar eficientemente una matriz multidimensional mediante bucles For anidados. En el ejemplo siguiente, Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

79

estas instrucciones inicializan cada elemento de MatrizA a un valor basndose en su ubicacin en la matriz: Ejemplo Dim I As Integer, J As Integer Static MatrizA(1 To 10, 1 To 10) As Double For I = 1 To 10 For J = 1 To 10 MatrizA(I, J) = I * 10 + J Next J Next I

2.

Registros

2.1. Definicin

Informticamente hablando se define como elementos de un fichero que contienen informacin relativa a un tema comn, estando esa informacin dividida a su vez en

campos de acuerdo con un formato establecido.


Dentro del concepto de registro, se debe distinguir entre: a) Registro lgico.- que es el conjunto de informacin identificable de cada uno de los elementos de que consta el fichero. Por ejemplo, cada una de las fichas de cada paciente, de un fichero de pacientes, es un registro lgico. b) Registro fsico.- o bloque, que es el conjunto de informacin que se graba o se lee de una sola vez en un soporte informtico(disco duro, cinta, Cd, etc)

La ventaja es que el registro lgico es ms rpido de acceder que al registro fsico del disco. Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

80

Ejemplo: El siguiente es el registro de un alumno Matrcula Nombre Ap_Pat Ap_Mat Grupo Semestre

2.2. Referencia de los componentes

En visual basic se puede hacer referencia los componentes de un registro a travs del objeto data control

2.3. Aplicaciones

Los registros se utilizan para cualquier aplicacin donde sea necesario tener antecedentes sobre movimientos de informacin, tales como :

Caja de ahorro y prstamos Control de ventas Control de almacn Etc.

Para crear una aplicacin sencilla para bases de datos con el control Data

Dibuja un control Data en el formulario. El control Data es un control intrnseco y siempre est disponible. Hacer clic en el control Data para seleccionarlo, y presionar la tecla F4 para mostrar la ventana Propiedades. En la ventana Propiedades, establecer la propiedad Connect al tipo de base de datos que desee usar. En la ventana Propiedades, establecer la propiedad DatabaseName al nombre de archivo directorio de la base de datos con la que se quiera conectar. En la ventana Propiedades, establecer la propiedad RecordSource al nombre de la base de datos a la que se quiera tener acceso.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Dibuja un control TextBox en el formulario.

81

Hacer clic en el control TextBox para seleccionarlo y, en la ventana Propiedades, establezca la propiedad DataSource al control Data. En la ventana Propiedades, establecer la propiedad DataField al nombre del campo de la base de datos que quiere ver o modificar. Repite los pasos 7, 6, y 8 para cada campo adicional al que quiera tener acceso. Presione F5 para ejecutar la aplicacin.

Ejemplo: Si llevramos a cabo el procedimiento anterior para una base de datos que contiene una tabla llamada Directorio con informacin de empresas, Visual Basic no permitira ver la siguiente ventana de aplicacin:

3. Archivos Academia de Informtica Cobaq No. 1 Satlite

Lgica Computacional y Programacin

82

3.1. Definicin

Un archivo es una estructura dinmica que agrupa datos para almacenarlos en memoria secundaria Se le llama dinmica porque no es necesario definir el total de datos que se guardaran en l. La memoria secundaria de la computadora(cintas o discos) se utiliza para manejar grandes volmenes de datos o para conservarlos durante largos periodos.

3.2. Campos y Registros

El siguiente procedimiento nos ayudar a ver la manera de identificar los campos y los registros en un archivo de base de datos Procedimiento para crear los campos de una tabla: I. Comenzaremos por disear la tabla desde VB a. Men Complementos(o AddItems) b. Administrador Visual de Datos(o Visual Data Manager) c. Se abre el programa VisData; opcin Archivo d. Opcin Nuevo y luego Microsoft Access e. Elegir MDB 7.0 de access o la versin ms nueva f. Elegir nombre para la nueva BDD y el directorio donde se guardar g. Aparece la siguiente ventana o la de la versin actual

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

83

h. Clic con botn derecho del mouse y elegir Nueva tabla, aparece la siguiente ventana:

i. Escribir el Name de tabla j. Clic en Agregar Campo y aparece el cuadro siguiente:

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

84

k. Escribir Nombre de campo, elegir tipo y tamao de campo cuando sea texto, as como la posicin o nmero de campo. l. Dar aceptar cada vez que se termine un campo m. Clic en cerrar para terminar los campos n. Finalmente Clic en el botn Generar tabla. o. Repetir el proceso para cada nueva tabla. Procedimiento para agregar informacin a los regstros de una tabla: II. Para agregar registros a la tabla creada, dar clic con el botn derecho del mouse sobre el nombre de la tabla y clic en la opcin abrir, aparece el cuadro:

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin a. Clic en el botn agregar b. Llenar con informacin los campos y clic en finalizar en cada registro. c. Clic en cerrar para terminar de registrar datos

85

3.3. Organizacin

Dado que la utilidad principal de los archivos es la de consultar informacin, cmo se puede encontrar la informacin que se busca?. Para ello la informacin de los archivos se clasifica de dos maneras: a) Archivos secuenciales. Se recorren todos los registros secuencialmente son posibilidad de saltarse alguno hasta encontrar el que nos interesa. b) Archivos Indexados. Se recorren los registros a travs de un ndice, de sta manera se va directamente al registro buscado sin recorrer todos los registros.

3.4. Acceso a los Registros

En los procedimientos de aplicacin se puede usar el objeto Control data con los elementos de acceso a datos Database y Recordset creados por el. Cada objeto Database y Recordset tiene sus propias propiedades y mtodos, y puede escribir procedimientos que utilicen dichas propiedades y mtodos para manipular sus datos. El objeto data lo podemos ver en la barra de herramientas de esta manera:

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

86

Por ejemplo, el mtodo MoveNext de un objeto Recordset desplaza el registro actual al siguiente registro dentro del Recordset. Para invocar este mtodo, podra usar el cdigo siguiente: Data1.Recordset.MoveNext En muchos casos, el tipo predeterminado y la configuracin del objeto Recordset creado son muy ineficientes. Es decir, puede que no necesite un cursor actualizable totalmente desplazable de conjunto de claves para tener acceso a los datos. Por ejemplo, un Recordset de tipo snapshot, de slo lectura y unidireccional se creara con ms rapidez que el cursor predeterminado. Asegrese de elegir el tipo ms eficiente, as como las propiedades Exclusive, Options y ReadOnly adecuadas a su situacin. Nota Las constantes utilizadas para obtener un tipo de Recordset especfico mediante un control Data son diferentes de las constantes utilizadas para determinar el tipo de Recordset creado o para crear un Recordset mediante el mtodo OpenRecordset. Para seleccionar un tipo de Recordset especfico, establezca la propiedad RecordsetType del control Data a: RecordsetType Table Dynaset Snapshot Valor 0 1 2 Constante VbRSTypeTable (Predeterminado) vbRSTypeDynaset VbRSTypeSnapshot

3.5. Tipos de Archivos

hay varias maneras de clasificar a los archivos pero slo dos nos interesan: los archivos fsicos y lgicos.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

87

Archivo fsico es el grupo de bits que fsicamente se almacenan en un disco o cinta. Archivo lgico es un canal de comunicacin que se establece entre un programa y y el archivo fsico que puedan transmitirse los datos

4. Operaciones con Archivos

4.1. Creacin y eliminacin de archivos

Creacin. Este proceso de inicializacin se utiliza cuando se requiere de un archivo nuevo que an no existe en el disco. Ejemplo: En visual basic podemos crear un archivo de la siguiente manera: Type RegistroEmpleado Id As Integer
Nombre As String * 20

' Crea un tipo definido por el usuario. ' Define elementos del tipo de datos.

Direccin As String * 30 Telfono As Long


FechaContratacin

As Date

End Type Sub CrearRegistro() Dim MiRegistro As RegistroEmpleado ' Declara la variable. ' La asignacin a la variable RegistroEmpleado debe producirse en un procedimiento como en este caso. MiRegistro.Id = 12003 ' Asigna un valor a un elemento. End Sub

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

88

Eliminacin. Este proceso consiste en eliminar alguno de los registros de un archivo abierto. Hay dos tipos de borrado: el lgico y el fsico.

Borrado Lgico.- Consiste en marcar el registro que indique que ese registro no
debe tomarse en cuenta.

Borrado Fsico.- Consiste eliminar el registro del disco o cinta.


4.2. Lectura y escritura de registros.

Podemos leer y escribir registros de una tabla desde un formulario referenciado con una base de datos(segn se explica en el subtema 3.2 de esta unidad). El formulario que nos permita estas operaciones deber tener algunos botones(o cualquier otro objeto) que contengan la accin especfica para leer y escribir(update) Para el ejemplo del directorio de empresas, tendramos la siguiente ventana con sus botones de agregar, guardar, cambiar y eliminar, los cuales nos permiten hacer cambios a la informacin del archivo.

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

89

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin Ejercicios 1. Declara correctamente las siguientes matrices a. Matriz de 2 columnas y 2 renglones para almacenra nombres de personas b. Matriz de 3 columnas y 2 renglones para almacenr nmeros enteros

90

c. Matriz de 4 columnas y 9 renglones para almacen calificaciones de una materia 2. Crea un archivo definido personalmente con la instruccin Type 3. Crea una tabla de base de datos para guardar datos de alumnos 4. Agrega informacin de 3 alumnos a la tabla creada en el punto anterior. 5. Crea un formulario para ver los datos que registraste en el punto anterior. Resuelve las siguientes preguntas de resumen 1. Qu es una matriz? 2. Qu es un archivo? 3. Qu es un registro? 4. Qu es un campo? 5. Cuntos tipos de archivos existen? 6. Cuntos tipos de registros existen? 7. Cuntos tipos de borrado existen para un archivo?

Academia de Informtica

Cobaq No. 1 Satlite

Lgica Computacional y Programacin

91

BIBLIOGRAFA:
1) Enciclopedia de Informtica y computacin Tomo: Software Editorial: CULTURAL S.A.de C.V. Edicin: 1998 2) Introduccin a la computacin Jorge Vasconcelos Santilln Edtorial: Publicaciones Cultural Edicin: 2. Edicin, Mxico 2002 3) Sabelotodo: 1000 desafos para tu inteligencia Edtorial:Ocano 4) Archivo de ayuda de Microsoft Visual Basic; edicin profesional Microsoft Visual estudio

Sitios Web http://www.geocities.com/elplanetamx/Logica_algoritmica.html http://www.programacionfacil.com/basicasp/cinco3.htm http://dieumsnh.qfb.umich.mx/VisualBasic/parte3.htm http://dieumsnh.qfb.umich.mx/VisualBasic/parte2.htm http://enriquebarrueto0.tripod.com/algoritmos/cap05.pdf

Academia de Informtica

Cobaq No. 1 Satlite

Anda mungkin juga menyukai