Está en la página 1de 62

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Introduccin a los Computadores o Algoritmos computacionales


CNM-130 Departamento de Matemticas a Facultad de Ciencias Exactas y Naturales Universidad de Antioquia
Copyleft 2009. Reproduccin permitida bajo los o trminos de la licencia de documentacin libre GNU. e o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Contenido

Introduccin o Diagramas de ujo Construccin de diagramas de ujo o Pseudocdigo o GNU Octave Ejemplos

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Etapas en la resolucin de un problema o


Denicin del problema: el enunciado completo del problema, o qu es lo que se pretende obtener? e Anlisis del problema: a
un conjunto de datos de entrada (la informacin 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 solucin: se debe proponer o aplicar un modelo para n o lograr sistematizar la bsqueda de la solucin. u o Codicacin: en esta etapa se describen los pasos que se deben o ejecutar para resolver el problema (algoritmo). Prueba: se verica el funcionamiento de la solucin propuesta y se o detectan los errores que se presenten con la posterior correccin de los o mismos (depuracin). o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Algoritmos
Denicin 1.1 (Algoritmo) o Un algoritmo es una secuencia nita 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 nito. Cinco propiedades ampliamente aceptadas como requisitos para un algoritmo (Knuth):
Finitud: Un algoritmo siempre debe terminar despus de un n mero e u nito de pasos. Precisin: cada paso de un algoritmo debe estar precisamente denido o y sin ambiguedades. Entrada: un algoritmo tiene cero o ms entradas que le son dadas antes a de que el algoritmo comience, o dinmicamente mientras corre. a Salida: un algoritmo tiene una o ms salidas. a Ecacia: las operaciones a realizar en un algoritmo deben ser sucientemente bsicas como para que en principio puedan ser a realizadas de manera exacta y en un tiempo nito por un hombre usando papel y lpiz. a

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo
Algoritmo para preparar fr joles con chicharrn para 8 raciones. Los o datos de entrada (ingredientes) son:
2 libras de fr joles. 1 cucharada de aceite vegetal o de girasol. 1/4 de libra de tocino cortado en trocitos.
Algoritmo
1

2 zanahorias peladas. 2 cubos de caldo de carne. 1 cucharada de sal. 16 tazas de agua.

Se lavan bien los frjoles y se dejan remojando en el agua desde la noche anterior. Al da siguiente, se ponen en la olla a presin con el agua en o que se remojaron, el aceite, el tocino y la zanahoria. Se cocinan sin sal hasta que estn blandos, aproximadamente por e 1 hora. Se lica una peque~a cantidad de los frjoles con la zanahoria, u n los cubos de caldo y la sal, y se agrega a los frjoles. Se cocinan media hora ms con la olla destapada hasta que a espesen.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Otros ejemplos
Muchos algoritmos no requieren de un computador para su ejecucin: 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 prctica, un algoritmo es slo una parte de las etapas requeridas a o para resolver un problema:
Diseo del algoritmo. n Implementacin del algoritmo en un lenguaje de programacin adecuado o o (codicacin). o Ejecucin y validacin del programa por el computador. o o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Diseo de algoritmos n
Herramientas utilizadas para disear algoritmos n
Diagramas de ujo: representacin esquemtica de un algoritmo que o a muestra grcamente los pasos a seguir para alcanzar la solucin de un a o problema. Pseudocdigos: forma genrica de escribir un algoritmo, por medio de o e un lenguaje simple sin necesidad de conocer la sintxis de un lenguaje a de programacin. o

El diagrama de ujo se compone de guras que ilustran los pasos o procesos a seguir para alcanzar la solucin del problema. o Los s mbolos presentados permiten crear una estructura grca exible a que ilustra los pasos a seguir. Un diagrama de ujo permite con facilidad la posterior escritura de un programa en algn lenguaje de programacin. u o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Diagramas de ujo
S mbolo utilizado para marcar el inicio y el n del diagrama de ujo. 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 aritmticas, cambios de valor de celdas en memoria, etc. e S mbolos utilizados para indicar la direccin del ujo o del diagrama. S mbolo utilizado para representar la estructura selectiva si entonces; en su interior se almacena una condicin que determina el ujo del diagrama. o S mbolo utilizado para representar la estructura selectiva si entonces/sino; en su interior se almacena una condicin que determina el ujo del diagrama. o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Diagramas de ujo
S mbolo utilizado para representar una decisin o mltiple. 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 impresin de un o resultado (expresa escritura). S mbolo utilizado para expresar conexin dentro de o una misma pgina. a

S mbolo utilizado para expresar conexin entre o pginas diferentes. a

S mbolo utilizado para expresar un mdulo de un o problema: para continuar con el ujo normal del diagrama es necesario primero resolver el subproblema enunciado en su interior.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Diagramas de ujo

Esquema general de un diagrama de ujo

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Reglas para la construccin de diagramas de ujo o


Todo diagrama de ujo debe tener un inicio y un n.

Las lineas utilizadas para indicar la direccin del ujo del diagrama o deben ser rectas verticales y horizontales y no se deben cruzar.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Reglas para la construccin de diagramas de ujo o


Todas las lineas utilizadas para indicar la direccin del ujo del o diagrama deben estar conectadas. El diagrama de ujo debe ser constuido de arriba hacia abajo (top-down) y de izquierda a derecha (left-right). La notacin empleada en el diagrama de ujo debe ser independiente o del lenguaje de programacin. o Si el diagrama de ujo requiere ms de una hoja para su construccin, a o se debe utilizar conectores adecuados y enumerar las pginas a convenientemente. A un s mbolo del diagrama (excepto l neas) no puede llegar ms de una a l nea.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Ejemplo 3.1 Construya un diagrama de ujo tal que dado los datos A, B, C y D que representan nmeros enteros, escriba los mismos en orden inverso. u Solucin o

Diagrama de flujo general

Diagrama de flujo en DFD

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Ejemplo 3.2 Escriba (en papel) un diagrama de ujo que tenga como entradas los datos enteros A y B y escriba el resultado de la siguiente expresin: o (A + B)2 3 Implemente el diagrama tambin en DFD. e Solucin o Consideraciones: Datos: A y B (variables de tipo entero). Para indicar un proceso utilizamos

Para asignar un valor o una expresin a una variable utilizamos o variable expresin o valor o

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o

Explicacin de las variables: o A, B: variables de tipo entero. RES: variable de tipo real, almacena el resultado de la operacin. o
# 1 2 3 4 5 A 5 7 0 12 14 B 6 10 3 2 -5 RES 40, 33 96,33 3,00 65,33 27,00

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Ejemplo 3.3 Un estudiante obtiene 5 calicaciones a lo largo del semestre. Escriba (en papel) un diagrama de ujo que imprima el promedio de sus calicaciones. Implemntelo tambin en DFD. e e

Solucin o Consideraciones: Datos: CAL1, CAL2, CAL3, CAL4, CAL5 variables de tipo real que representan las 5 calicaciones del alumno. El promedio de las calicaciones est dado por a CAL1+ CAL2+ CAL3+ CAL4 + CAL5 5

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Las observaciones anteriores nos conducen al siguiente diagrama de ujo.
CAL1, CAL2, CAL3, CAL4, CAL5: Variables de tipo entero. PRO: Variable de tipo real, almacena el resultado de la operacin. o

# 1 2 3 4 5

CAL1 8 9 9 8,5 7,3

CAL2 8,5 8 10 9 6,8

CAL3 9 9 10 7,5 9,5

CAL4 7 7 8 6 8

CAL5 6 9 9 6,5 8,5

PRO 7,7 8,4 9,2 7,5 8,02

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Ejemplo 3.4 Escriba (en papel) un diagrama de ujo que permita calcular e imprimir el cuadrado y el cubo de un entero positivo NUM e implemntelo en DFD. e Solucin o NUM: variable de tipo entero. CUA: variable de tipo real, almacena el cuadrado del nmero que se u ingresa. CUB: variable de tipo real, almacena el cubo del nmero que se ingresa. u
# 1 2 3 4 5 NUM 7 15 8 12 30 CUA 49 225 64 144 900 CUB 343 3375 512 1728 27000

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Ejemplo 3.5 Escriba (en papel) un diagrama de ujo tal que dado como datos la base y la altura de un rectngulo, calcule su per a metro y rea. Realice el diagrama a tambin en DFD. e Solucin o Consideraciones: Datos: BASE, ALTURA Donde:
BASE: variable de tipo real que representa la base del rectngulo. a ALTURA: variable de tipo real que representa la altura del rectngulo. a

Recuerde que: El area de un rectngulo est dada por a a area = base altura El per metro de un rectngulo est dada por a a per metro = 2 (base + altura)

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Construccin de diagramas de ujo o


Las observaciones anteriores nos conducen al siguiente diagrama de ujo.
BASE, ALTURA: variables de tipo real. AREA: variable de tipo real, almacena el rea del rectngulo. a a PERIMETRO: variable de tipo real, almacena el per metro del recngulo. a

# 1 2 3 4 5

BASE 8 9 9 8,5 7,3

ALTURA 8,5 8 10 9 6,8

AREA 9 9 10 7,5 9,5

PERIMETRO 7 7 8 6 8

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Terminolog bsica a a
Programa: conjunto de instrucciones que ejecuta un computador para alcanzar un resultado espec co (Von Neumann, 1946). Un programa se escribe en un lenguaje de programacin a partir de o un diagrama de ujo diseado con anterioridad. n Los lenguajes de programacin estn constituidos por un conjunto de o a
1

Reglas sintcticas: especif a can la formacin (sintxis) de instrucciones o a vlidas. a Reglas semnticas: especican el signicado de las instrucciones a vlidas. a

Pasos en la resolucin de un problema: o


1 2 3

Desarrollo de un algoritmo (solucin general). o Construccin de un diagrama de ujo. o Construccin de un programa en un lenguaje de programacin. o o

Previo al paso (3), utilizaremos un lenguaje llamado pseudocdigo: o


Es independiente de cualquier lenguaje de programacin. o Carece del rigor y formalismo expresados en las reglas (1) y (2).

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Instrucciones en pseudocdigo o

Lectura de datos:
Leer A, VEL, C

Proceso:
Hacer TEMP TEMP + 1

Escritura:
Escribir A, VEL

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos
Programa en pseudocdigo para el diagrama de ujo 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 2

Leer A, B, C, D Escribir D, C, B, A

Observaciones
Todo programa tiene un nombre que lo dene y que se elige teniendo en cuenta las reglas para la construccin de identicadores. o Entre llaves { } van comentarios que indican la funcin del programa. o Escribir un programa es sencillo cuando se conoce las instrucciones del pseudocdigo. La tarea intelectual consiste en la construccin del o o diagrama de ujo.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos

Programa en pseudocdigo para el diagrama de ujo del ejemplo (3.2) o

CALCULA { Dado dos enteros A y B, el programa calcula el resultado de una expresin } o { A y B son variables de tipo entero, RES es una variable de tipo real }
1 2 3

Leer A, B Hacer RES (A + B) 2/3 Escribir RES

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos

Programa en pseudocdigo para el diagrama de ujo del ejemplo (3.3) o

PROMEDIO CALIFICACION { Dadas las calicaciones de un estudiante, calcula su promedio } { CAL1, CAL2, CAL3, CAL4, CAL5 y PRO son variables de tipo real}
1 2

Leer CAL1, CAL2, CAL3, CAL4, CAL5 Hacer PRO (CAL1 + CAL2 + CAL3 + CAL4 + CAL5)/5 Escribir PRO

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos

Programa en pseudocdigo para el diagrama de ujo del ejemplo (3.4) o

CUADRADO CUBO { Dado un entero positivo, el programa calcula el cuadrado y el cubo de dicho nmero. } u { NUM es una variable de tipo entero, CUA y CUB son variables de tipo real }
1 2 3 4

Leer NUM Hacer CUA NUM*NUM Hacer CUB NUM3 Escribir CUA y CUB

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos

Programa en pseudocdigo para el diagrama de ujo del ejemplo (3.5) o

CUADRADO CUBO { Dados la base y la altura de un rectngulo, a calcula su per metro y su rea. } a { BASE, ALTURA, AREA Y PERIMETRO son variables de tipo real }
1 2 3

Leer BASE, ALTURA Hacer AREA BASE*ALTURA Hacer PERIMETRO 2*(BASE+ALTURA) Escribir AREA y PERIMETRO

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Aspectos bsicos a

Lenguaje de alto nivel interpretado, orientado principalmente a computacin cient o ca Pretende ser compatible con MATLAB Proporciona una l nea de comandos interactiva para resolver problemas matemticos numricamente a e Incluye una coleccin de algoritmos y funciones matemticas o a

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Aspectos bsicos a
Ventajas
Sencillo de utilizar Software libre: se distribuye bajo licencia GNU, GPL (General Public License) Sintxis muy similar a MATLAB a Cdigo abierto: amplia comunidad de soporte (foros, etc.) o

A diferencia de MATLAB. . .
No soporta programacin orientada a objetos o Capacidad de grcos limitada (GUIs) a Pocos toolboxes disponibles No dispone de los millones de una compa como MathWorks, Inc. na

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Aspectos bsicos: 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>

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Algunos operadores aritmticos e


Operador / + rem Operacin o Potencia Multiplicacin o Divisin o Suma Resta Mdulo (residuo) o Ejemplo 23 73 10/4 34 74 rem(10, 3) Resultado 8 21 2.5000 1 3 1

octave:#> 3+4 ans = 7

octave:#> 4+6/2+3 ans = 10

octave:#> 5/10*2+5 ans = 6

octave:#> (4+6)/(2+3) ans = 2

octave:#> 5/(10*2+5) ans = 0.20000

octave:#> 00 ans = 1

octave:#> 2+4*3^2 ans = 38

octave:#> rem(17,3) ans = 2

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Operadores relacionales (de comparacin) o


Operador == != < > <= >= Operacin o Igual Diferente de Menor que Mayor que Menor o igual que Mayor o igual que Ejemplo 4 == 5 2!=3 10 < 4 5>-4 7<=7 3.5 >= 10 Resultado 0 1 0 1 1 0

octave:#> 1+2>7-3 ans = 0

octave:#> 3>4<5 ans = 1

octave:#> 1<2<3 ans = 1

octave:#> 1/3<0.33333 ans = 0

octave:#> 1>2==2<3 ans = 1

octave:#> 5/3>=11/7 ans = 1

octave:#> 1>2==(2<3) ans = 0

octave:#> 2(2/3) < 3(3/4) ans = 1

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Operadores lgicos (booleanos) o


Operador & | ! Operacin o y o negacin o Ejemplo 2&3 3|5 !7 Resultado 1 1 0 Operador () , /, rem ==, ! =, <, >, <=, >= ! & | Jerarqu a (mayor)

A 0 0 1 1

B 0 1 0 1

A&B 0 0 0 1

A|B 0 1 1 1

!A 1 1 0 0

(menor)

octave:#> 0&1|1 ans = 1

octave:#> 5*4>4&0<3 ans = 1

octave:#> 1&(1|0) ans = 0

octave:#> 2(3&0/5)>rem(45,6) ans = 0

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Variables y formatos
Variables: expresiones (identicadores) asociados a datos almacenados en un sistema de memoria Algunos tipos de datos:
Real de doble precisin: 8 bytes (15 cifras exactas) o String: cadena de caracteres

octave:#> base=3 base = 3

octave:#> cadena=hola; a=3;

octave:#> alt=4 altura = 4

octave:#> cadena cadena = hola

octave:#> area = base*alt area = 12

octave:#> a=2*a a = 6

octave:#> perim = 2*base+2*alt perim = 14

octave:#> area == 2*a ans = 1

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Variables y formatos
Tipo short long short e long e short g long g Formato punto punto punto punto punto punto jo, 5 d gitos jo, 15 d gitos otante, 5 d gitos otante, 15 d gitos jo o otante, 5 d gitos jo o otante, 15 d gitos 3.1416 3.14159265358979 3.1416e+000 3.141592653589793e+000 3.1416 3.14159265358979

octave:#> b=1/3 b = 0.33333

octave:#> format long e

octave:#> format long

octave:#> c c = 1.23123123123123e-01

octave:#> b b = 0.333333333333333

octave:#> format

octave:#> c = 41/333 c = 0.123123123123123

octave:#> c c = 0.12312

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Variables predenidas
Variable ans pi e i eps Inf NaN Uso almacena el ultimo resultado almacena el valor de = 3,1415 . . . almacena el valor de e = 2,7183 . . . almacena el valor de 1 epsilon de la mquina a innito resultado no n merico (Not a Number) u

octave:#> pi ans = 3.1416

octave:#> eps 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 ans = NaN

octave:#> e ans = 2.71828182845905

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Entorno de trabajo
Variables utilizadas en una sesin de trabajo (who, whos) o Historial de ordenes ejecutadas (, )
octave:#> who -v *** local user variables: __nargin__ c a alt perim ans area b base

cadena

octave:#> clear cadena

octave:#> who -v *** local user variables: __nargin__ c perim a alt ans area b base

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Entorno de trabajo
octave:#> who -v *** local user variables: __nargin__ a alt ans area b base c perim

octave-3.0.1:32> whos -v *** local user variables: Prot ==== rwrwd rwd rwd rwd rwd rwd rwd rwd Name ==== __nargin__ a alt ans area b base c perim Size ==== 1x1 1x1 1x1 1x1 1x1 1x1 1x1 1x1 1x1 Bytes ===== 8 8 8 1 8 8 8 8 8 Class ===== double double double logical double double double double double

Total is 9 elements using 65 bytes

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Funciones matemticas a
Funcin o sqrt(x) exp(x) log(x) sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) Uso calcula la ra cuadrada de x z funcin exponencial o funcin logaritmo natural o calcula sen(x) calcula cos(x) calcula tan(x) calcula sen1 (x) calcula cos1 (x) calcula tan1 (x)

