Sie sind auf Seite 1von 66

Alg

gortm
mica y
Pro
ogram
macin

(Gua de
d apuntes))

UNIV
VERSID
DAD AU
UTNO
OMA TOMS FRAS
S
Fac
cultad de
d Ingeniera
a Civil
INF
FORM
TICA
MAT-205
Auuxiliar. Marcco Antonio Velsquez
V
Azzurduy

Edicin 20011

Pgina |1
INDICE
1. Presentacin...5
2. Introduccin...5
3. De los problemas a los programas..5
3.1Lenguajes de Programacin....6
4. Algoritmo y sus tipos.....7
4.1 Tipos de Algoritmos......7
4.2 Lenguajes Algortmicos .........7
5. Metodologa para la solucin de problemas por medio de computadora7
6. Diagrama de Flujo ...........9
7. Pseudocdigo.....10
8. Lenguaje Visual Basic.10
8.1 Tipos, declaraciones y alcances de las variables.....10
8.1.1 Qu son las variables........10
8.2 Tipos de Variables.......11
8.3 Declaracin de Constantes........12
8.4 ENTRADAS Y SALIDAS SENCILLAS CON MSGBOX() E INPUTBOX()..13
8.4.1 Que son Inputbox(), Msgbox(), MsFlexGrid.........13
8.5 Botn de Comando (Command Button) .....14
9. Estructuras algortmicas y de programacin.......14
10. Estructuras Secuenciales ....14
10.1 Calcular el rea de un crculo. .......15
10.1.1 Algoritmo: rea de un crculo.......15
10.1.2 Diagrama de flujo: rea de un Crculo...16
10.1.3 Cdigo Visual Basic: rea de un crculo.......16
11. Estructuras de Condicionales ..........17
11.1 Condicionales Simples..........17

Pgina |2
11.1.1 Determinar el mximo de tres nmeros. .17
11.1.2 Algoritmo: Mximo de tres nmeros...17
11.1.3 Diagrama de Flujo: Mximo de tres nmeros ...18
11.1.4 Programa Visual Basic: Mximo de tres nmeros.18
11.2

Condicionales Dobles.....19

11.2.1 Indicar si un nmero x es par o impar20


11.2.2Algoritmo: Nmero par? ...20
11.2.3 Diagrama de flujo: Nmero par? .20
11.2.4 Programa Visual Basic: Nmero par? 20
11.3 Condicionales Mltiples....21
11.3.1 Ecuacin de 2 grado.......22
11.3.2 Algoritmo: Ecuacin de 2 grado. .....22
11.3.3 Diagrama de Flujo: Ecuacin de 2 grado. ....22
11.3.4 Programa Visual Basic: Ecuacin de 2 grado. 23
12 Estructuras Cclicas..24
12.1 Sentencia PARA.24
12.1.1 Calcular el factorial de un nmero x..25
12.1.2 Algoritmo: Factorial....25
12.1.3 Diagrama de flujo: Factorial..........25
12.1.4 Programa Visual Basic: Factorial...26
12.2 Sentencia Mientras....26
12.2.1 Calcular la suma de los N primeros nmeros mltiplos de 7............27
12.2.2 Algoritmo: suma de N mltiplos de 7.....27
12.2.3 Diagrama de Flujo: suma de N mltiplos de 7...27
12.2.4 Programa Visual Basic: suma de N mltiplos de 7.....28
12.3 Sentencia REPETIR (HASTA) ....28
12.3.1 Dado el Factorial, encontrar el nmero ms prximo que da tal valor...29
12.3.2 Algoritmo: qu nmero da el factorial? ..29
12.3.2 Diagrama de flujo: qu nmero da el factorial? .30
12.3.3 Programa Visual Basic: qu nmero da el factorial?..................30

Pgina |3
13. APLICACIN.....31
13.1 Determinar la cantidad de dgitos que posee un nmero n.............31
13.1.1 Algoritmo: Cantidad de dgitos que posee un nmero n...31
13.1.2 Diagrama de flujo: Cantidad de dgitos que posee un nmero n.32
13.1.3 Cdigo Visual Basic: Cantidad de dgitos que posee un nmero n..32
13.2 Cambio de base decimal a base binaria. ...33
13.2.1 Algoritmo: Cambio de base decimal a base binaria..33
13.2.2 Diagrama de flujo: Cambio de base decimal a base binaria.33
13.2.3 Cdigo Visual Basic: Cambio de base decimal a base binaria..34
13.3 Es nmero primo? ...34
13.3.1 Algoritmo: Es nmero primo? ...........34
13.3.2 Diagrama de flujo: Es nmero primo? ....35
13.3.3 Cdigo Visual Basic: Es nmero primo? ..35
13.4 Mximo comn divisor de n nmeros. ......36
13.4.1 Algoritmo: Mximo comn divisor de n nmeros. ...36
13.4.2 Diagrama de flujo: Mximo comn divisor de n nmeros. ..37
13.4.3 Cdigo Visual Basic: Mximo comn divisor de n nmeros..38
14 Mtodos Numricos....39
14.1 Introduccin. ...39
14.1.2 Integracin numrica. ...39
14.1.3 El rea bajo una curva. .....39
14.2 Mtodo de los rectngulos: ..40
14.2.1 Ejemplo Mtodo de los rectngulos .40
14.2.2 Algoritmo. Mtodo de los rectngulos...40
14.2.3 Diagrama de flujo: Mtodo de los rectngulos...40
14.2.4Cdigo Visual Basic: Mtodo de los rectngulos...41
14.3 Mtodo de la suma de trapecios: .....41
14.3.1 Ejemplo Mtodo de la suma de trapecios. ...42
14.3.2 Algoritmo. Mtodo de la suma de trapecios. .....42
14.3.3 Diagrama de flujo: Mtodo de la suma de trapecios. ....43
14.3.4 Cdigo Visual Basic: Mtodo de la suma de trapecios.....43
14.4 Mtodo de Simpson 1/3 (frmula parablica): ..43
14.4.1 Ejemplo Mtodo de Simpson 1/3. ..44
14.4.2 Algoritmo: Mtodo de Simpson 1/3. .44
14.4.4 Diagrama de flujo: Mtodo de Simpson 1/3. ...43
14.4.5 Cdigo: Mtodo de Simpson 1/3. ...45

Pgina |4
15. Determinacin de races de ecuaciones.....45
15.1 Mtodo de la Biseccin...46
15.1.1 Ejemplo Mtodo de la Biseccin. .46
15.1.2 Algoritmo: Mtodo de la Biseccin. ...47
15.1.3 Diagrama de flujo: Mtodo de la Biseccin. ........47
15.1.4 Cdigo: Mtodo de la Biseccin. ..48
15.2 Mtodo de la Secante. .49
15.2.1 Ejemplo Mtodo de la Secante. ..49
15.2.2 Algoritmo: Mtodo de la Secante. ....50
15.2.3 Diagrama de flujo: Mtodo de la Secante. ......50
15.2.4 Cdigo: Mtodo de la Secante. .......51
15.3 Mtodo de la Falsa Posicin. .........51
15.3.1 Ejemplo Mtodo de la Falsa Posicin. ............51
15.3.2 Algoritmo: Mtodo de la Falsa Posicin. .....51
15.3.3 .Diagrama de flujo: Mtodo de la Falsa Posicin. .........52
15.3.4 Cdigo Visual Basic: Mtodo de la Falsa Posicin. ....52
15.4 Mtodo de Newton-Raphson.......53
15.4.1 Ejemplo Mtodo de Newton-Raphson. ...........54
15.4.2 Algoritmo: Mtodo de Newton-Raphson. .........54
15.4.3 Diagrama de flujo: Mtodo de Newton-Raphson. ......54
15.4.4 Cdigo Visual Basic: Mtodo de Newton-Raphson. .55
16. Vectores.....55
16.1 Sacar el promedio de N nmeros..56
16.1.1 Algoritmo: Promedio......56
16.1.2 Diagrama de flujo: Promedio.....56
16.1.3 Programa Visual Basic: Promedio....57
16.2 Programa Excel: Promedio de una lista de cantidad no definida.....57
16.3 Ordenar nmeros de forma ascendente. ......58
16.3.1 Algoritmo: Ordenar nmeros de forma ascendente..........58
16.3.2 Diagrama de Flujo: Ordenar nmeros de forma ascendente.59
16.3.3 Cdigo Visual Basic: Ordenar nmeros de forma ascendente..60
17. Matrices...61
17.1 Producto de 2 matrices. ..61
17.1.1 Algoritmo: Producto de 2 matrices. ..61
17.1.2 Diagrama de flujo: Producto de 2 matrices. .62
17.1.3 Cdigo Visual Basic: Producto de 2 matrices. ..63
18. Bibliografa.65

