Source: https://www.scribd.com/doc/77294716/ALGORITMOS-Y-PSEUDOCODIGO
Timestamp: 2016-08-24 21:30:45+00:00

Document:
BrowseUploadSign inJoinBooksAudiobooksComicsSheet MusicWelcome to Scribd! Start your free trial and access books, documents and more.Find out moreMetodología de Programación, Programación en C, Aplicaciones electrónicas 1 / 47ALGORITMOS Y PROGRAMAS
La principal razón para que las personas aprendan lenguajes de programación es utilizar un ordenador como una herramienta para la resolución de problemas. Tres fases pueden ser identificadas en el proceso de resolución :
Fase de Identificación (qué nos plantean) Fase de resolución del problema Fase de implementación (realización) en un lenguaje de programación
Esta fase incluye, a su vez, el análisis del problema así como el diseño y posterior verificación del algoritmo.
El primer paso para encontrar la solución a un problema es el análisis del mismo. Se debe examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo.
Diseño del algoritmo Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser:
1ª Parte: Metodología de Programación
Metodología de Programación, Programación en C, Aplicaciones electrónicas 2 / 47
Preciso: Indicando el orden de realización de cada uno de los pasos.
Si se sigue el algoritmo varias veces
( consistente )
los mismos datos, se deben obtener siempre los mismos resultados.
Al seguir el algoritmo, este debe terminar en algún momento, es decir tener un número finito de pasos.
Para diseñar un algoritmo se debe comenzar por identificar las tareas más importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripción pueden requerir una revisión adicional antes de que podamos obtener un algoritmo claro, preciso y completo. Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).
En un algoritmo se deben de considerar tres partes: Entrada: Información dada al algoritmo.
Proceso:Operaciones o cálculos necesarios para encontrar la solución del problema.
Respuestas dadas por el algoritmo o resultados
de los procesos realizados.
Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectángulo proporcionándole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas:
Metodología de Programación, Programación en C, Aplicaciones electrónicas 3 / 47
¿Que datos son de entrada? ¿Cuántos datos se introducirán? ¿Cuántos son datos de entrada válidos?
¿Cuáles son los datos de salida? ¿Cuántos datos de salida se producirán? ¿Qué formato y precisión tendrán los resultados?
El algoritmo que podemos utilizar es el siguiente:
Paso 1. Entrada desde el teclado, de los datos de base y altura. Paso 2. Cálculo de la superficie, multiplicando la base por la altura. Paso 3. Salida por pantalla de base, altura y superficie calculada.
El lenguaje algorítmico debe ser independiente de cualquier lenguaje de programación particular, pero fácilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducirá al empleo de métodos normalizados para la representación de algoritmos, tales como los diagrama de flujo o pseudocódigo.
Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseñado y produce el resultado correcto y esperado. El modo más normal de comprobar un algoritmo es mediante su ejecución manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtención de los resultados. Este proceso se conoce como prueba del algoritmo.
Metodología de Programación, Programación en C, Aplicaciones electrónicas 4 / 47
Una vez que el algoritmo está diseñado, representado mediante pseudocódigo y verificado se debe pasar a la fase de codificación o traducción del algoritmo a un determinado lenguaje de programación, que deberá ser completada con la ejecución y comprobación del programa en el ordenador.
CODIFICACION DE ALGORITMOS EN PSEUDOCODIGO
[ Nota: Aunque las normas de programación en pseudocódigo están cuasi-estandarizadas, en este curso las enfocaremos lo máximo posible a la nomenclatura que se emplea en lenguaje C para que en el momento de programar en esta lenguaje la adaptación sea lo mas rápida posible ]
En el ejemplo del calculo del área de un rectángulo podemos observar que en la resolución de programas nos encontramos con datos que pueden ser números como por ejemplo la base o la altura y otros que pueden ser los mensajes que aparecen por pantalla ( “ La superficie es ....” ). Quiere esto decir que previamente necesitamos conocer qué TIPOS de datos puede manejar un ordenador en un programa. ¿Porqué es importante este apartado?. Podríamos pensar en lo siguiente: ¿Qué tipo de numero es el 7? → Entero ¿Qué tipo de numero es el 3? → Entero ¿Qué tipo de numero es 7/3 ? → ???
Subconjunto finito de los números enteros, cuyo rango dependerá del lenguaje en el que posteriormente codifiquemos el algoritmo y del ordenador. El rango depende de cuantos bits utilice para codificar el numero,
real: cuanto
Subconjunto de los números reales limitado no sólo en
al tamaño.etc. -. 33.. Aplicaciones electrónicas 5 / 47
normalmente 2 bytes. >. y un exponente ( 1E-3 = 0’001).. 14.< == (igual). y de -32768 al 32767 para números con signo... <= . OR.00123.. ¿Y las operaciones de sucesor y predecesor?
Lógico: Conjunto formado por los valores Cierto y Falso. ÷. >= . con 16 bits se pueden almacenar 216= 65536 números enteros diferentes: de 0 al 65535.. Operaciones: todas las lógicas y relacionales→ AND.. división→ div (cociente) .. Por ejemplo 6.. por tanto: +. utilizando 24 bits para la mantisa (1 para el signo y 23 para el valor) y 8 bits para el exponente (1 para el signo y 7 para el valor). Para números positivos. es_par *
(*) es_par(n)→ si n es par devuelve un 0 sino. Operaciones asociadas al tipo entero: Como norma general las operaciones asociadas a un tipo cualquiera serán aquellas cuyo resultado sea un elemento del mismo tipo. 3E-34. *. . El orden es de 10-39 hasta 1038..9. sucesor.Metodología de Programación.
. Las operaciones asociadas serian +. -199. 6 ó 10 bytes. Programación en C. Suelen ocupar 4. *. sino también en cuanto a la precisión. predecesor... Por ejemplo 2. ‘1’ y ‘0’. Se representan por medio de la mantisa. ≠ . modulo→ mod (resto). un 1.
y abarcan desde ‘0’. con ciertos compiladores entre -128 y 127). se almacenan en un byte.
Los caracteres se representan entre comillas simples ‘a’..’Z’. Aplicaciones electrónicas 6 / 47
Carácter: ordenador
Conjunto finito y ordenado de los caracteres que el
reconoce. que se muestra en la Tabla para los caracteres estándar (existe un código ASCII extendido que utiliza los 256 valores:
Sabiendo la fila y la columna en la que está un determinado carácter puede componerse el número correspondiente... ‘D’. Por tratarse de un tipo de datos enumerados y con una
.’z’ y ‘A’. Programación en C.’9’. ‘a’.Metodología de Programación. El carácter % está en la fila 3 y la columna 7.. Por ejemplo. Un carácter (letra) se guarda en un solo byte como un número entero. por lo que su representación ASCII será el 37. Con 8 bits se podrán almacenar 28= 256 valores diferentes (normalmente entre 0 y 255. el correspondiente en el código ASCII. Su número ASCII es por tanto el 65. la letra A está en la fila 6 y la columna 5. Un espacio en blanco ( ) también es un carácter..
Cadena: Los datos de este tipo contendrán una serie finita de caracteres.N). ya que el primero es una cadena y el segundo un carácter. Podrán representarse de estas dos formas: ‘H’ ’O’ ’L’ ’A’ == “HOLA”.C2)à C3=”HolaPepeeerl” X= Longitud (C2) à X=8 C3=Extraer(C1. Aplicaciones electrónicas 7 / 47
representación como la de un entero podemos aplicar. además de las operaciones de los tipos enteros. Las operaciones relacionadas con las cadenas son: Concatenar(C1. C2=”Pepeeerl” C3= Concatenar(C1. si estos facilitan de alguna manera la resolución del problema.
. las siguientes: ord(carácter)→numero car(numero)→carácter Así ord(‘A’)→65 y car(37)→’%’.C2).. Extraer (C1. No es lo mismo “H” que ‘H’.
Además el usuario podrá definir sus propios tipos de datos. Cadena y Lógico son tipos predefinidos en la mayoría de los lenguajes de programación. Carácter. ejemplos: C1=”Hola”.. Real. ‘A’+3=’D’.3) à C3=”Hol”
Entero. Programación en C. Longitud(C1).Metodología de Programación..
D) Cada elemento tiene un número de orden asociado. Estos tipos no se pueden leer por teclado.franco.marco) dia=(L.S.V minusculas=’a’. Aplicaciones electrónicas 8 / 47
Tipos de datos definidos por el usuario •
Enumerado o Escalar : Se hace una enumeración de los valores que va a tomar el tipo. Para ello se antepone la palabra tipo:
Ejemplo: tipo moneda=(peseta.Metodología de Programación.1100 Muy esquemáticamente :
Ejemplo: tipo flojas=peseta.X.franco laboral=L.libra... •
Son un subconjunto finito de un tipo definido por el usuario y.V. Programación en C. de cualquier tipo que tenga sucesor y predecesor. y comenzando desde el cero.’z’ aceptado=1000. como los enteros y carácter..J..M.
etc. PI=3... ‘a’. PI=3. Las constantes literales serán un valor propiamente dicho y las que tienen nombre se identifican por su nombre y el valor asignado. (‘constante’) Una Constante p.
Variables Una variable es un dato representado por una posición determinada de memoria cuyo valor puede cambiar durante el desarrollo del algoritmo.ej..
Son datos cuyo valor no cambia durante todo el desarrollo del programa. Tendremos pues constantes: • • • • •
Numéricas enteras: Numéricas reales: Lógicas: Carácter: Cadena:
12.y. n=”no”. El nombre asignado a la variable se denomina identificador y tiene las siguientes reglas:
. s=”si”.ej x. y es el que determina el conjunto de valores que podrá tomar la variable...55..-44.. 3. Las constantes podrán ser literales o con nombres.. Programación en C.n=44592.t. 45.141592 Una Variable p.Metodología de Programación..ej..14159.1 n=’a’... saludo=”hola”...z. 12. k=’1’..34. Sólo existen dos constantes lógicas → 0..4. Se identifica por su nombre y por su tipo. -3E3. En los programas la declaración de cada una de las variables origina que se reserve un determinado espacio en memoria etiquetado con el correspondiente identificador. Aplicaciones electrónicas 9 / 47
Dentro de un programa en pseudocódigo tendremos ocasiones en que los valores que toman los datos podrán ser de tres tipos: Un valor propiamente dicho p.m=12.22234. -9837. que podrá ser cualquiera.
rpta. ni otros caracteres distintos de los citados. Un identificador no puede contener espacios en blanco.
Un identificador se forma con una secuencia de letras (minúsculas de la a a la z. y dígitos del 0 al 9). . carácter x . PI. etc.mm.
. tiempo-total. 3. no puede ser un dígito.
El primer carácter de un identificador debe ser siempre una letra o un (_)..
Ejemplos de identificadores válidos son los siguientes:
tiempo. es decir.. <variable2>. Aplicaciones electrónicas 10 / 47
1. distancia1.
Se hace distinción entre letras mayúsculas y minúsculas.
entero velocidad.:-+. Para declarar una variables utilizaremos el siguiente convenio:
tipo variable1.Metodología de Programación.x.. caso_A.
5. mayúsculas de la A a la Z. Programación en C.media
Por el contrario. %final →¿Por qué? En general es muy aconsejable elegir los nombres de las variables de forma que permitan conocer a simple vista qué tipo de variable o función representan..
real media. velocidad_de_la_luz. como por ejemplo (*. utilizando para ello tantos caracteres como sean necesarios.).
ANSI C permite definir identificadores de hasta 31 caracteres de longitud. Así. dolares$. .
El carácter subrayado se considera como una letra más. los siguientes nombres no son válidos: 1_valor. sumatotal. Esto simplifica enormemente la tarea de programación y –sobre todo– de corrección y mantenimiento de los programas. Masa es considerado como un identificador distinto de masa y de MASA.
Los operadores pueden ser unarios. binarios y ternarios. Si a%b es cero. respectivamente. puesto que el resto de dividir 23 por 4 es 3. Este operador se aplica solamente a constantes.
Una expresión es un conjunto de variables y constantes relacionadas mediante distintos operadores.x*x/2
. Programación en C. a es múltiplo de b. dos o tres operandos. Expresiones y Sentencias
Un operador es un carácter o grupo de caracteres que actúa sobre una. según actúen sobre uno. dos o más variables para realizar una determinada operación con un determinado resultado. Un ejemplo de expresión en la que intervienen operadores aritméticos es el siguiente: 3*x . etc. variables o expresiones de tipo entero). Todos ellos son operadores binarios. el producto (*).
OPERADORES ARITMÉTICOS Los operadores aritméticos son los más sencillos de entender y de utilizar. la diferencia (-). Ejemplos típicos de operadores son la suma (+).*
23%4 es 3. Se utilizan los cinco operadores siguientes:
Suma: Resta: Multiplicación: División: Resto:
+ * / % ( resto de la división entera.Metodología de Programación. Aplicaciones electrónicas 11 / 47
Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones. variable (en realidad. Aplicaciones electrónicas 12 / 47
Las expresiones pueden contener paréntesis (.Metodología de Programación. Una posible utilización de este operador es la siguiente: variable = variable + 1. Programación en C.. la introducción de espacios en blanco mejora la legibilidad de las expresiones)
OPERADORES DE ASIGNACIÓN Los operadores de asignación atribuyen a una variable –es decir. la de proceder de un modo u otro según se cumplan o no ciertas condiciones. (en ocasiones. una variable es un caso particular de una expresión). variable 2 2+1 variable 3
le suma 1 y el valor resultante vuelve a depositarse en memoria en la zona correspondiente al identificador variable. sustituyendo al valor que había anteriormente.
Primero se evalúa expresión y el resultado se pone en nombre_variable. depositan en su zona de memoria correspondiente– el resultado de una expresión o el valor. sustituyendo cualquier otro valor que hubiera en esa posición de memoria anteriormente. pero sí lo tiene considerando que en realidad el operador de asignación (=) representa una sustitución.
Técnicas de Programación 1ª Parte: Metodología de Programación
. que no debe ser confundido con la igualdad lógica (==).. Desde el punto de vista matemático este ejemplo no tiene sentido pues Equivale a 0 = 1!. Su forma general es: nombre_variable = expresión. El operador de asignación más utilizado es el operador de igualdad (=).) que agrupan a algunos de sus términos. esto es. pues se toma el valor de la variable contenido en la memoria(2). Esta operación se denomina acumulación
OPERADORES RELACIONALES Una característica imprescindible de cualquier lenguaje de programación es la de considerar alternativas.
Un 0 representa la condición de falso.expresion1 || expresión. Aplicaciones electrónicas 13 / 47
En un programa si una condición se cumple. En inglés son los operadores AND. Como operadores lógicos tenemos: el operador Y (&&). Programación en C. !expresión
. el operador O (||) y el operador NO (!). el resultado es cierto. Los operadores relacionales son los siguientes: – Igual que: == – Menor que: < – Mayor que: > – Menor o igual que: <= – Mayor o igual que: >= – Distinto que: !=
Todos los operadores relacionales son operadores binarios (tienen dos operandos). comprobando que se cumplen las condiciones necesarias.Metodología de Programación. Su forma general es la siguiente: expresion1 && expresion2. en caso contrario. OR y NOT. y cualquier número distinto de 0 equivale a la condición cierto. el resultado es falso.
A continuación se incluyen algunos ejemplos de estos operadores aplicados a constantes: (2==1) (3<=3) (3<3) (1!=1) cumple // resultado=0 porque la condición no se cumple // resultado=1 porque la condición se cumple // resultado=0 porque la condición no se cumple // resultado=0 porque la condición no se
OPERADORES LÓGICOS Los operadores lógicos son operadores binarios que permiten combinar los resultados de los operadores relacionales.
Metodología de Programación.sin(x) cuadrado(x) ent(x) exp(x) ln(x) log(x) raiz(x) redondeo (x) Descripción Valor Absoluto Coseno. Aplicaciones electrónicas 14 / 47
Cuando las operaciones lógicas son bit a bit. Por ejemplo: (2==1) || (-1==-1) (2==2) && (3==-1) ((2==2) && (3==3)) || (4==0) ((6==6) || (8==0)) && ((5==5) && (3==2)) ((250)&&(330)) 250>0.Seno x2 Parte entera ex Ln(x) Log10(x) Raiz Cuadrada) Redondear numero
. Programación en C. tipicas para hacer testeos de uno o varios bits (o máscaras) disponemos de los siguientes: ~ & | ^ >> << inversión de cada bit (Complemento a 1) And lógica bit a bit Or lógico bit a bit Xor Desplazamiento a la derecha Desplazamiento a la Izquierda
Los operadores && y || se pueden combinar entre sí paréntesis. normalmente se usarán : Función abs(x) cos(x).330>0 // el resultado es 1 // el resultado es 0 // el resultado es 1 // el resultado es 0 // el resultado es 1
FUNCIONES En los lenguajes de programación existen ciertas funciones predefinidas o internas que aceptan unos argumentos y producen un valor denominado resultado. Como funciones numéricas.
el operador de asignación. la expresión anterior se puede escribir también de la forma: x = (-b + sqrt((b * b) . en el momento de la ejecución es evaluada y sustituida por su resultado. la variable que está a la izquierda del signo (=). Por ejemplo. estrictamente hablando. Ya se verá que muchos tipos de sentencias incorporan expresiones aritméticas. lo cual quiere decir que esta expresión. lógicas o generales como componentes de dichas sentencias. Si nos fijamos en la expresión anterior. ejecutables en sí mismas. Las sentencias son unidades completas. la solución de la ecuación de segundo grado: se escribe. y puede contener paréntesis de varios niveles agrupando distintos términos. Aplicaciones electrónicas 15 / 47
Las funciones se utilizarán escribiendo su nombre. seguido de los argumentos adecuados encerrados entre paréntesis.) constituyen una sentencia. esta expresión es equivalente al valor 6. por ejemplo. sólo lo que está a la derecha del operador de asignación (=) es una expresión aritmética. 1+5 es una expresión formada por dos operandos (1 y 5) y un operador (el +). Una expresión es una combinación de variables y/o constantes. Programación en C. en la siguiente forma:
x=(-b+raiz((b*b)-(4*a*c)))/(2*a). y operadores.
. la expresión aritmética y el carácter (.Metodología de Programación.
donde. Por ejemplo. en una expresión. Una expresión puede estar formada por otras expresiones más sencillas. En las expresiones se pueden introducir espacios en blanco entre operandos y operadores.(4 * a * c)))/(2 * a) Sentencias Las expresiones son ítems elementales de una entidades que son las sentencias. Expresiones Ya han aparecido algunos ejemplos de expresiones en las secciones anteriores.
SENTENCIAS o ACCION COMPUESTA Muchas veces es necesario poner realizar un grupo de acciones determinado un lugar del programa . Aplicaciones electrónicas 16 / 47
SENTENCIA O ACCION SIMPLE Una sentencia simple es una expresión de algún tipo terminada con un carácter (.Metodología de Programación.
. Presentan por el dispositivo de salida estándar (pantalla). Una sentencia compuesta es un conjunto de declaraciones y de sentencias agrupadas dentro de llaves {.}.. Esto se realiza por medio de sentencias compuestas. declaradas ya las variables: espacio = espacio_inicial + velocidad * tiempo. velocidad=velocidad+media_velocidad . Un ejemplo de sentencia compuesta es el siguiente: { velocidad=espacio/tiempo . Un caso típico son las declaraciones de variables o las sentencias aritméticas. }
Instrucciones para Entrada y Salida de datos Salida La instrucción es Escribir( ) o Escribe( ). de acuerdo a una condición. masa = 9.) de finalización. Por ejemplo. variables o cadenas contenidas en la función. valores. m=masa*velocidad_media .5 . Escribe (x). Escribe (“El resultado es”). También se conocen con el nombre de bloque. Una sentencia compuesta puede incluir otras sentencias. simples y compuestas.. las expresiones. por ejemplo: Escribe (“Introducir el valor de la base”). Programación en C.
....”por la altura ”.
leer(x) .
. Aplicaciones electrónicas 17 / 47
Una sintaxis especial se requiere si deseamos presentar conjuntamente cadenas y variables: • • • Escribimos la cadena Separamos la variable con una coma . Programación en C.”es la superficie ”.
Cuando queremos recoger mas de un dato podemos utilizar esta forma: Leer (x.. .s)..a. Los tipos de datos introducidos deben coincidir con los de las variables que los recogen. Ejemplo: Escribe (“la base ”.34..b. introduciéndolos en las variables que forman parte de la instrucción. Si después va otra cadena entonces ponemos otra coma y escribimos la cadena.y) → Se respetará el orden de recogida con cual si se introduce desde el teclado 12.Metodología de Programación.
Entrada La instrucción es Leer( ). Hay dos formas de usarlas: . x=leer() .Toman los valores de forma interactiva desde el dispositivo de entrada estándar (teclado). la variable x=12 y la y=34.
Supongamos que queremos hacer un programa que nos calcule el área de un triángulo.a).. Un grupo de sentencias relacionado guardan la misma vertical. papel cuadriculado y letra clara. Primero debemos pensar que A=(b*h)/2...*/ si abarca a un párrafo..h. // mensaje en
Leer(b). Por tanto debemos recordar que un grupo de sentencias va entre llaves {. Programación en C. }
// Leemos la base // Leemos la altura // calculamos ..b. Si necesitamos un nuevo grupo de sentencias se tabula a la derecha. Una sentencia simple aislada no necesita llaves..
// Declaro las variables
Escribe (“Introducir el valor de la Base y la Altura :”). // Presentamos el resultado
.}. a=(b*h)/2. Leer(h). Escribe (“la superficie es : “. Cada sentencia termina por un . Una posible solución usando una secuencia de sentencias y expresiones sería: Inicio { entero a.. Lápiz. grande y limpia!!!.Metodología de Programación. Por lo tanto necesito pedir dos datos y presentar un resultado.. Aplicaciones electrónicas 18 / 47
Normas: (Adaptadas un poco al lenguaje C) • • • • • • • • Todos los programas comienzan por la palabra Inicio seguido de un grupo de sentencias. (Separador de sentencias) Como norma se declaran todas las variables al inicio del programa. En comentario comienza por // si es de 1 línea y por /* .
hallando posteriormente la media de cada una de las tres magnitudes.’Pepe’). m=x+1. c. y=’c’+1. y=x. n=x*x. m=Long(“Sabado”). y: carácter. p: entero.N-terminos . s: cadena x=7. la 2ª tiene radio 2R y la 3ª tiene radio 3R
.temporal1 .
5) Realizar en pseudocódigo un programa que calcule la longitud y el área total de tres circunferencias sabiendo que la 1ª de ellas tiene radio R que será introducido por teclado. Aplicaciones electrónicas 19 / 47
Problemas de pseudocódigo: Declaración de Variables y Programas secuenciales
1) Decir si son correctos o no los siguientes identificadores de variables: contador 2temporal Valor$curso . z=x-m.num_bytes .MeDiaGeom
2) Escribir en pseudocódigo las siguientes expresiones matemáticas: ( x + 5) y−2 Sen( x ) + Cos ( y ) 2− y
( x − 3) 2 + 2( z − 5) + 3 y 3 − 7
3) Dada la siguiente declaración de variables.Metodología de Programación. z.Media_Aritm . s=’Hola’ c= Concat(“Hola”. introduciendo por teclado el espacio y el tiempo. m. comprobar el siguiente pseudocódigo indicando los posibles reales y los de ‘alta probabilidad de error’: x: entero.
4) Realizar en pseudocódigo un programa que calcule de forma individual la velocidad de 5 cuerpos.0.N_numeros . p=z/10. n. t=m+1.t: real. Programación en C.
. x=x+3 ... Las distintas estructuras de las que disponemos son:
. z=x+y. puede necesitar unas variaciones de acuerdo con el cumplimiento o no de alguna-as condiciones.Metodología de Programación.. Se ejecutan de forma secuencial (una detrás de otra) y no puede verse alterado el orden de ejecución..
// asignamos a x el valor 5 // lo mismo con y // asignamos a z el valor x+y // incrementamos x en 3
En ciertos programas la evolución natural del mismo durante su ejecución. Mediante las estructuras selectivas podemos tomar decisiones. Por ejemplo:
x=5... y así sucesivamente. luego la acción2.. y=7. Gráficamente:
En primer lugar se ejecutaría la accion1. Programación en C. Aplicaciones electrónicas 20 / 47
Programación en Pseudocódigo: Estructuras de programas
Cualquier programa puede ser realizado con una combinación de las siguientes estructuras de sentencias que definimos a continuación: Secuencial Selectiva Repetitiva
En esta estructura cada acción se ejecuta en el orden preestablecido por como son enumeradas a lo largo del programa. . en las cuales se evalúa una condición y en función del resultado se ejecutará o no una acción o acciones.
Programación en C..Metodología de Programación.. x=x*x. Aplicaciones electrónicas 21 / 47
Selección Incompleta (simple)
La estructura alternativa simple si-entonces ejecuta una determinada acción cuando se cumple una determinada condición.. leer (x).. entonces no hacer nada y el programa continua con la siguiente instrucción. } Por ejemplo: Aquí contemplamos sólo una acción en el caso en que se cumpla la condición: (solo hallamos la raíz) . La selección sÍ-entonces evalúa la condición y -si la condición es verdadera. ... // Obtenemos x desde el teclado // si x es positiva hallamos la raíz // hacemos x2 // Escribimos el valor de x
.. si (x>=0) entonces y= raíz(x)....... Escribe (x).
Las representación gráfica de la estructura condicional simple se muestran en la siguiente figura: Pseudocódigo en español si (condición) entonces < acción1 >
Pseudocódigo acciones)
si (condición) entonces {<acción1 > <acción2> . entonces ejecuta la acción (o acciones) y si la condición es falsa. ....
Estructura de selección completa
Se emplea cuando queremos matizar qué acción (a partir de ahora en el lugar
donde se cite acción se sobreentiende que también puede ser acciones)
se realizará cuando sí
se cumple la condición y cual se hará cuando no se cumpla. y= raíz(x).Metodología de Programación. Su pseudocódigo es el siguiente:
Pseudocódigo en español si (condición) entonces <acción1 > sino <acción2> (Ver la tabulación a →) Gráficamente:
(con acción compuesta)
si (condición) entonces { accion1... } x=x*x*x.. . si (x>=0) entonces { y= raíz(x). Escribe (raíz (x)). accion2.. } Ejemplo: leer (x). Aplicaciones electrónicas 22 / 47
En este vemos como se representa un grupo de acciones: .. leer (x)... } sino { acción3. } sino Escribe (“No podemos con x<0)
. .. Programación en C. .... si (x>=0) entonces { Escribe (x).. Escribe (x.
..Metodología de Programación.... x=1/x.
La representación gráfica de la estructura de decisión múltiple es:
En pseudocódigo: según (valor) V1: V2: V3: V4.. Raíz(x). Aplicaciones electrónicas 23 / 47
Selección múltiple (según (valor) )
A veces es necesario que existan más de dos elecciones posibles Este problema se podría resolver por estructuras selectivas simples o completas que estuvieran anidadas o en cascada. } 2: { Leer (x). accionn
..V5: . Programación en C. se realizará una de las n acciones. Escribe (“Elegir la opción del menú: “). La estructura de decisión múltiple evaluará una expresión que podrá tomar n valores distintos (siempre un valor enumerado). Leer (opción) según (opción) 1: { Leer(x).. Vn: Ejemplo: . } accion1 accion2 accion3 accion4 . sin embargo por este método si el número de alternativas es grande puede plantear serios problemas de escritura del algoritmo y naturalmente de legibilidad. Según que elija uno de estos valores en la condición.
Cuando se utiliza un bucle para sumar una lista de números. En pseudocódigo: Inicio { entero numero..suma. ya que. }
y así sucesivamente para cada número de la lista (los 25 alumnos!!!) . suma=0. Leer (numero). suma=suma+numero. calificaciones de los alumnos de una clase. por un lado nos permite ahorrar muchas líneas de programa y en otros casos no seria posible resolverlo.. Leer (numero).. Por ejemplo: supongamos que se desea sumar una lista de 25 números escritos desde teclado -por ejemplo. Este es un tipo muy importante de estructura.. Aplicaciones electrónicas 24 / 47
ESTRUCTURAS DE CONTROL REPETITIVAS Algunas veces nos podremos encontrar ciertas tareas dentro de un programa que deben repetirse un numero determinado o indeterminado de veces. . el algoritmo repite muchas veces las acciones. se necesita saber cuántos números se han de sumar. Las estructuras que repiten una secuencia de instrucciones un número determinado de veces se denominan bucles y se denomina iteración al hecho de repetir la ejecución de una secuencia de acciones.Metodología de Programación.. Para ello necesitaremos conocer
. . suma=suma+numero. La variable SUMA se hace igual a cero ya continuación se incrementa en el valor del número cada vez que uno de ellos se lea. En otras palabras. Hasta ahora lo que haríamos es leer los números en una variable y añadir sus valores a una variable SUMA que contenga las sucesivas sumas parciales. Programación en C.
Pues esas son las estructuras de repetición. Necesitaríamos ‘algo’ que permitiera repetir el leer datos hasta que escribiera el –1. por lo tanto debemos conocer obligatoriamente el numero de veces (iteraciones) que se realizaran. Un profesor quiere meter las notas pero debe tener la posibilidad de parar de meterlas cuando el quiera.Metodología de Programación.. Programación en C.
Estructura desde. por ejemplo cuando escriba el –1. o bien que mientras lo que leemos sea distinto de –1. Aplicaciones electrónicas 25 / 47
algún medio para finalizar el bucle.
hasta i=10
Es aquella en la que la acción o grupo de acciones se repetirá mientras se cumpla la condición y en el momento en que no se cumpla se saldrá del bucle:
.. En el ejemplo anterior se repetiría desde 1 hasta 25 la acción de pedir la nota. Otra variante del bucle la podemos pensar con el siguiente ejercicio. ¿Cuántas líneas tipo Leer(x) habría que poner? (¿Comooorl?). leamos notas.hasta
Una variable contendrá los valores el numero de veces que queramos realizar una secuencia de código. Con lo que conocemos de programación hasta ahora ¿Cómo se plantearía el programa?.
En pseudocódigo: i=indice
desde i=valor_inicial hasta i=valor_final incremento valor
si es 1 se omite
<acción>.
Es aquella en la que la acción o grupo de acciones se repetirá hasta que se cumpla la condición y en el momento en que se cumpla se saldrá del bucle:
repetir < acciones > hasta (condición)
Con una estructura repetir. Cuando una instrucción repetir se ejecuta. el bucle termina y el programa sigue en la siguiente instrucción a hasta.Metodología de Programación. si es verdadera. el cuerpo del bucle se ejecuta siempre al menos una vez. Aplicaciones electrónicas 26 / 47
Gráficamente: En pseudocódigo: mientras (condicion) { acciones.. Programación en C. la expresión booleana se evalúa. Después de cada iteración del cuerpo del bucle. Si se evalúa como falsa.. la primera cosa que sucede es la ejecución del bucle ya continuación se evalúa la expresión booleana resultante de la condición..
.. .. el cuerpo del bucle se repite y la expresión booleana se evalúa una vez.
Para usar la estructura mientras se debe estar seguro de que se cumplirá la condición de entrada. En la estructura repetir el cuerpo del bucle se ejecuta siempre al menos una vez. Programación en C.Metodología de Programación. Aplicaciones electrónicas 27 / 47
Diferencias de las estructuras mientras y repetir
La estructura mientras termina cuando la condición es falsa. mientras
que repetir termina cuando la condición es verdadera. mientras es más general y permite la posibilidad de que el bucle pueda no ser ejecutado.
. Cuando la matriz es de una dimensión se denomina vector... y cada elemento de la matriz ocupa en memoria lo mismo que si estuviera almacenado en una variable. Por tanto una matriz es una colección de datos del mismo tipo. lo que significa que al declarar una matriz se reserva la memoria que necesita. matrices y cadenas de caracteres
Las matrices o vectores surgen en informática por la necesidad de manejar un número determinado de datos del mismo tipo. Programación en C. La idea esta tomada del concepto matemático de matriz. independientemente del numero de valores que haya en la matriz.
Así por ejemplo un vector de 5 elementos de tipo entero se declara y representa: entero x [5]
. y que además están alojados consecutivamente en la memoria..Metodología de Programación. y a partir de 2 dimensiones se llama matriz.
La forma de declarar una matriz es:
1 dimensión: tipo nombre [nº_elementos] 2 o mas: tipo nombre [nº_elementos] [nº_elementos] . Aplicaciones electrónicas 28 / 47
Vectores.. A los elementos de la matriz se puede acceder de forma individual mediante un índice.. Las matrices son estructuras estáticas de datos.
. Para definir tamaños son particularmente útiles las constantes simbólicas.1
0.. y el ultimo el x[4].
indices del 0 al 4
1. El tamaño de un vector puede definirse con cualquier expresión constante entera. Programación en C. el primer elemento será el x[0].
Para referenciar los elementos de un vector se utiliza la siguiente notación: nombre_matriz [nº_elemento]
Así. Si declaramos entero m [2][5] el primer elemento es el m[0][0].. el segundo el x[1] .. y el ultimo m[1][4]. el segundo el m[0][1] .3
1.Metodología de Programación... Aplicaciones electrónicas 29 / 47
Una matriz de 2 x 5 seria:
entero x [2] [5]
// filas y columnas
Los elementos se numeran y referencian con un índice que va desde 0 hasta (numero_elementos-1).. si declaramos el vector entero x [5].
pero esta variable es una posición de la matriz: Ejemplos x[4] = 0. 3. // restantes elementos a 0 entero mat[3][2] = {{1.
– Inicializándolo en la misma declaración.}.. 2. Programación en C. // equivale a
real d[3] → está implícito por el numero de valores
entero f[100] = {0}. {5. La forma de introducir o leer el contenido de los elementos en la matriz es similar a la asignación o lectura del valor de una variable. 1. desde i=0 hasta i=n-1 incr 1 Leer (vect[i] ). .. 2}. 2. 3}. // todo se inicializa a 0 entero h[10] = {1..Metodología de Programación.8. . sino que hay que tratar sus elementos individualmente por medio de bucles o los elementos propiamente dichos. x[3] = 30.. {3...
INICIALIZACIÓN DE VECTORES Y MATRICES
La inicialización de un vector se puede hacer de varias maneras: – Declarando el vector como tal e inicializándolo luego mediante lectura o asignación por medio de un bucle desde..2.. en la forma:
real v[6] real d[ ]
= {1.. 5... 4}. 2.x[1]/x[5].1}.. Aplicaciones electrónicas 30 / 47
No se puede operar con todo un vector o toda una matriz como una única entidad.. hasta:
n=12 real vect[n].
. x[0] = 3. 6}}.4. 3. * x[0]. 3. = {1. * x[1] . x[3] = (x[0] + x[2])/x[3].
el elemento (i. La forma general de la declaración es: tipo nombre[numero_filas][numero_columnas]. Aplicaciones electrónicas 31 / 47
Una cadena de caracteres no es sino un vector de tipo carácter. donde tanto las filas como las columnas se numeran también a partir de 0. 0) + i * M + j
A esta fórmula se le llama fórmula de direccionamiento de la matriz. como en el siguiente ejemplo: carácter ciudad[20] = "Albacete". y éste se almacena en la parte inicial de la cadena (a partir de la posición cero del vector). con corchetes independientes para cada subíndice. frases. una cadena tal como "marco" ocupa 6 bytes (para las 5 letras y 1 para el '\0'). etc. Las cadenas suelen contener texto (nombres. Para separarla parte que contiene texto de la parte no utilizada. Se declaran de forma análoga. Este carácter se introduce automáticamente al leer o inicializar las cadenas de caracteres.). El resto del espacio reservado –hasta la posición ciudad[19]– no se utiliza. De modo análogo. j) ocupa el lugar: posición_elemento(0. Programación en C. se utiliza un carácter fin de texto que es el carácter nulo ('\0') según el código ASCII. Si una matriz tiene N filas (numeradas de 0 a N-1) y M columnas (numeradas de 0 a la M-1).
Es de destacar el estudio de los vectores de 2 dimensiones :las matrices. con alguna particularidad que conviene resaltar. en posiciones consecutivas de memoria. donde a los 8 caracteres del nombre de esta ciudad se añade un decimocuarto: el '\0'. en la memoria se almacenan por filas.
Las matrices (mxn).
.Metodología de Programación.
.. Para declarar una variable de tipo estructura o registro se emplea la siguiente notación: estructura nombre_estr <nombre_variable>
Por ejemplo. el número de matrícula. Su forma general es mediante la palabra registro o estructura :
estructura nombre_estr { tipo nombre1. El modelo de esta estructura puede crearse del siguiente modo:
estructura alumno { carácter nombre[31].
De momento solo hemos declarado un tipo de datos. es decir. Cada uno de estos datos se denomina campo o miembro de la estructura.. la dirección.. carácter direccion[21].. entero telefono. a la que se llamará alumno. Aplicaciones electrónicas 32 / 47
Uno de los inconvenientes que tiene una matriz es que por definición todos los datos son del mismo tipo. y las notas en las 10 asignaturas.. }. }. entero no_matricula.. el teléfono. deberá guardar el nombre.Metodología de Programación. . supóngase que se desea diseñar una estructura que guarde los datos correspondientes a un alumno. esta estructura. real notas[10]. tipo nombre2. Una estructura es una forma de agrupar un conjunto de datos de distinto tipo bajo un mismo nombre o identificador. no podemos mezclar un real con un carácter. Programación en C.
pero aún no hay ninguna variable declarada con este nuevo tipo. alumno2.
También podrían haberse definido alumno1 y alumno2 al mismo tiempo que se definía la estructura de tipo alumno. y para guardar la dirección de este mismo alumno. } alumno1. se escribirá: alumno1. Programación en C.
Para acceder a los miembros de una estructura se utiliza el operador punto ( . precedido por el nombre de la variable y seguido del nombre del campo :
variable .telefono = 903456. carácter dirección[21]. Para declarar una variable de tipo alumno se debe utilizar la palabra estructura y el nombre que le hemos dado (alumno) :
estructura alumno alumno1.
. se escribirá: alumno1. campo
Por ejemplo. Para ello bastaría haber hecho: estructura alumno { carácter nombre[31]. real notas[10]. entero telefono.direccion = "C/ Rios Rosas 1. Recordar que es un separador de sentencias. Aplicaciones electrónicas 33 / 47
El pseudocódigo anterior crea el tipo de dato alumno.) después de cerrar las llaves.2-A". Obsérvese la necesidad de incluir un carácter (. para dar valor al telefono del alumno alumno1 el valor 903456.Metodología de Programación.).alumno2 . entero no_matricula.
alumno1. sabemos que una matriz es una colección de variables del mismo tipo y que se pueden utilizar de forma independiente mediante su índice. y la forma más inmediata es mediante el empleo de una matriz.
De todas formas no es efectivo ni muy útil el uso de 1 solo registro. con lo cual habrá que declarar una matriz de registros.Metodología de Programación. y clase[300] es una matriz de estructuras con espacio para almacenar los datos de 300 alumnos. alumno1 es una estructura de tipo alumno y consta de 1 sólo registro.mes. por ejemplo:
estructura fecha
{ entero dia. Programación en C. }.
estructura ficha
{ carácter nombre[20].
En este caso.no_matricula. clase[300].telefono calculo=9. luego el número de matrícula del alumno 264 podrá ser accedido como clase[264].año.
Para terminar una estructura puede.notas[3]=calificacion.
Para acceder al contenido de las diferentes estructuras utilizaremos la misma notación. }
. Aplicaciones electrónicas 34 / 47
De esta forma podemos tanto leer el contenido de un campo del registro. a su vez. Lo normal es emplear varios.7. fecha nacimiento. contener a otra estructura. lo cual no debe preocuparnos pues el nombre de la estructura es considerado como un TIPO : Por ejemplo: estructura alumno alumno1 . como escribirlo: x= alumno1.
Programación en C. mes1= alumno.mes. alumno.
Las operaciones serían: alumno.dia=12.nombre=”Pepe Garcia”. Aplicaciones electrónicas 35 / 47
La declaración sería: estructura ficha alumno.Metodología de Programación.nacimiento.nacimiento.
Se denomina descendente ya que se inicia en la parte superior con un problema general y luego abajo el diseño específico de las soluciones en los subproblemas. e incluso puede ser reutilizada por otros programas. Cada función tiene una misión muy concreta. planteando los requerimientos de variables. Modularización.Metodología de Programación. una misma función puede ser llamada muchas veces en un mismo programa.
La solución de estos subproblemas se realiza con subprogramas. Aplicaciones electrónicas 36 / 47
Subprogramas : Programar con funciones
La resolución de problemas complejos se facilita considerablemente si se dividen en problemas más pequeños (subproblemas). y un procedimiento es un subprograma que puede devolver además datos de tipo estructurado.
La división de un programa en unidades más pequeñas o funciones presenta –entre otras– las ventajas siguientes: 1. el cuerpo del programa principal y luego el código de los subprogramas. Programación en C. Una función va a ser un subprograma que nos devuelve un dato de tipo estándar. Cada función puede ser desarrollada y comprobada por separado.
Los subprogramas pueden ser de dos tipos: funciones y procedimientos. Además. de modo que nunca tiene un número de líneas excesivo y siempre se mantiene dentro de un tamaño manejable. En lenguaje C solo existen las funciones. Normalmente las partes en que se divide un programa deben poder desarrollarse independientemente entre sí.
. Su uso permite al programador desarrollar programas más complejos utilizando un método de diseño descendente.
Cuando se ejecuta una función se dispone de un espacio de memoria propio.Metodología de Programación. ya que la estructura de cada unidad de programa puede ser estudiada independientemente de las otras unidades de programa. manteniendo sus propios datos y definiendo muy claramente la interfaz o comunicación con la función que la ha llamado y con las funciones a las que llama.
En definitiva las funciones se escriben solamente una vez. pero pueden ser referenciados en diferentes puntos de un programa de modo que se puede evitar la duplicación del código y son independientes del programa principal ya que los subprogramas o módulos pueden ser verificados independientemente del resto del programa lo cual facilita considerablemente la localización de un error. y no teniendo ninguna posibilidad de acceso a la información que no le compete. Aplicaciones electrónicas 37 / 47
2. En cuanto al tiempo de desarrollo. Programación en C. Independencia de datos y ocultamiento de información. Ahorro de memoria y tiempo de desarrollo. se introduzcan nuevos errores en partes del programa que antes funcionaban correctamente. Una de las fuentes más comunes de errores en los programas son los efectos colaterales o perturbaciones que se pueden producir entre distintas partes del programa. Es muy frecuente que al hacer una modificación para añadir una funcionalidad o corregir un error. Los programas desarrollados de este modo son normalmente también más fáciles de comprender. en la medida en que una misma función es utilizada muchas veces. Una función es capaz de mantener una gran independencia con el resto del programa. independiente del programa principal y además este espacio se libera cuando deja de utilizarse la función. el número total de líneas de código del programa disminuye. y también lo hace la probabilidad de introducir errores en el programa.
Un subprograma puede realizar las mismas acciones que un programa principal como aceptar datos. área { salida de resultados}
El problema principal se soluciona por el correspondiente programa o algoritmo principal y la solución de los subproblemas mediante subprogramas o funciones. Aplicaciones electrónicas 38 / 47
Por ejemplo retomemos el ejemplo del problema del cálculo de la superficie (área) de un rectángulo.Metodología de Programación. realizar algunos cálculos y devolver resultados. Se dice que el programa principal llama o invoca al subprograma. Un subprograma puede llamar a su vez a otros subprogramas. Programación en C. El algoritmo correspondiente que resuelve los tres subproblemas es: leer datos (altura. el control retorna al lugar de donde fue hecha la llamada. se utiliza por el programa principal para un propósito específico. Este problema se puede dividir en tres subproblemas:
Subproblema 1: entrada de datos de altura y base.
El subprograma recibe datos desde el programa principal y le devuelve resultados. sin embargo.
Cada vez que el subprograma es llamado. base) área = base * altura {entrada de datos} { cálculo de la superficie }
escribir base. Subproblema 3: salida de resultados. Subproblema 2: cálculo de la superficie. esto queda representado en los gráficos siguientes:
. Un subprograma.
X es un parámetro formal utilizado en la definición de la función. Para evaluar f debemos darle un valor a x... En toda función hay que distinguir entre su prototipo o declaración. Con x = 3 se obtiene el valor 0. por ejemplo
donde f es el nombre de la función y x es el argumento.
Así. con este valor se puede calcular el resultado. que se utiliza para referirse a ella desde el resto del programa..3
Una función es una conjunto de código que puede o no tomar o recibir uno o más valores llamados argumentos y produce o no. su código o implementación y su llamada. un valor denominado resultado o valor de retorno. Para explicar estos conceptos hay que introducir los conceptos de valor de retorno y de argumentos.
tipo devuelto nombre_función ( arg1 . Aplicaciones electrónicas 39 / 47
Una función está asociada con un identificador o nombre. arg2 .Metodología de Programación. Programación en C...
La llamada a la función es el acto de utilizarla.Metodología de Programación. solamente un único valor se devuelve desde la función para cualquier conjunto dado de argumentos. entero) ^---------^-------------. que es el concepto de llamada. Los pasos son los siguientes:
El concepto más próximo al usuario. Programación en C. Sin embargo. Aplicaciones electrónicas 40 / 47
es una función con dos argumentos. que esta compuesto por:
tipo de dato devuelto ( * ponemos nada si no devuelve ningún valor) nombre de la función sólo el tipo de los argumentos de entrada/salida (lo mismo que en *)
Así por ejemplo si queremos hacer una función que recoja como datos de entrada la base y la altura de un triángulo y nos calcule el área tendríamos el siguiente prototipo:
entero ^-valor de salida
Area ^-nombre función
(entero .
Particularmente en Lenguaje C cuando vamos a utilizar una función dentro de un programa debe especificar en un primer momento lo que se denomina prototipo de la función.
Aplicaciones electrónicas 41 / 47
Si la función devuelve un valor se la llama asignando a una variable que recoja el resultado
Se llama incluyendo el nombre de la función seguido de los argumentos.. . La primera palabra real indica el tipo del valor de retorno.5)
Posteriormente cuando cerramos la llave del programa principal es cuando viene la implementación del código de la función:
Inicio { real x. Después viene el nombre de la función seguido de.. }
La primera línea de la definición es particularmente importante.. Programación en C. resultado = base*altura .... .. Los argumentos se separan por comas. // llamada a la función x= Area (3. entero altura) { real resultado. En este caso hay dos argumentos.. . . Esto quiere decir que el resultado de la función será un número real.. que son
.. .. como una sóla sentencia del programa principal.5)...... la definición de los argumentos y de sus tipos respectivos.. base y altura.Metodología de Programación.. } // fin programa principal
// Implementación de la función real Area (entero base. entre paréntesis. devuelve resultado.
Por ejemplo: x= Area (3... .
Programación en C. entero) Inicio { entero x.. Finalmente. Si profundizamos ahora un poco en la estructura que tendría un programa con funciones..
Las variables utilizadas en los programas principales y subprogramas se clasifican en dos tipos: variables locales variables globales
.. . b) { entero z.. a grandes rasgos seria similar a este: entero f (entero. real y.... Después vendrían las sentencias necesarias para calcular resultado.. Aplicaciones electrónicas 42 / 47
ambos de tipo entero. }
Podemos observar que existen variables en el programa principal y también hay otras distintas en la implementación de la función. que es también de tipo real. por lo que explicamos ahora el concepto de visibilidad o ámbito. devuelve z. . con la sentencia devuelve se retorna el resultado. La primera sentencia declara la variable resultado. .Metodología de Programación. }
entero f (entero a. A continuación se abren las llaves que contienen el código de la función..
AMBITO: VARIABLES LOCALES y GLOBALES
La parte del programa principal o función en que una variable se define y se puede utilizar o alterar su contenido se conoce como Ambito.. . x= f (3. ...6)..
Por el contrario. La figura muestra un esquema de un programa con diferentes subprogramas con variables locales y otras globales. El significado o visibilidad de una variable se confina a la función en el que está declarada. las variables globales tienen la ventaja de compartir información de diferentes subprogramas sin una correspondiente entrada en la lista de parámetros. aquí se muestra el ámbito de cada definición. en el sentido de que está dentro de ese subprograma y es distinta de las variables con el mismo nombre declaradas en cualquier parte del programa principal. Aplicaciones electrónicas 43 / 47
• Una variable local es aquella que está declarada y definida dentro de un subprograma.
. no pueden utilizar este valor. • Una variable global es aquella que está declarada para el programa principal. Programación en C.
Una variable local a un subprograma no tiene ningún significado en otros subprogramas. Cuando otro subprograma utiliza el mismo nombre se refiere a una posición diferente en memoria. En particular. es decir. Se dice que tales variables son locales al subprograma en el que están declaradas. hace a las funciones independientes y se establece la comunicación entre el programa principal y los subprogramas a través de la lista de parámetros o argumentos. este valor no es accesible a otros subprogramas. Si un subprograma asigna un valor a una de sus variables locales.Metodología de Programación. El uso de variables locales tiene muchas ventajas.
Metodología de Programación. este devuelve un valor calculado por dicha función.
Los métodos mas empleados para realizar el paso de parámetros son:
-paso por valor (también conocido por parámetro valor).
Los parámetros pueden ser clasificados como
se proporcionan valores desde el programa que los llama y que se utilizan dentro del subprograma. Es preciso conocer el método adoptado por cada lenguaje. Programación en C.
un solo parámetro se utiliza para mandar argumentos a un programa y para devolver resultados. Dicho de otro modo. un mismo programa puede producir diferentes resultados bajo diferentes sistemas de paso de parámetros . Aplicaciones electrónicas 44 / 47
Pasamos ahora a estudiar qué ocurre en la llamada a una función. Paso de parámetros
Existen diferentes métodos para la transmisión o paso de los parámetros a subprogramas. -paso por referencia o dirección (también conocido por parámetro variable). ya que no siempre son los mismos.
las salidas producen los resultados del subprograma.
x=x*x. y. Programación en C. x=m.
Aquí podemos ver que se realiza una copia de los valores de los argumentos en la llamada al procedimiento en las variables X. Ppal.
entero f (entero). Inicio { entero x. Y. y= f(x). En la llamada a la función se hace una copia del valor de la variable x del programa principal en la variable m de la función. Z . m=x*x. Una vez dentro de la función se declara otra variable x que es distinta a la del prog. Aplicaciones electrónicas 45 / 47
Los parámetros se tratan como variables locales y los valores iniciales se proporcionan copiando los valores de los correspondientes argumentos. Leer (x). Aquí se muestra el mecanismo de paso por valor de un procedimiento con tres parámetros. }
Si en la ejecución de este programa damos a x el valor 5. devuelve (m).. Escribe (x. Los parámetros locales a la función reciben como valores iniciales los valores de los parámetros actuales y con ello se ejecutan las acciones descritas en el subprograma. la siguiente línea lo incrementa en 1 y llamamos a la función con f(6). pero en ningún caso los valores de A y B se verán modificados.Metodología de Programación. siendo después asignada al valor
. x=x+1.y) }
//Prototipo de la función f
entero f (m) { entero x.
ppal o devolver algún valor más. m=x. Inicio { entero x.y) }
entero f ( dir m) { entero x. ppal escribimos los valores de x e y dando como resultado x=6 e y=36. devuelve (2x). }
Si llegamos a la llamada con f(6). x=m.
Se utiliza el paso por variable cuando el subprograma debe modificar el contenido de una variable del prog.Metodología de Programación.
Por ejemplo si la función anterior la modificamos así:
entero f (dir entero). Aquí finaliza la llamada a la función. luego hacemos el cuadrado. Leer (x).
Paso por referencia (dirección) o variable
Los parámetros por variable se deben definir en la cabecera del subprograma. x al cuadrado (36). operador que nos indica la dirección de memoria física que ocupa esa variable. y. Escribe (x. al ser un paso por variable o dirección. Por tanto dentro de la función hacemos x=6. lo asignamos a m y retornamos el valor. En pseudocódigo de C deben ir precedidos por la palabra dir. con lo que en el prog.
. Programación en C. x=x*x. y= f(dir x). m=36 y devolvemos 2x. significa que la variable m de la función f tiene la dirección de memoria de la variable x lo que significa que cualquier cambio del valor de m se verá reflejado en x. ppal escribiremos x=36 e y=72. Aplicaciones electrónicas 46 / 47
de m. recordemos que una función solo devuelve un valor directamente. x=x+1. En el prog. Es muy importante comprender este mecanismo.
mientras que en i se copia el valor de radio. definición de la función area_circulo ( i .
entero area_circulo (i. devuelve (1). Algoritmos y estructuras de datos Cap. ppal.Metodología de Programación.
Bibliografía utilizada: • • Fundamentos de la programación.a). } Si el radio es 2. en la llamada se copia en j la dirección de y. Programación en C. dir j ) { si (i>0) entonces { j=3. donde i es el radio y j será el área y la función devolverá un 1 si todo ha ido bien.1416 * i * i. }
entero area_circulo (i. } sino devuelve (0). Al ser j una variable por valor o dirección su contenido se vera reflejado en la variable y del prog. Aplicaciones electrónicas 47 / 47
Ejemplo. dir j) Inicio { Leer (radio)
// Prototipo de la función
m= area_circulo (radio. dir y) si (m) entonces escribe (“Calculo correcto. 4 y 5 Ed. j ) . área = “. McGraw Hill Programación en Pascal a través de Pseudocódigo
Linea Del Tiempo Tics en La Ed SuperiorEDUCACION MATEMATICA REALISTATarea Emr.pdfMODELOS EDUCATIVOS
ALGORITMOS Y PSEUDOCODIGO by Blanca Lirio Romero Salazar46 viewsEmbedDownloadRead on Scribd mobile: iPhone, iPad and Android.Copyright: Attribution Non-Commercial (BY-NC)List price: $0.00Download as PDF, TXT or read online from ScribdFlag for inappropriate contentMore informationShow less
RelatedConceptosprogramacion.docby Jorge ContiniPseudocodigoby Camilo Andres Hurtado CifuentesPseudocodigoby Jessica Camuñas ColladoLenguajesAlgoritmicosExcelenteby Aprender LibreEstructuras Repetitivasby Profa Lucía SanteramoAspectos Generales de La InvestigaciÓnby jaenvaoperadores aritmeticosby 19592130pseudocodigo ejemplosby alejandrojarSimilar to pseudocoConceptosprogramacion.docPseudocodigoPseudocodigoLenguajesAlgoritmicosExcelenteEstructuras RepetitivasAspectos Generales de La InvestigaciÓnoperadores aritmeticospseudocodigo ejemplosEjemplos de AlgoritmosIntroducción a la ProgramaciónEstructuras Cíclicas I

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución