Está en la página 1de 8

Apuntes del Prof. Hugo A.

Cuello

Sentencias: Simples y Estructuradas

CLASE 3: Sentencias: Simples y Estructuradas.

Sentencias:
Las sentencias son acciones algortmicas que pueden ser ejecutadas. Hay dos tipos principales de sentencias: Sentencias simples Sentencias estructuradas sentencia Sentencia simples Sentencia estructuradas

Sentencias simples:
Sentencia simple

Una sentencia simple es una sentencia que no contiene a ninguna otra sentencia. Sentencia de asignaci!n Sentencia de procedimiento

Sentencia de asignacin:
Asignacin interna: Es utilizada para almacenar valores en variables. Sentencia de asignaci!n

(eferencia a variable

e#presi!n

)dentificador de funci!n Referencia a varia le representa una varia le e !dentificador de funcin el nom re de una funcin y e"presin representa una constante o una varia le o una e"presin propiamente dic#a. La flec a representa la asignaci!n. Se eval"a la e#presi!n y el resultado es asignado a la variable o al identificador de la funci!n ubicada en el miembro izquierdo de la asignaci!n. $ebe e#istir una correspondencia de tipos entre% el resultado de la e#presi!n% y el tipo definido para la variable% caso contrario se generar& un error de incompatibilidad de tipos. La e#presi!n podr& estar formada por% una constante% una variable o una e#presi!n propiamente dic a% en cambio en el miembro izquierdo de la asignaci!n solo podr& especificarse un objeto variable o el nombre de la funci!n dentro de su propio bloque. 'ualquier valor previo que tuviera la variable en la parte izquierda de la asignaci!n es reemplazado por el nuevo valor asignado% por lo tanto% la asignacin es destructiva. 'ualquier variable

Clase 3

AyE

$.%.&. '.R.(.A.

P)gina *

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

situada en la parte derec a de la asignaci!n deber& tener un valor previamente asignado% debido a que deber& leerse su contenido. E+emplos: a *+ a toma el valor constante entero * b a+ b toma el valor de a bb,b toma el valor de b , .pe/om 01erez 2uan3 .pe/om toma el valor constante de cadena # sqrt4567 8de qu9 tipo definira a #: 'ar 0 3 'ociente b div a (esto b mod a e#iste true e#iste y negativo son de tipo boolean. /egativo # ; < Sentencias de Procedimientos: Una sentencia de procedimiento establece la activaci!n del procedimiento indicado. Si la declaraci!n del procedimiento correspondiente contiene una lista de parmetros formales% =los par&metros listados en la definici!n= entonces la sentencia de procedimiento debe tener una lista de parmetros actuales% =en la llamada a la sentencia=. Los par&metros actuales son pasados a los par&metros formales como parte de la llamada o invocaci!n. Sentencia de procedimiento )dentificador de procedimiento Lista de par&metros actuales Asignacin e"terna de entrada:

?ar% ... Var deber& ser una variable. El valor asignado a la variable indicada en el bloque se lee desde un dispositivo perif9rico% siendo el teclado el dispositivo por defecto. El dato a conocer puede ser ledo desde otro dispositivo como ser un arc ivo en disco. En cualquier caso la ejecuci!n del proceso entra en espera% a efecto de que pueda leerse el dato solicitado. Si la entrada es ingresada por teclado% luego de tipear el valor se deber& presionar la tecla E/>E( tras lo cual se reanuda la ejecuci!n del proceso con la pr!#ima acci!n que contin"a en la secuencia. $eber& e#istir coincidencia de tipos entre el valor ledo y el tipo de la variable. Una cadena de caracteres o un car&cter deber& ser ingresado sin ap!strofos. Si el ingreso es desde un arc ivo tambi9n e#iste una espera% solo que en estos casos dic a espera es menor% ya que el ingreso del dato se realiza electr!nicamente y no requiere de la intervenci!n manual del usuario. Los puntos suspensivos indican que se podr& escribir m&s de una variable separadas por comas. La ventaja de la asignaci!n e#terna de entrada con respecto a la asignaci!n interna% es que en distintas ejecuciones del programa podemos ingresar diferentes valores sin modificar el c!digo. Clase 3 AyE $.%.&. '.R.(.A. P)gina ,

Apuntes del Prof. Hugo A. Cuello Asignacin e"terna de salida: e#p% ...

Sentencias: Simples y Estructuradas

Exp puede ser una constante% una variable o bien una e#presi!n propiamente dic a. El resultado de la e#presi!n es enviado al dispositivo perif9rico que corresponda% por defecto la pantalla% otros dispositivos pueden ser arc ivos en disco% la impresora. .l igual que la asignaci!n e#terna de entrada% tambi9n e#iste una espera% a efectos de dar tiempo a que se enven los resultados% una vez que esto suceda% la ejecuci!n del proceso contin"a su marc a con la pr!#ima acci!n de la secuencia. Se podr& enviar un valor constante% el contenido de una variable o bien el resultado de una e#presi!n propiamente dic a. Los diferentes objetos van separados por comas. Si la salida va destinada a la pantalla% impresora o disco+ el t9rmino empleado es emitir=mostrar% listar y grabar respectivamente. E+emplos de sentencias de procedimientos: Llamada o invocaci!n para que se ejecute )mprimir )nter'ambio4a% b7 Encontrar4Lista% /ombre% posic7

Estructuras de control de programas


Las sentencias estructuradas son construcciones compuestas por otras sentencias que son ejecutadas en secuencia% condicionalmente o repetidamente. Sentencia estructurada Sentencia concatenaci!n Sentencia condicional Sentencia repetitiva

Sentencias estructuradas

Sentencia condicional

Seleccin simple:

Luego de ejecutar la acci!n alfa% en el punto de entrada se eval"a la condicin% si el resultado es verdadero% se ejecuta la acci!n indicada por la acci!n condicin beta Drama izquierda= caso contrario% se ejecuta la acci!n gamma Drama derec a= en ambos casos luego en el punto de salida se ejecuta la acci!n delta. Si la acci!n gamma no est& presente Dse representa por una lnea en diagonal= en ese caso% nada se ejecuta% nos encontramos con una seleccin simple incompleta% de lo contrario sera una seleccin simple completa. Las acciones alfa y delta siempre se ejecutan por encontrarse fuera del alcance o )m ito de la estructura de control de programa. En cambio la acci!n beta solo se realizar& si la condici!n resulta verdadera y gamma no se

Clase 3

AyE

$.%.&. '.R.(.A.

P)gina 3

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

realizar&. 1or otro lado% solo se ejecutar& la acci!n gamma si la condici!n resulta falsa en cuyo caso la acci!n beta no se realizar&. E+emplo *: .sumiendo que condicin resulta verdadera entonces las acciones que se ejecutan son: alfa% beta y delta. E+emplo ,: .sumiendo que condicin resulta falsa y gamma es vaca% entonces las acciones que se ejecutan son: alfa y delta. E+emplo 3: .sumiendo que condicin resulta falsa y gamma no es vaca% entonces las acciones que se ejecutan son: alfa% gamma y delta. 'on este tipo de estructura es posible realizar cualquier grado de complejidad de alternativas o decisiones o selecciones. Es v&lido armar alternativas encadenadas o alternativas dentro de alternativas Den estos casos se denominan selecciones anidadas=. E+emplo de selecciones anidadas y en secuencia:

@
Condicin* Condicin,

BE
Condicin3

F5 A
Seleccin m-ltiple:

CE

@
'teE 'te5 E"presin ordinal 'te'ten

BE

B5

BA

Bn

Clase 3

AyE

$.%.&. '.R.(.A.

P)gina .

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

Luego de ejecutar la acci!n alfa en el punto de entrada se eval"a la expresin ordinal% el Expresin ordinalresultado es comparado por igual con cada uno de los valores constantes de izquierda a derec a% en cuanto ocurra la primera igualdad se ingresa por la rama correspondiente y se ejecuta la acci!n beta indicada por esa rama% en caso contrario% se ejecuta la acci!n gamma% en caso de estar presente. En todos los casos en el punto de salida se ejecuta la acci!n delta. Esta estructura de control de programa est& limitada a ciertos procesos% debido a que la e#presi!n debe ser de tipo ordinal. Los valores constantes tambi9n deben ser del mismo tipo ordinal que el de la e#presi!n. 'ada una de las 'tei puede adoptar la siguiente forma: 'teE%E%'teE%5%'teE%-..'teE%*%...

Repeticin pre/condicin
Repeticin 0/12 3ientras o !ndefinido:

@
Condicin