Pgina |5
Algortmica y Programacin
1. Presentacin
El siguiente Manual de Algoritmia y Programacin fue creado con el propsito de
que el estudiante adquiera destrezas necesarias que le permitan crear diagramas de
flujo que le auxilien en la creacin de programas, con la intencin que el alumno
realice los ejercicios de prcticas en una manera razonada y no mecnica.
2. Introduccin
Debido a las que las mquinas resultan una herramienta til resolviendo un
problema o una situacin al automatizar procesos, es conveniente conocer el proceso
por el cual podemos lograr que las mquinas hagan las cosas que necesitamos, ese
hecho simplemente se resume a lo que se llama programacin, donde en un punto
lograremos realizar nuestros propios programas que se ajusten a nuestras necesidades
como usuarios y programadores a la vez, pero qu es un programador si no ms que
una persona que resuelve problemas y para ello es necesario tener conocimiento tanto
de el problema como de la forma en que podemos establecer un dilogo con las
mquinas para darle dichas ordenes mediante un lenguaje.
Por tanto esta gua est dirigida al inters de cul es el proceso para poder
adentrarnos una mnima parte en el mundo de la programacin.
3. De los problemas a los programas
La computadora no solamente es una mquina que puede realizar procesos
para darnos resultados, sin que tengamos la nocin exacta de las operaciones que
realiza para llegar a esos resultados. Con la computadora adems de lo anterior
tambin podemos disear soluciones a la medida, de problemas especficos que se nos
presenten. Ms aun, si estos involucran operaciones matemticas complejas y/o
repetitivas, o requieren del manejo de un volumen muy grande de datos.
El diseo de soluciones a la medida de nuestros problemas, requiere como en
otras disciplinas una metodologa que nos ensee de manera gradual, la forma de
llegar a estas soluciones.
A las soluciones creadas por computadora se les conoce como programas y no
son ms que una serie de operaciones que realiza la computadora para llegar a un
resultado, con un grupo de datos especficos. Lo anterior nos lleva al razonamiento de
que un programa nos sirve para solucionar un problema especfico.
Para poder realizar programas, adems de conocer la metodologa mencionada,
tambin debemos de conocer, de manera especfica las funciones que puede realizar la
computadora y las formas en que se pueden manejar los elementos que hay en la
misma.
1. Computadora: Es un dispositivo electrnico utilizado para procesar informacin
y obtener resultados. Los datos y la informacin se pueden introducir en la
computadora como entrada (input) y a continuacin se procesan para producir
una salida (output).

Pgina |6
2. Programa: Es el conjunto de instrucciones escritas de algn lenguaje de
programacin y que ejecutadas secuencialmente resuelven un problema
especifico.
3. Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos
(informacin) en la computadora para su proceso. Los datos se leen de los
dispositivos de entrada y se almacenan en la memoria central o interna.
Ejemplos: teclado, scanners (digitalizadores de rastreo), mouse (ratn),
trackball (bola de ratn estacionario), joystick (palancas de juego), lpiz ptico.
4. Dispositivos de Salida: Regresan los datos procesados que sirven de
informacin al usuario. Ejemplo: monitor, impresora.
5. La Unidad Central de Procesamiento (C.P.U) se divide en dos:
o Unidad de control
o Unidad Aritmtico - Lgica
6. Unidad de Control: Coordina las actividades de la computadora y determina que
operaciones se deben realizar y en qu orden; as mismo controla todo el
proceso de la computadora.
7. Unidad Aritmtico - Lgica: Realiza operaciones aritmticas y lgicas, tales
como suma, resta, multiplicacin, divisin y comparaciones.
8. La Memoria de la computadora se divide en dos:
o Memoria Central o Interna
o Memoria Auxiliar o Externa
9. Memoria Central (interna): La CPU utiliza la memoria de la computadora para
guardar informacin mientras trabaja con ella; mientras esta informacin
permanezca en memoria, la computadora puede tener acceso a ella en forma
directa. Esta memoria construida internamente se llama memoria de acceso
aleatorio (RAM).
10. La memoria interna consta de dos reas de memoria:
o La memoria RAM (Randon Access Memory): Recibe el nombre de
memoria principal o memoria del usuario, en ella se almacena
informacin solo mientras la computadora est encendida. Cuando se
apaga o arranca nuevamente la computadora, la informacin se pierde,
por lo que se dice que la memoria RAM es una memoria voltil.
o La memoria ROM (Read Only Memory): Es una memoria esttica que no
puede cambiar, la computadora puede leer los datos almacenados en la
memoria ROM, pero no se pueden introducir datos en ella, o cambiar los
datos que ah se encuentran; por lo que se dice que esta memoria es de
solo lectura. Los datos de la memoria ROM estn grabados en forma
permanente y son introducidos por el fabricante de la computadora.
11. Memoria Auxiliar (Externa): Es donde se almacenan todos los programas o
datos que el usuario desee. Los dispositivos de almacenamiento o memorias
auxiliares (externas o secundarias) mas comnmente utilizados son: cintas
magnticas y discos magnticos.
3.1Lenguajes de Programacin
Es un conjunto de smbolos, caracteres y reglas (programas) que le permiten a
las personas comunicarse con la computadora. Los lenguajes de programacin tienen
un conjunto de instrucciones que nos permiten realizar operaciones de entrada/salida,
calculo, manipulacin de textos, lgica/comparacin y almacenamiento/recuperacin.
Los lenguajes de programacin se clasifican en:

Pgina |7

Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente


entendibles por la computadora y no necesitan traduccin posterior para que la
CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje
maquina se expresan en trminos de la unidad de memoria ms pequea el bit
(dgito binario 0 o 1).
Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se
escriben en cdigos alfabticos conocidos como mnemotcnicos para las
operaciones y direcciones simblicas.
Lenguaje de Alto Nivel: Los lenguajes de programacin de alto nivel (BASIC,
pascal, cobol, fortran, etc.) son aquellos en los que las instrucciones o
sentencias a la computadora son escritas con palabras similares a los lenguajes
humanos (en general en ingles), lo que facilita la escritura y comprensin del
programa.

4. Algoritmo y sus tipos


La palabra algoritmo se deriva de la traduccin al latn de la palabra rabe
Alkhowarizmi, nombre de un matemtico y astrnomo rabe que escribi un tratado
sobre manipulacin de nmeros y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solucin a un problema especfico.
4.1 Tipos de Algoritmos

Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan clculos numricos para
definir los pasos del proceso.

4.2 Lenguajes Algortmicos


Es una serie de smbolos y reglas que se utilizan para describir de manera explcita
un proceso. De los cuales se encuentran los siguientes tipos de Lenguajes
Algortmicos:

Grficos: Es la representacin grfica de las operaciones que realiza un


algoritmo (diagrama de flujo).
No Grficos: Representa en forma descriptiva las operaciones que debe realizar
un algoritmo (pseudocdigo).

5. Metodologa para la solucin de problemas por medio de computadora


Definicin del Problema: Esta fase est dada por el enunciado del problema, el
cual requiere una definicin clara y precisa. Es importante que se conozca lo que se
desea que realice la computadora; mientras esto no se conozca del todo no tiene
mucho caso continuar con la siguiente etapa.
Anlisis del Problema: Una vez que se ha comprendido lo que se desea de la
computadora, es necesario definir:

Los datos de entrada.

Pgina |8

Cul es la informacin que se desea producir (salida)


Los mtodos y frmulas que se necesitan para procesar los datos.

Una recomendacin muy practica es el que nos pongamos en el lugar de la


computadora y analicemos que es lo que necesitamos que nos ordenen y en que
secuencia para producir los resultados esperados.
Diseo del Algoritmo: Las caractersticas de un buen algoritmo son:

Debe tener un punto particular de inicio.


Debe ser definido, no debe permitir dobles interpretaciones.
Debe ser general, es decir, soportar la mayora de las variantes que se puedan
presentar en la definicin del problema.
Debe ser finito en tamao y tiempo de ejecucin.

