Escolar Documentos
Profissional Documentos
Cultura Documentos
Programacin
(Gua de apuntes)
INFORMTICA
MAT-205
Auxiliar. Marco Antonio Velsquez Azurduy
INDICE
1. Presentacin.....5
2. Introduccin.....5
3.1Lenguajes de Programacin......6
7. Pseudocdigo..............................10
12 Estructuras Cclicas..24
19.2 Integracin........74
20. Bibliografa.77
5
Algortmica y Programacin
1. Presentacin
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.1Lenguajes de Programacin
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.
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:
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.
6. Diagrama de Flujo
SMBOLO DESCRIPCIN
7. Pseudocdigo
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.
11
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.
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.
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.
TIPOS DE VARIABLES
TIPO COMENTARIO
Mnimo = 1, Mximo = 10
En la escritura del cdigo, para que su uso sea de ingreso de datos debe estar de la
siguiente manera.
Radio=Text1.text
Para que su uso sea de salida de datos, se escribe en el cdigo de la siguiente manera.
Tex2.text= rea
Ej.
Ej.
rea = MsgBox(Mensaje)
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.
- Estructura Secuencial
- Estructura de Condicionales
- Estructuras Cclicas
Inicio
Accion1
Accion2
.
.
AccionN
Fin
15
a, b
a=c+b*2/4
Ejemplo.-
1. Inicio
2. Leer R
3. pi= 3.1415927
4. rea= pi*R^2
5. Escribir rea
6. Fin
16
INICIO
Leer R
pi=3.1415927
Area=pi*R^2
Area
FIN
..
Dim R As Single
R = Val(Text1.Text)
pi = 3.1415927
Area = pi * R ^ 2
Text2.Text = Area
End Sub
..
V
<Condicin> Tareas
Ejemplo.-
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.
18
..
Dim i As Single
Dim j As Single
Dim k As Single
i = Val(Text1.Text)
j = Val(Text2.Text)
19
k = Val(Text3.Text)
Max = i
Max = j
End If
Max = k
End If
Text4.Text = Max
End Sub
..
Si <condicin> entonces
Accin(es)
si no
Accin(es)
Fin-si
- <condicin>, indica la condicin a evaluar
F V
Tareas Condicin Tareas
20
Ejemplo.-
1. Inicio
2. Leer x
3. SI x RESIDUO 2 = 0 ENTONCES
4. Escribir x es par
5. Caso contrario
6. Escribir x es impar
7. Fin decisin
8. Fin
..
Dim x As Single
x = Val(Text1.Text)
If x Mod 2 = 0 Then
Else
End If
End Sub
..
[Caso Contrario
<bloque de sentencias n>
Fin Caso
Ejemplo.-
1. Inicio
2. Leer a, b, c.
3. Discriminante = b2 4ac
4. Seleccionar caso Discriminante
5. Caso es > 0
+
6. Mostrar:1 = , 2 =
2 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
inicio
Leer a,b,c
discr=b^2-(4*a*c)
x=-b/(a*c)
23
..
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)
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
24
Case Is < 0
End Select
End Sub
..
12 Estructuras Cclicas
de una sentencia simple, aunque puede ser una sola accin, o incluso no
existir(accin nula).
Para<contador>=<iniciar>Hasta<finalizar> [Salto<incremento>]
<Sentencias>
Ejemplo.-
1. Inicio
2. Leer x
3. Factorial=1
4. Para i= 1 hasta x
5. Factorial=Factorial*i
6. Siguiente i
7. Mostrar: Factorial
8. Fin
INICIO
Leer
x
Factorial=1
Para i= 1 Hasta x
Factorial=Factorial*i
Mostrar
Factorial
FIN
..
Dim x As Single
x = Val(Text1.Text)
Factorial = 1
For i = 1 To x
Factorial = Factorial * i
Next
27
Text2.Text = Factorial
End Sub
<condicin ejecucin>, es una expresin que puede tomar los valores cierto o falso.
el CICLO indica que debe volver al punto donde se realiza la pregunta de <condicin
de ejecucin> hasta que el valor sea falso
F
condicin
ejecucin
sentencia
bucle
Ejemplo.
1. Inicio
2. Leer N
28
3. i=0, suma=0
4. Mientras i<N
5. i=i+1
6. suma=suma+(i*7)
7. Ciclo vuelve al paso 4 hasta que la pregunta N/2<2 sea falso
8. Mostrar: suma
9. Fin
INICIO
Leer
N
i=0, suma=0
No
i < N
Si
i=i+1
suma = suma +(i*7)
Mostrar
suma
Dim N As Single
N = Val(Text1.Text)
i=0
suma = 0
Do While i < N
i=i+1
suma = suma + (i * 7)
29
Loop
Text2.Text = suma
End Sub
<condicin>, es una expresin que puede tomas los valores cierto o falso.
<sentencia
bucle>
V
<condicin>
Ejemplo.
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
INICIO
Leer
Factorial
i=1, fact=1
i= i +1
fact=fact*i
Si
fact <= Factorial
No
fact= Factorial
Si No
Mostrar Mostrar
i "no existe nmero"
FIN
..
Factorial = Val(Text1.Text)
i=0
32
fact = 1
Do
i=i+1
fact = fact * i
Text2.Text = i
Else
Text2.Text = "ninguno"
End If
End Sub
..
13. APLICACIN.-
Ejemplo.-
1. Inicio
2. Leer n
3. dgitos=0
4. Hacer
5. dgitos=dgitos+1
6. n=(n Cociente 10)
7. Hasta n=0
8. Mostrar: dgitos
9. Fin
INICIO
Leer
n
dgitos=0
dgitos=dgitos+1
n=n Cociente 10
No Si
n=0
Mostrar
dgitos
..
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
Ejemplo.
34
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
INICIO
Leer
N
i= -1
Base= 0
No
N>2 Base=Base+(N Residuo 2)*10^(1+i)
Si
C=N Residuo 2
Base=Base+(C*10^(1+i))
i=i+1
N=N Cociente 2
Base
FIN
13.2.3 Cdigo Visual Basic: Cambio de base decimal a base binaria.
35
Dim N As Single
N = Val(Text1.Text)
i = -1
Base = 0
Do While N > 2
C = N Mod 2
i=i+1
N=N\2
Loop
Text2.Text = Base
End Sub
Ejemplo.
1. Inicio
2. Leer n
3. Para i = 1 Hasta n
4. Si n Residuo i=0 Entonces
5. temp=temp+1
6. Fin condicin
7. Siguiente i
8. Si temp > 2 Entonces
9. Mostrar No es primo
10. Caso contrario: Mostrar Es primo
11. Fin condicin
36
12.Fin
INICIO
Leer
n
Para i= 1 Hasta n
No
n Residuo i=0
Si
temp= temp +1
temp > 2
Mostrar Mostrar
"No es Primo" "Es Primo"
FIN
Dim n As Single
n = Val(Text1.Text)
For i = 1 To n
37
If n Mod i = 0 Then
temp = 1 + temp
End If
Next i
Else
End If
End Sub
..
Ejemplo.-
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=1 Hasta n
9. Si a(j) Residuo i=0 Entonces
10. cont=cont+1
11. Fin condicin
12. Siguiente j
13. Si cont=n Entonces
14. MCD=i
15. Fin condicin
16. cont=0
17. Siguiente i
18. Mostrar MCD
19.Fin
INICIO
Leer
n
38
Dim n As Single
n = Val(Text1.Text)
MCD = 1
For i = 1 To n
Next i
For i = 1 To a(1)
For j = 1 To n
cont = cont + 1
End If
Next j
If cont = n Then
MCD = i
End If
cont = 0
Next i
Text2.Text = MCD
End Sub
14 Mtodos Numricos
40
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.
2 1
=
las abscisas de sus vrtices inferiores izquierdos sern
= 1 + ( 1); = 1, 2, . . . ,
Sea f(x) en el intervalo [a, b], con sub intervalos [ , ( + 1) ], entonces el rea
aproximada A de f(x) presenta la siguiente frmula.
() [(1 ) + (2 ) + + ( )]
=
Ejemplo:
14.2.1 Realizar el algoritmo, diagrama de flujo y cdigo del mtodo de 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
Y=x^3
a, b, n
S=0
h=(b-a)/n
S=Y(a+i*h)+S
rea=S*h
rea
FIN
Y=x^3
End Function
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
..
Sea f(x) una funcin en [a, b], con n subintervalos [xi , x(i + 1) ], entonces el rea
aproximada A de f(x) es:
b
x
f(x)dx [f(x0 ) + 2f(x1 ) + 2f(x2 ) + + 2f(xn1 ) + f(xn )]
a 2
ba
x = y xi = a + ix
n
Ejemplo:
43
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
INICIO
Y=x^3
Leer
a, b, n
S1=0
S2=0
h=(b-a)/n
S=S+Y(a+i*h)
rea=h/2*(Y(a)
+2*S+Y(b))
rea
FIN
Y=x^3
End Function
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
Text4.Text = rea
End Sub
..
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.
() [(0 ) + 4(1 ) + 2(2 ) + + 4(1 ) + ( )] Donde n es par =
3
Ejemplo
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
INICIO
Y=x^3
a, b, n
S1=0
S2=0
h=(b-a)/n
Para i= 1 to n :2
S1=S1+Y(a+i*h)
S2=S2+Y(a+J*h)
rea=h/3*(Y(a)+4*SI+2*S2+Y(b))
Mostrar
14.4.5 Cdigo: Mtodo de Simpson 1/3. rea
FIN
46
..
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
End Sub
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.
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.
47
Bajo esta hiptesis, se considera reiterativa la mitad del intervalo con las condiciones
ya mencionadas.
Ejemplo
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
INICIO
Y=x^2-2
a, b, n
No No existe raz o
Y(a)*Y(b)<0 hay mas de una
raz
Si
Para i= 1 Hasta n
c=(a+b)/2
Y(a)*Y(c)< 0
No Si
a=c b=c
Mostrar
c
FIN
.
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
49
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
() ()
= () + ( )
() ()
() + ( ) = 0
50
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.-
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
a * Y (b) b * Y (a)
6. c
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
51
INICIO
Y=x^2-2
a, b, n
No No existe raz o
Y(a)*Y(b)<0 hay mas de una
raz
Si
Para i= 1 Hasta n
a=b
b=c
Mostrar
c
FIN
a = Val(Text1.Text)
52
b = Val(Text2.Text)
n = Val(Text3.Text)
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. 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
a * Y (b) b * Y (a)
6. c
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
Para i= 1 Hasta n
INICIO
Y=x^2-2
a, b, n Y(a)*^Y(c)<0
No Si
No a=c b=c
No existe raz o
Y(a)*Y(b)<0 hay mas de una
raz
Si
Mostrar
A
c
FIN
Dim a As Double
Dim b As Double
Dim n As Double
Dim c As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
n = Val(Text3.Text)
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
.
En general, dada una aproximacin xn a una raz de la funcin f(x), la lnea tangente
cruza el eje x donde
( )
n + 1 = .
( )
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.
Ejemplo:
55
1. Inicio
2. Definir funcin Y=x^2-2
3. Leer x, n
4. Para i = 1 Hasta n
Y ( x)
5. x x
dY ( x)
6. Siguiente i
7. Mostrar x
8. Fin
INICIO
Y=x^2-2
x, n
Para i= 1 Hasta n
Mostrar
x
FIN
56
Y=x^2-2
End Function
dY = 2 * x
End Function
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
<nombrevector>(<tipondice>)
(<tipondice>), indica el elemento concreto del vector con el que queremos operar.
57
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.
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
INICIO
Suma=0
Para i= 1 Hasta N
x(i)
Promedio = Suma/ N
Promedio
16.1.3 Programa Visual Basic: Promedio
FIN
58
Dim N As Single
N = Val(Text1.Text)
For i = 1 To N
Next
Promedio = Suma / N
Text2.Text = Promedio
End Sub
-----------------------------------Ejemplo 2-----------------------------------------
Sub promedio()
suma = 0
i=1
Else
Do
i=i+1
Range("B3") = suma / (i - 2)
End If
59
Cells(1, i) = ">"
End Sub
..
Ejemplo.
16.3 Realizar el algoritmo, diagrama de flujo, y cdigo para 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
60
.INICIO
Leer
n
Para i= 1 Hasta n
Leer
a(i)
Si temp=a(i)
a(i)>a(j) a(i)=a(j)
a(j)=temp
No
Para i= 1 Hasta n
Mostrar
a(i)
FIN
61
Dim n As Single
Dim i As Single
Dim j As Single
n = Val(Text1.Text)
For i = 1 To n
Next
For i = 1 To n - 1
For j = i + 1 To n
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
17. Matrices
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,>)
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.-
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
19. Siguiente j
20. Siguiente i
63
A
INICIO
Para i= 1 Hasta m
Leer
m,n; p,q
No Para j= 1 Hasta q
Mostrar
n=p
"No esta definido"
Si
Para k= 1 Hasta n
Para i= 1 Hasta m
Leer
mtrz1(i,j)
Para i = 1 Hasta m
Para i= 1 Hasta p
Para j= 1 Hasta q
Para j= 1 Hasta q
Mostrar
mtrz3(i,j)
Leer
mtrz2(i,j)
FIN
A
64
..
18. Extras
66
Caso Discreto.-
Sub clculo()
Dim f(1 To 50) As Single
Dim d(1 To 50) As Single
lectura de datos
n = Cells(1, 2)
For i = 1 To n
f(i) = Cells(2, 1 + i)
d(i) = Cells(3, 1 + i)
Next
Clculos
h = d(2) - d(1)
For i = 2 To n - 1
suma = suma + f(i)
Next
trabajo = h / 2 * (f(1) + 2 * suma + f(n))
salida de datos
Cells(5, 2) = trabajo
End Sub
Caso Continuo.-
Clculo de h
h = (b - a) / n
67
End Sub
Borrar datos
Sub borrar()
Dim n As Single
n = Cells(2, 2)
For i = 8 To 10 + n
For j = 1 To 7
Cells(i, j) = ""
Next j
Next i
End Sub
Mtodo de la Secante
Else
MsgBox "no hay raiz"
End If
End Sub
..
dib.CurrentX = 0
dib.CurrentY = 0
H = Round(H, 5)
L = Round(L, 5)
dib.Print ("Ymax=" + Str(H))
dib.CurrentX = L / 2
dib.CurrentY = H - 8 * esc
dib.Print ("Xmax" + Str(L))
69
End Sub
n = Val(Text1.Text)
MSFlexGrid1.TextMatrix(0, 0) = "N"
MSFlexGrid1.TextMatrix(0, 1) = "X"
MSFlexGrid1.TextMatrix(0, 2) = "Y"
For i = 1 To n
MSFlexGrid1.TextMatrix(i, 0) = i
Next
For i = 1 To n
x(i) = Val(InputBox("leer punto x(" + Str(i) + ")"))
y(i) = Val(InputBox("leer punto y(" + Str(i) + ")"))
MSFlexGrid1.TextMatrix(i, 1) = x(i)
MSFlexGrid1.TextMatrix(i, 2) = y(i)
mtr1(i, 1) = 1
mtr1(i, 2) = x(i)
mtr1(i, 3) = x(i) ^ 2
Next
'transpuesta
For i = 1 To 3
For j = 1 To n
mtr2(i, j) = mtr1(j, i)
Next
Next
'producto a*at
For i = 1 To 3
For j = 1 To 3
For k = 1 To n
mtr3(i, j) = mtr3(i, j) + mtr2(i, k) * mtr1(k, j)
Next
Next
Next
'producto 2
70
For j = 1 To 3
For k = 1 To n
mtr4(j, 1) = mtr4(j, 1) + mtr2(j, k) * y(k)
Next
Next
n=n-1
'leer
For i = 1 To n
For j = 1 To n
mtr3(i, j) = mtr3(i, j)
If i = j Then
mtr3(i, j + n) = 1
Else
mtr3(i, j + n) = 0
End If
Next
Next
'diagonal inferior
For k = 1 To 2 * n - 1
For i = k + 1 To n
q = mtr3(i, k) / mtr3(k, k)
mtr3(i, k) = 0
For j = k + 1 To 2 * n
mtr3(i, j) = q * mtr3(k, j) - mtr3(i, j)
Next
Next
Next
'diagonal superior
For k = n To 2 Step -1
For i = k - 1 To 1 Step -1
If mtr3(k, k) <> 0 Then
q = mtr3(i, k) / mtr3(k, k)
End If
mtr3(i, k) = 0
For j = k + 1 To 2 * n
mtr3(i, j) = -mtr3(k, j) * q + mtr3(i, j)
Next
Next
Next
'diagonal principal a 1
For i = 1 To n
q = mtr3(i, i)
For j = 1 To 2 * n
mtr3(i, j) = mtr3(i, j) / q
Next
Next
n=n+1
'producto 3
71
For j = 1 To 3
For k = 1 To 3
mtr5(j, 1) = mtr5(j, 1) + mtr3(j, 3 + k) * mtr4(k, 1)
Next
Next
Text2.Text = Str(mtr5(1, 1)) & "+" & Str(mtr5(2, 1)) & "x" & "+" & Str(mtr5(3, 1)) &
"x^2"
'grafica
Picturebox1.Cls
Picturebox1.ScaleMode = 3
xpixeles = dibujo.ScaleWidth
Picturebox1.Scale (xmin, ymin)-(xmax, ymax)
'dibujar funcion
For i = 1 To xpixeles
varx = xmin + (xmax - xmin) * i / xpixeles
Picturebox1.PSet (varx, (ymax + ymin) / 2 - (Val(mtr5(1, 1)) + Val(mtr5(2, 1)) *
varx + Val(mtr5(3, 1)) * varx ^ 2))
Next i
End Sub
INTRODUCCIN
<< a b n
<<
72
Esto quiere decir, que en la pila de la calculadora se introducen las constantes a,b,c y
al ejecutar el programa, estas constantes se cargarn al programa que empieza
desde el segundo par de comillas (<< ).
Ntese tambin que existen algunos programas que tienen esta variante:
<<
Otro detalle que es necesario aclarar, es que este lenguaje es conocido con el nombre
de RPL y el modo de trabajo de la calculadora es el RNP que tiene una manera de
enfoque diferente al habitualmente usado algebraico. Obsrvese el siguiente ejemplo:
Este ejemplo muestra que la calculadora tiene una memoria temporal conocida con el
nombre de PILA donde se van almacenando los resultados parciales.
Algunas de las funciones especiales que se usaron para los programas son:
Para todos los mtodos de esta parte se usa la siguiente definicin de funcin:
<<
IF 'f(a)*f(b)<0.'
THEN 1. n
IF 'f(a)*f(c)<0.'
END 1.
END
>>
>>
<<
IF 'f(a)*f(b)<0.'
THEN 1. n
IF 'f(a)*f(c)<0.'
END 1.
END
74
>>
>>
STEP x1 { x1 df } PURGE
>>
>>
Para este caso considrese a b slo como el intervalo inicial ya que ste se modificar
en el transcurso del programa.
<<
IF 'f(a)*f(b)<0.'
THEN 1. n
END
>>
>>
19.2 INTEGRACIN
75
>>
>>
>>
>>
<<
STEP 1. 'n/2.-1.'
END
>>
>>
//En este mtodo previamente se almacena a modo de funciones dos vectors X[] y Y[]
de dimensin n
<< 0. n S
>>
>>
//En este mtodo previamente se almacena a modo de funciones dos vectors U[] y Y[]
de dimensin n
<< 0. 0. n S1 S2
<<
STEP 2. 'n/2.-1.'
END
77
>>
>>
//En este mtodo previamente se almacena a modo de funciones dos vectors X[] y Y[]
de dimensin n
<< 1. n
FOR i 'S+X(i)' EVAL 'S' STO 'S1+SQ(X(i))' EVAL 'S1' STO 'S2+X(i)*Y(i)' EVAL 'S2'
STO 'S3+Y(i)' EVAL 'S3' STO 1.
STEP 'n*S1-SQ(S)' EVAL 'D' STO '(n*S2-S*S3)/D' EVAL 'a' STO '(S1*S3-S*S2)/D'
'b' STO 'a' NUM 'b' NUM 'D' PURGE
>>
>>
20. Bibliografa
78
Antonio Rodrguez-Ferran
Alfonso Brlez
Patxi Funes
Eduardo Carrasco
Jess Calleja