Documente Academic
Documente Profesional
Documente Cultură
Algoritmos y lenguajes de
programación
INSTITUTO TECNOLOGICO
Introducción
Sub-algoritmo.
Se le llama así a cada una de las partes de un algoritmo más general que resuelve
cada una de las tareas particulares necesarias para que dicho algoritmo general
alcance el objetivo para el que fue diseñado, es decir resolver un problema.
Las variables locales: se declaran dentro de un módulo o Sub-algoritmo y sólo tienen
utilidad dentro de ese módulo, no se podrá acceder a ellas desde otros módulos.
Pueden existir variables locales con el mismo nombre siempre que estén en
módulos diferentes.
Las variables globales: son declaradas de forma que puedan ser utilizadas
(consultada y/o modificada) desde cualquiera de los módulos que forman el
programa. En este caso, no puede haber dos variables globales con el mismo
nombre, ya que esto produciría una ambigüedad que el compilador no podría
resolver.
Función.
También conocido como una subrutina o subprograma, como idea general, se
presenta como un Sub-algoritmo que forma parte del algoritmo principal, el cual
permite resolver una tarea específica. Algunos lenguajes de programación, como
Visual Basic .NET o Fortran, utilizan el nombre función para referirse a subrutinas
que devuelven un valor.
Una subrutina al ser llamada dentro de un programa hace que el código principal
se detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se
llama a una macro, el compilador toma el código de la macro y lo implanta donde
fue llamado, aumentando así el código fuente y por consiguiente el objeto.
Una función puede llamarse múltiples veces e incluso llamarse a sí misma (función
recurrente).
2
6.2 Funciones Estándar
Una subrutina al ser llamada dentro de un programa hace que el código principal se
detenga y se dirija a ejecutar el código de la subrutina, en cambio cuando se llama
a una macro, el compilador toma el código de la macro y lo implanta donde fue
llamado, aumentando así el código fuente y por consiguiente el objeto.
Las funciones son casi exactamente iguales que los procedimientos con respecto
a la forma en que se los llama y se los crea o declara en el código, en cómo se le
pasa los parámetros etc...
End Function
Las Funciones pueden retornar casi cualquier tipo de datos, como números,
cadenas, fechas, arreglos y vectores.
3
Label1.caption = Total 502, 1478
Ejemplo:
'Convertimos
cadena = LCase(cadena)
4
Por ejemplo, si tenemos un control Label1 que contiene un texto que dice:
"Porcentaje de sueldos", escribiendo la siguiente línea:
Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena.
Ejemplos:
Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los
espacios vacíos de la izquierda haríamos lo siguiente:
ciudad = LTrim(ciudad)
MiText = RTrim(MiText)
La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena.
Ejemplo:
Función Len
5
La función Len nos permite conocer la cantidad de caracteres que tiene una
determinada cadena. O sea que esta función nos devuelve un número.
Ejemplo:
Como la función Len devuelve un número debemos asignar ese número devuelto
en una variable de tipo numérica.
Ejemplo:
TamanoCadena = Len(MiCadena)
Hay que tener en cuenta que la función Len también toma en cuenta los espacios
vacíos.
Ejemplos:
num = Asc("a")
En definitiva, la función Asc lleva un solo parámetro de tipo String del cual
queremos obtener dicho número.
La Función Chr actúa a la inversa de la función Asc, esto quiere decir, que a partir
de un determinado número nos devolverá el caracter ASCII.
6
Obviamente que en vez de pasarle a la función un parámetro String es decir la
letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado.
Ejemplo:
letra = Chr(97)
Función InsTr
La función InStr se utiliza para buscar una cadena o parte de una cadena dentro
de otra cadena.
Ejemplo:
En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que
la variable posición pasa a valer 15.
7
Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene
dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a
partir de donde esté ubicada la selección.
Colocar el siguiente
código fuente en el
formulario:
Option Explicit
Private m_Pos As
Integer
Sub
8
.SelLength = Len(Frase)
.SetFocus
End With
Else
MsgBox "No se encontró la frase", vbInformation
Text1.SetFocus
End If
End Sub
Private Sub Command1_Click()
'Busca a pratir de la primera pocición
Call buscar_cadena(1)
End Sub
Private Sub Command2_Click()
'Busca a partir del valor que tenga m_Pos
Call buscar_cadena(m_Pos + 1)
End Sub
Private Sub Form_Load()
Command1.Caption = "Buscar"
Command2.Caption = "Buscar siguiente"
Me.Caption = "Ejemplo de InStr "
End Sub
Nota: también hay una función similar a Instr llamada InstrRev, y lo que hace es
devolver la posición de la primera concurrencia de una cadena dentro de otra
cadena, pero comenzando por el extremo derecho de la misma.
La función Left:
Ejemplo:
9
Cadena = Left("Ya es la madrugada", 9)
Función Right:
Es igual que la función Left pero comienza a extraer caracteres desde el lado
derecho de la cadena.
La función Mid:
Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis
es:
Ejemplos:
Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina
de escribir.
Option Explicit
End Sub
Private Sub MostrarTexto(Frase As String, _
Segundos As Double, _
Destino As Object)
LenFrase = Len(Frase)
DoEvents
i=i+1
' Obtiene el siguiente caracter
Caracter = Mid(Frase, i, 1)
' texto actual
texto = texto & Caracter
Destino.Print texto ' Imprimi e/ dibuja el texto
' pausa o delay
Pausa Segundos
DoEvents
Loop
End Sub
La función Val convierte una cadena en un número yla función Str un número en
una cadena.
Ejemplos:
cadena = "123456"
cadena = Val(cadena)
cadena2 = 123456
cadena2 = Str(cadena2)
Visual Basic posee muchas funciones para tratar números. A continuación, las
principales funciones.
Función Round
Ejemplo:
12
Minumero = Round(245.8) '(La función devuelve 246)
Minumero = Round(245.3) '(La función devuelve 245)
Minumero = Round(245.5) '(La función devuelve 245)
Round posee un parámetro opcional por si queremos incluir los dígitos decimales.
Ejemplo:
Rnd (número)
Pero para poder generar dichos números aleatorios, debemos utilizar previamente
la función Randomize con la siguiente fórmula:
Funciones de formato
Visual Basic posee varias funciones para darle formato a distintos tipos de datos e
información. A continuación, se ve algunos ejemplos de las principales funciones:
13
FormatPercent: Esta función es utilizada para trabajar con
porcentajes. Ejemplo:
si tendríamos un número 321, nos devolvería: "32,1%" .
FormatDateTime: Esta función trabaja con fechas y horas.
FormatNumber: Formatea expresiones números
Ejemplo
14
Un ejemplo para ver estos formatos utilizando FormatDateTime: Colocar cinco
option Button, cada botón de opción mostrará los diferentes formatos en el caption
del formulario, es decir en la barra de título.
Código en el formulario:
End Sub
Private Sub Option1_Click()
Me.Caption = FormatDateTime(Now, vbGeneralDate)
End Sub
15
Private Sub Option3_Click ()
Me.Caption = FormatDateTime(Now, vbShortDate)
End Sub
Función Format:
La función Format es más completa que las anteriores funciones, porque puede
manejar más tipos de datos, y no devuelve solo cadenas, esta también puede
devolver números y fechas.
16
Fixed: Devuelve como mínimo un dígito a la izquierda y 2 ala
derecha del decimal.
Standar: Similar a Fixed pero incluye un separador de miles.
Percent: Multiplica el número por cien y le agrega el símbolo "%"
True/False: Devuelve Verdadero para un valor distinto de 0,y Falso
para 0.
On/OFF: Devuelve "Activado" para un valor distinto de 0, y
"Desactivado" para 0.
Ejemplo:
Las entradas son las señales recibidas por la unidad, mientras que las salidas son
las señales enviadas por ésta. Las cajas de dialogo son ventanas con controles que
podemos visualizar en el instante que necesitemos hacer una entrada o salida de
datos. Visual Basic tiene cajas de dialogo predefinidas que nos permiten realizar
17
opciones de E/S con muy poco esfuerzo. Por ejemplo, la función inputbox visualiza
una caja de dialogo presentando información o resultados.
Entrada de datos
InputBox
El aspecto mas importante de InputBox es que nos devuelve una cadena con lo
que haya ingresado el usuario en la caja de texto. Luego podemos realizar una tarea
específica dependiendo del valor devuelto.
Ejemplo:
18
retorno = InputBox("Ingrese algo en la caja de texto", "Ejemplo")
MsgBox
La función MsgBox, que ya se vió varias veces en distintos ejemplos, es muy fácil
de usar y se utiliza para mostrar distintos tipos de mensajes.
19
Salida de datos
Según hemos visto, el método Print visualiza datos en un formulario (objeto Form).
Así mismo, permite visualizar datos en la ventana inmediato (a través del objeto
Debug), en una caja de imagen (Control PictureBox) o en una impresora
(utilizando el objeto Printer). Su sintaxis es
El valor de a es 1000
Las ventajas de utilizar las funciones definidas por el usuario en SQL Server son:
Puede crear la función una vez, almacenarla en la base de datos y llamarla desde
el programa tantas veces como desee. Las funciones definidas por el usuario se
pueden modificar, independientemente del código de origen del programa.
21
Al igual que los procedimientos almacenados, las funciones definidas por el
usuario Transact-SQL reducen el costo de compilación del código Transact-SQL
almacenando los planes en la caché y reutilizándolos para ejecuciones repetidas.
Esto significa que no es necesario volver a analizar y optimizar la función definida
por el usuario con cada uso, lo que permite obtener tiempos de ejecución mucho
más rápidos.
Las funciones CLR ofrecen una ventaja de rendimiento importante sobre las
funciones Transact-SQL para tareas de cálculo, manipulación de cadenas y lógica
empresarial. Las funciones Transact-SQL se adecuan mejor a la lógica intensiva
del acceso a datos.
Todas las funciones definidas por el usuario tienen la misma estructura de dos
partes: un encabezado y un cuerpo. La función toma cero o más parámetros de
entrada y devuelve un valor escalar o una tabla.
El encabezado define:
22
El cuerpo define la acción o la lógica que la función va a realizar. Contiene:
En Visual Basic 6.0, para mostrar una fecha en formato corto o largo, utiliza el
especificador de formato "ddddd" o "dddddd". Los especificadores DayOfWeek
("w") y WeekOfYear ("ww") muestran el primer día de la semana y la primera
semana del año, respectivamente. El carácter en minúscula "m" muestra el mes
con un número sin cero a la izquierda. El especificador Quarter ("q") muestra el
trimestre del año con un número del 1 al 4.
Para mostrar los minutos como un número con o sin ceros iniciales, utiliza el
especificador de formato "Nn" o "N". Los caracteres "Hh" muestran la hora como
un número con ceros iniciales, y "ttttt" muestra la hora completa. Para mostrar las
letras "A" o "P" en mayúscula o minúscula con una hora anterior o posterior al
mediodía, utiliza "AM/PM", "am/pm", "A/P", "a/p" o "AMPM.".
En Visual Basic 6.0, puede crear expresiones para las cadenas de formato
definidas por el usuario con los especificadores @, &, <, > y !.
23
6.5 Pase por Valor
Código de ejemplo:
24
Ejemplo pase por valor:
Código:
Unload Me
End Sub
End Sub
Un_Valor = 100
Call sumar(Un_Valor)
MsgBox Un_Valor
End Sub
25
6.6 Pase por Referencia
Este ejemplo es igual que el anterior, pero en la Sub sumar, la variable Valor se
declara con ByRef (por Referencia)
Código:
26
Código:
Unload Me
End Sub
End Sub
Un_Valor = 100
Call Sumar(Un_Valor)
End Sub
6.7 Punteros
27
Al declarar una variable estamos diciendo al ordenador que reserve una parte de
la memoria RAM para almacenarla. Cada vez que ejecutemos el programa la
variable se almacenará en un sitio diferente; eso no lo podemos controlar pues
depende de la memoria que esté disponible en el momento en que ejecutamos el
programa.
Tamaño de almacenamiento
Definición de puntero
Un puntero es un tipo simple que siempre está asociado a otro tipo (punteros a
enteros, a reales, a registros, etc.)
Se pueden ver los punteros como variables que almacenan direcciones de memoria;
de aquí se deduce:
El hecho de disponer de una dirección postal no garantiza que el lugar exista. Para
declarar variables de tipo puntero en la notación algorítmica se utiliza la sintaxis
siguiente: variable puntero a tipo
Por ejemplo:
Puntero a real
28
Una vez se declara un puntero pueden llevarse a cabo dos acciones básicas sobre
el mismo: Asignarle memoria para almacenar un dato del tipo al que apunta:
Crear
Eliminar la memoria que tiene asignada y con ella el dato apuntado:
Destruir
Crear (variable puntero)
Destruir (variable puntero)
Cuando un puntero tiene la dirección de una variable se dice que ese puntero
apunta a esa variable. La declaración de un puntero depende del tipo de dato al
que queramos apuntar. En general, la declaración es: tipo_de_dato
*nombre_del_puntero
29
6.8 Elaboración de Programas
30
Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial
como multiplicar dos números puede necesitar un conjunto de instrucciones en
lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
Léxico y programación
Programas y algoritmos
Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura
de datos.
ß programación estructurada
31
ß programación modular
ß programación declarativa
Compilación
32
El proceso de creación de software, desde el punto de vista de la ingeniería,
incluye los siguientes pasos:
2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer
el programa y para qué se necesita.
3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe
realizar el programa las cosas que debe hacer. Las pruebas que comprueben la
validez del programa se pueden especificar en esta fase.
33
Conclusión
34
REFERENCIAS
http://www.scribd.com/doc/75420482/UNIDAD-6
https://sites.google.com/site/algoritmosgonzalezsamaniego/unidad-6-funciones
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnx
wcm9ncmFtYWNpb25lZGdhcnp1bmlnYXxneDo0MWI4YzQ1NDQyNWU2MWE1
https://sites.google.com/site/algoritmosy/unidad
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxj
YXJsb3NwYWxtZXJpbjIwfGd4OjM0NjdhNzg5MDY2YjMwMDU
http://lenguajecmasmas.wordpress.com/2007/10/01/creacion-de-funciones-
definidad-por-el-usuario/
http://www.php.net/manual/es/functions.user-defined.php
35