Codificacin: La codificacin es la operacin de escribir la solucin del problema (de


acuerdo a la lgica del diagrama de flujo o pseudocdigo), en una serie de
instrucciones detalladas, en un cdigo reconocible por la computadora, la serie de
instrucciones detalladas se le conoce como cdigo fuente, el cual se escribe en un
lenguaje de programacin o lenguaje de alto nivel.
Prueba y Depuracin: Los errores humanos dentro de la programacin de
computadoras son muchos y aumentan considerablemente con la complejidad del
problema. El proceso de identificar y eliminar errores, para dar paso a una solucin sin
errores se le llama depuracin. La depuracin o prueba resulta una tarea tan creativa
como el mismo desarrollo de la solucin, por ello se debe considerar con el mismo
inters y entusiasmo. Resulta conveniente observar los siguientes principios al realizar
una depuracin, ya que de este trabajo depende el xito de nuestra solucin.
Documentacin: Es la gua o comunicacin escrita es sus variadas formas, ya sea en
enunciados, procedimientos, dibujos o diagramas. A menudo un programa escrito por
una persona, es usado por otra. Por ello la documentacin sirve para ayudar a
comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento). La documentacin se divide en tres partes:

Documentacin Interna: Son los comentarios o mensaje que se aaden al


cdigo fuente para hacer ms claro el entendimiento de un proceso.
Documentacin Externa : Se define en un documento escrito los siguientes
puntos:
o Descripcin del Problema
o Nombre del Autor
o Algoritmo (diagrama de flujo o pseudocdigo)
o Diccionario de Datos
o Cdigo Fuente (programa)
Manual del Usuario: Describe paso a paso la manera como funciona el
programa, con el fin de que el usuario obtenga el resultado deseado.

Mantenimiento: Se lleva a cabo despus de terminado el programa, cuando se detecta


que es necesario hacer algn cambio, ajuste o complementacin al programa para que
siga trabajando de manera correcta. Para poder realizar este trabajo se requiere que el
programa este correctamente documentado.

Pgina |9
6. Diagrama de Flujo
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se
puede decir que es la representacin detallada en forma grfica de cmo deben
realizarse los pasos en la computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican diferentes
procesos en la computadora), se relacionan entre si mediante lneas que indican el
orden en que se deben ejecutar los procesos. Los smbolos utilizados han sido
normalizados por el instituto norteamericano de normalizacin (ANSI).
SMBOLO

DESCRIPCIN
Indica el inicio u el final de nuestro diagrama de flujo.

Se utiliza para representar los subprogramas.

Indica la entrada y salida de datos.

Smbolo de proceso y nos indica la asignacin de un


valor en la memoria y/o la ejecucin de una operacin
aritmtica.
Smbolo de decisin indica la realizacin de una

comparacin
de valores.

Smbolo de bucle con rangos para un ciclo definido

Conector dentro de pgina.


Conector fuera de pgina.

Indica la salida de informacin.

Lneas de flujo o direccin.

P g i n a | 10
Recomendaciones para el diseo de Diagramas de Flujo

Se deben se usar solamente lneas de flujo horizontal y/o vertical.


Se debe evitar el cruce de lneas utilizando los conectores.
Se deben usar conectores solo cuando sea necesario.
No deben quedar lneas de flujo son conectar.
Se deben trazar los smbolos de manera que se puedan leer de arriba hacia
abajo y de izquierda a derecha.
Todo texto escrito dentro de un smbolo deber ser escrito claramente, evitando
el uso de muchas palabras.

7. Pseudocdigo
Mezcla de lenguaje de programacin y espaol (o ingls o cualquier otro
idioma) que se emplea, dentro de la programacin estructurada, para realizar el diseo
de un programa. En esencial, el pseudocdigo se puede definir como un lenguaje de
especificaciones de algoritmos. Es la representacin narrativa de los pasos que debe
seguir un algoritmo para dar solucin a un problema determinado. El pseudocdigo
utiliza palabras que indican el proceso a realizar.
Ventajas de utilizar un Pseudocdigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel


Permite representar en forma fcil operaciones repetitivas complejas
Es muy fcil pasar de pseudocdigo a un programa en algn lenguaje de
programacin.
Si se siguen las reglas se puede observar claramente los niveles que tiene cada
operacin.

8. Lenguaje Visual Basic


Como se menciono anteriormente es necesario el manejo de un lenguaje el cual
nos ayude a la codificacin de los programas, por tanto nuestro lenguaje de
programacin ser el Visual Basic, el cual trabaja en un entorno visual y de fcil
manejo, lo cual nos llevar seguidamente a la manipulacin de los macros en Excel,
que simple mente trabaja con el mismo lenguaje que es el Visual Basic.
8.1 Tipos, declaraciones y alcances de las variables
8.1.1 Qu son las variables
En cualquier programa necesitamos hacer clculos, usar informacin, procesarla
y mostrarla. En la mayora de los casos, necesitamos un lugar temporal en el cual
guardar parte de esa informacin, incluso toda.
Es aqu donde entran en juego las variables, las que nos permite guardar datos
en memoria, para que cuando los necesitemos, podamos tomarlos, modificarlos y
volverlos a guardar para usar mas tarde.

P g i n a | 11
La memoria es el lugar donde el ordenador almacena de forma temporal los
programas y parte de la informacin que necesita o utiliza. Esas posiciones o lugares
de la memoria donde los programas pueden almacenar informacin son las variables.
Es una ubicacin de almacenamiento temporal con nombre que se encuentra en
memoria, siendo capaz de contener cierto tipo de datos que pueden modificarse
durante la ejecucin del programa.
En VB los nombres de las variables deben limitarse a 255 caracteres, empezar
con un carcter alfabtico y no pueden obtener un punto
Utilizacin temporal de almacenamiento de datos dentro de un programa.
Permiten asignar nombres cortos y fciles de recordar. Son para manejar cualquier
tipo de informacin.
8.2 Tipos de Variables
Dim: Al declarar una variable con esta palabra estamos diciendo que la variable
sea local al mbito en que se declara. Puede ser dentro de un procedimiento o dentro
de un formulario, de esta forma no sera accesible desde los dems procedimientos o
formularios.
Ej:

Dim suma

Public: Las variables declaradas sern publicas y podrn estar accesibles desde
todos los formularios de la aplicacin. Para conseguirlo tendremos que declararlas en
un mdulo de cdigo, no en la seccin declarations de cualquier formulario de los que
conste la aplicacin.
Ej:

Public suma

Static: Con esta forma de declarar variables conseguiremos que las variables
locales no se creen y se destruyan al entrar y salir de los procedimientos donde fueron
declaradas sino que se mantenga su valor durante todo el periodo de ejecucin de la
aplicacin. De esta forma a entrar en algn procedimiento las variables recuerdan el
valor que tenan cuando se sali de l.
Ej:

Static suma

TIPOS DE VARIABLES

TIPO

COMENTARIO

BOOLEAN

Slo admite 2 valores TRUE o FALSE

BYTE

admite valores entre 0 y 255

INTEGER

admite valores entre -32768 y 32767

P g i n a | 12

LONG

admite valores entre -2.147.483.648 y


2.147.483.647

SINGLE

admite valores decimales con precisin


simple

DOUBLE

admite valores
precisin

CURRENCY

vlido para valores de tipo moneda

STRING

cadenas de caracteres

Variant

Admite cualquier tipo de datos

DATE

fechas, permite operar con ellas

decimales

de

doble

8.3 Declaracin de Constantes


Como su palabra lo dice es Informacin que no vara hace ms fcil la
comprensin del cdigo y permite modificar un valor en un solo lugar no ocupa espacio
extra, Ejemplo:
Mnimo = 1, Mximo = 10
3 Entradas y salidas con Texbox
Texbox() Se introduce en este cuadro la informacin, que puede ser usada
como de entrada de datos o de salida.

P g i n a | 13
En la escritura del cdigo, para que su uso sea de ingreso de datos debe estar de la
siguiente manera.
Radio=Text1.text
El cual en la variable Radio se almacenar el dato que introduzcamos en el text1.
Para que su uso sea de salida de datos, se escribe en el cdigo de la siguiente manera.
Tex2.text= rea
Donde en el text2 estar el dato de salida o la respuesta, en este caso rea
8.4 ENTRADAS Y SALIDAS SENCILLAS CON MSGBOX() E INPUTBOX()
8.4.1 Que son Inputbox(), Msgbox()
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:
Ej.
Radio = InputBox(ingresar datos)
MsgBox Despliega un mensaje en un cuadro de dialogo y espera que el usuario
seleccione un botn. Sintaxis:
Ej.
rea = MsgBox(Mensaje)
MSFlexGrid Es un cuadro que posee celdas donde se puede mostrar o escribir
datos. (para tener acceso a el se debe hacer clic derecho sobre la barra
general, entrar a Componentes y seleccionar Microsoft FlexGrid Control
6.0)