octave:#> cos(pi) ans = -1

octave:#> cos(a)2+sen(a)2 ans = 1.0000

octave:#> exp(1) ans = 2.7183

octave:#> log(e) ans = 1

octave:#> 4*atan(1) ans = 3.1416

octave:#> 2*sin(3*pi/2) ans = -2

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Instrucciones de entrada/salida
Salida de datos:
disp("texto") printf("cadena de formato", arg1, arg2,...) 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 cenmetros \n", m, cent); 3 pulgadas equivalen a 6.451600 centmetros octave:#> printf(" %f pulgadas equivalen a %f centmetros \n", pulg, cent); 2.540000 pulgadas equivale a 6.451600 centmetros octave:#> printf(" %f pulgadas equivalen a %e cenmetros \n", pulg, cent); 2.540000 pulgadas equivale a 6.451600e+00 centmetros
Entero Punto jo Punto otante Caracter Cadena de caracteres d, i f, g e c s

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Instrucciones 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 nmero de letras: "); u Ingrese el nmero 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

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Scripts
Archivos de texto plano sin formato, con extensin .m, que contienen o una sucesin de comandos de Octave o Se editan con cualquier editor de texto (usaremos geany)

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos de scripts

hola mundo.m

% Progarma Hola mundo en Octave, versin "emo" o printf("Hola, maldito mundo!\n");

