Escolar Documentos
Profissional Documentos
Cultura Documentos
Programación
(Guía de apuntes)
.NET+
EXC+
HP
INFORMÁTICA
MAT
MAT-205
UNIVERSIDAD AUTÓNOMA TOMÁS
FRÍAS
FACULTAD DE INGENIERÍA CIVIL
Auxiliar. Marco Antonio Velásquez Azurduy
ÍNDICE
1. Presentación…………………………………………………………………..…………………..……………..………….5
2. Introducción…………………………………………………………………..…………………..………………….………5
3.1Lenguajes de Programación………………………………………………………..………..……..……..6
7. Pseudocódigo…………………………………….……………………………………..................................…….10
12 Estructuras Cíclicas…………………………………….……………………………………………….………23
19.8 Integración……………………………….…………………………….…………………..…………..…..78
20. Bibliografía……………………………………………………………………………………………………………….80
5
Algorítmica y Programación
1. Presentación
“Un programador y un ingeniero no es nada más que una persona que resuelve
problemas”
2. Introducción
Debido a las que las máquinas resultan una herramienta útil resolviendo un
problema o una situación al automatizar procesos, es conveniente conocer el proceso
por el cual podemos lograr que las máquinas hagan las cosas que necesitamos, ese
hecho simplemente se resume a lo que se llama programación, 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 más 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 diálogo con las
máquinas para darle dichas ordenes mediante un lenguaje.
Por tanto esta guía está dirigida al interés de cuál es el proceso para poder
adentrarnos una mínima parte en el mundo de la programación.
• Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
• Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.
Es una serie de símbolos y reglas que se utilizan para describir de manera explícita
un proceso. De los cuales se encuentran los siguientes tipos de Lenguajes
Algorítmicos:
Definición del Problema: Esta fase está dada por el enunciado del problema,
el cual requiere una definición 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
SÍMBOLO DESCRIPCIÓN
7. Pseudocódigo
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.
En V.B. los nombres de las variables deben limitarse a 255 caracteres, empezar
con un carácter alfabético y no pueden obtener un punto
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 sería accesible desde los demás procedimientos o
formularios.
Public: Las variables declaradas serán publicas y podrán estar accesibles desde
todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en
un módulo de código, no en la sección declarations de cualquier formulario de los que
conste la aplicación.
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 ejecución de la
aplicación. De esta forma a entrar en algún procedimiento las variables recuerdan el
valor que tenían cuando se salió de él.
TIPOS DE VARIABLES
TIPO COMENTARIO
Mínimo = 1, Máximo = 10
En la escritura del código, para que su uso sea de ingreso de datos debe estar de la
siguiente manera.
Radio=Textbox1.Text
Para que su uso sea de salida de datos, se escribe en el código de la siguiente manera.
Textbox2.text= Área
Ej.
Ej.
Area = MsgBox(“Mensaje”)
Uno de los controles más habituales en Visual Basic Net es el de Button, en el cual la
propiedad más importante es el Caption que es lo que aparece escrito en él.
El evento que se ejecuta al hacer doble click en él, produce la hoja de programación
donde podrá ser escrito el lenguaje o código de programación.
14
- Estructura Secuencial
- Estructura de Condicionales
- Estructuras Cíclicas
Inicio
Accion1
Accion2
.
.
AccionN
Fin
Leer a, b.
Donde “a” y “b” son las variables que recibirán los valores
a, b
15
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
…………………………………………………..
Dim R As Single
Dim pi As Single
Dim Area As Single
R = TextBox1.Text
pi = 3.1415927
Area = pi * R ^ 2
TextBox2.Text = Area
End Sub
End Class
…………………………………………………..
V
<Condición> Tareas
Ejemplo.-
1. Inicio
2. Leer I, J, K
3. MAX= I
4. SI J>MAX ENTONCES
5. MAX=J
6. Fin condición
7. SI K>MAX ENTONCES
8. MAX=K
9. Fin decisión
10. Escribir MAX
11. Fin.
…………………………………………………………..
TextBox1.Text = i
TextBox2.Text = j
TextBox3.Text = k
max = i
TextBox4.Text = max
End Sub
End Class
…………………………………………………………..
Si<condición>entonces
Acción(es)
si no
Acción(es)
Fin-si
- <condición>, indica la condición a evaluar
F V
Tareas Condición Tareas
Ejemplo.-
1. Inicio
2. Leer N
3. SI N RESIDUO 2 = 0 ENTONCES
4. Escribir “ es par”
5. Caso contrario
6. Escribir “ es impar”
7. Fin decisión
8. Fin
…………………………………………………………..
If N Mod 2 = 0 Then
TextBox2.Text = "ES PAR"
Else
TextBox2.Text = "ES IMPAR"
End If
End Sub
End Class
………………………………………………………..
Seleccionar Caso<expresión_prueba>
[Caso lista_expresiones1
<bloque de sentencias 1>
[Caso lista_expresiones2
<bloque de sentencias 2>
.
.
.
[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=
7. Casoes =0
8. Mostrar: X = − b
2a
9. Casoes< 0
10. Mostrar La ecuación no tiene soluciones “reales”
11. Fin caso
12. Fin
22
………………………………………………………..
discr = b ^ 2 - (4 * a * c)
X2 = (-b - Math.Sqrt(discr)) / (2 * a)
TextBox4.Text = X1
TextBox5.Text = X2
Case Is = 0
x = -b / (2 * a)
TextBox4.Text = x
TextBox5.Text = x
Case Is < 0
MsgBox("no tiene sol. real")
End Select
End Sub
End Class
………………………………………………………..
12Estructuras Cíclicas
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
……………………………………………..
N = TextBox1.Text
Factorial = 1
For i = 1 To N
factorial = factorial * i
Next
TextBox2.Text = factorial
End Sub
End Class
………………………………….
26
<condición ejecución>, es una expresión que puede tomar los valores cierto o falso.
“el CICLO indica que debe volver al punto donde se realiza la pregunta de <condición
de ejecución> hasta que el valor sea falso”
F
condición
ejecución
Sentencia
bucle
Ejemplo.
1. Inicio
2. Leer N
3. i=0, suma=0
4. Mientrasi<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
27
9. Fin
……………………………………………………………….
End Sub
End Class
……………………………………………………………….
28
Hacer<sentencia de bucle>Hasta<condición>
<condición>, es una expresión que puede tomas los valores cierto o falso.
Ejemplo.
1. Inicio
2. Leer Factorial
3. i=1, fact=1
4. Hacer
5. i=i+1
6. fact=fact*i
29
7. Hastafact<=Factorial
8. Si fact= FactorialEntonces
9. Mostrar: i
10. Casocontrario
11. Mostrar: “ninguno”
12. Findecisión
13.Fin
…………………………………………………..
30
End Sub
End Class
……………………………………………..
13. APLICACIÓN.-
Ejemplo.-
1. Inicio
2. Leer n
3. dígitos=0
4. Hacer
5. dígitos=dígitos+1
6. n=(n Cociente 10)
7. Hasta n=0
8. Mostrar: dígitos
9. Fin
…………………………………………..
…………………………………
Ejemplo.
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
……………………………………………
End Sub
End Class
……………………………………………………………………
Ejemplo.
1. Inicio
2. Leer n
3. Para i = 1 Hasta n
4. Si n Residuo i=0 Entonces
5. temp=temp+1
6. Fincondición
7. Siguiente i
8. Si temp > 2 Entonces
9. Mostrar “No es primo”
10. Casocontrario: Mostrar “Es primo”
11. Fincondición
12.Fin
…………………………………………………
n = Val(TextBox1.Text)
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")
35
End If
End Sub
End Class
…………………………………………..
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=1Hasta n
9. Si a(j) Residuo i=0 Entonces
10. cont=cont+1
11. Fincondición
12. Siguiente j
13. Si cont=n Entonces
14. MCD=i
15. Fincondición
16. cont=0
17. Siguiente i
18. Mostrar MCD
19.Fin
A
36
A
……………………………………………………
n = Val(TextBox1.Text)
MCD = 1
For i = 1 To n
a(i) = InputBox("leer Números")
Next i
For i = 1 To a(1)
For j = 1 To n
If a(j) Mod i = 0 Then
37
cont = cont + 1
End If
Next j
If cont = n Then
MCD = i
End If
cont = 0
Next i
TextBox2.Text = MCD
End Sub
End Class
……………………………………………………………….
14 Métodos Numéricos
14.1 Introducción.
Se presentan algunas de las tecinas comunes para realizar cálculos numéricos
sin mayor rigor matemático, con el objetivo de hacer referencias a ellas en elresto de
los capítulos donde ello sea necesario, y para que el lector interesado
tenga conocimiento de la existencia de estos métodos.
2 1
=
las abscisas de sus vértices inferiores izquierdos serán
1 ! " 1# ; 1, 2, . . . ,
38
' ( ) *" #
+ ,-
Sea f(x) en el intervalo [a, b], con sub intervalos [ , " ! 1#], entonces el área
aproximada A de f(x) presenta la siguiente fórmula.
. *" # ( ∆ 0*" - # ! *" # ! ⋯ ! *" #2
∆
Ejemplo:
14.2.1Realizar el algoritmo, diagrama de flujo y código del método de rectángulos
1. Inicio
2. Definir función 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
A
39
……………………………………………
End Sub
End Class
……………………………………………………………..
Sea f(x) una función en [a, b], con n sub intervalos [xi , x"i ! 1#], entonces el área
aproximada A de f(x) es:
9
∆x
. f"x#dx ( 0f"x7# ! 2f"x-# ! 2f"x # ! ⋯ ! 2f"x8 - # ! f"x8 #2
: 2
9 :
∆x y x; a ! i∆x
8
Ejemplo:
1. Inicio
2. Definirfunción Y=x^3
3. Leer a, b, n
4. S1=0, S2=0, h=(b-a)/n
5. Para i= 1Hasta (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
…………………………………………………….
End Sub
End Class
…………………………………………………………………..
Sea f(x) una función continua en [a, b], una vez generada éste intervalo como unión
de sub intervalos con la misma longitud h, esta vez se considerará el ajuste a la
función mediante parábolas, dando el área total la suma de dichas parábolas,
tomando siempre n par.
1. Inicio
2. Definir función Y=x^3
3. Leer a, b, n
4. S1=0, S2=0, h=(b-a)/n
5. Para i= 1Hasta 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
42
11. Área=h/3*(Y(a)+4*SI+2*S2+Y(b))
12. Mostrar Área
13.Fin
……………………………………………………..
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
n = Val(TextBox3.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
End Class
………………………………………………………
Para ecuaciones de tercer y cuarto orden hay también fórmulas, peroque son
complicadas. Si f es un polinomio de grado 5 o superior no existetal fórmula. Asimismo
no hay fórmulas que nos permitan encontrar raícesexactas de ecuaciones
trascendentales tales como cos x = x. Métodos quepermitan encontrar aproximaciones
para las raíces de ecuaciones se han desarrollado.
Sea f(x) una función (ecuación) con raíz en (a, b), esto significa que f(a)>0 y
f(b)<0 ó f(a)<0 y f(b)>0, además f(x) continuo.
Bajo esta hipótesis, se considera reiterativa la mitad del intervalo con las condiciones
ya mencionadas.
44
Ejemplo
1. Inicio
2. Definir función 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 condición
12. Siguiente i
13. Mostrar c
14. Caso contrario: No existe raíz o hay más de una raíz
15. Fin condición
16.Fin
45
………………………………………………………….
Public Class Form1
Public Function Y(ByVal x As Double)
Y = x ^ 2 - 2
End Function
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
n = Val(TextBox3.Text)
End Sub
End Class
………………………………………………………………..
*" # *" #
C = *" # ! "A #
*" #– *" #
*" # ! "A # = 0
47
de donde
A= *" #
*" # – *" #
*" # *" #
A =
*" # *" #
Este proceso debe ser repetido hasta alcanzar la precisión deseada, eligiendo
entre nuevos valores iníciales, (a, c) o (c, b) según en cual pareja hay cambio
de signo de la función.
Ejemplo.-
1. Inicio
2. Definir función 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. Casocontrario: No existe raíz o hay más de una raíz
11. Fincondición
12.Fin
……………………………………………………………………………
Public Class Form1
Public Function Y(ByVal x As Double)
Y = x ^ 2 - 2
End Function
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
n = Val(TextBox3.Text)
49
End Sub
End Class
………………………………………………………………………………..
Para encontrar la raíz aproximada de f(x) continua y con presencia de una raíz
se itera como con el método de la bisección, usando la regla de f(a) * f(b)<0, y
utilizando la iteración del método de la Secante.
F( ) F( )
A= . y en cada iteración *( ) ∗ *( ) < 0.
F( ) F( )
Ejemplo
15.3.1Realizar el algoritmo, diagrama de flujo, código del método de la Falsa Posición.
15.3.2Algoritmo: Método de la Falsa Posición.
1. Inicio
2. Definir función 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. Casocontrario
10. b=c
11. Fincondición
12. Siguiente i
13. Mostrar c
14. Casocontrario: No existe raíz o hay más de una raíz
15. Fincondición
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 raíz o
Y(a)*Y(b)<0 hay mas de una
raíz
Si
Mostrar
A
c
FIN
……………………………………………………
Public Class Form1
Public Function Y(ByVal x As Double)
Y = x ^ 2 - 2
End Function
a = Val(TextBox1.Text)
b = Val(TextBox2.Text)
n = Val(TextBox3.Text)
b = c
Else
a = c
End If
Next i
TextBox4.Text = c
Else
MsgBox("no hay raiz")
End If
End Sub
End Class
……………………………………………………………………………………….
*" #
n ! 1 .
*′" #
Dado x0, el método de Newton produce una lista x1, x2, …, xn de aproximacionesal
cero de f.
En los gráficos que siguen, f(x) = x - x3, x0 = 0.44, x1( -0.41,x2 (0.27, y x3(-0.048.
52
Ejemplo:
1. Inicio
2. Definir función 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
………………………………………………………….
End Sub
End Class
…………………………………………………………
16. Vectores
<nombrevector>(<tipoíndice>)
(<tipoíndice>), indica el elemento concreto del vector con el que queremos operar.
Con los elementos de un vector podemos realizar cualquier operación permitida con la
variable de su tipo, es decir, del tipo básico del vector.
Ejemplo.
1. Inicio
2. Leer N
3. Suma=0
4. Para i= 1 Hasta N
5. Leer x(i)
54
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
FIN
55
……………………………………………………………………………………………………….
Dim N As Single
Dim x(0 To 50) As Double
Dim Suma, promedio As Single
N = Val(TextBox1.Text)
For i = 1 To N
x(i) = InputBox("leer número")
Suma = Suma + x(i)
Next
promedio = suma / N
TextBox2.Text = promedio
End Sub
End Class
-----------------------------------Ejemplo 2-----------------------------------------
Sub promedio()
suma = 0
i=1
Else
Do
i=i+1
Range("B3") = suma / (i - 2)
End If
Cells(1, i) = ">"
End Sub
56
………………………………………………………………………………………………………..
Ejemplo.
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. Fincondición
13. Siguiente j
14. Siguiente i
15. Para i= 1 Hasta n
16. Mostrar a(i)
17. Siguiente i
18.Fin
A
57
……………………………………………………
a(i) = a(j)
a(j) = temp
End If
Next j
Next i
For i = 1 To n
TextBox2.Text = TextBox2.Text + Str(a(i)) + vbCrLf
Next i
End Sub
End Class
………………………………………………………
17. Matrices
Las matrices se declaran empleando una sintaxis muy similar a la de los vectores,
añadiendo 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.-
17.1Producto de 2 matrices.
1. Inicio
2. Leer m, n; p ,q
3. Si n= p Entonces
4. Para i= 1 Hasta m
59
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
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 condición
28.FIN
………………………………………………………..
m = Val(TextBox1.Text)
n = Val(TextBox2.Text)
p = Val(TextBox3.Text)
For i = 1 To n
DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i))
Next
For i = 1 To m
DataGridView1.Rows.Add()
Next
For i = 1 To p
DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i))
Next
For i = 1 To n
DataGridView2.Rows.Add()
Next
For i = 1 To p
DataGridView3.Columns.Add("col" & Str(i), "Columna" & Str(i))
Next
For i = 1 To m
DataGridView3.Rows.Add()
Next
'Lectura de la matriz A
For i = 1 To m
For j = 1 To n
a(i, j) = Val(InputBox("Digitar el dato a(" & Str(i) & "," & Str(j)
& ")", "Matriz a"))
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
Next
Next
'Lectura de la matriz B
For i = 1 To n
For j = 1 To p
b(i, j) = Val(InputBox("Digitar el dato b(" & Str(i) & "," & Str(j)
& ")", "Matriz b"))
DataGridView2(j - 1, i - 1).Value = Str(b(i, j))
Next
Next
'Producto
For i = 1 To m
For j = 1 To p
c(i, j) = 0
For k = 1 To n
c(i, j) = c(i, j) + a(i, k) * b(k, j)
Next
Next
Next
'Mostrar Resultado
For i = 1 To m
For j = 1 To p
DataGridView3(j - 1, i - 1).Value = Str(c(i, j))
Next
Next
End Sub
End Class
………………………………………………………………………………………………………………………………………
62
18. Extras
Caso Discreto.-
Sub cálculo()
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
‘ Cálculos
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.-
Dim n As Single
‘ Lectura de datos
n = Cells(2, 2)
a = Cells(3, 2)
b = Cells(4, 2)
‘Cálculo de h
h = (b - a) / n
Cells(5, 2) = "h=" & Val(h) & ""
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
………………………………………………………………………………………………………………………………………………
Método de la Secante
Dim c As Double
‘ Lectura de datos
a = Cells(2, 2)
b = Cells(3, 2)
n = Cells(4, 2)
Else
MsgBox "no hay raiz"
End If
End Sub
……………………………………………………………………………………………………………………………………………..
x = TextBox1.Text
n = TextBox2.Text
g = PictureBox1.CreateGraphics
g.Clear(Color.Silver)
g.DrawLine(Pens.Red, 200, 0, 200, 400)
g.DrawLine(Pens.Red, 0, 200, 400, 200)
For i = 0 To 400
g.DrawLine(Pens.Blue, i, 200 - Y(i - 200), i + 1, 200 - Y((i + 1) -
200))
Next
For i = 1 To n
65
x = x - Y(x) / Yd(x)
Next
TextBox3.Text = x
End Sub
End Class
………………………………………………………………………………………………………………
n = Val(TextBox1.Text)
For i = 1 To n + n
DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i))
Next
For i = 1 To n
DataGridView1.Rows.Add()
Next
For i = 1 To n
DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i))
Next
For i = 1 To n
DataGridView2.Rows.Add()
Next
'Lectura
For i = 1 To n
For j = 1 To n
a(i, j) = Val(InputBox("Introducir la matriz(" & Str(i) & "," &
Str(j) & ")", "Lectura de la matriz"))
DataGridView1(j - 1, i - 1).Value = Str(a(i, j))
If i = j Then
a(i, j + n) = 1
DataGridView1(j + n - 1, i - 1).Value = Str(a(i, j + n))
Else
a(i, j + n) = 0
DataGridView1(j + n - 1, i - 1).Value = Str(a(i, j + n))
End If
Next
Next
'Resultado
For i = 1 To n
For j = 1 To n
If j <> i Then
q = a(j, i) / a(i, i)
For k = 1 To 2 * n
a(j, k) = a(j, k) - (a(i, k) * q)
Next
End If
Next
66
Next
For i = 1 To n
t = a(i, i)
For j = 1 To 2 * n
a(i, j) = a(i, j) / t
Next
Next
'Mostrar inversa
For i = 1 To n
For j = n + 1 To 2 * n
DataGridView2(j - n - 1, i - 1).Value = Str(a(i, j))
Next
Next
End Sub
End Class
………………………………………………………………………………………………………………………………………………
19.1. INTRODUCCIÓN
<< abn
<<
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 cargarán al programa que empieza
desde el segundo par de comillas (<< ).
Notese también que existe algunos programas que tienen esta variante:
<<
67
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. Obsérvese el siguiente ejemplo:
Este ejemplo muestra que la calculadora tiene una memoria temporal conocida con el
nombre de PILA donde se van almacennado los resultados parciales.
Algunas de las funciones especiales que se usaron para los programas son:
x x!
COMB(x,y) ;equivale a = , x y y pueden ser constantes
y ( x − y )!· y!
o variables
ELSE
END
Ej.) Factorial
« 1 'Fact' STO
NEXT
»
69
19.4. MATRICES-TABLAS
AB
«AB*AB+AB–
»
70
As
« DEG
['ø''Sen''Cos''Tan']
0 A FOR j
['j''SIN(j)''COS(j)''TAN(j)'] NUM
AUGMENT
s STEP
Para todos los métodos de esta parte se usa la siguiente definición de función:
<<
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
>>
>>
<<
IF 'f(a)*f(b)<0'
FOR i
IF 'f(a)*f(c)<0'
IF 'cont1\<=3'
END
IF 'cont2\<=3'
END
END 1
END
>>
>>
STEP x1 { x1 df } PURGE
>>
>>
73
Para este caso considérese a b sólo como el intervalo inicial ya que éste se modificará
en el transcurso del programa.
<<
IF 'f(a)*f(b)<0.'
THEN 1. n
END
>>
>>
<< 1 n
>>
>>
Para todos los métodos de esta parte se usa la siguiente definición de función:
74
B(1,1)
De la misma forma, B ENTER B(2,1) STO; todas las fuciones de esa forma están
B(3,1)
definidas de esa manera.
//iteraciones
<< 1. n
>>
>>
//iteraciones
<< 1. n
STEP x1 x2 x3 3. LIST
>>
>>
//IDN en este caso es una matriz identidad 3x3 que se usará sólo
/ /como comodín
<< 3. IDN 'C' STO 0. 0. 0. 3. ARRY 'R' STO 0. 0. 0. 3. ARRY 'X' STO 1. 3.
FOR i 1. 3.
FOR j
IF 'i==j'
END 1.
STEP 1.
STEP 1. 3.
FOR i 1. 3.
STEP 1.
STEP 1. 3.
STEP
REPEAT R OBJ OBJ DROP LIST DUP DUP ABS SORT 3. GET DUP 'M' STO POS
'q' STO
IF 'q==0.'
STEP
>>
>>
//En este método previamente se almacena a modo de funciones dos vectors X[] y Y[]
de dimensión 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
>>
>>
//En este método previamente se almacena a modo de funciones dos vectors U[] y Y[]
de dimensión n
<< 0. nP
<< 'n-1.' EVAL DUP 'N' STO IDN DUP - '∆Y' STO 'U(2.)-U(1.)' EVAL 'h' STO '(Z-
U(1.))/h' EVAL 'K' STO 1. 'n-1.'
FOR i 1. 'n-1.'
FOR i 'K' 'i' COMB EVAL '∆Y(1.,i)' EVAL * P + SIMPLIFY 'P' STO 1.
STEP P { N } PURGE
>>
>>
//En este método previamente se almacena a modo de funciones dos vectors U[] y Y[]
de dimensión n
<< 0. nS
<< 1. n
FOR i 1. 1.
FOR i 1. n
FOR j
IF 'i≠j'
END 1.
STEP S
>>
>>
78
19.8. INTEGRACIÓN
>>
>>
>>
>>
<<
STEP 1. 'n/2.-1.'
END
>>
>>
//En este método previamente se almacena a modo de funciones dos vectors X[] y Y[]
de dimensión n
<< 0. nS
>>
>>
//En este método previamente se almacena a modo de funciones dos vectors U[] y Y[]
de dimensión n
<< 0. 0. n S1 S2
<<
STEP 2. 'n/2.-1.'
END
>>
>>
20. Bibliografía
Antonio Rodríguez-Ferran
Alfonso Brález
Patxi Funes
Eduardo Carrasco
Jesús Calleja
-Hp 50g Calculadora Gráfica (Guía del Usuario)