La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Estatutos en Scilab 3.1 De entrada y salida estándar.

Presentaciones similares


Presentación del tema: "Estatutos en Scilab 3.1 De entrada y salida estándar."— Transcripción de la presentación:

1 Estatutos en Scilab 3.1 De entrada y salida estándar.
3.2 De control o selección if. 3.3 De ciclos: for, while. 3.4 Otros estatutos. 3.5 Solución de problemas aplicando estatutos de control y ciclos

2 Entrada y Salida (I/O) Scilab proporciona dos tipos simples de declaraciones para entrada y salida de datos en un programa. La declaración mas simple de salida tiene la forma: disp Ejemplo: salida de un letrero o una variable disp(' no tengo dinero ') disp(x) La declaración mas simple de entrada tiene la forma: input Ejemplo: entrada de una variable x x = input(' dame el valor de x ')

3 Entrada: Número entero Salida: Mensaje Seudocodigo Inicio
Escribir un programa que acepte un número desde el teclado e imprima un mensaje, si el número es positivo, negativo o cero. Análisis Entrada: Número entero Salida: Mensaje Seudocodigo Inicio Leer: Número entero si Numero < 0 Imprimir: El numero es negativo si Número == 0 Imprimir: El numero es cero Caso Default Imprimir: El numero es Positivo Fin_selección //Departamento de Ingeniería Química // y Bioquímica // Programa para evaluar decisiones // Realizado por: // José Domingo Pope Solis clc disp('Programa para evaluar si un numero es') disp('negativo, cero o positivo') Numero = input('Dame el valor del numero '); if Numero < 0 disp('El numero es negativo') elseif Numero > 0 disp('El numero es positivo') else disp('El numero es nulo ') end

4 Estructuras de control
El orden de ejecución de las instrucciones de un programa en una computadora requiere en múltiples ocasiones seleccionar entre dos o mas posibles acciones. Por lo tanto, es necesario tener estructuras de control para que la computadora tome una decisión y a continuación ejecutar una o varias acciones. Las estructuras de control selectivas se clasifican de acuerdo al numero de alternativas posibles a seleccionar en: Alternativa simple Alternativa doble Alternativa múltiple

5 Estructuras de Control if Simple
Codificacion Scilab if ( Expresión logica) then Declaración 1 Declaración 2 end Seudocodigo Si Expresión logica entonces ° ° ° ° ° ° ° ° ° ° fin_si Diagrama de flujo Declaración 1 Declaración 2 Expresión Lógica .False. .True.

6 Estructuras de Control if Doble
Codificacion Scilab if ( Expresión logica) then Declaraciones: Bloque 1 else Declaraciones: Bloque 2 end Seudocodigo Si Expresión logica entonces Si_no fin_si Diagrama de flujo Bloque 1 Expresión Lógica .True. Bloque 2 .false.

7 Leer tres números. Si el primero es menor que cero, imprime la suma de los tres, en caso contrario imprime su producto. Análisis Entrada: Tres números Salida: Suma, Producto Seudocodigo Inicio Leer: Num1, Num2, Num3 Si Num1 < 0 Suma  Num1 + Num2 + Num3 Imprimir: Suma Si_no Producto  Nim1*Num2*Num3 Imprimir: Producto Fin_si Fin

8 Diagrama de Flujo Num1 < 0 .True. P = Num1*Num2*Num3 .false.
Fin Inicio S = Num1+Num2+Num3 Producto Suma

9 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programa para evaluar decisiones dobles // Realizado por: // José Domingo Pope Solis disp('Leer tres números. Si el primero es menor que cero, imprime la suma de los tres,') disp('en caso contrario imprime su producto') Num1= input('dame el valor del Num1 '); Num2= input('dame el valor del Num2 '); Num3= input('dame el valor del Num3 '); if (Num1 < 0 ) then Suma = Num1 + Num2 + Num3; disp('La suma es ') disp(Suma) else Producto = Num1 * Num2 * Num3; disp('El Producto es ') disp(Producto) end