promedio.m

% Calcula el promedio de dos nmeros reales u % Lee los valores de num1 y num2 num1 = input("Ingrese el primer nmero: "); u num2 = input("Ingrese el segundo nmero: "); u % Calcula el promedio y lo almacena en la variable prom prom = (num1+num2)/2; % Imprime los nmeros ingresados y su promedio u printf("El promedio de %g y %g es: %g \n", num1, num2, prom);

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos 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

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos 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 expresin: o (A + B)2 3 Solucin 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);

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplos de scripts
Ejemplo 5.2 (Area y per metro de un rectngulo) a Escriba un programa (script) en Octave tal que dado como datos la base y la altura de un rectngulo, calcule su per a metro y area. Solucin o

rectangulo.m % Dados la base y la altura de un rectngulo, el programa a % calcula su rea y su permetro 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 permetro es %f \n", AREA, PERIMETRO); a

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Funciones
Son scripts que tienen una sintaxis predenida Programas que resultan complejos por medio de scripts, se simplican por medio de funciones Una vez denidas, las funciones se invocan desde la l nea de comandos o desde un script
cuadrado.m

Sintaxis de una funcin o function nombre(argumentos) sentencias end

octave:#> cuadrado(3) ans = 9 octave:#> cuadrado(-2.5678) ans = 6.5936 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 nmero real u