B A
Luego de ejecutarse la acci!n alfa en el punto de entrada se eval"a la condicin% si el resultado es verdadero se ingresa al ciclo y ejecuta la acci!n beta% luego en el punto de salida se vuelve otra vez a la cabecera para ser evaluada nuevamente la condici!n% en caso que resulte falsa se abandona el ciclo por el punto de salida y a continuaci!n se ejecuta la acci!n delta. 1uede ocurrir que en el punto de entrada la condici!n resulte falsa% en ese caso la acci!n beta jam&s ser& ejecutada. Hay que asegurar que si se ingresa al ciclo lograr que la condici!n en alg"n momento se aga falsa% para poder abandonar la estructura cclica. La condici!n podr& estar controlada por un contador% un sumador% un valor centinela% un valor boolean% una situaci!n de fin de arc ivo% una condici!n compuesta% entre otras. 'on este tipo de ciclo se pueden llevar a cabo cualquier complejidad de situaciones que requieran el uso de una estructura cclica. Es v&lido construir estructuras cclicas anidadas o en secuencia. Repeticin E"acta o Para ascendente:

@
?ar e#pr.ini. e#pr.fin.

B A
Clase 3 AyE $.%.&. '.R.(.A. P)gina 4

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

Luego de ejecutarse la acci!n alfa% en el punto de entrada se realizan las siguientes acciones Drealizados por la propia estructura de control=+ si el resultado de la expr.ini. es menor o igual al resultado de la expr.fin. entonces el resultado de la expr.ini. es asignado a var. Dvariable de control% es una variable contadora del ciclo= y se ingresa al ciclo% ejecut&ndose la acci!n beta. En el punto de salida% se llevan a cabo las siguientes acciones% =tambi9n propias de la estructura de control= si la variable de control var es menor al resultado de la expr.fin.% entonces var toma el valor ordinal sucesor del que contiene y se vuelve a ejecutar la acci!n beta. Se abandona el ciclo una vez que var aya alcanzado al valor de la expr.fin. ejecut&ndose la acci!n delta. 1or otro lado% estando en el punto de entrada si el valor de la expr.ini fuera mayor al valor de la expr.fin. directamente se busca el punto de salida y se ejecuta la acci!n delta. El tipo de var% la expr.ini. y la expr.fin. deben ser todas del mismo tipo ordinal. Este tipo de ciclo es de uso limitado% ya que solo sirve para valores de tipo ordinal. $e todas maneras en ciertos casos es m&s aconsejable su uso cuando se conozca de antemano% la cantidad de veces que deba ser ejecutado. Una de las ventajas es que no se debe llevar la cuenta del contador% ya que lo gestiona la propia estructura de control. La cantidad de veces que se repetir&n las acciones dentro del ciclo% queda establecida de la siguiente manera: Cant.Rep.Asc. valor e"pr.fin. 6 valor e"pr.ini. 7 * Repeticin E"acta o Para descendente: descendente

@
?ar e#pr.ini. e#pr.fin.

B A
Luego de ejecutarse la acci!n alfa% en el punto de entrada% se realizan por la propia estructura de control% las siguientes acciones+ si el resultado de la expr.ini. es mayor o igual al resultado de la expr.fin. entonces el resultado de la expr.ini. es asignado a var Dvariable de control% es una variable contadora del ciclo= y se ingresa al ciclo% ejecut&ndose la acci!n beta. En el punto de salida% se llevan a cabo las siguientes acciones% =tambi9n propias de la estructura de control= si la variable de control var es mayor al resultado de la expr.fin.% entonces var toma el valor ordinal predecesor del que contiene y se vuelve a ejecutar la acci!n beta. Se abandona el ciclo una vez que var aya alcanzado al valor de la expr.fin. ejecut&ndose la acci!n delta. 1or otro lado% estando en el punto de entrada si el valor de la expr.ini. fuera menor al valor de la expr.fin. directamente se busca el punto de salida y se ejecuta la acci!n delta. El tipo de var% la expr.ini. y la expr.fin. deben ser todas del mismo tipo ordinal. Este tipo de ciclo es de uso limitado% ya que solo sirve para valores de tipo ordinal. $e todas maneras en ciertos casos es m&s aconsejable su uso cuando se conozca de Clase 3 AyE $.%.&. '.R.(.A. P)gina 5

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

antemano% la cantidad de veces que deba ser ejecutado. Una de las ventajas es que no se debe llevar la cuenta del contador% ya que lo gestiona la propia estructura de control. La cantidad de veces que se repetir&n las acciones dentro del ciclo% queda establecida de la siguiente manera: Cant.Rep.9esc. valor e"pr.ini. 6 valor e"pr.fin. 7 *

Repeticin post/condicin:
Repeticin */1 o Hasta:

@ B
Condicin

A
Luego de ejecutar la acci!n alfa% en el punto de entrada se ingresa a la estructura cclica% ejecut&ndose la acci!n beta% luego en el pi9 de la estructura se eval"a la condicin% si el resultado es falso2 permanece en el ciclo2 volvi9ndose a ejecutar la acci!n beta% #asta que la condicin cambie de estado% es decir% cuando su resultado se aga verdadero2 a andona el ciclo y en el punto de salida se ejecute la acci!n delta. La condicin podr& ser lo m&s compleja que se desee. Este tipo de ciclo requiere un uso especfico ya que la acci!n beta se podr& ejecutar al menos una vez% por eso a este ciclo tambi9n se lo denomina ciclo E=#. E#isten casos puntuales para su uso% a saber% creaci!n de men" de opciones% validaci!n de datos% ordenamiento de burbuja optimizado% y otros casos especiales. Luego de aber conocido cada una de la estructuras de control de programa% es de esperar que el alumno utilice la mejor erramienta para llevar a cabo el algoritmo. /o siempre la forma en que el alumno ve la situaci!n ser& la mejor de ellas% un cierto grado de e#periencia va a afianzar m&s el criterio a adoptar en cada situaci!n que se presente. 'uando determinamos que ay que utilizar una estructura repetitiva% luego nos planteamos cu&l de ellas es la m&s adecuada% ay casos por ejemplo que aparentemente en un primer momento creemos que es un ciclo e#acto% entonces no dudamos y utilizamos el ciclo e#acto% pero luego vemos que en realidad no estamos obligados a alcanzar la cantidad total de repeticiones debido a que e#iste una segunda condici!n que nos ar& abandonar el ciclo antes de aber alcanzo el final m&#imo% a ora nos damos cuenta que el ciclo apropiado es un ciclo indefinido con dos condiciones% mientras no ayamos encontrado un valor que estamos buscando y mientras no ayamos alcanzado la cantidad de repeticiones m&#imas% si el valor no aparece. En toda estructura de control condicional y repetitiva e#isten distintos momentos% un momento previo al punto de entrada% un momento durante entre los puntos de entrada y salida y un momento despu9s del punto de salida. Si la estructura es repetitiva Clase 3 AyE $.%.&. '.R.(.A. P)gina 8

Apuntes del Prof. Hugo A. Cuello

Sentencias: Simples y Estructuradas

indefinida el momento previo es el de preparar acciones previas% inicializar variables% conocer primer dato+ el momento durante es el de procesar los datos y conocer pr!#imo dato y el momento despu9s es el de terminar% emitir% c&lculos a totales mayores% promedios% porcentajes% grabar% etc.. En cambio en una estructura repetitiva e#acta% en el momento previo inicializamos variables pero no conocemos primer dato% sino que en el momento durante% primero conocemos dato y luego procesamos% y en el momento despu9s realizamos las acciones de terminar. 'ualquier variable que aparezca en la condici!n de un ciclo deber& tener un valor previamente asignado en un momento anterior. Lo mismo puede suceder con las alternativas simples y m"ltiples para determinar cu&l ser& la estructura condicional m&s conveniente bajo ciertas circunstancias. 8Ser&n ciclos en secuencia% o anidados:. 8Ser&n condiciones en secuencia o anidadas:. 8Ser&n ciclos dentro de decisiones o decisiones dentro de ciclos:. 8Las selecciones tendr&n acciones por cada una de las ramas o solo en una de ellas:. Estas son tan solo algunas de las preguntas que nos debemos formular al momento de resolver un problema computacional. 'omo vemos la forma de combinar estas pocas estructuras de control de programa es lo que nos da una gran diversidad de variantes% el esqueleto que formar& nuestro algoritmo. /o obstante% la forma esquel9tica de nuestros algoritmos se determinar& en base a otro tipo de estructuras% las estructuras de datos% este ser& entonces nuestro primer paso% a partir de all% pensaremos como an de ser las estructuras de control de programa. Ginalmente decimos que las estructuras de control de programa esta determinada por las estructuras de datos.

Clase 3

AyE

$.%.&. '.R.(.A.

P)gina :

También podría gustarte