10 Dados tres números A,B,C construir un diagrama de flujo que permita determinar cual de los tres tiene el mayor valor. A < B .True. .false. Inicio A,B,C B < C C B A < C A Fin

11 Leer tres números (A,B,C) Si A < B Si B < C
// Instituto Tecnológico de Durango //Departamento de Ingeniería Química y Bioquímica // Programa para evaluar decisiones anidadas // Realizado por: // José Domingo Pope Solis disp('Dados tres números A,B,C determinar cual de los tres tiene el mayor valor') A= input('valor de A '); B= input('valor de B '); C= input('valor de C '); if (A < B) if (B < C) disp( ' C es el mayor ') disp(C) else disp( ' B es el mayor ') disp(B) end if (A < C) disp( ' A es el mayor ') disp(A) Seudocodigo Inicio Leer tres números (A,B,C) Si A < B Si B < C Imprimir C es el mayor Si_no Imprimir B es el mayor Fin_si Si A < C Imprimir A es el mayor

12 Estructuras de Control else y elseif
Codificacion Scilab if ( Expresión logica 1) Declaraciónes: Bloque 1 elseif ( Expresión logica 2) Declaraciónes: Bloque 2 else Declaraciónes: Bloque 3 end Seudocodigo Si Expresión lógica Otro_Si Expresion logica Si_no Fin_si Diagrama de flujo .Falsa. Bloque 1 Expresión Lógica 1 .Verdadera. Lógica 2 Bloque 2 Bloque 3

13 Resolver la ecuación de segundo grado: a x2 + b x + c = 0
contemplando todas las soluciones posibles. Análisis a x2 + b x + c = 0 Las raíces de la ecuación son: La naturaleza de las soluciones depende del discriminante Discriminante = b2 - 4ac = raíces dobles iguales = positivo raíces dobles distintas reales = negativo raíces imaginarias Especificación de variables Variables de entrada: a, b, c Variables adicionales: P_real, P_imag Variables de salida: x1, x2

14 Seudocodigo inicio leer a, b, c Discriminante  b2 - 4ac
Si Discriminante < 0 Imprimir la ecuación tiene raíces imaginarias P_real  - b / 2a P_imag  sqrt( abs (Discriminante)) / 2a x1  P_real + i P_imag x2  P_real - i P_imag Imprimir x1 , x2 Otro_si Discriminante = = 0 Imprimir la ecuación tiene raíces iguales x  x1  x2  - b / 2a Imprimir x Si no Imprimir la ecuación tiene raíces reales distintas x1  (- b + sqrt (Discriminante) ) / 2a x2  (- b - sqrt (Discriminante) ) / 2a fin_si fin

15 Solución de una ecuación cuadratica de la forma a x2 + b x + c = 0
.False. D = 0 P_real = - b / 2 a P_imag =  | D| / 2 a .True. D < 0 a, b, c inicio D = b2 - 4 a c La ecuación tiene dos raíces complejas raíces reales idénticas raíces reales distintas x = x1 = x2= - b / 2 a x1 = ( - b +  D ) / 2 a x2 = ( - b -  D ) / 2 a x1 = P_real + i P_imag x2 = P_real - i P_imag x x1 , x2 fin Solución de una ecuación cuadratica de la forma a x2 + b x + c = 0

16 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programa para evaluar todas la raíces de una ecuación Cuadrática // Realizado por: // José Domingo Pope Solis a = input('valor de a '); b = input('valor de b '); c = input('valor de c '); D = b^2 - 4*a*c ; if (D < 0) disp('La ecuación tiene dos raíces complejas') P_real = -b/(2.*a); P_imag = sqrt (abs (D)/(2.*a)); disp('Parte real') disp(P_real) disp('Parte imaginaria positiva y negativa') disp(P_imag) elseif ( D == 0 ) disp('La ecuación tiene dos raíces reales idénticas') x1 = -b/(2.*a); disp('El valor de la raiz es') disp(x1) else disp('La ecuación tiene dos raíces reales distintas') x1 = (-b + sqrt(D))/(2*a); x2 = (-b - sqrt(D))/(2*a); disp(' El valor de x1') disp(' El valor de x2') disp(x2) end