function y = cuadrado(x) % Calcula el cuadrado de % un nmero u y = x*x; end

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo de funcin o
Ejemplo 5.3 (Area y per metro de un rectngulo con funciones) a Resuelva el ejemplo (5.2) del rectngulo utilizando funciones. a Solucin o
area.m rectangulo2.m % Dados la base y la altura de un rectngulo, el programa a % calcula su rea y su permetro a % Lee los valores de la base y la altura BASE = input("Ingrese la base: "); ALTURA = input("Ingrese la altura: "); AREA = area(BASE,ALTURA); PERIMETRO = perimetro(BASE,ALTURA); printf("El rea es %f y el permetro es %f \n", AREA, PERIMETRO); a perimetro.m

function z = area(x,y) % Calcula el rea de un a % cuadrado de lados x e y z = x*y; end

function z = perimetro(x,y) % Calcula el permetro de un % cuadrado de lados x e y z = 2*(x+y); end

octave:#> rectangulo2 Ingrese la base: 2 Ingrese la altura: 3 El rea es 6.000000 y el permetro es 10.000000 a

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.1
Ejemplo 6.1 Realice un algoritmo (diagrama de ujo, pseudocdigo) 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. Implemntelo e en DFD. Solucin 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.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 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 2 3

Leer PRECIO, PAGO Hacer DEVO PAGO PRECIO Escribir DEVO

