Your SlideShare is downloading. ×
0
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Clase de turbo C
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Clase de turbo C

2,558

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,558
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
33
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave Ejemplos Introducci´n a los Computadores o Algoritmos computacionales CNM-130 Departamento de Matem´ticas a Facultad de Ciencias Exactas y Naturales Universidad de Antioquia Copyleft « 2009. Reproducci´n permitida bajo los o t´rminos de la licencia de documentaci´n libre GNU. e o
  • 2. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosContenido 1 Introducci´n o 2 Diagramas de flujo 3 Construcci´n de diagramas de flujo o 4 Pseudoc´digo o 5 GNU Octave 6 Ejemplos
  • 3. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEtapas en la resoluci´n de un problema o Definici´n del problema: el enunciado completo del problema, o ¿qu´ es lo que se pretende obtener? e An´lisis del problema: a un conjunto de datos de entrada (la informaci´n dada) o un conjunto de datos de salida (lo que se desea obtener) Relaciones que vinculen los datos de entrada y salida Dise˜ o de la soluci´n: se debe proponer o aplicar un modelo para n o lograr sistematizar la b´squeda de la soluci´n. u o Codificaci´n: en esta etapa se describen los pasos que se deben o ejecutar para resolver el problema (algoritmo). Prueba: se verifica el funcionamiento de la soluci´n propuesta y se o detectan los errores que se presenten con la posterior correcci´n de los o mismos (depuraci´n). o
  • 4. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosAlgoritmos Definici´n 1.1 (Algoritmo) o Un algoritmo es una secuencia finita de instrucciones, reglas o pasos que describen de modo preciso las operaciones que un computador debe realizar para ejecutar una tarea determinada en un tiempo finito. Cinco propiedades ampliamente aceptadas como requisitos para un algoritmo (Knuth): Finitud: Un algoritmo siempre debe terminar despu´s de un n´ mero e u finito de pasos. Precisi´n: cada paso de un algoritmo debe estar precisamente definido o y sin ambiguedades. Entrada: un algoritmo tiene cero o m´s entradas que le son dadas antes a de que el algoritmo comience, o din´micamente mientras corre. a Salida: un algoritmo tiene una o m´s salidas. a Eficacia: las operaciones a realizar en un algoritmo deben ser suficientemente b´sicas como para que en principio puedan ser a realizadas de manera exacta y en un tiempo finito por un hombre usando papel y l´piz. a
  • 5. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo Algoritmo para preparar “fr´ıjoles con chicharr´n” para 8 raciones. Los o datos de entrada (ingredientes) son: 2 libras de fr´ ıjoles. 2 zanahorias peladas. 1 cucharada de aceite vegetal o 2 cubos de caldo de carne. de girasol. 1 cucharada de sal. 1/4 de libra de tocino cortado 16 tazas de agua. en trocitos. Algoritmo 1 Se lavan bien los fr´joles y se dejan remojando en el agua ı desde la noche anterior. 2 Al d´a siguiente, se ponen en la olla a presi´n con el agua en ı o que se remojaron, el aceite, el tocino y la zanahoria. 3 Se cocinan sin sal hasta que est´n blandos, aproximadamente por e 1 hora. 4 Se lic´a una peque~a cantidad de los fr´joles con la zanahoria, u n ı los cubos de caldo y la sal, y se agrega a los fr´joles. ı 5 Se cocinan media hora m´s con la olla destapada hasta que a espesen.
  • 6. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosOtros ejemplos Muchos algoritmos no requieren de un computador para su ejecuci´n: o Cambiar la llanta de un carro Ir al banco a pagar una cuenta Ir a un restaurante a comer Determinar la cantidad de dinero que nos deben devolver al pagar el bus Comprar una libra de azucar En la pr´ctica, un algoritmo es s´lo una parte de las etapas requeridas a o para resolver un problema: Dise˜o del algoritmo. n Implementaci´n del algoritmo en un lenguaje de programaci´n adecuado o o (codificaci´n). o Ejecuci´n y validaci´n del programa por el computador. o o
  • 7. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosDise˜o de algoritmos n Herramientas utilizadas para dise˜ar algoritmos n Diagramas de flujo: representaci´n esquem´tica de un algoritmo que o a muestra gr´ficamente los pasos a seguir para alcanzar la soluci´n de un a o problema. Pseudoc´digos: forma gen´rica de escribir un algoritmo, por medio de o e un lenguaje simple sin necesidad de conocer la sint´xis de un lenguaje a de programaci´n. o El diagrama de flujo se compone de figuras que ilustran los pasos o procesos a seguir para alcanzar la soluci´n del problema. o Los s´ ımbolos presentados permiten crear una estructura gr´fica flexible a que ilustra los pasos a seguir. Un diagrama de flujo permite con facilidad la posterior escritura de un programa en alg´n lenguaje de programaci´n. u o
  • 8. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosDiagramas de flujo S´ ımbolo utilizado para marcar el inicio y el fin del diagrama de flujo. S´ ımbolo utilizado para ingresar los datos de entrada (expresa lectura). S´ımbolo utilizado para representar un proceso. En su interior se expresan asignaciones, operaciones aritm´ticas, cambios de valor de celdas en memoria, etc. e S´ ımbolos utilizados para indicar la direcci´n del flujo o del diagrama. S´ ımbolo utilizado para representar la estructura selectiva si entonces; en su interior se almacena una condici´n que determina el flujo del diagrama. o S´ ımbolo utilizado para representar la estructura selectiva si entonces/sino; en su interior se almacena una condici´n que determina el flujo del diagrama. o
  • 9. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosDiagramas de flujo S´ ımbolo utilizado para representar una decisi´n o m´ltiple. En su inetrior se almacena un selector y u dependiendo de su valor, se sigue por una de las ramas. S´ ımbolo utilizado para representar la impresi´n de un o resultado (expresa escritura). S´ ımbolo utilizado para expresar conexi´n dentro de o una misma p´gina. a S´ ımbolo utilizado para expresar conexi´n entre o p´ginas diferentes. a S´ ımbolo utilizado para expresar un m´dulo de un o problema: para continuar con el flujo normal del diagrama es necesario primero resolver el subproblema enunciado en su interior.
  • 10. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosDiagramas de flujo Esquema general de un diagrama de flujo
  • 11. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosReglas para la construcci´n de diagramas de flujo o Todo diagrama de flujo debe tener un inicio y un fin. Las lineas utilizadas para indicar la direcci´n del flujo del diagrama o deben ser rectas verticales y horizontales y no se deben cruzar.
  • 12. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosReglas para la construcci´n de diagramas de flujo o Todas las lineas utilizadas para indicar la direcci´n del flujo del o diagrama deben estar conectadas. El diagrama de flujo debe ser constuido de arriba hacia abajo (top-down) y de izquierda a derecha (left-right). La notaci´n empleada en el diagrama de flujo debe ser independiente o del lenguaje de programaci´n. o Si el diagrama de flujo requiere m´s de una hoja para su construcci´n, a o se debe utilizar conectores adecuados y enumerar las p´ginas a convenientemente. A un s´ımbolo del diagrama (excepto l´ ıneas) no puede llegar m´s de una a l´ ınea.
  • 13. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Ejemplo 3.1 Construya un diagrama de flujo tal que dado los datos A, B, C y D que representan n´meros enteros, escriba los mismos en orden inverso. u Soluci´n o Diagrama de flujo general Diagrama de flujo en DFD
  • 14. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Ejemplo 3.2 Escriba (en papel) un diagrama de flujo que tenga como entradas los datos enteros A y B y escriba el resultado de la siguiente expresi´n: o (A + B)2 3 Implemente el diagrama tambi´n en DFD. e Soluci´n o Consideraciones: Datos: A y B (variables de tipo entero). Para indicar un proceso utilizamos Para asignar un valor o una expresi´n a una variable utilizamos o variable ← expresi´n o valor o
  • 15. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Explicaci´n de las variables: o A, B: variables de tipo entero. RES: variable de tipo real, almacena el resultado de la operaci´n. o # A B RES 1 5 6 40, 33 2 7 10 96,33 3 0 3 3,00 4 12 2 65,33 5 14 -5 27,00
  • 16. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Ejemplo 3.3 Un estudiante obtiene 5 calificaciones a lo largo del semestre. Escriba (en papel) un diagrama de flujo que imprima el promedio de sus calificaciones. Implem´ntelo tambi´n en DFD. e e Soluci´n o Consideraciones: Datos: CAL1, CAL2, CAL3, CAL4, CAL5 variables de tipo real que representan las 5 calificaciones del alumno. El promedio de las calificaciones est´ dado por a CAL1+ CAL2+ CAL3+ CAL4 + CAL5 5
  • 17. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Las observaciones anteriores nos conducen al siguiente diagrama de flujo. CAL1, CAL2, CAL3, CAL4, CAL5: Variables de tipo entero. PRO: Variable de tipo real, almacena el resultado de la operaci´n. o # CAL1 CAL2 CAL3 CAL4 CAL5 PRO 1 8 8,5 9 7 6 7,7 2 9 8 9 7 9 8,4 3 9 10 10 8 9 9,2 4 8,5 9 7,5 6 6,5 7,5 5 7,3 6,8 9,5 8 8,5 8,02
  • 18. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Ejemplo 3.4 Escriba (en papel) un diagrama de flujo que permita calcular e imprimir el cuadrado y el cubo de un entero positivo NUM e implem´ntelo en DFD. e Soluci´n o NUM: variable de tipo entero. CUA: variable de tipo real, almacena el cuadrado del n´mero que se u ingresa. CUB: variable de tipo real, almacena el cubo del n´mero que se ingresa. u # NUM CUA CUB 1 7 49 343 2 15 225 3375 3 8 64 512 4 12 144 1728 5 30 900 27000
  • 19. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Ejemplo 3.5 Escriba (en papel) un diagrama de flujo tal que dado como datos la base y la altura de un rect´ngulo, calcule su per´ a ımetro y ´rea. Realice el diagrama a tambi´n en DFD. e Soluci´n o Consideraciones: Datos: BASE, ALTURA Donde: BASE: variable de tipo real que representa la base del rect´ngulo. a ALTURA: variable de tipo real que representa la altura del rect´ngulo. a Recuerde que: El area de un rect´ngulo est´ dada por ´ a a area = base × altura ´ El per´ ımetro de un rect´ngulo est´ dada por a a ımetro = 2 × (base + altura) per´
  • 20. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosConstrucci´n de diagramas de flujo o Las observaciones anteriores nos conducen al siguiente diagrama de flujo. BASE, ALTURA: variables de tipo real. AREA: variable de tipo real, almacena el ´rea del rect´ngulo. a a PERIMETRO: variable de tipo real, almacena el per´ ımetro del rec´ngulo. a # BASE ALTURA AREA PERIMETRO 1 8 8,5 9 7 2 9 8 9 7 3 9 10 10 8 4 8,5 9 7,5 6 5 7,3 6,8 9,5 8
  • 21. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosTerminolog´ b´sica ıa a Programa: conjunto de instrucciones que ejecuta un computador para alcanzar un resultado espec´ ıfico (Von Neumann, 1946). Un programa se escribe en un lenguaje de programaci´n a partir de o un diagrama de flujo dise˜ado con anterioridad. n Los lenguajes de programaci´n est´n constituidos por un conjunto de o a 1 Reglas sint´cticas: especif´ a ıcan la formaci´n (sint´xis) de instrucciones o a v´lidas. a 2 Reglas sem´nticas: especifican el significado de las instrucciones a v´lidas. a Pasos en la resoluci´n de un problema: o 1 Desarrollo de un algoritmo (soluci´n general). o 2 Construcci´n de un diagrama de flujo. o 3 Construcci´n de un programa en un lenguaje de programaci´n. o o Previo al paso (3), utilizaremos un “lenguaje” llamado pseudoc´digo: o Es independiente de cualquier lenguaje de programaci´n. o Carece del rigor y formalismo expresados en las reglas (1) y (2).
  • 22. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosInstrucciones en pseudoc´digo o Lectura de datos: Leer A, VEL, C Proceso: Hacer TEMP ← TEMP + 1 Escritura: Escribir A, VEL
  • 23. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.1) o INVERTIR DATOS { Dado un conjunto de datos de entrada el programa invierte el orden de los mismos y los imprime } { A, B, C y D son variables de tipo entero } 1 Leer A, B, C, D 2 Escribir D, C, B, A Observaciones Todo programa tiene un nombre que lo define y que se elige teniendo en cuenta las reglas para la construcci´n de identificadores. o Entre llaves {· · · } van comentarios que indican la funci´n del programa. o Escribir un programa es sencillo cuando se conoce las instrucciones del pseudoc´digo. La “tarea intelectual” consiste en la construcci´n del o o diagrama de flujo.
  • 24. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.2) o CALCULA { Dado dos enteros A y B, el programa calcula el resultado de una expresi´n } o { A y B son variables de tipo entero, RES es una variable de tipo real } 1 Leer A, B 2 Hacer RES ← (A + B) ∧ 2/3 3 Escribir RES
  • 25. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.3) o PROMEDIO CALIFICACION { Dadas las calificaciones de un estudiante, calcula su promedio } { CAL1, CAL2, CAL3, CAL4, CAL5 y PRO son variables de tipo real} 1 Leer CAL1, CAL2, CAL3, CAL4, CAL5 2 Hacer PRO ← (CAL1 + CAL2 + CAL3 + CAL4 + CAL5)/5 3 Escribir PRO
  • 26. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.4) o CUADRADO CUBO { Dado un entero positivo, el programa calcula el cuadrado y el cubo de dicho n´mero. } u { NUM es una variable de tipo entero, CUA y CUB son variables de tipo real } 1 Leer NUM 2 Hacer CUA ← NUM*NUM 3 Hacer CUB ← NUM∧3 4 Escribir CUA y CUB
  • 27. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos Programa en pseudoc´digo para el diagrama de flujo del ejemplo (3.5) o CUADRADO CUBO { Dados la base y la altura de un rect´ngulo, a ımetro y su ´rea. } calcula su per´ a { BASE, ALTURA, AREA Y PERIMETRO son variables de tipo real } 1 Leer BASE, ALTURA 2 Hacer AREA ← BASE*ALTURA 3 Hacer PERIMETRO ← 2*(BASE+ALTURA) 4 Escribir AREA y PERIMETRO
  • 28. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosAspectos b´sicos a “Lenguaje” de alto nivel interpretado, orientado principalmente a computaci´n cient´ o ıfica Pretende ser compatible con MATLAB Proporciona una l´ ınea de comandos interactiva para resolver problemas matem´ticos num´ricamente a e Incluye una colecci´n de algoritmos y funciones matem´ticas o a
  • 29. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosAspectos b´sicos a Ventajas Sencillo de utilizar Software libre: se distribuye bajo licencia GNU, GPL (General Public License) Sint´xis muy similar a MATLAB a C´digo abierto: amplia comunidad de soporte (foros, etc.) o A diferencia de MATLAB. . . No soporta programaci´n orientada a objetos o Capacidad de gr´ficos limitada (GUI’s) a Pocos toolboxes disponibles No dispone de los millones de una compa˜´ como MathWorks, Inc. nıa
  • 30. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosAspectos b´sicos: iniciando GNU Octave: a ~$ octave GNU Octave, version 3.0.1 Copyright (C) 2008 John W. Eaton and others. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type ‘warranty’. Octave was configured for "x86_64-pc-linux-gnu". Additional information about Octave is available at http://www.octave.org. Please contribute if you find this software useful. For more information, visit http://www.octave.org/help-wanted.html Report bugs to <bug@octave.org> (but first, please read http://www.octave.org/bugs.html to learn how to write a helpful report). For information about changes from previous versions, type ‘news’. octave:1>
  • 31. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosAlgunos operadores aritm´ticos e Operador Operaci´n o Ejemplo Resultado ∧ Potencia 2∧3 8 ∗ Multiplicaci´n o 7∗3 21 / Divisi´n o 10/4 2.5000 + Suma 3−4 −1 − Resta 7−4 3 rem M´dulo (residuo) o rem(10, 3) 1 octave:#> 3+4 octave:#> 4+6/2+3 ans = 7 ans = 10 octave:#> 5/10*2+5 octave:#> (4+6)/(2+3) ans = 6 ans = 2 octave:#> 5/(10*2+5) octave:#> 0∧0 ans = 0.20000 ans = 1 octave:#> 2+4*3^2 octave:#> rem(17,3) ans = 38 ans = 2
  • 32. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosOperadores relacionales (de comparaci´n) o Operador Operaci´n o Ejemplo Resultado == Igual 4 == 5 0 != Diferente de 2!=3 1 < Menor que 10 < 4 0 > Mayor que 5>-4 1 <= Menor o igual que 7<=7 1 >= Mayor o igual que 3.5 >= 10 0 octave:#> 1+2>7-3 octave:#> 3>4<5 ans = 0 ans = 1 octave:#> 1<2<3 octave:#> 1/3<0.33333 ans = 1 ans = 0 octave:#> 1>2==2<3 octave:#> 5/3>=11/7 ans = 1 ans = 1 octave:#> 1>2==(2<3) octave:#> 2∧(2/3) < 3∧(3/4) ans = 0 ans = 1
  • 33. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosOperadores l´gicos (booleanos) o Operador Operaci´n o Ejemplo Resultado & y 2&3 1 | o 3|5 1 ! negaci´n o !7 0 A B A&B A|B !A Operador Jerarqu´ ıa 0 0 0 0 1 () (mayor) 0 1 0 1 1 ∧ 1 0 0 1 0 ∗, /, rem 1 1 1 1 0 ==, ! =, <, >, <=, >= ! & | (menor) octave:#> 0&1|1 octave:#> 5*4>4&0<3 ans = 1 ans = 1 octave:#> 1&(1|0) octave:#> 2∧(3&0/5)>rem(45,6) ans = 0 ans = 0
  • 34. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosVariables y formatos Variables: expresiones (identificadores) asociados a datos almacenados en un sistema de memoria Algunos tipos de datos: Real de doble precisi´n: 8 bytes (15 cifras exactas) o String: ’cadena de caracteres’ octave:#> base=3 octave:#> cadena=’hola’; a=3; base = 3 octave:#> alt=4 octave:#> cadena altura = 4 cadena = hola octave:#> area = base*alt octave:#> a=2*a area = 12 a = 6 octave:#> perim = 2*base+2*alt octave:#> area == 2*a perim = 14 ans = 1
  • 35. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosVariables y formatos Tipo Formato π short punto fijo, 5 d´ ıgitos 3.1416 long punto fijo, 15 d´ıgitos 3.14159265358979 short e punto flotante, 5 d´ ıgitos 3.1416e+000 long e punto flotante, 15 d´ ıgitos 3.141592653589793e+000 short g punto fijo o flotante, 5 d´ ıgitos 3.1416 long g punto fijo o flotante, 15 d´ ıgitos 3.14159265358979 octave:#> b=1/3 octave:#> format long e b = 0.33333 octave:#> format long octave:#> c c = 1.23123123123123e-01 octave:#> b octave:#> format b = 0.333333333333333 octave:#> c = 41/333 octave:#> c c = 0.123123123123123 c = 0.12312
  • 36. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosVariables predefinidas Variable Uso ans almacena el ultimo resultado ´ pi almacena el valor de π = 3,1415 . . . e almacena el valor de e = 2,7183 . . . √ i almacena el valor de −1 eps epsilon de la m´quina a Inf infinito NaN resultado no n´ merico (Not a Number) u octave:#> pi octave:#> eps ans = 3.1416 ans = 2.22044604925031e-16 octave:#> format long octave:#> 1/0 warning: division by zero ans = Inf octave:#> pi ans = 3.14159265358979 octave:#> 0/0 warning: division by zero octave:#> e ans = NaN ans = 2.71828182845905
  • 37. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEntorno de trabajo Variables utilizadas en una sesi´n de trabajo (who, whos) o Historial de ordenes ejecutadas (↓, ↑) ´ octave:#> who -v *** local user variables: __nargin__ a alt ans area b base c cadena perim octave:#> clear cadena octave:#> who -v *** local user variables: __nargin__ a alt ans area b base c perim
  • 38. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEntorno de trabajo octave:#> who -v *** local user variables: __nargin__ alt area base perim a ans b c octave-3.0.1:32> whos -v *** local user variables: Prot Name Size Bytes Class ==== ==== ==== ===== ===== rw- __nargin__ 1x1 8 double rwd a 1x1 8 double rwd alt 1x1 8 double rwd ans 1x1 1 logical rwd area 1x1 8 double rwd b 1x1 8 double rwd base 1x1 8 double rwd c 1x1 8 double rwd perim 1x1 8 double Total is 9 elements using 65 bytes
  • 39. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosFunciones matem´ticas a Funci´n o Uso sqrt(x) calcula la ra´ cuadrada de x ız exp(x) funci´n exponencial o log(x) funci´n logaritmo natural o sin(x) calcula sen(x) cos(x) calcula cos(x) tan(x) calcula tan(x) asin(x) calcula sen−1 (x) acos(x) calcula cos−1 (x) atan(x) calcula tan−1 (x) octave:#> cos(pi) octave:#> cos(a)∧2+sen(a)∧2 ans = -1 ans = 1.0000 octave:#> exp(1) octave:#> log(e) ans = 2.7183 ans = 1 octave:#> 4*atan(1) octave:#> 2*sin(3*pi/2) ans = 3.1416 ans = -2
  • 40. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosInstrucciones de entrada/salida Salida de datos: Entero d, i Punto fijo f, g disp("texto") Punto flotante e Caracter c printf("cadena de formato", arg1, arg2,...) Cadena de caracteres s octave:#> disp("¡hola, mundo!") ¡hola, mundo! octave:#> m=3; octave:#> disp(m) 3 octave:#> pulg=2.54; cent=6.4516; octave:#> printf(" %d pulgadas equivalen a %f cen´metros n", m, cent); ı 3 pulgadas equivalen a 6.451600 cent´metros ı octave:#> printf(" %f pulgadas equivalen a %f cent´metros n", pulg, cent); ı 2.540000 pulgadas equivale a 6.451600 cent´metros ı octave:#> printf(" %f pulgadas equivalen a %e cen´metros n", pulg, cent); ı 2.540000 pulgadas equivale a 6.451600e+00 cent´metros ı
  • 41. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosInstrucciones de entrada/salida Entrada de datos por teclado: input("texto") input("texto", "s") octave:#> palabra = input("Ingrese una palabra: ","s"); Ingrese una palabra: casa octave:#> palabra palabra = casa octave:#> letras = input("Ingrese el n´mero de letras: "); u Ingrese el n´mero de letras: 4 u octave:#> letras letras = 4 octave:#> printf("La palabra %s tiene %d letras n", palabra, letras); La palabra casa tiene 4 letras
  • 42. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosScripts Archivos de texto plano sin formato, con extensi´n .m, que contienen o una sucesi´n de comandos de Octave o Se editan con cualquier editor de texto (usaremos geany)
  • 43. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos de scripts hola mundo.m % Progarma Hola mundo en Octave, versi´n "emo" o printf("¡Hola, maldito mundo!n"); promedio.m % Calcula el promedio de dos n´meros reales u % Lee los valores de num1 y num2 num1 = input("Ingrese el primer n´mero: "); u num2 = input("Ingrese el segundo n´mero: "); u % Calcula el promedio y lo almacena en la variable prom prom = (num1+num2)/2; % Imprime los n´meros ingresados y su promedio u printf("El promedio de %g y %g es: %g n", num1, num2, prom);
  • 44. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos de scripts pmol.m % Este programa calcula el peso molecular de una molecula % organica. % Calculo de los g/mol de cada elemento. peso C = 12*9 ; peso H = 1*6 ; peso O = 16*4; % Calculo del peso molecular peso molecular = peso C + peso H + peso O % Calculo del porcentaje de oxigeno porcentaje O = peso O/peso molecular*100
  • 45. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos de scripts Ejemplo 5.1 Escriba un programa (script) en Octave que tenga como entradas los datos enteros A y B y escriba el resultado de la siguiente expresi´n: o (A + B)2 3 Soluci´n o operacion.m % Dados dos enteros A y B, calcula % (A+B)∧2/3 % Lee los valores de A y B A = input("Ingrese A: "); B = input("Ingrese B: "); RES = (A+B)∧2/3; % Imprime contenido de la variable RES disp(RES);
  • 46. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplos de scripts ´ Ejemplo 5.2 (Area y per´ ımetro de un rect´ngulo) a Escriba un programa (script) en Octave tal que dado como datos la base y la altura de un rect´ngulo, calcule su per´ a ımetro y area. ´ Soluci´n o rectangulo.m % Dados la base y la altura de un rect´ngulo, el programa a % calcula su ´rea y su per´metro a ı % Lee los valores de la base y la altura BASE = input("Ingrese la base: "); ALTURA = input("Ingrese la altura: "); AREA = BASE*ALTURA; PERIMETRO = 2*(BASE+ALTURA); printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO); a ı
  • 47. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosFunciones Son scripts que tienen una sintaxis predefinida Sintaxis de una funci´n o Programas que resultan complejos por medio de function nombre(argumentos) scripts, se simplifican por medio de funciones sentencias Una vez definidas, las funciones se invocan desde end la l´ ınea de comandos o desde un script cuadrado.m octave:#> cuadrado(3) ans = 9function y = cuadrado(x)% Calcula el cuadrado de octave:#> cuadrado(-2.5678)% un n´mero u ans = 6.5936 y = x*x;end octave:#> cuadrado(t) error: ‘t’ undefined near line 2 column 10 error: evaluating argument list element number 1 octave:#> help cuadrado calcula el cuadrado de un n´mero real u
  • 48. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo de funci´n o ´ Ejemplo 5.3 (Area y per´ ımetro de un rect´ngulo con funciones) a Resuelva el ejemplo (5.2) del rect´ngulo utilizando funciones. a Soluci´n o area.m rectangulo2.m % Dados la base y la altura de un rect´ngulo, el programa afunction z = area(x,y) % calcula su ´rea y su per´metro a ı% Calcula el ´rea de un a % Lee los valores de la base y la altura% cuadrado de lados x e y BASE = input("Ingrese la base: "); ALTURA = input("Ingrese la altura: "); z = x*y; AREA = area(BASE,ALTURA); PERIMETRO = perimetro(BASE,ALTURA);end printf("El ´rea es %f y el per´metro es %f n", AREA, PERIMETRO); a ı perimetro.m octave:#> rectangulo2function z = perimetro(x,y) Ingrese la base: 2% Calcula el per´metro de un ı Ingrese la altura: 3% cuadrado de lados x e y El ´rea es 6.000000 y el per´metro es 10.000000 a ı z = 2*(x+y);end
  • 49. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.1 Ejemplo 6.1 Realice un algoritmo (diagrama de flujo, pseudoc´digo) tal que dado el costo o de un art´ıculo vendido y la cantidad de dinero entregada por el cliente, calcule e imprima el cambio que se debe entregar al mismo. Implem´ntelo e en DFD. Soluci´n o Datos: PRECIO: variable de tipo real que representa el precio del producto. PAGO: variable de tipo real que representa el pago a realizar por el cliente. Variables de salida: DEVO: variable de tipo real. Almacen el cambio que se le debe entregar al cliente. Nota: asumimos que el pago del cliente es mayor que el precio del producto.
  • 50. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.1 DEVUELTO { Dado el costo de un producto y la cantidad de dinero entregada por el cliente, calcula el vuelto que hay que entregar al cliente. } { PRECIO, PAGO Y DEVO son variables de tipo real. } 1 Leer PRECIO, PAGO 2 Hacer DEVO ← PAGO − PRECIO 3 Escribir DEVO # PRECIO PAGO DEVO 1 34 60 26 2 124.7 213 88,13 3 24.53 100 75,47 4 12 21 9
  • 51. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.2 Ejemplo 6.2 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como o datos el nombre de un dinosaurio, su peso (en toneladas) y su altura (en pies), y que escriba el nombre del dinosaurio, su peso en kilogramos y su altura en metros. Implem´ntelo en DFD. e Soluci´n o Datos: NOM: variable de tipo cadena de caracteres que indica el nombre del dinosaurio. PES: variable de tipo real que representa el peso del dinosaurio. ALT: variable de tipo real que representa la altura del dinosaurio. Variables de salida: PESKG: variable de tipo real, almacena el peso del dinosaurio en Kg. ALTMT: variable de tipo real, almacena el peso del dinosaurio en mt. Consideraciones: 1 tonelada equivale a 1000 kilogramos. 1 pie equivale a 0.3047 metros.
  • 52. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.2 DINOSAURIO { Dado el nombre de un dinosaurio, su peso en toneladas y su altura en pies, el programa escribe el nombre del dinosaurio, su peso en kilogramos y su altura en metros. } { NOM es una variable de tipo cadena de caracteres. PES, ALT, PESKG, y ALTMT son variables de tipo real. } 1 Leer NOM, PES, ALT 2 Hacer PESOKG ← PESO∗1000 3 Hacer ALTMT ← ALT∗0,3047 4 Escribir NOM, PESOKG, ALTMT # NOM PES ALT PESKG ALTMT 1 tiranosaurio 5 30 5000 9,15 2 poderosaurio 15 90 15000 27,42 3 perderosaurio 50 80 50000 24,37 4 brontosaurio 25 70 25000 21,32
  • 53. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.3 Ejemplo 6.3 En una gasolinera las m´quinas registran el combustible surtido en galones a pero el precio de la gasolina est´ fijado en litros. Realice un algoritmo a (diagrama de flujo, pseudoc´digo) que calcule e imprima el valor que hay o que cobrarle al cliente e implem´ntelo en DFD. e Soluci´n o Datos: GAL: variable de tipo real que representa los galones de gasolina surtidos al cliente. Variables de salida: TOTAL: variable de tipo real, almacena el total que debe pagar el cliente. Consideraciones: 1 gal´n equivale a 3.785 litros. o 1 litro de gasolina cuesta $1480.
  • 54. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.3 GASOLINA { Dado los galones de gasolina surtidos a un cliente, calcula el precio que debe pagar el cliente. } { GAL y TOTAL son variableS de tipo real. } 1 Leer GAL 2 Hacer TOTAL ← GAL∗3,785 ∗ 1480 3 Escribir TOTAL # GAL TOTAL 1 10,38 58146,684 2 15,90 89068,62 3 8,40 47055,12 4 9,66 54113,388
  • 55. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.4 Ejemplo 6.4 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que reciba como o datos el radio y la altura de un cilindro y calcule e imprima su ´rea y a volumen. Implem´ntelo en DFD. e Soluci´n o Datos: RADIO: variable de tipo real que representa el radio del cilindro. ALT: variable de tipo real que representa la altura del cilindro. Variables de salida: VOL: variable de tipo real, almacena el volumen del cilindro. AREA: variable de tipo real, almacena el area del cilindro. ´ Consideraciones: El volumen y el area de un cilindro est´n dados respectivamente por ´ a volumen = πr2 × h y area = 2πr × h donde r es el radio de la base, h es su altura y π = 3,141592 . . .
  • 56. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.4 CILINDRO { Dado el radio y la altura de un cilindro, calcula su ´rea y su volumen.} a { RADIO, ALT, VOL y AREA son variables de tipo real. } 1 Leer RADIO, ALT 2 Hacer VOL ← 3.141592 ∗ RADIO∧2 ∗ ALT 3 Hacer AREA ← 2 ∗ 3,141592∗ RADIO ∗ ALT 4 Escribir VOL, AREA # RADIO ALT VOL AREA 1 45,22 11,60 74519,33 3295,86 2 17,30 8,45 7945,09 918,51 3 69,30 72,40 1092332,40 31524,75 4 125,30 117,40 5790552,70 92427,01
  • 57. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.5 Ejemplo 6.5 Realice un algoritmo (diagrama de flujo, pseudoc´digo) que calcule e o imprima el n´mero de segundos que hay en un determinado n´mero de u u d´ ıas. Implem´ntelo en DFD. e Soluci´n o Datos: DIAS: variable de tipo entero que representa el n´mero de d´ u ıas. Variables de salida: SEG: variable de tipo real. Almacena la cantidad de segundos que hay en un n´mero determinado de d´ u ıas.
  • 58. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.5 SEGUNDOS EN DIAS { Dado un n´mero determinado de d´ u ıas, calcula cu´ntos segundos tienen ´stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. } 1 Leer DIAS 2 Hacer SEG ← DIAS∗24 ∗ 60 ∗ 60 3 Escribir DIAS # DIAS SEG 1 1 86400 2 7 604800 3 15 1296000 4 30 2592000
  • 59. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.6 Ejemplo 6.6 Se desea conocer cu´ntos meses han transcurrido entre enero de 1949 y a enero de 2002. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que o resuelva dicho problema e implem´ntelo en DFD. e Soluci´n o Variables: ATRANS: variable de tipo entero; almacena el n´mero de meses que hay u entre 1949 y 2002. MESES { Determina el n´mero de meses que hay u entre 1949 y 2002. } 1 Hacer ATRANS ← (2002 − 1949) ∗ 12 2 Escribir ATRANS
  • 60. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.7 Ejemplo 6.7 (Generalizaci´n del ejemplo 6.6) o Se desea determinar los meses transcurridos entre los inicios de dos a˜os n cualesquiera. Realice un algoritmo (diagrama de flujo, pseudoc´digo) que o resuelva dicho problema e implem´ntelo en DFD. e Soluci´n o Datos: AINICIAL: variable de tipo entero, representa el a˜o inicial. n AFINAL: variable de tipo entero, representa el a˜o final. n ATRANS: variable de tipo entero; almacena el n´mero de a˜os que hay u n entre el a˜o inicial y el a˜o final. n n Variables de salida: MTRANS: variable de tipo entero; almacena el n´mero de meses u transcurridos entre el a˜o inicial y el a˜o final. n n
  • 61. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosEjemplo 6.7 MESES GENERAL { Dado un n´mero determinado de d´ u ıas, calcula cu´ntos segundos tienen ´stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. } 1 Leer AINICIAL, AFINAL 2 Hacer ATRANS ← AFINAL−AINICIAL 3 Hacer MTRANS ← 12∗MTRANS 4 Escribir ATRANS # ANICIAL AFINAL MTRANS 1 1982 2008 312 2 1969 1987 216 3 1883 1972 1068 4 1944 1949 60
  • 62. Introducci´n Diagramas de flujo Dise˜ o de diagramas o n Pseudoc´digo o GNU Octave EjemplosReferencias O. Cair´ o Metodolog´ de la programaci´n ıa o Segunda edici´n. Alfaomega Grupo Editor, S.A., 2005 o J.W. Eaton GNU Octave: A high-level interactive language for numerical computations Network Theory Ltd., 2002

×