P g i n a | 14
Para manipular el nmero de columnas o filas se puede hacer externamente
cambiando las Propiedades-MsflexGrid (en la barra de opciones a la derecha) en
Cols (columnas) y Rows (filas).
8.5 Botn de Comando (Command Button)
Uno de los controles mas habituales en Visual Basic 6.0 es el de Command Button, en
el cual la propiedad ms importante es el Caption que es lo que aparece escrito en l.
El evento que se ejecuta al hacer click en l, produce la hoja de programacin donde
podr ser escrito el lenguaje o cdigo de programacin.

9. Estructuras algortmicas y de programacin


Las estructuras de operacin de programas son un grupo de formas de trabajo,
que permiten, mediante la manipulacin de variables, realizar ciertos procesos
especficos que nos lleven a la solucin de problemas, resumiendo a tres simples pero
importantes tipos de estructuras:
-

Estructura Secuencial
Estructura de Condicionales
Estructuras Cclicas

10. Estructuras Secuenciales


La estructura secuencial es aquella en la que una accin (instruccin) sigue a
otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la
entrada de la siguiente y as sucesivamente hasta el fin del proceso. Una estructura
secuencial se representa de la siguiente forma:
Inicio
Accion1
Accion2
.
.
AccionN
Fin

P g i n a | 15
Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el
teclado) un valor. Esta operacin se representa en un pseudocdigo como sigue:
Leer a, b.
Donde a y b son las variables que recibirn los valores

a,b
Asignacin: La asignacin consiste, en el paso de valores o resultados a una zona de
la memoria. Dicha zona ser reconocida con el nombre de la variable que recibe el
valor. La asignacin se puede clasificar de la siguiente forma:
o
o
o
o

Simples: Consiste en pasar un valor constate a una variable (a=15)


Contador: Consiste en usarla como un verificador del nmero de veces
que se realiza un proceso (a=a+1)
Acumulador: Consiste en usarla como un sumador en un proceso
(a=a+b)
De trabajo: Donde puede recibir el resultado de una operacin
matemtica que involucre muchas variables (a=c+b*2/4).

a=c+b*2/4

Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora)


un resultado o mensaje. Este proceso se representa en un pseudocdigo como sigue:
Escribe El resultado es:, R
Donde El resultado es: es un mensaje que se desea aparezca y R es una variable que
contiene un valor.

R
Ejemplo.10.1 Calcular el rea de un crculo.
10.1.1 Algoritmo: rea de un crculo
1.
2.
3.
4.
5.
6.

Inicio
Leer R
pi= 3.1415927
rea= pi*R^2
Escribir rea
Fin

P g i n a | 16
10.1.2 Diagrama de flujo: rea de un Crculo

10.1.3 Cdigo Visual Basic: rea de un crculo


Nota.- Se necesita: 2 TextBox, 1 CommandButton
..
Private Sub Command1_Click()
Dim R As Single
R = Val(Text1.Text)
pi = 3.1415927
Area = pi * R ^ 2
Text2.Text = Area
End Sub
..
10.1.4 Ejercicios de aplicacin.
a) Convertir una hora expresada en segundos a horas, minutos y segundos.
b) Convertir un nmero complejo de su forma polar a cartesiana.

P g i n a | 17
11. Estructuras de Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor(es),
para que en base al resultado de esta comparacin, se siga un curso de accin dentro
del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable
o contra una constante, segn se necesite. Existen dos tipos bsicos, las simples y las
mltiples.

11.1 Condicionales Simples


Las estructuras condicionales simples se les conocen como Tomas de
decisin. Estas tomas de decisin tienen la siguiente forma:
Si <condicin> entonces
Accin(es)
Fin-decisin

V
<Condicin>
F

Ejemplo.11.1.1 Determinar el mximo de tres nmeros.

11.1.2 Algoritmo: Mximo de tres nmeros


1. Inicio
2. Leer I, J, K
3. MAX= I
4. SI J>MAX ENTONCES
5. MAX=J
6. Fin condicin
7. SI K>MAX ENTONCES
8. MAX=K
9. Fin decisin
10. Escribir MAX
11. Fin.

Tareas

P g i n a | 18
11.1.2 Diagrama de Flujo: Mximo de tres nmeros

11.1.3 Programa Visual Basic: Mximo de tres nmeros


Nota.- (Se necesita: 4 TextBox,1 CommandButton)
..
Private Sub Command1_Click()
Dim i As Single
Dim j As Single
Dim k As Single
i = Val(Text1.Text)
j = Val(Text2.Text)

P g i n a | 19
k = Val(Text3.Text)
Max = i
If j > Max Then
Max = j
End If
If k > Max Then
Max = k
End If
Text4.Text = Max
End Sub
..
11.1.4 Ejercicios de aplicacin
a) Determinar el mnimo de tres nmeros.
b) Obtener el valor absoluto de un nmero x.
11.2 Condicionales Dobles
Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en funcin del cumplimiento o no de una determinada condicin.
Se representa de la siguiente forma:

Si <condicin> entonces
Accin(es)
si no
Accin(es)
Fin-si
- <condicin>, indica la condicin a evaluar
- <accin(es)>, son las acciones a realizar cuando se cumple o no la condicin

F
Tareas

V
Condicin

Tareas

P g i n a | 20
Ejemplo.11.2.1 Indicar si un nmero x es par o impar
11.2.2 Algoritmo: Nmero par?
1.
2.
3.
4.
5.
6.
7.
8.

Inicio
Leer x
SI x RESIDUO 2 = 0 ENTONCES
Escribir x es par
Caso contrario
Escribir x es impar
Fin decisin
Fin

11.2.3 Diagrama de flujo: Nmero par?

11.2.4 Programa Visual Basic: Nmero par?


Nota.- Se necesita: 2TextBox,1 CommandButton
..
Private Sub Command1_Click()
Dim x As Single
x = Val(Text1.Text)
If x Mod 2 = 0 Then
Text2.Text = "es par"

P g i n a | 21
Else
Text2.Text = "es impar"
End If
End Sub
..

11.2.5 Ejercicios de aplicacin


a) Determinar si un nmero N es mltiplo de un nmero n.
b) Determinar si un nmero es entero o es un nmero con parte decimal.

11.3 Condicionales Mltiples


Las estructuras de comparacin mltiples, son tomas de decisin especializada
que permiten comparar unas variables con otras distintas posibles resultados,
ejecutando para cada caso una serie de instrucciones especficas.

Seleccionar Caso <expresin_prueba>