# 1 2 3 4

PRECIO 34 124.7 24.53 12

PAGO 60 213 100 21

DEVO 26 88,13 75,47 9

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.2
Ejemplo 6.2 Realice un algoritmo (diagrama de ujo, pseudocdigo) 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. Implemntelo en DFD. e Solucin 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.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 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 2 3 4

Leer NOM, PES, ALT Hacer PESOKG PESO1000 Hacer ALTMT ALT0,3047 Escribir NOM, PESOKG, ALTMT

# 1 2 3 4

NOM tiranosaurio poderosaurio perderosaurio brontosaurio

PES 5 15 50 25

ALT 30 90 80 70

PESKG 5000 15000 50000 25000

ALTMT 9,15 27,42 24,37 21,32

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.3
Ejemplo 6.3 En una gasolinera las mquinas registran el combustible surtido en galones a pero el precio de la gasolina est jado en litros. Realice un algoritmo a (diagrama de ujo, pseudocdigo) que calcule e imprima el valor que hay o que cobrarle al cliente e implemntelo en DFD. e Solucin 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 galn equivale a 3.785 litros. o 1 litro de gasolina cuesta $1480.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 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 2 3

Leer GAL Hacer TOTAL GAL3,785 1480 Escribir TOTAL

# 1 2 3 4

