Please enable JavaScript.
Coggle requires JavaScript to display documents.
Unidad 3: Funciones y procedimientos :pen: (Tipos permitidos (Caracteres,…
Unidad 3: Funciones y procedimientos
:pen:
Un programa en Pascal consiste de uno o más módulos, los cuales a su vez también pueden estar constituidos por otros módulos, y así sucesivamente.
Estos módulos serán llamados, en términos generales,SUBPROGRAMAS, y en particular PROCEDIMIENTOS y FUNCIONES.
Procedimiento
Definición
Es un subprograma que realiza alguna de las tareas del programa, y que no devuelve ningún valor al subprograma que lo invocó.
Composición
Está compuesto de un grupo de sentencias a las que se asigna un nombre (identificador) y constituye una unidad del programa.
La tarea asignada al procedimiento se ejecuta siempre que Pascal encuentra el nombre del procedimiento.
El cuerpo de un procedimiento se encierra entre "begin" y "end", igual que las sentencias compuestas y que el propio cuerpo del programa.
Declaración de un procedimiento
La sintaxis para declarar un procedimiento es :
declaraciones locales
begin
procedure nombre_procedimiento;
cuerpo del procedimiento
end;
La existencia de parámetros_formales dependerá de la naturaleza del procedimiento, esto es, de la tarea que
va a realizar y de la forma en que lo ha estructurado su creador
declaraciones locales
begin
procedure nombre_procedimiento(parámetros formales);
cuerpo del procedimiento
end;
Un procedimiento puede tener sus propias variables, las cuales se llaman variables locales, frente a las del resto del programa, que son globales.
Desde dentro de un procedimiento podemos acceder a las variables globales, pero desde fuera de un procedimiento no podemos acceder a las variables locales que hemos definido dentro de él.
Variables
Variables locales
Es una variable que está declarada dentro de un subprograma, y se dice que es local al subprograma. Y lo que la caracteriza es que su valor sólo está disponible mientras se ejecuta el subprograma. Dicho de otra manera, el programa principal no tiene conocimiento alguno de las variables locales de sus procedimientos y funciones.
Variables globales
Las variables declaradas en la sección correspondiente a esta labor en el programa principal. Y a diferencia de las locales, su valor está disponible tanto en el cuerpo del programa principal como en el de cualquiera de los subprogramas declarados.
Para poder ejecutar un procedimiento es necesario declararlo en el programa que se este utilizando.
La palabra reservada para su declaración es Procedure seguida del nombre del procedimiento.
Invocación al procedimiento
Para invocar a un procedimiento, la sintaxis es :
<nombre_de_procedimiento> (parámetros_actuales);
Donde la existencia de parámetros_actuales dependerá de que en la declaración del procedimiento se hayan utilizado parámetros formales.
La diferencia que existe entre un procedimiento y una función es que en la primera se ejecuta una serie de acciones que están relacionadas entre sí, y no devuelve ningún valor, mientras que la función sí que va a devolver valores
Integrantes:
Goicochea Martinez Francesca//// Morales Garcia Carlos Dennis////Retama Resendiz Osvaldo
Grupo:651
:warning:
Parámetros de los Procedimientos
Para poder pasar información entre el programa principal y procedimientos, o entre los mismos procedimientos usamos los parámetros, que son los canales de comunicación de datos.
Los parámetros son opcionales y si no se necesitan no se deben usar.
Para utilizarlos es necesario declararlos son la siguiente sintaxis:
PROCEDURE nombre (lista de parámetros);
La lista de parámetros esta compuesta de los nombres de los mismos y del tipo de datos que representan, los del mismo tipo se separan con comas "," y cada tipo diferente se separa con punto y coma ";".
Ejemplo: Procedure Ejemplo(a, b : Integer; c, d : String);
Para llamar a un procedimiento que utiliza parámetros se pueden utilizar como tales otras variables o constantes, siempre y cuando sean del mismo tipo que los declarados.
Ejemplo: (1, 2, 'Hola', 'Adios');
Existen 2 tipos
Parametros por valor
Tiene dicho nombre porque lo que recibe el subprograma no son más que copias de los valores de los datos que el programa invocador le pasa. Por tanto si en el procedimiento modificamos alguno de estos valores, los datos originales permaneceran inalterados.
Parametros por referencia
Lo que se pasa al procedimiento son los datos en sí. Y si éste los modifica, los cambios permanecerán una vez que la ejecución vuelva al módulo que invocó al procedimiento. Se utilizan para obtener valores de los cálculos que haga un subprograma,
Modularidad
Es la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes.
Estos módulos que se puedan compilar por separado, pero que tienen conexiones con otros módulos.
Su importan es
Según Bertrand Meyer
Es el acto de particionar un programa en componentes individuales para reducir su complejidad en algún grado… A pesar de particionar un programa es útil por esta razón, una justificación más poderosa para particionar un programa es que crea una serie de límites bien definidos y documentados en el programa. Estos límites, o interfaces, son muy valiosos en la comprensión del programa
Según Bárbara Liskov
Establece que la modularización consiste en dividir un programa en módulos que pueden ser compilados de forma separada, pero que tienen conexiones con otros módulos.
Alcance de identificadores
Nombre de procedimientos y funciones
La parte del programa donde se tiene acceso a un identificador se llama ámbito o alcance del identificador. Fuera de ese dominio, un identificador no tiene significado o tiene significado diferente. Concretamente, el ámbito de un identificador es el bloque donde ha sido declarado.
Cada rutina puede tener sus propias declaraciones y definiciones locales, incluso se puede redeclarar en ella un identificador que haya sido declarado en un bloque más externo. Una rutina declarada en un nivel más interno tiene acceso a las declaraciones y definiciones hechas en todos los bloques que la contienen.
No pueden existir dos identificadores con el mismo nombre en el mismo nivel de anidamiento, y aunque de hecho no es una buena práctica hacerlo, se usa en ocasiones.
Variables
Globales
Se ubicaran dentro del programa principal
Locales
Se ubicaran dentro de algún procedimiento o función
Como los bloques pueden estar anidados, el alcance de un identificador puede incluir a bloques situados a niveles inferiores en la jerarquía del pro-grama.
Recursividad
La recursividad es una técnica mediante la cual un procedimiento o una subrutina se llama a si mismo para poder realizar su tarea. De hecho es un concepto difícil de entender, incluso para muchos programadores experi-mentados. Es más fácil entenderlo a través del ejemplo clásico: el factorial.
La definición de factorial de un número entero n es el producto acumu-lado de todos los números enteros consecutivos desde 1 hasta n, en nota-ción matemática
Vamos a verlo con un ejemplo clásico: el factorial de un número.
Partimos de la definición de factorial de un número n:
n! = n · (n-1) · (n-2) · ... · 3 · 2 · 1
Por otra parte, el factorial del siguiente número más pequeño (n-1) es
(n-1)! = (n-1) · (n-2) · ... · 3 · 2 · 1
Se parecen mucho. Luego podemos escribir cada factorial en función del factorial del siguiente número:
n! = n · (n-1)!
¡Acabamos de dar la definición recursiva del factorial! Así vamos "delegando" para que el problema lo resuelva el siguiente número, y este a su vez se lo pasa al siguiente, y este al otro, y así sucesivamente hasta llegar a algún caso que sea muy fácil
¿Y qué utilidad puede tener eso?.
Habrá muchos problemas que son más fáciles de resolver si se descomponen en pasos cada vez más sencillos.
Funciones
Concepto
Una función es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.
Declaracion
Es posible declararlas para realizar tareas repetitivas y para realizar una programación más ordenada, clara e intuitiva. Las funciones te permiten crear piezas modulares de código, de forma que se puedan realizar ciertas rutinas y retornar al área de código desde donde se realizó la llamada a dicha función
Invocacion
Una invocación ó llamada a una función implica pasarle el control de la ejecución del programa, así como los argumentos ó parámetros que requiere para realizar su tarea, se realiza colocando el nombre de la función y los argumentos actuales en el mismo orden que los parámetros formales correspondientes
Ejemplo
cout << cuadrado(25);
cout << cuadrado(X);
R = cuadrado(X); // guardar en R el cuadrado de X
Tipos permitidos
Caracteres
El tipo de dato caracter es un dígito individual el cual se puede representar como numéricos (0 al 9), letras (a-z) y símbolos (!"$&/).
Caracter unicode
El tipo de dato carácter unicode es una "extensión" del tipo de dato cadena, permite ampliar los símbolos de escritura, provee exactamente hasta 65535 caracteres diferentes.
Numericos
Este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se vaya a utilizar.
Enteros: son los valores que no tienen punto decimal, pueden ser positivos o negativos y el cero.
Reales: estos caracteres almacenan números muy grandes que poseen parte entera y parte decimal.
Boolenos
Este tipo de dato se emplea para valores lógicos, los podemos definir como datos comparativos dicha comparación devuelve resultados lógicos (Verdadero o Falso).
Pascal
El lenguaje de programación Pascal permite declarar variables de tipo carácter (Cadena) y numérica. Todas las variables excepto la de tipo Cadena son de tipo numéricas (incluyendo Booleano).
String
Se pueden considerar tipos de cadena nativos, ya que forman parte de las bibliotecas estándar que se incluyen en cualquier entorno de compilación
Valor de regreso
Una función puede devolver cualquier tipo de valor a la función que la invoca (a excepción de una matriz o una función); incluso main puede devolver un valor al ámbito en que se está ejecutando el programa (entorno del sistema operativo), pero téngase en cuenta que aunque una función devuelva un valor, es potestad de la función invocante recibirlo o ignorarlo.
Fuentes consultadas
https://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Funciones
https://ardubasic.wordpress.com/2013/05/22/declaracion-de-funciones/
https://es.wikipedia.org/wiki/Tipo_de_dato
https://msdn.microsoft.com/es-mx/library/hh279663.aspx
https://msdn.microsoft.com/es-mx/library/hh279663.aspx
https://desarrolloweb.com/articulos/586.php
http://www.zator.com/Cpp/E4_4_7.htm
http://www.nachocabanes.com/pascal/curso/cupas08.php
http://moisesrbb.tripod.com/unidad4p.html
https://cursos.aiu.edu/Programacion%20de%20Computadoras/PDF/Tema%204.pdf
http://www.marcocantu.com/epascal/Spanish/ch06proc.htm
http://www.nachocabanes.com/pascal/curso/cupas08.php
https://www.fing.edu.uy/inco/cursos/prog1/pm/uploads/Materiales/clase9.htm
http://www.cch-vallejo.unam.mx/tareas/Files/Func&Procs.doc
https://sites.google.com/site/cyberazcdos/unidad-iii-procedimientos-y-funciones/alcance-de-identificadores
https://cursos.aiu.edu/Programacion%20de%20Computadoras/PDF/Tema%205.pdf