[Caso lista_expresiones1
<bloque de sentencias 1>
[Caso lista_expresiones2
<bloque de sentencias 2>
.
.
.
[Caso Contrario
<bloque de sentencias n>

Fin Caso

Caso1

Caso2

Caso3

Caso4

P g i n a | 22
Ejemplo.11.3.1 Hacer un programa que resuelva cualquier ecuacin de 2 grado
ax2 + bx + c = 0, con a diferente de 0.
11.3.2 Algoritmo: Ecuacin de 2 grado.
1.
2.
3.
4.
5.

Inicio
Leer a, b, c.
Discriminante = b2 4ac
Seleccionar caso Discriminante
Caso es > 0

6. Mostrar: 1

, 2

7. Caso es =0
8. Mostrar: X = b
2a

9. Caso es < 0
10. Mostrar La ecuacin no tiene soluciones reales
11. Fin caso
12. Fin
11.3.3 Diagrama de Flujo: Ecuacin de 2 grado.

P g i n a | 23
11.3.4 Programa Visual Basic: Ecuacin de 2 grado.
Nota.- Se necesita: 5 TextBox, 1 CommandButton
..
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
Dim c As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
discr = b ^ 2 - (4 * a * c)
Select Case discr
Case Is > 0
X1 = (-b + Sqr(discr)) / (2 * a)
X2 = (-b - Sqr(discr)) / (2 * a)
Text4.Text = X1
Text5.Text = X2
Case Is = 0
x = -b / (2 * a)
Text4.Text = x
Text5.Text = x
Case Is < 0
MsgBox ("no tiene sol. real")
End Select
End Sub
..

P g i n a | 24
11.3.5 Ejercicios de aplicacin
a) Determinar si un nmero es mayor, menor o igual a un nmero b.
b) Dada tres longitudes de un tringulo, determinar qu tipo de triangulo es.
12 Estructuras Cclicas
Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es
necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad
especfica de veces. Esta cantidad puede ser fija (previamente determinada por el
programador) o puede ser variable (estar en funcin de algn dato dentro del
programa).Los ciclos se clasifican en:
12.1 Sentencia PARA
La sentencia Para es la ms sencilla de utilizar de las sentencias iterativas. La
emplearemos cuando el nmero de iteraciones del bucle se conozca antes de iniciarse
la ejecucin de ste. Una variable de contaje, contador, va contando las pasadas
(iteraciones) por el bucle.
Para <contador> = <iniciar> Hasta <finalizar> [Salto <incremento>]
<Sentencias>
Siguiente [<contador>]
-

<contador>, es la variable empleada para contabilizar las iteraciones del bucle


realizadas.
<iniciar>, el resultado de su evaluacin determina el valor inicial, de contador,
es decir, el valor con el que se ejecutara por primera vez.
<final>, el resultado de su evaluacin determina el valor final, de contador, es
decir, el valor con el que se ejecutar por ltima vez el bucle.
<incremento>, determina la forma en a que se modificara contador al final de
cada ejecucin del bucle. Su valor se sumara o se restar a contador, segn
hayamos usado la palabra reservada Hasta antes de <final>, respectivamente.
La indicacin de este valor en la sentencia es opcional, caso de no indicarse, el
valor que toma por defecto es 1.
<sentencia>, es la que constituye el denominado cuerpo del bucle. En
general ser una sentencia compuesta, es decir, que estar formada por ms
de una sentencia simple, aunque puede ser una sola accin, o incluso no
existir(accin nula).

Para<contador>=<iniciar>Hasta<finalizar> [Salto<incremento>]

<Sentencias>

P g i n a | 25
Ejemplo.12.1.1 Calcular el factorial de un nmero x
12.1.2 Algoritmo: Factorial
1.
2.
3.
4.
5.
6.
7.
8.

Inicio
Leer x
Factorial=1
Para i= 1 hasta x
Factorial=Factorial*i
Siguiente i
Mostrar: Factorial
Fin

12.1.3 Diagrama de flujo: Factorial

P g i n a | 26
12.1.4 Programa Visual Basic: Factorial
Nota.- Se necesita: 2 TextBox, 1 CommandButton
..
Private Sub Command1_Click()
Dim x As Single
x = Val(Text1.Text)
Factorial = 1
For i = 1 To x
Factorial = Factorial * i
Next
Text2.Text = Factorial
End Sub
.
12.1.5 Ejercicios de aplicacin
a) Calcular la sumatoria de un nmero n.
b) Calcular el nmero de combinaciones de n elementos tomados de m en m.
12.2 Sentencia Mientras
En la sentencia PARA, debemos conocer el nmero exacto de veces que se
deben ejecutar las sentencias del bucle. Cuando esto no es posible, debemos emplear
la sentencia MIENTRAS para conseguir ejecutar varias veces las sentencias del bucle.
En estas sentencias el nmero de iteraciones depende de la evaluacin de una
condicin.
MIENTRAS < condicin ejecucin > HACER <sentencia> CICLO
<condicin ejecucin>, es una expresin que puede tomar los valores cierto o falso.
<sentencia bucle>, es la sentencia que se debe ejecutar en el caso de que el
resultado de la evaluacin de <condicin ejecucin> sea cierto. Puede ser una
sentencia compuesta.
el CICLO indica que debe volver al punto donde se realiza la pregunta de <condicin
de ejecucin> hasta que el valor sea falso

P g i n a | 27

condicin
ejecucin

V
sentencia
bucle

Ejemplo.
12.2.1 Calcular la suma de los N primeros nmeros mltiplos de 7

12.2.2 Algoritmo: suma de N mltiplos de 7


1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Leer N
i=0, suma=0
Mientras i<N
i=i+1
suma=suma+(i*7)
Ciclo
vuelve al paso 4 hasta que la pregunta N/2<2 sea falso
Mostrar: suma
Fin

11.2.3 Diagrama de Flujo: suma de N mltiplos de 7

P g i n a | 28
12.2.4 Programa Visual Basic: suma de N mltiplos de 7
Nota: Se necesita: 2 TextBox, 1 CommandButton
.
Private Sub Command1_Click()
Dim N As Single
N = Val(Text1.Text)
i=0
suma = 0
Do While i < N
i=i+1
suma = suma + (i * 7)
Loop
Text2.Text = suma
End Sub
.
12.2.5 Ejercicios de aplicacin
a) Obtener el mximo comn divisor por resta reiterada de 2 nmeros.
b) Imprimir los trminos de la serie Fibonacci menores que N.
12.3 Sentencia REPETIR (HASTA)
En la sentencia MIENTRAS, la condicin de ejecucin del bucle se verifica antes
de haber ejecutado este por primera vez. Por tanto, es necesario inicializar las
variables empleadas para determinar su ejecucin antes de entrar por primera vez a
ste, lo cual puede tener como consecuencia que el bucle no llegue a ejecutarse nunca.
Si queremos evitar ambas cosas, es decir:
tener que inicializar las variables de control de bucle y
ejecutar al menos una vez el bucle,
debemos emplear la sentencia REPETIR. En esta sentencia, el nmero de interacciones
depende de la evaluacin de una condicin, como en la de MIENTRAS, pero esta
evaluacin se realiza despus de cada ejecucin del bucle.
Hacer <sentencia de bucle> Hasta <condicin>

P g i n a | 29
<sentencia bucle>, es la sentencia que se debe volver a ejecutar en el caso de que
el resultado de la evaluacin de <condicin> sea falso. Puede ser una sentencia
compuesta.
<condicin>, es una expresin que puede tomas los valores cierto o falso.

Ejemplo.
12.3.1 Dado el Factorial, encontrar el nmero ms prximo que da tal valor.
12.3.2 Algoritmo: qu nmero da el factorial?
1. Inicio
2. Leer Factorial
3. i=1, fact=1
4. Hacer
5. i=i+1
6. fact=fact*i
7. Hasta fact<=Factorial
8. Si fact= Factorial Entonces
9. Mostrar: i
10. Caso contrario
11. Mostrar: ninguno
12. Fin decisin
13.Fin

P g i n a | 30
12.3.2 Diagrama de flujo: qu nmero da el factorial?

12.3.3 Programa Visual Basic: qu nmero da el factorial?


Nota.- Se necesita: 2 TextBox, 1 CommandButton
..
Private Sub Command1_Click()
Dim Factorial As Single
Factorial = Val(Text1.Text)

P g i n a | 31
i=0
fact = 1
Do
i=i+1
fact = fact * i
Loop Until fact >= Factorial
If fact = Factorial Then
Text2.Text = i
Else
Text2.Text = "ninguno"
End If
End Sub
..
12.2.5 Ejercicios de aplicacin
a) Convertir un nmero de base octal a base decimal.
b) Imprimir los trminos de la serie Fibonacci menores que N.
13. APLICACIN.Ejemplo.13.1 Determinar la cantidad de dgitos que posee un nmero n.
13.1.1 Algoritmo: Cantidad de dgitos que posee un nmero n.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Leer n
dgitos=0
Hacer
dgitos=dgitos+1
n=(n Cociente 10)
Hasta n=0
Mostrar: dgitos
Fin

P g i n a | 32
13.1.2 Diagrama de flujo: Cantidad de dgitos que posee un nmero n.

13.1.3 Cdigo Visual Basic: Cantidad de dgitos que posee un nmero n.


Nota.- Se necesita: 2 TextBox, 1 CommandButton
..
Private Sub Command1_Click()
Dim n As Single
n = Val(Text1.Text)
digitos = 0
Do
digitos = digitos + 1
n = n \ 10
Loop Until n = 0
Text2.Text = digitos
End Sub

P g i n a | 33
Ejemplo.
13.2 Cambio de base decimal a base binaria.
13.2.1 Algoritmo: Cambio de base decimal a base binaria.
1. Inicio
2. Leer N
3. i= -1, Base =0
4. Hacer mientras N>2
5. C=N Residuo 2
6. Base=Base+(C*10^(1+i))
7. i=i+1
8. N=N Cociente 2
9. Ciclo
10.Base=Base+(N Residuo 2)*10^(1+i)
11.Mostrar Base
12.Fin

13.2.2 Diagrama de flujo: Cambio de base decimal a base binaria.

P g i n a | 34
13.2.3 Cdigo Visual Basic: Cambio de base decimal a base binaria.
Nota.- Se necesita: 2 TextBox, 1 CommandButton

Private Sub Command1_Click()


Dim N As Single
N = Val(Text1.Text)
i = -1
Base = 0
Do While N > 2
C = N Mod 2
Base = Base + (C * 10 ^ (1 + i))
i=i+1
N=N\2
Loop
Base = Base + (N Mod 2) * 10 ^ (1 + i)
Text2.Text = Base
End Sub

Ejemplo.
13.3 Realizar el algoritmo, diagrama de flujo y cdigo para mostrar si un nmero es
primo no.
13.3.1 Algoritmo: Es nmero primo?
1.
2.
3.
4.
5.
6.
7.
8.
9.

Inicio
Leer n
Para i = 1 Hasta n
Si n Residuo i=0 Entonces
temp=temp+1
Fin condicin
Siguiente i
Si temp > 2 Entonces
Mostrar No es primo

P g i n a | 35
10. Caso contrario: Mostrar Es primo
11. Fin condicin
12.Fin
13.3.2 Diagrama de flujo: Es nmero primo?

13.3.3 Cdigo Visual Basic: Es nmero primo?


Nota.- Se necesita: 1 TextBox, 1 CommandButton

Private Sub Command1_Click()


Dim n As Single
n = Val(Text1.Text)

P g i n a | 36
For i = 1 To n
If n Mod i = 0 Then
temp = 1 + temp
End If
Next i
If temp > 2 Then
MsgBox "no es primo"
Else
MsgBox "Es primo"
End If
End Sub
..
Ejemplo.13.4 Realizar el algoritmo, diagrama de flujo y cdigo para determinar el mximo
comn divisor de n nmeros.
13.4.1 Algoritmo: Mximo comn divisor de n nmeros.
1. Inicio
2. Leer n
3. MCD=1
4. Para i= 1 Hasta n
5. Leer a(i)
6. Siguiente i
7. Para i= 1 Hasta a(1)
8. Para j=2 Hasta n
9. Si a(j) Residuo i=0 Entonces
10. cont=cont+1
11. Fin condicin
12. Siguiente j
13. Si cont=n-1 Entonces
14. MCD=i
15. Fin condicin
16. cont=0
17. Siguiente i
18. Mostrar MCD
19.Fin

P g i n a | 37
13.4.2 Diagrama de flujo: Mximo comn divisor de n nmeros.

P g i n a | 38
13.4.3 Cdigo Visual Basic: Mximo comn divisor de n nmeros.
Nota.- Se necesita: 2 TextBox, 1 CommandButton

Private Sub Command1_Click()


Dim n As Single
Dim a(1 To 20) As Single
n = Val(Text1.Text)
MCD = 1
For i = 1 To n
a(i) = InputBox("leer Nmeros")
Next i
For i = 1 To a(1)
For j = 2 To n
If a(j) Mod i = 0 Then
cont = cont + 1
End If
Next j
If cont = n - 1 Then
MCD = i
End If
cont = 0
Next i
Text2.Text = MCD
End Sub
.

P g i n a | 39
14 Mtodos Numricos
14.1 Introduccin.
Se presentan algunas de las tecinas comunes para realizar clculos numricos
sin mayor rigor matemtico, con el objetivo de hacer referencias a ellas en el resto de
los captulos donde ello sea necesario, y para que el lector interesado
tenga conocimiento de la existencia de estos mtodos.
14.1.2 Integracin numrica.
14.1.3 El rea bajo una curva.
Si se tiene una funcin y = f(x), el problema de determinar el rea entre la
curva representativa de la funcin y el eje X, entre los valores x1 y x2 conduce al
concepto de integral. Una aproximacin a la solucin de este problema consiste en
aproximar el rea por una suma de rectngulos como se indica en la figura.
Si el intervalo de x1 a x2 lo llenamos con N rectngulos que lleguen hasta
la curva, entonces los anchos de los rectngulos sern
2

las abscisas de sus vrtices inferiores izquierdos sern


1
1 ;
1, 2, . . . ,

Figura 1.1: rea bajo la curva.


o
;
1, 2, . . . ,
1
Entonces el rea A ser aproximadamente

P g i n a | 40
14.2 Mtodo de los rectngulos:
Sea f(x) en el intervalo [a, b], con sub intervalos [
aproximada A de f(x) presenta la siguiente frmula.

1 ], entonces el rea

Ejemplo:
14.2.1 Realizar el algoritmo, diagrama de flujo y cdigo del mtodo de rectngulos
14.2.2 Algoritmo. Mtodo de los rectngulos
1. Inicio
2. Definir funcin Y=x^3
3. Leer a, b, n
4. S=0, h=(b-a)/n
5. Para i= 0 Hasta (n-1)
6. S= Y(a+i*h)+S
7. Siguiente i
8. rea=S*h
9. Mostrar rea
10.Fin
14.2.3 Diagrama de flujo: Mtodo de los rectngulos

P g i n a | 41

14.2.4Cdigo Visual Basic: Mtodo de los rectngulos


Nota.- Se necesita: 4 TextBox, 1 CommandButton

Public Function Y(x As Double)


Y=x^3
End Function
Private Sub Command1_Click()
Dim a As Double
Dim b As Double
Dim n As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
S=0
h = (b - a) / n
For I = 0 To n - 1
S = Y(a + (I * h)) + S
Next I
rea = S * h
Text4.Text = rea
End Sub
..
14.3 Mtodo de la suma de trapecios:
Sea f(x) una funcin en [a, b], con n subintervalos [xi , x i
aproximada A de f(x) es:
x
2f x
2f x
2f x
f x
f x dx
2
x

ix

1 ], entonces el rea
f x

P g i n a | 42

Ejemplo:
14.3.1 Realizar el algoritmo, diagrama de flujo y cdigo del mtodo de la suma de
trapecios
14.3.2 Algoritmo. Mtodo de la suma de trapecios.
1. Inicio
2. Definir funcin Y=x^3
3. Leer a, b, n
4. S1=0, S2=0, h=(b-a)/n
5. Para i= 1 Hasta (n-1)
6. S= Y(a+i*h)+S
7. Siguiente i
8. rea=h/2*(Y(a)+2*S+Y(b))
9. Mostrar rea
10.Fin
14.3.3 Diagrama de flujo: Mtodo de la suma de trapecios.

P g i n a | 43
14.3.4 Cdigo Visual Basic: Mtodo de la suma de trapecios.
Nota.- Se necesita: 4 TextBox, 1 CommandButton
.
Public Function Y(x As Single)
Y=x^3
End Function
Private Sub CommandButton1_Click()
Dim a As Single
Dim b As Single
Dim n As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
S=0
h = (b - a) / n
For i = 1 To (n - 1)
S = S + (2 * Y(a + (i * h)))
Next i
rea = (Y(a) + Y(b) + S) * h / 2
Text4.Text = rea
End Sub
..
14.4 Mtodo de Simpson 1/3 (frmula parablica):
Sea f(x) una funcin continua en [a, b], una vez generada ste intervalo como unin
de subintervalos con la misma longitud h, esta vez se considerar el ajuste a la funcin
mediante parbolas, dando el rea total la suma de dichas parbolas, tomando
siempre n par.

Donde n es par

P g i n a | 44
Ejemplo
14.4.1Realizar el algoritmo, diagrama de flujo y cdigo del mtodo de Simpson1/3.
14.4.2 Algoritmo: Mtodo de Simpson 1/3.
1. Inicio
2. Definir funcin Y=x^3
3. Leer a, b, n
4. S1=0, S2=0, h=(b-a)/n
5. Para i= 1 Hasta n : Salto 2
6. S1= Y(a+i*h)+S1
7. Siguiente i
8. Para j= 2 Hasta (n-1) :Salto 2
9. S2= Y(a+j*h)+S2
10. Siguiente j
11. rea=h/3*(Y(a)+4*SI+2*S2+Y(b))
12. Mostrar rea
13.Fin
14.4.4 Diagrama de flujo: Mtodo de Simpson 1/3.

P g i n a | 45

14.4.5 Cdigo: Mtodo de Simpson 1/3.


Nota.- Se necesita: 4 TextBox, 1 CommandButton
..
Public Function Y(x As Single)
Y=x^3
End Function
Private Sub CommandButton1_Click()
Dim a As Single
Dim b As Single
Dim n As Single
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
S1 = 0
S2 = 0
h = (b - a) / n
For i = 1 To n Step 2
S1 = S1 + Y(a + (i * h))
Next i
For j = 2 To (n - 1) Step 2
S2 = S2 + Y(a + (j * h))
Next j
rea = (Y(a) + Y(b) + (4 * S1) + (2 * S2)) * h /3
Text4.Text = rea
End Sub

15. Determinacin de races de ecuaciones.