GAL 10,38 15,90 8,40 9,66

TOTAL 58146,684 89068,62 47055,12 54113,388

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.4
Ejemplo 6.4 Realice un algoritmo (diagrama de ujo, pseudocdigo) que reciba como o datos el radio y la altura de un cilindro y calcule e imprima su rea y a volumen. Implemntelo en DFD. e Solucin 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 estn dados respectivamente por a volumen = r2 h y area = 2r h

donde r es el radio de la base, h es su altura y = 3,141592 . . .

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 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 2 3 4

Leer RADIO, ALT Hacer VOL 3.141592 RADIO2 ALT Hacer AREA 2 3,141592 RADIO ALT Escribir VOL, AREA

# 1 2 3 4

RADIO 45,22 17,30 69,30 125,30

ALT 11,60 8,45 72,40 117,40

VOL 74519,33 7945,09 1092332,40 5790552,70

AREA 3295,86 918,51 31524,75 92427,01

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.5

Ejemplo 6.5 Realice un algoritmo (diagrama de ujo, pseudocdigo) que calcule e o imprima el nmero de segundos que hay en un determinado nmero de u u d as. Implemntelo en DFD. e

Solucin o Datos: DIAS: variable de tipo entero que representa el nmero de d u as. Variables de salida: SEG: variable de tipo real. Almacena la cantidad de segundos que hay en un nmero determinado de d u as.

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.5

