Source: http://docplayer.es/277346-Resolucion-de-problemas-por-computadoras.html
Timestamp: 2016-10-23 18:11:32+00:00

Document:
⭐Resolución de problemas por computadoras
Download "Resolución de problemas por computadoras"
Guillermo Carmona Quintana
1 Metodología de Programación, Programación en C, Aplicaciones electrónicas 1 / 47 ALGORITMOS Y PROGRAMAS Resolución de problemas por computadoras 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 Fase de resolución del problema Esta fase incluye, a su vez, el análisis del problema así como el diseño y posterior verificación del algoritmo. Análisis del problema 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:2 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. - Definido: Si se sigue el algoritmo varias veces proporcionándole ( consistente ) los mismos datos, se deben obtener siempre los mismos resultados. - Finito: 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. - Salida: Respuestas dadas por el algoritmo o resultados finales 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:3 Metodología de Programación, Programación en C, Aplicaciones electrónicas 3 / 47 Especificaciones de entrada Que datos son de entrada? Cuántos datos se introducirán? Cuántos son datos de entrada válidos? Especificaciones de salida 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. Verificación de algoritmos 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.4 Metodología de Programación, Programación en C, Aplicaciones electrónicas 4 / 47 Fase de implementación 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???? Tipos de Datos básicos entero: 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,5 Metodología de Programación, Programación en C, Aplicaciones electrónicas 5 / 47 normalmente 2 bytes, Para números positivos, con 16 bits se pueden almacenar 2 16 = números enteros diferentes: de 0 al 65535, y de al para números con signo. Por ejemplo 2, 14, -199,... 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, por tanto: +, -, *, división div (cociente), modulo mod (resto), sucesor, predecesor, es_par * (*) es_par(n) si n es par devuelve un 0 sino, un 1. real: Subconjunto de los números reales limitado no sólo en cuanto al tamaño, sino también en cuanto a la precisión. Suelen ocupar 4, 6 ó 10 bytes. Se representan por medio de la mantisa, y un exponente ( 1E-3 = 0 001), 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). El orden es de hasta Por ejemplo 6.9, , 3E Las operaciones asociadas serian +, -, *,,etc. Y las operaciones de sucesor y predecesor? Lógico: Conjunto formado por los valores Cierto y Falso. 1 y 0. Operaciones: todas las lógicas y relacionales AND, OR, >, < == (igual), >=, <=,...6 Metodología de Programación, Programación en C, Aplicaciones electrónicas 6 / 47 Carácter: Conjunto finito y ordenado de los caracteres que el ordenador reconoce. se almacenan en un byte. Con 8 bits se podrán almacenar 2 8 = 256 valores diferentes (normalmente entre 0 y 255; con ciertos compiladores entre -128 y 127). Un carácter (letra) se guarda en un solo byte como un número entero, el correspondiente en el código ASCII, 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. Por ejemplo, la letra A está en la fila 6 y la columna 5. Su número ASCII es por tanto el 65. El carácter % está en la fila 3 y la columna 7, por lo que su representación ASCII será el 37. Los caracteres se representan entre comillas simples a, D... y abarcan desde 0.. 9, a.. z y A.. Z. Un espacio en blanco ( ) también es un carácter. Por tratarse de un tipo de datos enumerados y con una7 Metodología de Programación, Programación en C, Aplicaciones electrónicas 7 / 47 representación como la de un entero podemos aplicar, además de las operaciones de los tipos enteros, las siguientes: ord(carácter) numero car(numero) carácter Así ord( A ) 65 y car(37) %, A +3= D...!!! Cadena: Los datos de este tipo contendrán una serie finita de caracteres. Podrán representarse de estas dos formas: H O L A == HOLA, No es lo mismo H que H, ya que el primero es una cadena y el segundo un carácter. Las operaciones relacionadas con las cadenas son: Concatenar(C 1,C 2 ), Longitud(C 1 ), Extraer (C 1,N), ejemplos: C 1 = Hola, C 2 = Pepeeerl C 3 = Concatenar(C 1,C 2 ) C 3 = HolaPepeeerl X= Longitud (C 2 ) X=8 C 3 =Extraer(C 1,3) C 3 = Hol Entero, Real, Carácter, Cadena y Lógico son tipos predefinidos en la mayoría de los lenguajes de programación. Además el usuario podrá definir sus propios tipos de datos, si estos facilitan de alguna manera la resolución del problema.8 Metodología de Programación, Programación en C, 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,libra,franco,marco) dia=(l,m,x,j,v,s,d) Cada elemento tiene un número de orden asociado, y comenzando desde el cero. Estos tipos no se pueden leer por teclado. Subrango: Son un subconjunto finito de un tipo definido por el usuario y, en general, de cualquier tipo que tenga sucesor y predecesor, como los enteros y carácter. Ejemplo: Muy esquemáticamente : tipo flojas=peseta..franco laboral=l..v minusculas= a.. z aceptado=9 Metodología de Programación, Programación en C, 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.ej. 45, 3.4, a, etc. ( constante ) - Una Constante p.ej. PI= Una Variable p.ej x,y,z,t. Constantes Son datos cuyo valor no cambia durante todo el desarrollo del programa. Las constantes podrán ser literales o con nombres. Las constantes literales serán un valor propiamente dicho y las que tienen nombre se identifican por su nombre y el valor asignado. Tendremos pues constantes: Numéricas enteras: 12,34,-44,22234, -9837,m=12,n= Numéricas reales: 12.55, -3E3, PI= Lógicas: Sólo existen dos constantes lógicas 0,1 Carácter: n= a, k= 1,... Cadena: saludo= hola, s= si, n= no... Variables Una variable es un dato representado por una posición determinada de memoria cuyo valor puede cambiar durante el desarrollo del algoritmo. Se identifica por su nombre y por su tipo, que podrá ser cualquiera, y es el que determina el conjunto de valores que podrá tomar la variable. 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. El nombre asignado a la variable se denomina identificador y tiene las siguientes reglas:10 Metodología de Programación, Programación en C, Aplicaciones electrónicas 10 / Un identificador se forma con una secuencia de letras (minúsculas de la a a la z; mayúsculas de la A a la Z; y dígitos del 0 al 9). 2. El carácter subrayado se considera como una letra más. 3. Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los citados, como por ejemplo (*,;.:-+, etc.). 4. El primer carácter de un identificador debe ser siempre una letra o un (_), es decir, no puede ser un dígito. 5. Se hace distinción entre letras mayúsculas y minúsculas. Así, Masa es considerado como un identificador distinto de masa y de MASA. 6. ANSI C permite definir identificadores de hasta 31 caracteres de longitud. Ejemplos de identificadores válidos son los siguientes: tiempo, distancia1, caso_a, PI, velocidad_de_la_luz,x,mm,media Por el contrario, los siguientes nombres no son válidos: 1_valor, tiempo-total, dolares$, %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, utilizando para ello tantos caracteres como sean necesarios. Esto simplifica enormemente la tarea de programación y sobre todo de corrección y mantenimiento de los programas. Para declarar una variables utilizaremos el siguiente convenio: tipo variable1, <variable2>,... ; Ejemplo: entero velocidad; real media, sumatotal; carácter x, rpta;11 Metodología de Programación, Programación en C, Aplicaciones electrónicas 11 / 47 Operadores, Expresiones y Sentencias Operadores Un operador es un carácter o grupo de caracteres que actúa sobre una, dos o más variables para realizar una determinada operación con un determinado resultado. Ejemplos típicos de operadores son la suma (+), la diferencia (-), el producto (*), etc. Los operadores pueden ser unarios, binarios y ternarios, según actúen sobre uno, dos o tres operandos, respectivamente. OPERADORES ARITMÉTICOS Los operadores aritméticos son los más sencillos de entender y de utilizar. Todos ellos son operadores binarios. Se utilizan los cinco operadores siguientes: Suma: + Resta: - Multiplicación: * División: / Resto: % ( resto de la división entera. Este operador se aplica solamente a constantes, variables o expresiones de tipo entero).* (*) 23%4 es 3, puesto que el resto de dividir 23 por 4 es 3. Si a%b es cero, a es múltiplo de b. Una expresión es un conjunto de variables y constantes relacionadas mediante distintos operadores. Un ejemplo de expresión en la que intervienen operadores aritméticos es el siguiente: 3*x - x*x/212 Metodología de Programación, Programación en C, Aplicaciones electrónicas 12 / 47 Las expresiones pueden contener paréntesis (...) que agrupan a algunos de sus términos. (en ocasiones, 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, depositan en su zona de memoria correspondiente el resultado de una expresión o el valor. variable (en realidad, una variable es un caso particular de una expresión). El operador de asignación más utilizado es el operador de igualdad (=), que no debe ser confundido con la igualdad lógica (==). Su forma general es: nombre_variable = expresión; Primero se evalúa expresión y el resultado se pone en nombre_variable, sustituyendo cualquier otro valor que hubiera en esa posición de memoria anteriormente. Una posible utilización de este operador es la siguiente: variable = variable + 1; Desde el punto de vista matemático este ejemplo no tiene sentido pues Equivale a 0 = 1!, pero sí lo tiene considerando que en realidad el operador de asignación (=) representa una sustitución, pues se toma el valor de la variable contenido en la memoria(2), variable variable memoria 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. Esta operación se denomina acumulación OPERADORES RELACIONALES Una característica imprescindible de cualquier lenguaje de programación es la de considerar alternativas, esto es, la de proceder de un modo u otro según se cumplan o no ciertas condiciones. Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones.13 Metodología de Programación, Programación en C, Aplicaciones electrónicas 13 / 47 En un programa si una condición se cumple, el resultado es cierto; en caso contrario, el resultado es falso. Un 0 representa la condición de falso, y cualquier número distinto de 0 equivale a la condición 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), A continuación se incluyen algunos ejemplos de estos operadores aplicados a constantes: (2==1) // resultado=0 porque la condición no se cumple (3<=3) // resultado=1 porque la condición se cumple (3<3) // resultado=0 porque la condición no se cumple (1!=1) // resultado=0 porque la condición no se cumple OPERADORES LÓGICOS Los operadores lógicos son operadores binarios que permiten combinar los resultados de los operadores relacionales, comprobando que se cumplen las condiciones necesarias. Como operadores lógicos tenemos: el operador Y (&&), el operador O ( ) y el operador NO (!). En inglés son los operadores AND, OR y NOT. Su forma general es la siguiente: expresion1 && expresion2,expresion1 expresión,!expresión14 Metodología de Programación, Programación en C, Aplicaciones electrónicas 14 / 47 Cuando las operaciones lógicas son bit a bit, 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. Por ejemplo: (2==1) (-1==-1) // el resultado es 1 (2==2) && (3==-1) // el resultado es 0 ((2==2) && (3==3)) (4==0) // el resultado es 1 ((6==6) (8==0)) && ((5==5) && (3==2)) // el resultado es 0 ((250)&&(330)) 250>0,330>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, normalmente se usarán : Función Descripción abs(x) Valor Absoluto cos(x),sin(x) Coseno,Seno cuadrado(x) x 2 ent(x) Parte entera exp(x) ln(x) log(x) raiz(x) redondeo (x) e x Ln(x) Log 10 (x) Raiz Cuadrada) Redondear numero15 Metodología de Programación, Programación en C, Aplicaciones electrónicas 15 / 47 Las funciones se utilizarán escribiendo su nombre, seguido de los argumentos adecuados encerrados entre paréntesis, en una expresión. Expresiones Ya han aparecido algunos ejemplos de expresiones en las secciones anteriores. Una expresión es una combinación de variables y/o constantes, y operadores. Por ejemplo, 1+5 es una expresión formada por dos operandos (1 y 5) y un operador (el +); esta expresión es equivalente al valor 6, lo cual quiere decir que esta expresión, en el momento de la ejecución es evaluada y sustituida por su resultado. Una expresión puede estar formada por otras expresiones más sencillas, y puede contener paréntesis de varios niveles agrupando distintos términos. Por ejemplo, la solución de la ecuación de segundo grado: se escribe, en la siguiente forma: x=(-b+raiz((b*b)-(4*a*c)))/(2*a); donde, estrictamente hablando, sólo lo que está a la derecha del operador de asignación (=) es una expresión aritmética. En las expresiones se pueden introducir espacios en blanco entre operandos y operadores; por ejemplo, la expresión anterior se puede escribir también de la forma: x = (-b + sqrt((b * b) - (4 * a * c)))/(2 * a) Sentencias Las expresiones son ítems elementales de una entidades que son las sentencias. Si nos fijamos en la expresión anterior, la variable que está a la izquierda del signo (=), el operador de asignación, la expresión aritmética y el carácter (;) constituyen una sentencia. Las sentencias son unidades completas, ejecutables en sí mismas. Ya se verá que muchos tipos de sentencias incorporan expresiones aritméticas, lógicas o generales como componentes de dichas sentencias.16 Metodología de Programación, Programación en C, 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 (;) de finalización. Un caso típico son las declaraciones de variables o las sentencias aritméticas. Por ejemplo, declaradas ya las variables: espacio = espacio_inicial + velocidad * tiempo; SENTENCIAS o ACCION COMPUESTA Muchas veces es necesario poner realizar un grupo de acciones determinado un lugar del programa, de acuerdo a una condición. Esto se realiza por medio de sentencias compuestas. Una sentencia compuesta es un conjunto de declaraciones y de sentencias agrupadas dentro de llaves {...}. También se conocen con el nombre de bloque. Una sentencia compuesta puede incluir otras sentencias, simples y compuestas. Un ejemplo de sentencia compuesta es el siguiente: { velocidad=espacio/tiempo ; velocidad=velocidad+media_velocidad ; masa = 9.5 ; m=masa*velocidad_media ; } Instrucciones para Entrada y Salida de datos Salida La instrucción es Escribir( ) o Escribe( ). Presentan por el dispositivo de salida estándar (pantalla), las expresiones, valores, variables o cadenas contenidas en la función, por ejemplo: Escribe ( Introducir el valor de la base ); Escribe ( El resultado es ); Escribe (x);17 Metodología de Programación, Programación en C, 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,. Si después va otra cadena entonces ponemos otra coma y escribimos la cadena. Ejemplo: Escribe ( la base,b, por la altura,a, es la superficie,s); Entrada La instrucción es Leer( ).Toman los valores de forma interactiva desde el dispositivo de entrada estándar (teclado), introduciéndolos en las variables que forman parte de la instrucción. Los tipos de datos introducidos deben coincidir con los de las variables que los recogen. Hay dos formas de usarlas: x=leer() ; leer(x) ; Cuando queremos recoger mas de un dato podemos utilizar esta forma: Leer (x,y) Se respetará el orden de recogida con cual si se introduce desde el teclado 12,34, la variable x=12 y la y=34.18 Metodología de Programación, Programación en C, Aplicaciones electrónicas 18 / 47 El primer programa Normas: (Adaptadas un poco al lenguaje C) Todos los programas comienzan por la palabra Inicio seguido de un grupo de sentencias. Por tanto debemos recordar que un grupo de sentencias va entre llaves {...}. Una sentencia simple aislada no necesita llaves. Cada sentencia termina por un ; (Separador de sentencias) Como norma se declaran todas las variables al inicio del programa. Un grupo de sentencias relacionado guardan la misma vertical. Si necesitamos un nuevo grupo de sentencias se tabula a la derecha. Lápiz, papel cuadriculado y letra clara, grande y limpia!!!. En comentario comienza por // si es de 1 línea y por /*...*/ si abarca a un párrafo. Supongamos que queremos hacer un programa que nos calcule el área de un triángulo. Primero debemos pensar que A=(b*h)/2. Por lo tanto necesito pedir dos datos y presentar un resultado. Una posible solución usando una secuencia de sentencias y expresiones sería: Inicio { entero a,b,h; // Declaro las variables Escribe ( Introducir el valor de la Base y la Altura : ); // mensaje en pantalla Leer(b); // Leemos la base Leer(h); // Leemos la altura a=(b*h)/2; // calculamos... } Escribe ( la superficie es :,a); // Presentamos el resultado19 Metodología de Programación, Programación en C, 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 - temporal1 - num_bytes - 2temporal - N_numeros - Media_Aritm - Valor$curso - N-terminos - 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) + 3y 3 7 3) Dada la siguiente declaración de variables, comprobar el siguiente pseudocódigo indicando los posibles reales y los de alta probabilidad de error : x: entero; x=7; p=z/10.0; t=m+1; y: carácter; m=x+1; y= c +1; z,t: real; y=x; s= Hola n=x * x; c= Concat( Hola, Pepe ); m, n, p: entero; z=x-m; m=long( Sabado ); c, s: cadena 4) Realizar en pseudocódigo un programa que calcule de forma individual la velocidad de 5 cuerpos, introduciendo por teclado el espacio y el tiempo, hallando posteriormente la media de cada una de las tres magnitudes. 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, la 2ª tiene radio 2R y la 3ª tiene radio 3R20 Metodología de Programación, 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 Estructura secuencial En esta estructura cada acción se ejecuta en el orden preestablecido por como son enumeradas a lo largo del programa. Se ejecutan de forma secuencial (una detrás de otra) y no puede verse alterado el orden de ejecución. Gráficamente: En primer lugar se ejecutaría la accion1, luego la acción2, y así sucesivamente. Por ejemplo: x=5; // asignamos a x el valor 5 y=7; // lo mismo con y z=x+y; // asignamos a z el valor x+y x=x+3 // incrementamos x en Estructuras de control selectivas En ciertos programas la evolución natural del mismo durante su ejecución, puede necesitar unas variaciones de acuerdo con el cumplimiento o no de alguna-as condiciones. Mediante las estructuras selectivas podemos tomar decisiones, en las cuales se evalúa una condición y en función del resultado se ejecutará o no una acción o acciones. Las distintas estructuras de las que disponemos son:21 Metodología de Programación, Programación en C, 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. La selección sí-entonces evalúa la condición y -si la condición es verdadera, entonces ejecuta la acción (o acciones) y si la condición es falsa, entonces no hacer nada y el programa continua con la siguiente instrucción. 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 en español (varias acciones) si (condición) entonces {<acción1 > <acción2> } Por ejemplo: Aquí contemplamos sólo una acción en el caso en que se cumpla la condición: (solo hallamos la raíz)... leer (x); // Obtenemos x desde el teclado si (x>=0) entonces y= raíz(x); // si x es positiva hallamos la raíz x=x*x; // hacemos x 2 Escribe (x); // Escribimos el valor de x...22 Metodología de Programación, Programación en C, Aplicaciones electrónicas 22 / 47 En este vemos como se representa un grupo de acciones:... leer (x); si (x>=0) entonces { y= raíz(x); Escribe (x,y); } x=x*x*x; Escribe (raíz (x));... 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. 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: Ejemplo: Pseudocódigo en español (con acción compuesta) si (condición) entonces { accion1; accion2;... } sino { acción3;... } leer (x); si (x>=0) entonces { Escribe (x); y= raíz(x); sino Escribe ( No podemos con x<0) }23 Metodología de Programación, Programación en C, 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; 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. La estructura de decisión múltiple evaluará una expresión que podrá tomar n valores distintos (siempre un valor enumerado). Según que elija uno de estos valores en la condición, se realizará una de las n acciones. La representación gráfica de la estructura de decisión múltiple es: Ejemplo:... Escribe ( Elegir la opción del menú: ); Leer (opción) según (opción) 1: { Leer(x); Raíz(x); } 2: { Leer (x); x=1/x; } En pseudocódigo: según (valor) V1: accion1 V2: accion2 V3: accion3 V4,V5: accion Vn: accionn24 Metodología de Programación, Programación en C, 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. Este es un tipo muy importante de estructura, ya que, por un lado nos permite ahorrar muchas líneas de programa y en otros casos no seria posible resolverlo. 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. Por ejemplo: supongamos que se desea sumar una lista de 25 números escritos desde teclado -por ejemplo, calificaciones de los alumnos de una clase. 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. 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 pseudocódigo: Inicio { entero numero,suma; suma=0; Leer (numero); suma=suma+numero; Leer (numero); suma=suma+numero; } y así sucesivamente para cada número de la lista (los 25 alumnos!!!). En otras palabras, el algoritmo repite muchas veces las acciones. Cuando se utiliza un bucle para sumar una lista de números, se necesita saber cuántos números se han de sumar. Para ello necesitaremos conocer25 Metodología de Programación, Programación en C, Aplicaciones electrónicas 25 / 47 algún medio para finalizar el 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; Un profesor quiere meter las notas pero debe tener la posibilidad de parar de meterlas cuando el quiera, por ejemplo cuando escriba el 1. Con lo que conocemos de programación hasta ahora Cómo se plantearía el programa?, Cuántas líneas tipo Leer(x) habría que poner? ( Comooorl?); Necesitaríamos algo que permitiera repetir el leer datos hasta que escribiera el 1, o bien que mientras lo que leemos sea distinto de 1, leamos notas. Pues esas son las estructuras de repetición. Estructura desde...hasta Una variable contendrá los valores el numero de veces que queramos realizar una secuencia de código, por lo tanto debemos conocer obligatoriamente el numero de veces (iteraciones) que se realizaran. En pseudocódigo: i=indice desde i=valor_inicial hasta i=valor_final incremento valor <acción>; si es 1 se omite desde i=1 hasta i=10 incr 1 hacer accion Estructura mientras 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: Mostrar más
Introducción al lenguaje SL Referencia de subrutinas predeidas Ejemplos selectos Juan Segovia Silvero Centro Nacional de Computación Universidad Nacional de Asunción Introducción al lenguaje SL por Juan Más detalles Unidad 1. Básico. Introducción a Excel2003
Unidad 1. Básico. Introducción a Excel2003 Qué es y para qué sirve Excel2003? Excel2003 es una hoja de cálculo integrada en Microsoft Office. Esto quiere decir que si ya conoces otro programa de Office, Más detalles Hoja de cálculo en la enseñanza
MINISTERIO DE EDUCACIÓN Y CIENCIA SECRETARÍA GENERAL DE EDUCACIÓN Y FORMACIÓN PROFESIONAL DIRECCIÓN GENERAL DE EDUCACIÓN, FORMACIÓN PROFESIONAL E INNOVACIÓN EDUCATIVA CENTRO NACIONAL DE INFORMACIÓN Y COMUNICACIÓN Más detalles Manual para el participante. Excel I
Manual para el participante Excel I USO DE LOS LIBROS DE TRABAJO...4 Descripción de los elementos de la ventana de Excel...4 Concepto de libro de trabajo...9 Insertar y eliminar hojas de cálculo...10 Dar Más detalles ESCUELA SUPERIOR DE INGENIEROS DE SAN SEBASTIÁN TECNUN APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO IKER AGUINAGA GONZALO MARTÍNEZ JAVIER DÍAZ
Grupo B. Sistemas y Tecnologías de la información Tema 1. Tema 2. Tema 3. Tema 4. Tema 5. Tema 6. Tema 7. Tema 8. Tema 9. Sistemas de Información. Análisis y desarrollo de sistemas de información. Metodologías Más detalles Desarrollo Orientado a Objetos con UML
Desarrollo Orientado a Objetos con UML Facultad de Informática UPM Índice I UML...1 I.1 Introducción...1 II NOTACIÓN BÁSICA UML...3 II.1 Modelos...3 II.2 Elementos Comunes a Todos los Diagramas...3 II.2.1 Más detalles como si estuviera en Primero Versión preliminar San Sebastián, Octubre de 1998
ESCUELA SUPERIOR DE INGENIEROS INDUSTRIALES UNIVERSIDAD DE NAVARRA INDUSTRI INJINERUEN GOIMAILAKO ESKOLA NAFARROAKO UNIBERTSITATEA Aprenda Maple V Release 5 como si estuviera en Primero Versión preliminar Más detalles Introducción a las bases de datos
ACCESIBILIDAD EN LAS TECNOLOGÍAS DIGITALES PARA ALUMNOS CON DISCAPACIDAD VISUAL DISEÑO DE ACTIVIDADES DE APRENDIZAJE Fecha elaboración: Persona que realiza el informe: Abril 2007. Revisión octubre 2009 Más detalles Modelo ER Jos e Ram on Param a Gab ıa
Objeto Procedimiento 155 Procedimientos Definición Procesos no interactivos de consulta y actualización de la base de datos. Procedimientos: Definen procesos no interactivos de consulta y actualización Más detalles Result 2.40. Manual del Usuario Mayo 2005. Mahoma 4320 apto. 2 Tel/Fax 614-0348 abacosof@adinet.com.uy
Result 2.40 Manual del Usuario Mayo 2005 Mahoma 4320 apto. 2 Tel/Fax 614-0348 abacosof@adinet.com.uy Manual del Usuario - Result 2.40 Página 2 de 35 Todos los nombres de productos mencionados en este documento Más detalles Creación de ficheros L A TEX con GNU Emacs *
INSTITUTO TECNOLOGICO DE SONORA Manual de SAGE para principiantes Traducción por Héctor Yanajara Parra Instituto Tecnológico de Sonora Uso y Aprendizaje de SAGE Este documento tiene Licencia Creative Commons Más detalles (x y) : Par Ordenado (PO) x : Primer elemento del PO (Primera componente del PO) y : Segundo elemento del PO (Segunda componente del PO)
5.- CONJUNTOS 5.1.- PAR ORDENADO (PO) 5.1.1.- DEFINICIÓN DE PO Se llama Par Ordenado o dupla cuyo símbolo es (x y) al conjunto cuyos elementos son a su vez otros dos conjuntos : 1.- el conjunto {x y} que Más detalles VB Access 2000 Fermí Vilà 1. Visual Basic para Aplicaciones del Access 2007
VB Access 2000 Fermí Vilà 1 Visual Basic para Aplicaciones del Access 2007 VB Access 2000 Fermí Vilà 2 TuCarpeta significa una carpeta de tu ordenador donde es conveniente que grabes todos los ejercicios Más detalles 4.1 GRAFICA DE CONTROL Y CONCEPTOS ESTADISTICOS
4.1 GRAFICA DE CONTROL Y CONCEPTOS ESTADISTICOS Un proceso de control es aquel cuyo comportamiento con respecto a variaciones es estable en el tiempo. Las graficas de control se utilizan en la industria Más detalles SISTEMA INFORMATICO PERINATAL
1 SISTEMA INFORMATICO PERINATAL MANUAL DE USO DEL PROGRAMA PARA EL ANÁLISIS Y APROVECHAMIENTO DE LA INFORMACIÓN Mainero L Martínez G Rubino M De Mucio B Díaz Rossello JL Fescina R aecid Agencia Española Más detalles QUÉ HACE UN SIG CON LA INFORMACIÓN?
QUÉ HACE UN SIG CON LA INFORMACIÓN? Representación de la información. La representación primaria de los datos en un SIG está basada en algunos tipos de objetos universales que se refieren al punto, línea Más detalles ESTRUCTURAS ARITMÉTICAS
Este documento ha sido generado para facilitar la impresión de los contenidos. Los enlaces a otras páginas no serán funcionales. > Función matemática El concepto de función matemática o simplemente función, Más detalles EL PRIMER PROGRAMA EN C. TIPOS DE DATOS
CAPÍTULO 1 EL PRIMER PROGRAMA EN C. TIPOS DE DATOS 1.1 Salida de datos por pantalla. 1.1.1 El primer programa en C. La función main Todo programa C consta de una o más funciones. Obligatoriamente, debe Más detalles Introducción a R. Notas sobre R: Un entorno de programación para Análisis de Datos y Gráficos Versión 1.0.1 (2000-05-16) R Development Core Team
Introducción a R Notas sobre R: Un entorno de programación para Análisis de Datos y Gráficos Versión 1.0.1 (2000-05-16) R Development Core Team Copyright c 1990, 1992 W. Venables Copyright c 1997, R. Gentleman Más detalles Introducción al diseño de bases de datos
Introducción al diseño de bases de datos Dolors Costal Costa P06/M2109/02150 FUOC P06/M2109/02150 Introducción al diseño de bases de datos Índice Introducción... 5 Objetivos... 5 1. Introducción al diseño Más detalles Apunte 2 - Procesamiento de señales
Apunte 2 - Procesamiento de señales Este apunte está constituido por extractos de algunos textos sobre procesamiento de señales, principalmente, aunque no exclusivamente, el de Proakis y Manolakis. Para Más detalles Estrategias de enseñanza y aprendizaje Formación del profesorado y aplicación en la escuela
Estrategias de enseñanza y aprendizaje Formación del profesorado y aplicación en la escuela Por Carles Monereo (coord.), Montserrat Castelló, Mercè Clariana, Montserrat Palma, Maria L. Pérez. Editorial Más detalles 372.7 And. Sustracción Federación Internacional Fe y Alegría, 2005. 30 p.; 21,5 x 19 cm. ISBN: 980-6418-70-0 Matemáticas, sustracción.

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