estructuras de control - fing.edu.uy

24
Instituto de Computación - Facultad de Ingeniería 1 8/28/2019 Estructuras de control Iteración Determine el valor de prod e i prod = 1; i = 2; while prod <= 10000 prod = prod * i; i = i + 1; endwhile Multiplica los naturales hasta que supere 10000. prod vale 40320 e i vale 9 Determine el valor de suma e i suma = 0; i = 1; while suma <= 100 suma = suma + i; i = i + 1; endwhile Suma los naturales hasta que supere 100. suma vale 105 e i vale 15

Upload: others

Post on 06-Nov-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 18/28/2019

Estructuras de controlIteración Determine el valor de prod e i

prod = 1;i = 2;while prod <= 10000 prod = prod * i; i = i + 1;endwhile

Multiplica los naturales hasta que supere 10000.

prod vale 40320 e i vale 9

Determine el valor de suma e i

suma = 0;i = 1;while suma <= 100 suma = suma + i; i = i + 1;endwhile

Suma los naturales hasta que supere 100.

suma vale 105 e i vale 15

Page 2: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 28/28/2019

Estructuras de controlIteración Determine el valor de prod e i

prod = 1;i = 1;while prod <= 10000

i = i + 1;prod = prod * i;

endwhile

Multiplica los naturales hasta que supere 10000.

prod vale 40320 e i vale 9

Determine el valor de suma e i

suma = 0;i = 0;while suma <= 100i = i + 1; suma = suma + i;

endwhile

Suma los naturales hasta que supere 100.

suma vale 105 e i vale 15

Page 3: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 38/28/2019

Estructuras de controlIteración

Instrucción forSemántica:

Se repite la ejecución de una instrucción un número exacto de veces que se conoce antes de comenzar la ejecución.

Page 4: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 48/28/2019

Estructuras de controlIteración Sintáxis

for <<contador>>=<<val_ini>>:<<val_fin>> <<instrucción>>

endfor LógicaSe asigna val_ini al contadorSe compara con val_finSi es menor o igual se ejecuta la instrucciónSe incrementa el contadorSe repite el proceso hasta que el contador supere

val_fin

Page 5: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 58/28/2019

Estructuras de controlIteración

La variable de conteo (contador) no puede ser alterada dentro del ciclo.

Después de la ejecución de una instrucción for la variable de conteo queda indefinida.

Page 6: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 68/28/2019

Estructuras de controlIteración

y = 2;for x = 1:5

y = y * x;endfor

Page 7: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 78/28/2019

Estructuras de controlIteración

Se puede indicar de a cuanto es el paso del iterador.

Ejemplos: for x = 1:2:7

x???endfor

for x = 5:-1:1 x ???endfor

Page 8: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 88/28/2019

Estructuras de controlIteración

Determine el valor de result

result = 1;for i=1:10 result = result * i;endfor

Multiplica todos los naturales desde 1 hasta 10.

result vale 3628800

Determine el valor de suma

suma = 0;for i=1:10 suma = suma + i;endfor

Suma todos los naturales desde 1 hasta 10.

suma vale 55

Page 9: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 98/28/2019

Estructuras de control

Nivel de instrucciónEspecifican flujo de control entre instrucciones de

programa. Secuencia Selección Iteración

Nivel de UnidadEspecifican flujo de control entre unidades de

programa. Subprogramas

Page 10: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 108/28/2019

Estructuras de controlSubprogramas

Un enfoque para la resolución de un problema complejo es el de subdividirlo en problemas más simples y luego resolver estos últimos.

Permiten agrupar código de una forma lógica. OctaveScriptsFunciones

Page 11: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 118/28/2019

Estructuras de controlSubprogramas

InvocaciónUn procedimiento simple es invocado

escribiendo su nombre como una sentencia ejecutable.

Cuando un procedimiento es invocado:La dirección de la sentencia siguiente a la

invocación es memorizada. Se ejecutan las sentencias del procedimiento.La ejecución retorna al punto de invocación

Page 12: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 128/28/2019

Estructuras de controlSubprogramas

Un subprograma puede ser usado cuando una secuencia de sentencias aparece repetidamente en un programa.

Agrupar sentencias sugiere un propósito particular de las mismas.

Programas manteniblesCada uno de los procedimientos en un programa

puede ser escrito por distintos programadores.

Page 13: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 138/28/2019

OctaveArchivos .m

Ejecución de instrucciones almacenadas en archivos de disco.

Se llaman archivos .m pues su sufijo debe ser m

Dos tiposArchivos de instrucciones o scriptsArchivos de funciones

Page 14: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 148/28/2019

OctaveScripts

Sucesión de comandos o instrucciones guardados en un archivo .m

EjecuciónPara invocarlo se lo llama por el nombre del archivo.Se ejecuta como si se estuvieran digitando los

comandos en la consola, uno tras otro.Pueden ser invocados desde el entorno o desde otro

script.

Page 15: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 158/28/2019

OctaveScripts

VariablesAlcance global.Puede utilizar y modificar las variables definidas en el

entorno interactivo.Puede definir nuevas variables en el entorno

interactivo.UtilidadProgramas utilizados repetidamente. Inicialización de variables de entorno.

Page 16: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 168/28/2019

OctaveScripts

Archivo mi_script.mContenido

x = 10;b = x + 4;z = x + b + 3;

Ejecución>> mi_script

ResultadoSe crean las variables

x, b, y z en el entorno interactivo.

Sus valores serán x = 10 b = 14 z = 27

Page 17: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 178/28/2019

OctaveFunciones

Sucesión de comandos o instrucciones guardados en un archivo .m

Posee características propias de las funciones matemáticasRecibe valores (parámetros) de entrada.Realiza algún cálculo o tarea.Devuelven un resultado (parámetros de

salida)

Page 18: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 188/28/2019

OctaveFunciones

SintaxisCabezal del archivo .m

function salida = nombre_funcion (ent_1, ent_2, ...)salida es el resultado que devuelve la función

Puede ser un vector o una matrizLos parámetros ent_i son los datos necesarios

para la ejecución.

Page 19: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 198/28/2019

OctaveFunciones

SintaxisAl final del archivo

endfunction Indica el final de la función.

Page 20: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 208/28/2019

OctaveFunciones

Ejecución El nombre de la función NO debe coincidir

con el nombre del archivo .m aunque es recomendable que así sea.

Se invoca por su nombre indicando los parámetros necesarios para su ejecución.

Pueden ser invocadas desde la consola o desde otra función

Page 21: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 218/28/2019

OctaveFunciones

VariablesAlcance Local, crea y encapsula sus propias

variables.Estas variables existen el tiempo que dure la

ejecución de la función.NO afecta variables definidas en el entorno

interactivo.NO puede definir nuevas variables en el entorno

interactivo.

Page 22: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 228/28/2019

OctaveFunciones

Archivo mi_funcion.mContenido

function z = mi_funcion(x)b = x + 4;z = x + b + 3;

endfunction

Ejecución>> mi_funcion(10)

ResultadoNo se crea ninguna

variable en el entorno interactivo.

Page 23: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 238/28/2019

Octave Funciones

Page 24: Estructuras de control - fing.edu.uy

Instituto de Computación - Facultad de Ingeniería 248/28/2019

OctaveFunciones

No utilizar instrucciones para desplegar resultados dentro de una función.Los resultados de una función se deben

devolver en los parámetros de salida.No utilizar instrucciones para leer los

datos de entrada dentro de una función.Las entradas de una función se deben cargar

en los parámetros de entrada.