17 Estructuras de Control select
Codificación Matlab select ( Expresión) case ( Selección 1) Declaraciónes: Bloque 1 case ( Selección 2) Declaraciónes: Bloque 2 ° ° ° ° ° ° ° ° ° ° ° ° ° else Declaraciónes: Bloque Default end Seudocodigo Seleccionar Opción Casos en los que cae la opción fin_selección Diagrama de flujo Fuera de rango Bloque 1 Selección 1 En rango Selección 2 Bloque 2 Bloque N Selección N ..... Bloque Default La expresión en el selector select puede ser un escalar o un carácter

18 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programa para evaluar decisiones select // Realizado por: // José Domingo Pope Solis clc disp('Programa para convertir una cantidad dada en unidades de longitud a centímetros) disp(' ') x = input('Dame el valor de la cantidad '); unidades = input('Dame las unidades pulg, m, mm, cm : '); select unidades case 'pulg' then y = x*2.54; disp(y) case 'ft' then y = x*2.54*12; case 'm' then y = x/100; case 'mm' then y = x*10; case 'cm' then y = x; else disp(['No hay conversión disponible para: ' unidades]) end

19 Ciclos, lazos, o bucles En programación aparece repetidas veces la necesidad de ejecutar una instrucción o un grupo de instrucciones en forma iterativa. Por lo que es necesario contar con estructuras de control que gobiernen estos procesos repetitivos dentro de un programa. Un ciclo, lazo, o bucle repite una secuencia de instrucciones mientras o hasta que se cumpla que una condición determinada es verdadera o falsa. Una estructura repetitiva tiene dos componentes principales: Acción .- Algo que se efectúa repetidamente(iteración). Decisión .- Que permita detener las acciones iterativas (terminación del proceso repetitivo).

20 Estructuras for Codificación Scilab Seudocodigo
for indice = Inicio: Incremento: Fin Declaración 1 Declaración 2 end Seudocodigo Desde índice = inicio, incrementando, hasta fin, hacer Bloque de declaraciones ejecutables fin_desde Indice = Inicio Incremento Ind*Inc <= fin*Inc .False. .True. Declaración 1 Declaración 2

21 Encontrar el factorial de un número leído desde el teclado
Análisis Entrada: Número Salida: Factorial El factorial de un número entero positivo se define por: Factorial(N) = 1• 2 • 3 • , , • (N-2) • (N-1) • N Seudocodigo: Inicio Leer : Número Si Numero = 0 Entonces Imprimir: Factorial = 1 Si_no Factorial  1 Desde i = 1, incrementando 1, hasta N. hacer Factorial  Factorial • i fin_desde Imprimir : Factorial Fin_si Fin

22 Calculo del factorial de un Número con Ciclos for
Nfact = Nfact*i Inicio Fin .True. N Nfact Nfact = 1 .False. i = 1 i*inc<=N*inc inc = 1

23 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programa para evaluar el factorial de un numero // Realizado por: // José Domingo Pope Solis disp('Este programa calcula el factorial de un numero') //Entrada de Datos disp('Numero a que se calculara el factorial') N = input('dame el valor del Numero '); // Calculo del Factorial y Salida de Información if (N==0) disp('El factorial de cero es igual a 1 ') else Nfact = 1; for I=1:N Nfact = Nfact*I; end disp( 'El factorial del numero es = ' ) disp(Nfact)

24 Estructuras while Codificación Scilab while (Expresión lógica)
Bloque de declaraciones end Seudocodigo Mientras_que fin_Mientras .Verdadera. Declaración Expresión Lógica .Falsa.

25 Encontrar el factorial de un número Seudocodigo:
Inicio Leer : Número Si Numero = 0 Entonces Imprimir: Factorial = 1 Si_no k  1 Factorial  1 Mientras que k  Numero Factorial  Factorial • k k  k + 1 fin_repetir Imprimir : Factorial Fin_si Fin