Muchos problemas en ciencia e ingeniera conducen a un problema de
determinar las races de una ecuacin de la forma f(x) = 0 donde f es una funcin
diferenciable. Para una ecuacin cuadrtica ax2 +bx +c = 0 es bien conocido que:

Para ecuaciones de tercer y cuarto orden hay tambin frmulas, pero que son
complicadas. Si f es un polinomio de grado 5 o superior no existe tal frmula.
Asimismo no hay frmulas que nos permitan encontrar races exactas de ecuaciones
trascendentales tales como cos x = x. Mtodos que permitan encontrar aproximaciones
para las races de ecuaciones se han desarrollado.

P g i n a | 46
15.1 Mtodo de la Biseccin
Sea f(x) una funcin (ecuacin) con raz en (a, b), esto significa que f(a)>0 y
f(b)<0 f(a)<0 y f(b)>0, adems f(x) continuo.
Bajo esta hiptesis, se considera reiterativa la mitad del intervalo con las condiciones
ya mencionadas.

Figura: Mtodo de la biseccin


y debe cumplir que
Donde

<0

Ejemplo
15.1.1 Realizar el algoritmo, diagrama de flujo, cdigo del mtodo de la Biseccin.
15.1.2 Algoritmo: Mtodo de la Biseccin.
1. Inicio
2. Definir funcin Y=x^2-2
3. Leer a, b, n
4. Si Y(a)*Y(b)<0 Entonces
5.
Para i= 1 Hasta n
6.
c=(a+b)/2
7.
Si Y(a)*Y(c)<0 Entonces
8.
b=c
9.
Caso contrario
10.
a=c
11.
Fin condicin
12. Siguiente i
13. Mostrar c
14. Caso contrario: No existe raz o hay ms de una raz
15. Fin condicin
16.Fin

P g i n a | 47

15.1.3 Diagrama de flujo: Mtodo de la Biseccin.

15.1.4 Cdigo: Mtodo de la Biseccin.


Nota.- Se necesita: 4 TextBox, 1 CommandButton
.
Public Function Y(x As Double)
Y=x^2-2
End Function
Private Sub Command1_Click()
Dim a As Double
Dim b As Double

P g i n a | 48
Dim n As Double
Dim c As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
If Y(a) * Y(b) < 0 Then
For i = 1 To n
c = (a + b) / 2
If Y(a) * Y(c) < 0 Then
b=c
Else
a=c
End If
Next i
Text4.Text = c
Else
MsgBox "no tiene raz en ese intervalo"
End If
End Sub
..

15.2 Mtodo de la Secante.


La idea de este mtodo es muy simple. Si se conocen do puntos tales que
en ellos las funcin f(x) tiene diferente signo, por ejemplo f(a) < 0 y f(b) > 0, entonces
(para funciones continuas) en algn punto intermedio la funcin debe anularse. La
recta que va desde el punto (1) al punto (2) corta el eje x ms cerca de la raz
buscada, como se ilustra en la figura siguiente: Como la recta pasa por los puntos (1)
y (2) su ecuacin es (verifquelo)

y el punto donde ella corta el eje x (la aproximacin) satisface

P g i n a | 49

Figura 1.4: Mtodo de la secante.


de donde

Este proceso debe ser repetido hasta alcanzar la precisin deseada, eligiendo
entre nuevos valores inciales, (a, c) o (c, b) segn en cual pareja hay cambio
de signo de la funcin.
Ejemplo.15.2.1 Realizar el algoritmo, diagrama de flujo, cdigo del mtodo de la Secante.
15.2.2 Algoritmo: Mtodo de la Secante.
1.
2.
3.
4.
5.

Inicio
Definir funcin Y=x^2-2
Leer a, b, n
Si Y(a)*Y(b)<0 Entonces
Para i= 1 Hasta n

6.

c=

a * Y (b) b * Y (a)
Y (b) Y (a)

7. a=b, b=c
8. Siguiente i
9. Mostrar c
10. Caso contrario: No existe raz o hay ms de una raz
11. Fin condicin
12.Fin

P g i n a | 50
15.2.3 Diagrama de flujo: Mtodo de la Secante.

15.2.4 Cdigo: Mtodo de la Secante.


Nota.- Se necesita: 4 TextBox, 1 CommandButton

Public Function Y(x As Double)


Y=x^2-2
End Function
Private Sub Command1_Click()
Dim a As Double
Dim b As Double
Dim n As Double
Dim c As Double

P g i n a | 51
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
If Y(a) * Y(b) < 0 Then
For i = 1 To n
c = ((a * Y(b)) - (b * Y(a))) / (Y(b) - Y(a))
a=b
b=c
Next i
Text4.Text = c
Else
MsgBox "no hay raiz"
End If
End Sub
..
15.3 Mtodo de la Falsa Posicin.
Para encontrar la raz aproximada de f(x) continua y con presencia de una raz
se itera como con el mtodo de la biseccin, usando la regla de f(a) * f(b)<0, y
utilizando la iteracin del mtodo de la Secante.
.

y en cada iteracin

0.

Ejemplo
15.3.1 Realizar el algoritmo, diagrama de flujo, cdigo del mtodo de la Falsa
Posicin.
15.3.2 Algoritmo: Mtodo de la Falsa Posicin.
1.
2.
3.
4.
5.

Inicio
Definir funcin Y=x^2-2
Leer a, b, n
Si Y(a)*Y(b)<0 Entonces
Para i= 1 Hasta n

6.

c=

a * Y (b) b * Y (a)
Y (b) Y (a)

7. Si Y(a)*Y(c)<0 Entonces
8. a=c
9. Caso contrario
10. b=c
11. Fin condicin
12. Siguiente i
13. Mostrar c
14. Caso contrario: No existe raz o hay ms de una raz
15. Fin condicin
16.Fin

P g i n a | 52
15.3.3 Diagrama de flujo: Mtodo de la Falsa Posicin.

Para i= 1 Hasta n

INICIO

Y=x^2-2

Y(a)*^Y(c)<0

a, b, n
No

No
Y(a)*Y(b)<0

No existe raz o
hay mas de una
raz

Si

a=c

b=c

Si

Mostrar
c

FIN

15.3.4 Cdigo Visual Basic: Mtodo de la Falsa Posicin.


Nota.- Se necesita: 4 TextBox, 1 CommandButton

Public Function Y(x As Double)


Y=x^2-2
End Function
Private Sub Command1_Click()
Dim
Dim
Dim
Dim

a As Double
b As Double
n As Double
c As Double

a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)

P g i n a | 53
If Y(a) * Y(b) < 0 Then
For i = 1 To n
c = ((a * Y(b)) - (b * Y(a))) / (Y(b) - Y(a))
If Y(a) * Y(c) < 0 Then
b=c
Else
a=c
End If
Next i

Text4.Text = c
Else
MsgBox "no hay raiz"
End If
End Sub
.
15.4 Mtodo de Newton-Raphson
El mtodo de Newton se basa en la observacin de que la lnea tangente es una
buena aproximacin local a una funcin. Sea (x0; f(x0)) un punto de la curva. La lnea
tangente en ese punto ser

0
0 .
0
Esta lnea cruza el eje-x donde y = 0. El valor de x ser
0
.
0
0
En general, dada una aproximacin xn a una raz de la funcin f(x), la lnea tangente
cruza el eje x donde
n

Dado x0, el mtodo de Newton produce una lista x1, x2, , xn de aproximaciones al
cero de f.
En los grficos que siguen, f(x) = x - x3, x0 = 0.44, x1 -0.41,x2 0.27, y x3 -0.048.

P g i n a | 54
Ejemplo:
15.4.1 Realizar el algoritmo, diagrama de flujo, cdigo del mtodo de NewtonRaphson.
15.4.2 Algoritmo: Mtodo de Newton-Raphson.
1.
2.
3.
4.

Inicio
Definir funcin Y=x^2-2
Leer x, n
Para i = 1 Hasta n

5.

x = x

Y ( x)
dY ( x)

6. Siguiente i
7. Mostrar x
8. Fin
15.4.3 Diagrama de flujo: Mtodo de Newton-Raphson.

P g i n a | 55

15.4.4 Cdigo Visual Basic: Mtodo de Newton-Raphson.


Nota.- Se necesita: 3 TextBox, 1 CommandButton
.
Public Function Y(x As Double)
Y=x^2-2
End Function
Public Function dY(x As Double)
dY = 2 * x
End Function
Private Sub Command1_Click()
Dim x As Double
Dim n As Double
x = Val(Text1.Text)
n = Val(Text3.Text)
s=0
For i = 1 To n
x = (x - (Y(x) / dY(x)))
Next i
Text4.Text = x
End Sub