SEGUNDOS EN DIAS { Dado un nmero determinado de d u as, calcula cuntos segundos tienen stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. }
1 2 3

Leer DIAS Hacer SEG DIAS24 60 60 Escribir DIAS

# 1 2 3 4

DIAS 1 7 15 30

SEG 86400 604800 1296000 2592000

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.6
Ejemplo 6.6 Se desea conocer cuntos meses han transcurrido entre enero de 1949 y a enero de 2002. Realice un algoritmo (diagrama de ujo, pseudocdigo) que o resuelva dicho problema e implemntelo en DFD. e Solucin o Variables: ATRANS: variable de tipo entero; almacena el nmero de meses que hay u entre 1949 y 2002.
MESES { Determina el nmero de meses que hay u entre 1949 y 2002. }
1 2

Hacer ATRANS (2002 1949) 12 Escribir ATRANS

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.7
Ejemplo 6.7 (Generalizacin del ejemplo 6.6) o Se desea determinar los meses transcurridos entre los inicios de dos aos n cualesquiera. Realice un algoritmo (diagrama de ujo, pseudocdigo) que o resuelva dicho problema e implemntelo en DFD. e Solucin o Datos: AINICIAL: variable de tipo entero, representa el ao inicial. n AFINAL: variable de tipo entero, representa el ao nal. n ATRANS: variable de tipo entero; almacena el nmero de aos que hay u n entre el ao inicial y el ao nal. n n Variables de salida: MTRANS: variable de tipo entero; almacena el nmero de meses u transcurridos entre el ao inicial y el ao nal. n n

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Ejemplo 6.7

MESES GENERAL { Dado un nmero determinado de d u as, calcula cuntos segundos tienen stos. } a e { DIAS es una variable de tipo entero y SEG es una variable de tipo real. }
1 2 3 4

Leer AINICIAL, AFINAL Hacer ATRANS AFINALAINICIAL Hacer MTRANS 12MTRANS Escribir ATRANS

# 1 2 3 4

ANICIAL 1982 1969 1883 1944

AFINAL 2008 1987 1972 1949

MTRANS 312 216 1068 60

Introduccin Diagramas de flujo Dise o de diagramas o n

Pseudocdigo o

GNU Octave

Ejemplos

Referencias

O. Cair o Metodolog de la programacin a o Segunda edicin. Alfaomega Grupo Editor, S.A., 2005 o

J.W. Eaton GNU Octave: A high-level interactive language for numerical computations Network Theory Ltd., 2002

También podría gustarte