26 Calculo del factorial de un Número con ciclos while
Nfact = Nfact*i Inicio i <= N Fin .True. N Nfact Nfact = 1 .False. i = 1 i = i + 1

27 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica //Programa para evaluar el factorial de un numero con while // Realizado por: // José Domingo Pope Solis disp('Este programa calcula el factorial de un numero') //Entrada de Datos disp('Numero a que se calculara el factorial') N = input('dame el valor del Numero '); // Calculo del Factorial y Salida de Información if (N==0) disp('El factorial de cero es igual a 1 ') else Nfact = 1; k = 1; while k <= N Nfact = Nfact*k; k=k+1; end disp( 'El factorial del numero es = ' ) disp(Nfact)

28 Estructuras break en for
for índice = Inicio: Incremento: Fin Declaraciones if (Expresión Lógica), break, end end Indice = Inicio .Falsa. Ind*Inc <= fin*Inc .Verdadera. Incremento Declaraciones Expresión Lógica .Verdadera. .Falsa.

29 Estructuras break en while
Declaraciones Expresión Lógica .Verdadera. .Falsa. while (Expresión Lógica) Declaraciones if (Expresión Lógica), break, end end

30 Escribir un programa que calcule si es primo o compuesto un número leído del teclado.
Análisis Entrada: Numero Salida: Imprimir resultado Lista de variables: Numero, N, R Operaciones: Residuo = Mod (Numero/N) Los números enteros positivos también reciben el nombre de naturales. Los números naturales que solo son divisibles entre si mismos y la unidad se llaman números primos. Ejemplos 2, 3, 5, 7, 11,....etc.. Teorema de Eratostenes Un número es primo si no es divisible entre ninguno de los números primos cuyo cuadrado sea menor que dicho número. Por lo tanto, todos los números pares mayores que dos no son primos. Para diseñar un algoritmo que determine si un número es primo se requiere ampliar la búsqueda a todos los números a partir de tres, cuyo cuadrado sea menor que dicho número y que al dividir el número en cuestión por este número el residuo sea distinto de cero, evitando dividir entre números pares.

31 Seudocodigo Inicio Leer: Numero Impar Desde N = 3, Incrementando 2, hasta Numero Encontrar el Residuo R cuando Numero es dividido por N Si (Residuo = 0 o N  Numero) Salir Fin Fin_Desde Si R  0 Entonces Escribir: El numero es primo Si no Escribir: El numero es compuesto Fin_si

32 Diagrama de Flujo para Determinar si un Número es Primo
Inicio P .True. .False. R  0 Fin P es compuesto P es Primo R = Mod (P,N) N = 3 2 N*2 <= P*2 R = 0 o N  P

33 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programación Scilab // Instructor: José Domingo Pope Solis //Programa Primo con estructura for disp('Entrada de datos') P = input('Numero natural impar, que deseas saber si es primo o compuesto '); for N = 3:2:P R = modulo(P,N); if ( R == 0 | N >= sqrt(P)), break, end end disp('Salida de Información') if ( R ~= 0) disp(P) disp(' Es Primo') else disp(' Es Compuesto') //Fin de Programa Primo

34 // Instituto Tecnológico de Durango
// Departamento de Ingeniería Química y Bioquímica // Programación Scilab // Instructor: José Domingo Pope Solis //Programa Primo con estructura while clc disp('Entrada de datos') P = input('Numero natural impar, que deseas saber si es primo o compuesto '); i = 3 while (i < P) R = modulo(P,i); if ( R == 0 | i >= sqrt(P)), break, end i = i + 2 end disp('Salida de Información') if ( R ~= 0) disp(P) disp(' Es Primo') else disp(' Es Compuesto') //Fin de Programa Primo


Descargar ppt "Estatutos en Scilab 3.1 De entrada y salida estándar."

Presentaciones similares


Anuncios Google