16. Vectores
Un vector es una estructura de datos en la que podemos almacenar un
determinado nmero de datos, todos ellos del mismo tipo, ordenados en una sola
dimensin.
<nombrevector>(<tipondice>)
<nombre>, es el nombre de la variable tipo vector.

P g i n a | 56
(<tipondice>), indica el elemento concreto del vector con el que queremos operar.
Con los elementos de un vector podemos realizar cualquier operacin permitida con la
variable de su tipo, es decir, del tipo bsico del vector.
Ejemplo.
16.1 Sacar el promedio de N nmeros
16.1.1 Algoritmo: Promedio
1. Inicio
2. Leer N
3. Suma=0
4. Para i= 1 Hasta N
5. Leer x(i)
6. Suma=Suma +x(i)
7. Siguiente i
8. Promedio=Suma/N
9. Mostrar Promedio
10.Fin
16.1.2 Diagrama de flujo: Promedio

INICIO

Suma=0

Para i= 1 Hasta N

x(i)

Suma= Suma + x(i)

Promedio = Suma/ N

Promedio

FIN

P g i n a | 57
16.1.3 Programa Visual Basic: Promedio
Nota.- Se necesita: 2 TextBox, 1 CommandButton
.
Private Sub Command1_Click()
Dim N As Single
Dim x(1 to 50) As Double
N = Val(Text1.Text)
For i = 1 To N
x(i) = InputBox("leer nmero")
Suma = Suma + x(i)
Next
Promedio = Suma / N
Text2.Text = Promedio
End Sub
-----------------------------------Ejemplo 2----------------------------------------16.2 Programa Excel: Promedio de una lista de cantidad no definida
Sub promedio()
suma = 0
i=1
If Cells(1, 2) = "" Then
MsgBox ("la lista esta vaca")
Else
Do
i=i+1
suma = suma + Cells(1, i)
Loop Until Cells(1, i) = ""
Range("B3") = suma / (i - 2)

P g i n a | 58
End If
Cells(1, i) = ">"
End Sub
..

Ejemplo.
16.3 Realizar el algoritmo, diagrama de flujo, y cdigo para ordenar nmeros de forma
ascendente.

16.3.1 Algoritmo: Ordenar nmeros de forma ascendente.

1. Inicio
2. Leer n
3. Para i= 1 Hasta n
4. Leer a(i)
5. Siguiente i
6. Para i = 1 Hasta (n-1)
7. Para j= (i+1) Hasta n
8. Si a(i)>a(j) Entonces
9. temp=a(i)
10. a(i)=a(j)
11. a(j)=temp
12. Fin condicin
13. Siguiente j
14. Siguiente i
15. Para i= 1 Hasta n
16. Mostrar a(i)
17. Siguiente i
18.Fin

P g i n a | 59

16.3.2 Diagrama de Flujo: Ordenar nmeros de forma ascendente.

P g i n a | 60

16.3.3 Cdigo Visual Basic: Ordenar nmeros de forma ascendente.


Nota.- Se necesita: 1 TextBox, 1 CommandButton, 1 MSFlexGrid

Private Sub Command1_Click()


Dim n As Single
Dim i As Single
Dim j As Single
Dim a(1 To 10) As Single
Dim temp As Single
n = Val(Text1.Text)
For i = 1 To n
a(i) = InputBox("meter numero")
Next
For i = 1 To n - 1
For j = i + 1 To n
If a(i) > a(j) Then
temp = a(i)
a(i) = a(j)
a(j) = temp
End If
Next j
Next i
For i = 1 To n
MSFlexGrid1.TextMatrix(1, i) = a(i)
Next i
End Sub

16.4 Ejercicios de aplicacin


a) Descomponer en sus factores primos un nmero n y mostrarlos en una lista.
b) Normalizar un vector de reales con el criterio de hacer su mdulo igual a 1.

P g i n a | 61

17. Matrices
Por matriz entenderemos una estructura de datos en la que podemos almacenar
tantos datos como queramos, todos ellos del mismo tipo, el tipo bsico, ordenados en
cualquier nmero de dimensiones, podemos decir que es una generalizacin del tipo
vector, aunque, como veremos, es mucho ms lgico pensar que los vectores son un
caso particular de una matriz.
Las matrices se declaran empleando una sintaxis muy similar a la de los vectores,
aadiendo simplemente tantos rangos de valores como dimensiones tenga la
estructura matricial que estemos definiendo:
<nombre>(<ndice1,ndice2,>)
<nombre>, es el nombre de la variable tipo matriz.
(<ndice1,ndice2,>), indica el elemento concreto de la matriz con el que
queremos operar.
As pues, una matriz bidimensional (de dos dimensiones) tendr dos rangos de valores
MATRIZ(indice1,indice2), una tridimensional tres MATRIZ(indice1, indice2,
indice3),etc., todos ellos separados por comas.
Ejemplo.17.1 Producto de 2 matrices.
17.1.1 Algoritmo: Producto de 2 matrices.
1. Inicio
2. Leer m, n; p ,q
3. Si n= p Entonces
4. Para i= 1 Hasta m
5. Para j= 1 Hasta n
6. Leer mtrz1(i,j)
7. Siguiente j
8. Siguiente i
9. Para i= 1 Hasta p
10. Para j= 1 Hasta q
11. Leer mtrz2(i,j)
12. Siguiente j
13. Siguiente i
14. Para i= 1 Hasta m
15. Para j= 1 Hasta q
16. Para k= 1 Hasta n
17. mtrz3(i, j) = mtrz3(i, j) + mtrz1(i, k) * mtrz2(k, j)
18. Siguiente k

P g i n a | 62
19. Siguiente j
20. Siguiente i
21. Para i= 1 Hasta m
22. Para j= 1 Hasta q
23. Mostrar: mtrz3(i,j)
24. Siguiente j
25. Siguiente i
26. Caso contrario: No est definida
27. Fin condicin
28.FIN
17.1.2 Diagrama de flujo: Producto de 2 matrices.

P g i n a | 63

17.1.3 Cdigo Visual Basic: Producto de 2 matrices.


Nota.- Se necesita: 4 TextBox, 1 CommandButton, 1 MSFlexGrid
..
Private Sub Command1_Click()
Dim mtrz1(1 To 30, 1 To 30) As Double
Dim mtrz2(1 To 30, 1 To 30) As Double
Dim mtrz3(1 To 30, 1 To 30) As Double
Dim m As Double
Dim n As Double
Dim p As Double
m = Val(Text1.Text)
n = Val(Text2.Text)
p = Val(Text3.Text)
q = Val(Text4.Text)
If n = p Then
Lectura de la matriz 1
For i = 1 To m
For j = 1 To n
mtrz1(i, j) = InputBox("A(" + Str(i) + "," + Str(j) + ")")
Next j
Next i
Lectura de la matriz 2
For i = 1 To p
For j = 1 To q
mtrz2(i, j) = InputBox("B(" & Str(i) & "," & Str(j) & ")")
Next j
Next i
Calculo del producto
For i = 1 To m
For j = 1 To q
For k = 1 To n
mtrz3(i, j) = mtrz3(i, j) + mtrz1(i, k) * mtrz2(k, j)
Next k

P g i n a | 64
Next j
Next i
Escritura del resultado
For i = 1 To m
For j = 1 To q
MSFlexGrid1.TextMatrix(i, j) = mtrz3(i, j)
Next j
Next i
Else
MsgBox ("no esta definido")
End If
End Sub

17.2 Ejercicios de aplicacin


a) Programa para calcular el determinante de una matriz m*n
b) Programa para resolver un sistema de ecuaciones lineales.

P g i n a | 65

18. Bibliografa

-Algortmica y programacin para ingenieros.

M.Isabel Gallego Fernandez


Manuel Medina Llins

-Algoritmos y diagramacin

Colegio de bachilleres del


estado de Sonora Hermosillo

-Mtodos numricos. Introduccin, aplicaciones

Antonio Huerta Cerezuelo

y propagacin.

Josep Sarrate-Ramos
Antonio Rodrguez-Ferran

-Mtodos numricos y simulaciones.

Luis Rodriguez Valencia

-Clculo diferencial e integral.

William Anthony Granville

-Aprenda Visual Basic 6.0 como si estuviera en

Javier Garca de Jaln

Primero.

Jos Ignacio Rodriguez


Alfonso Brlez
Patxi Funes
Eduardo Carrasco
Jess Calleja

Das könnte Ihnen auch gefallen