Vous êtes sur la page 1sur 76

INGENIERIA ASISTIDA POR COMPUTADORA 2011

UNIVERSIDAD AUTONOMA
JUAN MISAEL SARACHO

Texto Guía
IAC-022
Docente: Ing. Salomón Benito
H.

Villa Montes – Tarija


2011
Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 0
INGENIERIA ASISTIDA POR COMPUTADORA 2011

INTRODUCCION

El desarrollo de algoritmos es un tema fundamental en el diseño de programas. Por lo


mismo el alumno debe tener buenas bases que le sirvan para poder desarrollar de manera fácil y
rápida sus programas en el campo de la profesión ingenieril.

Estos apuntes servirán sin duda de apoyo no solo al docente de la materia sino que le ayudará
al estudiante a entender el propósito de la misma. En su labor cotidiana de enseñanza facilitará
también al dicente a desarrollar su capacidad analítica y creadora, para de esta manera mejorar su
destreza en la elaboración de algoritmos que servirán como base para la codificación en cualquier
lenguaje de programación. De manera particular en Quick Basic que tendrá que desarrollar
programas de aplicación matemática, física, química, estadística y otras aplicaciones más específicas
como son los procesos químicos y control automático en pozos petroleros.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 1


INGENIERIA ASISTIDA POR COMPUTADORA 2011

I. CONCEPTOS BÁSICOS Y METODOLOGÍA PARA LA SOLUCIÓN DE PROBLEMAS POR


MEDIO DE COMPUTADORAS.

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Conocer la terminología relacionada con los algoritmos; así como la importancia de aplicar
técnicas adecuadas de programación.

Conocer la metodología en cada una de sus etapas.

1.1 Introducción

La computadora no constituye una alternativa de la capacidad intelectual del hombre, por el


contrario es una prolongación de esta última. Tampoco representa en sí misma una solución para
cualquier clase de problema. Es un instrumento: un instrumento de poder y valor inmensos, que
permite dirigir la actividad profesional, estudiantil, comercial o industrial con mejores posibilidades
de desempeño y eficiencia. En consecuencia, se la considera como el aporte más importante desde la
revolución industrial. Por lo mismo, tanto ingenieros como científicos se valen de la computadora
para resolver diversos problemas, desde la evaluación de una función sencilla hasta la resolución de
sistemas complejos aplicados en matemáticas, física, químicas, simulación de sistemas,
optimización, control, etc.en diversas áreas.
La computadora no es solamente una máquina que puede realizar procesos para arrojar resultados
esperado, sin que tengamos la noción exacta de las operaciones que realiza para llegar a esos
resultados. Con la computadora además de lo anterior también podemos diseñar soluciones a la
medida de los requerimientos, de problemas específicos que se nos presenten. Más aun, si estos
involucran operaciones matemáticas complejas y/o repetitivas, o requieren del manejo de un
volumen muy grande de datos que hace inviable su tratamiento directamente por una o varias
personas. En otros casos nos encontramos con que existen datos comunes que son utilizados por
multitud de personas como pueden ser constantes de reacciones químicas, datos astronómicos,
atmosféricos, etc Un área donde los ordenadores son realmente útiles y que evitan un trabajo pesado
al ser humano es en las tareas repetitivas antes de llegar a la solución del algoritmo

El diseño de soluciones a la medida de nuestros problemas, requiere como en otras disciplinas una
metodología que nos enseñe de manera gradual, la forma de llegar a estas soluciones.

A las soluciones creadas por computadora se les conoce como programas y no son más que una
serie de operaciones que realiza la computadora para llegar a un resultado, con un grupo de datos
específicos. Para poder realizar programas, además de conocer la metodología mencionada,
también debemos de conocer, de manera específica las funciones que pueden realizar la
computadora y las formas en que se pueden manejar los elementos que hay en la misma.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 2


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Computadora: Es un dispositivo electrónico utilizado para procesar información y obtener


resultados. Los datos y la información se pueden introducir en la computadora como entrada (input)
y a continuación se procesan para producir una salida (output).

1.1.1 Proceso de información en la computadora

Datos de Proceso Datos de


Entrada salida

Programa: Es el conjunto de instrucciones escritas en algún lenguaje de programación y que


ejecutadas secuencialmente resuelven un problema especifico.

1.1.2 Organización física de una computadora


CPU
Unidad de Unidad
Dispositivos de Control Arit.-Log. Dispositivos
Entrada de Salida
Memoria

Dispositivos de Entrada: Como su nombre lo indica, sirven para introducir datos (información) en
la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en
la memoria central o interna. Ejemplos: teclado, scanners (digitalizadores de rastreo), mouse (ratón),
trackball (bola de ratón estacionario), joystick (palancas de juego), lápiz óptico.

Dispositivos de Salida: Regresan los datos procesados que sirven de información al usuario.
Ejemplo: monitor, impresora.

La Unidad Central de Procesamiento (C.P.U) se divide en dos:


 Unidad de control
 Unidad Aritmético - Lógica

Unidad de Control: Coordina las actividades de la computadora y determina que operaciones se


deben realizar y en que orden; así mismo controla todo el proceso de la computadora.

Unidad Aritmético - Lógica: Realiza operaciones aritméticas y lógicas, tales como suma, resta,
multiplicación, división y comparaciones.

La Memoria de la computadora se divide en dos:


 Memoria Central o Interna
 Memoria Auxiliar o Externa

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 3


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Memoria Central (interna): La CPU utiliza la memoria de la computadora para guardar


información mientras trabaja con ella; mientras esta información permanezca en memoria, la
computadora puede tener acceso a ella en forma directa. Esta memoria construida internamente se
llama memoria de acceso aleatorio (RAM).

La memoria interna consta de dos áreas de memoria:


La memoria RAM (Randon Access Memory): Recibe el nombre de memoria principal o
memoria del usuario, en ella se almacena información solo mientras la computadora esta encendida.
Cuando se apaga o arranca nuevamente la computadora, la información se pierde, por lo que se dice
que la memoria RAM es una memoria volátil.

La memoria ROM (Read Only Memory): Es una memoria estática que no puede cambiar, la
computadora puede leer los datos almacenados en la memoria ROM, pero no se pueden introducir
datos en ella, o cambiar los datos que ahí se encuentran; por lo que se dice que esta memoria es de
solo lectura. Los datos de la memoria ROM están grabados en forma permanente y son introducidos
por el fabricante de la computadora.

Memoria Auxiliar (Externa): Es donde se almacenan todos los programas o datos que el usuario
desee. Los dispositivos de almacenamiento o memorias auxiliares (externas o secundarias) más
comúnmente utilizados son: cintas magnéticas y discos magnéticos.

1.2 Definición de Lenguaje

Lenguaje: Es una serie de símbolos que sirven para transmitir uno o mas mensajes (ideas) entre dos
entidades diferentes. A la transmisión de mensajes se le conoce comúnmente como comunicación.

La comunicación es un proceso complejo que requiere una serie de reglas simples, pero
indispensables para poderse llevar a cabo. Las dos principales son las siguientes:

Los mensajes deben correr en un sentido a la vez.

Debe forzosamente existir 4 elementos: Emisor, Receptor, Medio de Comunicación y Mensaje.

1.2.1 Lenguajes de Programación

Las relaciones humanas se llevan a cabo a través del lenguaje. Un lenguaje permite la
expresión de ideas y de razonamientos, y sin ella la comunicación sería imposible. Los ordenadores
sólo aceptan y comprenden un lenguaje de bajo nivel, que consiste en largas secuencias de ceros y
unos. Estas secuencias son ininteligibles para muchas personas, y además son específicas para cada
ordenador, constituyendo el denominado lenguaje de máquina.

Un lenguaje de programación se puede definir de distintas formas:

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 4


INGENIERIA ASISTIDA POR COMPUTADORA 2011

El más general es un conjunto de símbolos, caracteres y reglas (programas) que les permiten a las
personas comunicarse con la computadora.

Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar
operaciones de entrada/salida, cálculo, manipulación de textos, lógica/comparación y
almacenamiento/recuperación.

Los lenguajes de programación se pueden clasificar desde distintos puntos de vista:

Segun su grado de independencia de la máquina


Según la forma de sus instrucciones
Por generaciones

Los lenguajes se pueden clasificar según su grado de independencia de la máquina en que se


ejecutan en cinco grupos:

 Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente entendibles por la
computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el
programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria
mas pequeña el bit (dígito binario 0 o 1).

 Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en


códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.
Cada código de operación se indica por un código simbólico. Por ejemplo ADD para adición y MUL
para multiplicación

 Los lenguajes de medio nivel tienen algunas de las características de los lenguaje de bajo
nivel( posibilidad de acceso directo a posiciones de memoria, indicaciones para que ciertas variables
se almacenen en los registros del microprocesador, etc…) añadidas a las posibilidades de manejo de
estructuras de control y de datos de los lenguajes de alto nivel.

 Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol,
fortran, Java, etc.) son aquellos en los que las instrucciones o sentencias a la computadora son
escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la
escritura y comprensión del programa.

 Los lenguajes orientados a problemas concretos se utilizan para la resolución de problemas en


un campo específico como SQL, XBASE,SPSS entre otros.

 Según la forma de sus instrucciones se pueden clasificar en:

Lenguajes imperativos o procedimentales son los que usan la instrucción o sentencia de


asignación como construcción básica de la estructura de los programas. Son lenguajes
orientados a instrucciones, es decir la unidad de trabajo básica de estos lenguajes es la
instrucción o sentencia. FORTRAM, COBOL, ALGOL HISTÓRICAMENTE SON LOS
PRECURSOSRES.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 5


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Lenguajes declarativos Son lenguajes de muy alto nivel cuya notación es muy próxima al
problema real del algoritmo que resuelven. Hay dos tipos de lenguajes declarativos:
lenguajes lógicos y lenguajes funcionales

Los lenguajes funcionales tienen todas sus construcciones como llamada a funciones
matemáticas. Es decir no hay instrucciones, todo el programa es una función y todas las
operaciones se realizan por composición de funciones más simples. En la ejecución de los
programas funcionales se aplica la función a los datos de entrada (que son los argumentos de
la función) y se obtiene el resultado (el valor calculado por la función). Ejemplo Hope,
Haskell entre otros.

Los lenguajes lógicos definen sus instrucciones siguiendo un tipo de lógica. El lenguaje de
programación lógica más utilizado es el PROLOG, que utiliza la lógica clausal. La
programación lógica maneja relaciones (predicados) entre objetos (datos). Las relaciones se
especifican con reglas y hechos.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 6


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Lenguajes concurrentes son los que permiten la ejecución simultanea (paralela o


concurrente) de dos o varias tareas. Ejemplo ADA, CONCURRENT C, CONCURRENTE
PROLOG, ETC.

Lenguajes orientados a objetos Actualmente existen más de 2000 lenguajes de alto nivel
diferentes, de los cuales alrededor de un centenar son lenguajes orientados a objetos o
lenguajes basados en objetos si soporta directamente tipos abstractos de datos y clases,
además añade mecanismos para soportar la herencia y el polimorfismo. Ejemplo C++, Turbo
pascal, Delphi, Java, etc

Según su generación se clasifica en:


Primera generación constituida por los lenguajes máquina y ensamblador en los años 40 y 50.

La segunda generación comienza con el desarrollo del primer compilador de FORTRAM en el año
1958 hasta mediados de los años 60 con la normalización por el American National Standard
Institute (ANSI) de los lenguajes de programación. Se caracteriza con la asignación de memoria en
tiempo de compilación. FORTRAM Y COBOL.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 7


INGENIERIA ASISTIDA POR COMPUTADORA 2011

La tercera generación está ligada al término programación estructurada y se desarrolla entre


mediados de los años 60 y 70. Se caracteriza por el uso de módulos o subprogramas, variables
locales, recursividad y estructuras dinámicas. Ejemplos Algol60, PL/I, Pascal, Modula, Etc.

La cuarta generación está caracterizada por lenguajes de muy alto nivel dedicadas a tareas
especificas. Una gran parte de ellos están dedicados a la gestión de base de datos y a la generación
de aplicaciones con herramientas CASE, corresponde a mediados de los años 70 hasta finales de los
80. Ejemplos SQL, DB2, DBASE, etc.

La quinta generación está asociada a los lenguajes ligados a la inteligencia artificial. Ejemplo
Prolog, Haskell, Miranda, etc.

Generación Orientada a objetos comienza a mediados de los años 80 con Simula67 y la


proliferación de las interfaces Gráficas de Usuario (IGU). Ejemplo C++, Turbo pascal, Simula, etc.
Generación Visual, comienza a mediados de los años 90, ligado a la exigencia de los usuarios de
disponer de interfaces amigables. Ejemplo. Visual Basic, Delphi.

Generación Internet Comienza a mediados de los años noventa, ligado a la gran explosión de
internet y a la necesidad de manejar aplicaciones en distintas plataformas dentro de toda la red. El
lenguaje más característico es Java dentro de esta generación esta XML, HTML,VRML y otros.

1.3 Definición de Algoritmo

La palabra algoritmo se deriva de la traducción al latín de la palabra árabe alkhowarizmi,


nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de
números y ecuaciones en el siglo IX.

Un algoritmo es una secuencia finita de operaciones que resuelve un problema en un tiempo


finito. Los principales atributos que tiene que presentar un algoritmo son: debe ser finito, definido,
preciso e independiente de lenguaje de programación.
 Finito significa que debe tener un número finito de pasos y por tanto estar limitado tanto por
el tiempo de realización como por el número de operaciones que realiza.
 Definido implica que ante los mismos datos de entrada se obtienen los mismos datos de
salida.
 Preciso requiere que se indique de una forma inequívoca e orden de realización de cada paso.
 Independiente de lenguaje de programación significa que debe ser de propósito general, y al
no contener ningún paso específico de un lenguaje en particular permite su implementación
en cualquier lenguaje de programación. Este atributo marca la clara diferencia entre
algoritmo y programa de ordenador, y es que el algoritmo siempre es anterior al programa de
ordenador, un algoritmo se puede codificar con diversos lenguajes de programación, dando
lugar a diferentes programas de ordenador.
Un algoritmo maneja la información que se le suministra para generar una serie de resultados,
asi consta de datos y de sentencias. Los datos se almacenan como variables o constantes y se
involucran en expresiones. Las sentencias describen las acciones algorítmicas que pueden ser
ejecutadas y en general realizan asignaciones, entradas/salidas de datos y control de flujo del
algoritmo.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 8


INGENIERIA ASISTIDA POR COMPUTADORA 2011

1.4 Tipos de Algoritmos

 Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.

 Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los pasos del
proceso.

1.5 Lenguajes Algorítmicos

Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un
proceso.

1.5.1 Tipos de Lenguajes Algorítmicos


 Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de
flujo).

 No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo
(pseudocodigo).

1.6 Metodología para la solución de problemas por medio de computadora


En las disciplinas de ingeniería, ciencias y programación de computadoras, es importante ener un
enfoque consistente para resolver los problemas técnicos. El enfoque que se plantea a continuación
es útil en cursos tan distintos como química, física, termodinámica y diseño de ingeniería. Tambien
se aplica a las ciencias sociales, como economía y sociología. Otros autores quizá formulen sus
esquemas de resolución de problemas de forma ligeramente diferente, pero todos tienen el mismo
formato básico.

1.7 Plantear el Problema

Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es
importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca
del todo no tiene mucho caso continuar con la siguiente etapa. En esta etapa con frecuencia es útil
hacer un dibujo.

1.8 Análisis del Problema

Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:

Los datos de entrada (conocidos) y las salidas (incógnitas) que se requieren.


Tenga cuidado de incluir las unidades conforme describe los valores en entrada y salida. El manejo
descuidado de las unidades con frecuencia lleva a respuestas incorrectas.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 9


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Identifique las constantes que tal vez requiera en el cálculo, como la constante de los gases ideales y
la aceleración de la gravedad y todas las fórmulas que se necesita para procesar los datos.
Si es apropiado, en un dibujo escriba los valores que haya identificado o agrúpelos en una tabla.

Una recomendación muy practica es el que nos pongamos en el lugar de la computadora y


analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los
resultados esperados.

1.9 Diseño del Algoritmo

Desarrollar un algoritmo para resolver el problema. En aplicaciones de cómputo, es frecuente que


esto se logre con una prueba de escritorio. Para ello necesitará: identificar cualesquier ecuaciones
que relacionen los valores conocidos con las incógnitas. Trabajar con una versión simplificada del
problema, a mano o con calculadora.

Las características de un buen algoritmo son:

Debe tener un punto particular de inicio.

Debe ser definido, no debe permitir dobles interpretaciones.

Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la
definición del problema.

Debe ser finito en tamaño y tiempo de ejecución.

1.10 Codificación

La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica


del diagrama de flujo o pseudocodigo), en una serie de instrucciones detalladas, en un código
reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código
fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

1.11 Prueba y Depuración

Los errores humanos dentro de la programación de computadoras son muchos y aumentan


considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores,
para dar paso a una solución sin errores se le llama depuración.

La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de la
solución, por ello se debe considerar con el mismo interés y entusiasmo.
Al probar una solución se debe considerar los siguientes aspectos:
¿ Sus resultados tienen sentido físico?
¿Coinciden con los cálculos de la muestra?
¿La respuesta es la que se pedía en realidad?
Las gráficas con frecuencia son formas útiles de verificar que los cálculos son razonables.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 10


INGENIERIA ASISTIDA POR COMPUTADORA 2011

1.12 Documentación

Es la guía o comunicación escrita en sus variadas formas, ya sea en enunciados,


procedimientos, dibujos o diagramas.

A menudo un programa escrito por una persona, es usado por otra. Por ello la documentación
sirve para ayudar a comprender o usar un programa o para facilitar futuras modificaciones
(mantenimiento).

La documentación se divide en tres partes:

Documentación Interna
Documentación Externa
Manual del Usuario

Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente para hacer
más claro el entendimiento de un proceso.

Documentación Externa: Se define en un documento escrito los siguientes puntos:

Descripción del Problema


Nombre del Autor
Algoritmo (diagrama de flujo o pseudocódigo)
Diccionario de Datos
Código Fuente (programa)

Manual del Usuario: Describe paso a paso la manera cómo funciona el programa, con el fin de que
el usuario obtenga el resultado deseado.

1.13 Mantenimiento

Se lleva a cabo después de terminado el programa, cuando se detecta que es necesario hacer
algún cambio, ajuste o complementación al programa para que siga trabajando de manera correcta.
Para poder realizar este trabajo se requiere que el programa este correctamente documentado.

Si utiliza en forma consistente un enfoque estructurado de resolución de problemas, como el


que acaba de describir, descubrirá que los problemas tipo narración son mucho más fáciles de
resolver, como veremos en el siguiente ejemplo.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 11


INGENIERIA ASISTIDA POR COMPUTADORA 2011

II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Conocer las reglas para cambiar formulas matemáticas a expresiones validas para la
computadora, además de diferenciar constantes e identificadores y tipos de datos simples.

2.1 Tipos De Datos

Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal
como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de
valores que puede tomar una variable.

Numéricos
Simples Lógicos
Alfanuméricos (string)
Tipos de
datos Arreglos (Vectores, Matrices)
Estructurados Registros
(Def. por el Archivos
Usuario) Apuntadores

2.1.1 Tipos de Datos Simples

 Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye a los
números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes.

 Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que
representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos).

 Datos Alfanuméricos (String): Es una secuencia de caracteres alfanuméricos que permiten


representar valores identificables de forma descriptiva, esto incluye nombres de personas,
direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su
propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se
representan encerrados entre comillas.

Ejemplo:

“Ingeniería de Petróleo y Gas Natural”


“2011”

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 12


INGENIERIA ASISTIDA POR COMPUTADORA 2011

2.2 Expresiones

Las expresiones son combinaciones de constantes, variables, operadores y funciones que al


evaluarla en el orden correcto tiene un valor concreto, además puede utilizar paréntesis y nombres
de funciones especiales.

Por ejemplo: a +(b + 3)/c ; sqrt(5); sin(x), 2*pi*r

Cada expresión toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecución de las operaciones indicadas.

Una expresión consta de operadores y operandos. Según sea el tipo de datos que manipulan,
se clasifican las expresiones en:

- Aritméticas
- Relaciónales
- Lógicas

2.3 Operadores y Operandos

 Operadores: Son elementos que relacionan de forma diferente, los valores de una o mas
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.

Aritméticos
Tipos de Operadores Relaciónales
Lógicos

 Operadores Aritméticos: Los operadores aritméticos permiten la realización de operaciones


matemáticas con los valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si
ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

Operando (Operador) Operando

Valor
(constante o variable)

Operadores Aritméticos:
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 13


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ejemplos:
Expresión Resultado
7/2 3.5
Mod(12,7) 5
4 +2*5 14

2.3.1 Prioridad de los Operadores Aritméticos

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados
se evalúan de dentro a fuera, el paréntesis más interno se evalúa primero.

Dentro de una misma expresión los operadores se evalúan en el siguiente orden.

1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a
derecha.
El operador DIV, división entera, devuelve el entero más próximo por defecto que resulta de dividir
un numero a entre otro b. El operador MOD devuelve el resto de la división entera de a entre b
El orden de precedencia de los operadores, que depende del lenguaje de programación, indica en que
orden se realizan las operaciones. Sin embargo, cuando se desee forzar la evaluación de una
expresión en un determinado orden, independientemente del orden de precedencia de los
operadores, se utilizaran los paréntesis.
Las operaciones encerradas entre paréntesis se evalúan primero. Si existen diferentes paréntesis
anidados las expresiones internas se evalúan antes. Si coinciden varios operadores de igual
prioridad, el orden a seguir es de izquierda a derecha.
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23
3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09
3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98
2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98

 Operadores Relaciónales:

Se utilizan para establecer una relación entre dos valores.

Compara estos valores entre si y esta comparación produce un resultado de certeza o falsedad
(verdadero o falso).

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 14


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas) y tienen el
mismo nivel de prioridad en su evaluación. Los operadores relaciónales tiene menor prioridad que
los aritméticos.

Operadores Relaciónales:
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
~= Diferente o no igual a ( =, <> )
== Igual a

Ejemplos:

Si a = 10 b = 20 c = 30

a+b>c Falso
a-b<c Verdadero
a-b=c Falso
a*b<>c Verdadero

Ejemplos no lógicos:

a<b<c
10 < 20 < 30
T < 30 (no es lógico porque tiene diferentes operandos)

 Operadores Lógicos:

Estos operadores se utilizan para establecer relaciones entre valores lógicos.

Además, estos valores pueden ser resultado de una expresión relacional.

Operadores Lógicos
And &
Or |
Not ~

Operador And
Operando1 Operador Operando2 Resultado
T AND T T
T F F
F T F
F F F

Operador Or

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 15


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Operando1 Operador Operando2 Resultado


T OR T T
T F T
F T T
F F F

Operador Not
Operando Resultado
T F
F T
Ejemplos:

(a < b) and (b < c)


(10<20) and (20<30)
T and T

Prioridad de los Operadores Lógicos


Not
And
Or

Prioridad de los Operadores en General


1.- ( )
2.- ^
3.- *, /, Mod, Not
4.- +, -, And
5.- >, <, > =, < =, < >, =, Or

Ejemplos:
a = 10 b = 12 c = 13 d = 10

1) ((a > b) or (a < c)) and ((a = c) or (a > = b))


F T F F
T F
F

2) ((a > = b) or (a < d)) and (( a > = d) and (c > d))


F F T T
F T
F

3) not (a = c) and (c > b)


T T

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 16


INGENIERIA ASISTIDA POR COMPUTADORA 2011

2.4 Identificadores

Los identificadores representan los datos de un programa (constantes, variables, tipos de


datos). Un identificador es una secuencia de caracteres que sirve para identificar una posición en la
memoria de la computadora, que nos permite accesar a su contenido.

Ejemplo: Nombre
Num_hrs
Calif2

2.4.1 Reglas para formar un Identificador

Debe comenzar con una letra (A a Z, mayúsculas o minúsculas) y no deben contener espacios en
blanco.

Letras, dígitos y caracteres como la subraya ( _ ) están permitidos después del primer carácter.

La longitud de identificadores puede ser de hasta 8 caracteres.

2.4.2 Constantes y Variables

 Constante: Una constante es un elemento del algoritmo de tipo numérico o alfanumérico que no
cambia durante la ejecución del programa.

Ejemplo:

Pi = 3.1416

 Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente


un dato durante la ejecución de un proceso, su contenido puede cambiar durante la ejecución del
programa. Es decir es un elemento del algoritmo que posee un valor, es conocido por un nombre
o identificador y pertenece a un tipo de dato declarado al principio del algoritmo. Antes de usar
una variable debe ser declarada, la declaración de una variable en un algoritmo consta de una
sentencia en la que se especifica el tipo de dato de la variable que se está declarando, su nombre
y en ocasiones se le asigna un valor inicial.

Las variables aparecen en cualquier forma y tamaño. Ésta es una lista común de variables:

El primer carácter deberá ser siempre una letra (i.e A,G,D,F,z,e,t, ó y)

Después de la primera letra en el nombre de la variable, podrá ser letras, números o subrayados (
_ ).

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 17


INGENIERIA ASISTIDA POR COMPUTADORA 2011

El carácter final puede ser %, &, !, #; $ o nada. Los usuarios de Vbasic deberían utilizar un
carácter propio como letra final y no dejarlo sin nada.

Recuerda que el nombre de la variable no puede ser una palabra reservada. Por ejemplo en
MatLab hay una sentencia llamada "fprintf", no debes usar esta ni cualquier otra sentencia como
nombre de variable.

Ejemplo:

area = pi * radio ^ 2

Las variables son: el radio, el área y la constate es pi

numero = 10: entero, texto: string

En esta declaración se dice que la variable numero es de tipo entero y toma el valor 10 y la variable
texto es de tipo cadena de caracteres y no tiene ningún valor asociado inicialmente.

2.4.3 Clasificación de las Variables

Numéricas
Por su Contenido Lógicas
Alfanuméricas (String)
Variables

De Trabajo
Por su Uso Contadores
Acumuladores

Por su Contenido:

 Variable Numéricas: Son aquellas en las cuales se almacenan valores numéricos, positivos o
negativos, es decir almacenan números del 0 al 9, signos (+ y -) y el punto decimal. Ejemplo:

Iva = 0.15 pi = 3.1416 costo = 2500

 Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos
representan el resultado de una comparación entre otros datos.

 Variables Alfanuméricas: Esta formada por caracteres alfanuméricos (letras, números y


caracteres especiales). Ejemplo:
Letra = ’a’ apellido = ’López’
dirección = ’Av. Libertad #190’

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 18


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Por su Uso

 Variables de Trabajo: Variables que reciben el resultado de una operación matemática completa
y que se usan normalmente dentro de un programa. Ejemplo:
Suma = a+b/c

 Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza una
operación o se cumple una condición. Con los incrementos generalmente de uno en uno.

 Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa de una
serie de valores que se van leyendo o calculando progresivamente.

2.5 Cadenas

Hablaremos de las cadenas mas después, por ahora sólo haremos una breve descripción.

Una cadena es una forma de guardar información en la variable. Por ejemplo podrías guardar el
nombre del usuario o la dirección en una cadena. Aquí tienes un pequeño código como ejemplo para
mostrarte cómo funciona:

CLS
nombre=input(‘Tu Nombre:’);
edad=input(‘Tu Edad:’);

Las variables, nombre y edad almacenaran tu nombre y tu edad de tipo cadena

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 19


INGENIERIA ASISTIDA POR COMPUTADORA 2011

III. TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Será capaz de diferenciar los métodos de representación y formulación de algoritmos, así como
de conocer las características más importantes de cada técnica.

Las dos herramientas utilizadas comúnmente para diseñar algoritmos son:


Diagrama de Flujo
Pseuducodigo

3.1 Diagrama de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir


que es la representación detallada en forma gráfica de cómo deben realizarse los pasos en la
computadora para producir resultados.

Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en
la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar
los procesos.

Los símbolos utilizados han sido normalizados por el instituto norteamericano de


normalización (ANSI).

SÍMBOLO DESCRIPCIÓN

Indica el inicio y el final de nuestro diagrama de flujo.

Indica los procesos de entrada y salida de datos.

Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o


la ejecución de una operación aritmética.

Símbolo de decisión indica la realización de una comparación de valores.

Se utiliza para representar los subprogramas.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 20


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Conector dentro de página.


Representa la continuidad del diagrama dentro de la misma página.

Conector fuera de página. Representa la continuidad del diagrama en otra


página.

Indica la salida de información por impresora.

Indica la salida de información en la pantalla o monitor.

Líneas de flujo o dirección.

Indican la secuencia en que se realizan las operaciones.

3.1.1 Recomendaciones para el diseño de Diagramas de Flujo

Se deben de usar solamente líneas de flujo horizontal y/o vertical.

Se debe evitar el cruce de líneas utilizando los conectores.

Se deben usar conectores solo cuando sea necesario.

No deben quedar líneas de flujo son conectar.

Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a
derecha.

Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas
palabras.

En el desarrollo de un programa siempre es aconsejable el trazado de un diagrama de flujo, entre


otras, por las siguientes razones:

Es un importante paso intermedio entre el planteamiento original del problema y las instrucciones
escritas en lenguaje de programación.

Sirve de guía al codificar el programa, ofreciendo una idea clara de la secuencia correcta de
operaciones y de la lógica de la solución.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 21


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Permite experimentar diferentes enfoques para resolver un problema sin codificarlos, y así
determinar el posible enfoque óptimo.

Facilita la modificación de un programa, especialmente cuando ha transcurrido mucho tiempo desde


que se realizó la concepción original.

3.2 Seudocódigo

Mezcla de lenguaje de programación y español (o inglés o cualquier otro idioma) que se


emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial,
el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a
un problema determinado. El pseudocódigo utiliza palabras que indican el proceso a realizar.

Ventajas de utilizar un seudocódigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel

Permite representar en forma fácil operaciones repetitivas complejas

Es muy fácil pasar de pseudocódigo a un programa en algún lenguaje de programación.

Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
Su estructura típica es la siguiente:

ALGORITMO: nombre del algoritmo


ENTRADA: descripción de los daos de entrada al algoritmo.
SALIDA: descripción de los datos de salida del algoritmo.
VARIABLES: lista de variables usadas separadas por comas.
INICIO
Sentencias
FIN

Operaciones de entrada/salida: En los algoritmos las sentencias de entrada/salida se reflejan en la


siguiente sintaxis, respectivamente: LEER lista de variables separadas por comas y ESCRIBIR lista
de variables, constantes, valores constantes y/o expresiones separadas por comas.

Ejemplo: Algoritmo para el cálculo de la superficie de un triangulo tomando como datos su base y
su altura.

ALGORITMO: Superficie_triángulo
ENTRADA: la base y la altura del triangulo.
SALIDA: su superficie.
VARIABLES: base, altura, superficie: reales.
INICIO

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 22


INGENIERIA ASISTIDA POR COMPUTADORA 2011

ESCRIBIR ‘Introduce la base del triangulo:’


LEER base
ESCRIBIR ‘Introduce su altura:’
LEER altura
Superficie  base*altura/2
ESCRIBIR ‘La superficie del triangulo es’, superficie
FIN

Ejemplo de aplicación

La conversión de la materia en energía

Albert Einstein es con toda seguridad el fisco más famoso del siglo XX. Einstein nació en
Alemania en 1879 y asistió a la escuela tanto en Alemania como en Suiza. Mientras trabajaba en
una oficina de patentes en Berna desarrollo su famosa teoría de la relatividad. Acaso la ecuación
física mejor conocida en la actualidad es su:
E = mc2
Esta ecuación sorprendentemente sencilla vincula los mundos antes separados de la materia y
la energía, y se puede utilizar para encontrar la cantidad de energía que se libera conforme la materia
se destruye en reacciones nucleares tanto naturales como inducidas por el hombre.
El sol irradia 385 x 1024 J/s de energía, los cuales se generan mediante reacciones nucleares
que convierten la materia en energía. Desarrolle un algoritmo utilizando la ecuación de Einstein para
determinar cuánta materia se debe convertir en energía para producir esa cantidad de radiación en un
día.
1. Plantee el problema.
Encontrar la cantidad de materia que se necesita para producir la cantidad de energía
que irradia el sol cada día.
2. Describa la entrada y salida
Entrada
Energía E = 385 x 1024 J/s, que se debe convertir en la energía total irradiada
durante un día.
Rapidez de la luz c = 3.0 x 108 m/s
Salida
Masa m en Kg
3. Desarrolle una prueba de escritorio
La energía irradiada en un día es
385 x 1024 J/s x 3600 s/hora x 24 horas/día x 1 día = 3.33 x 1031 J
La ecuación E = mc2 se debe resolver para m y sustituir los valores de E y c. Se tiene
m = E/c2
m = 3.33 x1031 J/(3.0 x 108 m/s)2 = 3.7 x 1014 J/m2/s2
A partir de los criterios de salida se puede ver que se desea la masa en Kg, así que, ¿qué
fue lo que estuvo mal?. Se necesita hacer una conversión de unidades adicionales
1J = 1 Kg m2/s2
m = 3.7 x 1014 Kgm2/s2/m2/s2 = 3.7 x 1014 Kg

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 23


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Probando la solución

Tiene sentido los valores calculados o los números? Cualquier cosa multiplicada por 1014 es
un número realmente grande. Sin embargo, considere que la masa del sol es 2 x 1030 Kg. Se podría
calcular cuánto tiempo tomará consumir por completo la masa del sol a una tasa de 3.7 x 1014
Kg/dia.
Tiempo =(masa del sol)/ (tasa de consumo)

Tiempo = 2 x 1030 Kg/3.7 x1014 Kg/día x año/365 días = 1.5 x 1013 años

Este es 15 billones de años. En lo que resta de vida, no necesitará preocuparse de que el sol
se quede sin materia que pueda convertirse en energía.

ALGORITMO: Materia_a_Energia
ENTRADA: Energía y rapidez de la luz.
SALIDA: materia conv. en energía en Kg
VARIABLES: energía, rap_luz, masa: Reales.
INICIO
ESCRIBIR ‘Introduzca la cantidad de energía irradiada por el sol:’
LEER energia
ESCRIBIR ‘Introduzca rapidez del sol:’
LEER rap_luz
energia  385 x 1024 J/s x 3600 s/hora x 24 horas/día x 1 día = 3.33 x 1031 J
J = 1 Kg m2/s2
masa = energia *J

ESCRIBIR ‘La materia convertía en energía es:’, masa


FIN

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 24


INGENIERIA ASISTIDA POR COMPUTADORA 2011

3.3 Diagramas estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como diagrama de chapin es como un


diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones
sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir
diferentes acciones en una caja. Un algoritmo se represente en la siguiente forma:

Ejemplo:
Inicio

Leer
Nombre, Hrs, Precio
Calcular
Salario = Hrs * Precio
Calcular
Imp = Salario* 0.15
Calcular
Neto = Salario + Imp
Escribir Nombre, Imp, SNeto

Fin

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 25


INGENIERIA ASISTIDA POR COMPUTADORA 2011

IV. ESTRUCTURAS ALGORITMICAS

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Conocer las diferentes estructuras algorítmicas como componentes básicos de los programas
y aplicar la combinación de ellas para el desarrollo de algoritmos más complejos.

4.1 Estructuras Algorítmicas

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten,
mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la
solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

- Asignación
Secuenciales - Entrada
- Salida

- Simples
Estructuras Condicionales
Algoritmicas - Múltiples
- Hacer para
Cíclicas -Hacer mientras
- Repetir hasta

4.2 Estructuras Secuenciales

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en


secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así
sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente
forma:
Inicio
Accion1
Accion2
.
AccionN
Fin

Veamos la siguiente representación de las estructuras de control en las distintas notaciones


algorítmicas.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 26


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la memoria.


Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede
clasificar de la siguiente forma:

 Simples: Consiste en pasar un valor constante a una variable (a = 15)

 Contador: Consiste en usarla como un verificador del número de veces que se realiza un
proceso (a = a+1)

 Acumulador: Consiste en usarla como un sumador en un proceso (sum =sum + i)

 De trabajo: Donde puede recibir el resultado de una operación matemática que involucre
muchas variables (a = c + b*2/4).

Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor.
Esta operación se representa en un pseudocódigo como sigue:

Leer a, b

Donde “a” y “b” son las variables que recibirán los valores

Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado
o mensaje. Este proceso se representa en un pseudocódigo como sigue:

Escribe “El resultado es:”, R

Donde “El resultado es:” un mensaje que se desea que aparezca y R es una variable que contiene un
valor.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 27


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Observe el siguiente ejemplo:


He aquí un ejemplo realmente simple: suponga que se le pide crear un programa para convertir mph
a pies/s. La salida debe ser una tabla completa con un titulo y encabezado de columna. He aquí una
forma de resaltar los pasos que pueda seguir:
 Definir un vector de valores mph
 Convertir mph a pies/s
 Combinar los vectores mph y pies/s en una matriz
 Crear un título de tabla
 Crear encabezados de columna.
 Desplegar la tabla

Los diagramas de flujo solo o combinados con seudocódigo son especialmente apropiados para
tareas de programación más complicadas. Puede crear un gran cuadro de su programa gráficamente
y luego convertir su proyecto a seudocódigo adecuado para ingresar en el programa como
comentarios.

La figura siguiente es un ejemplo de un diagrama de flujo para el problema mph a pies/s. Para un
problema así de simple, probablemente en realidad nunca crearía un diagrama de flujo. Sin
embargo, conforme los problemas se vuelven más complicados, los diagramas de flujo se convierten
en una herramienta invaluable que le permite organizar sus pensamientos.

Recuerde: tanto los diagramas de flujo como el seudocódigo son herramientas que tienen la
intención de ayudarle a crear programas de cómputo, dado que enfatizan la progresión lógica de
ideas sobre los detalles de programación.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 28


INGENIERIA ASISTIDA POR COMPUTADORA 2011

4.3 Practique escribiendo en seudocódigo como solución en los siguientes


ejercicios:

1) Suponga que un individuo desea invertir su capital en un banco y desea saber cuánto dinero
ganará después de un mes si el banco paga a razón de 2% mensual.

Como es de suponer las variables serán: gan y cap_inv


ALGORITMO: inversión_capital
ENTRADA: capital de inversión.
SALIDA: ganancia.
VARIABLES: cap_inv, gan

INICIO
ESCRIBIR (‘Introduce el capital a invertir’)
LEER (cap_inv)
ESCRIBIR (‘Introduzca para cuantos meses será depositado’)
LEER(tiempo)
Gan=cap_inv*2/100*tiempo
ESCRIBIR (‘La ganancia en Bs’)
IMPRIMIR gan
FIN

Codificando para hacer correr el programa en MatLab

Pulse
Pulse elel
botón
botón Para
Para
ejecutar
ejecutar oo F5
F5

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 29


INGENIERIA ASISTIDA POR COMPUTADORA 2011

2) Un vendedor recibe un sueldo base más un 10% extra por comisión de sus ventas, el vendedor
desea saber cuánto dinero obtendrá por concepto de comisiones por las tres ventas que realiza en
el mes y el total que recibirá en el mes tomando en cuenta su sueldo base y comisiones.

Variables: sueldoBase, venta1, vena2, venta3, tot_venta, comis, totpago

ALGORITMO: Venta_comision
ENTRADA: sueldoBase, venta1, vena2, venta3
SALIDA: Total pago.
VARIABLES: sueldoBase, venta1, vena2, venta3, tot_venta, comis, totpago.

Inicio
Escribir “Introduzca por teclado: sueldo base, venta1, venta2, venta3”
Leer sueldoBase, venta1, venta2, venta3
tot_venta = venta1 + venta2 + venta3
comis = tot_venta * 0.10
totpago = sueldoBase + com
Escribir “Total pago realizado em Bs es:”
Imprimir totpago, comis
Fin

Pulse
Pulse elel
botón
botón para
para
ejecutar
ejecutar oo F5
F5

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 30


INGENIERIA ASISTIDA POR COMPUTADORA 2011

En los siguientes ejercicios observe y corrija el algoritmo si es necesario para mejorar su


presentación e identifique las variables

3) Un alumno desea saber cuál será su calificación final en la materia de IAC022. Si dicha
calificación se compone de los siguientes porcentajes:
55% del promedio de sus tres calificaciones parciales.
30% del promedio de la calificación del examen final.
15% del promedio de la calificación del trabajo final.

ALGORITMO: Calificacion_final
ENTRADA: calif1, calif2, calif3, exa1, exa2, exa3, trab1, trab2
SALIDA: calificación final.
VARIABLES: calif1, calif2, calif3, exa1, exa2, exa3, trab1, trab2, nota_calif, nota_examen,
nota_traba, cal_final
Inicio
Leer calif1, calif2, calif3, exa1, exa2, exa3, trab1, trab2
nota_calif = (calif1 + calif2 + calif3)/3*0.55
nota_examen = (exa1+exa2+exa3)/3 * 0.30
nota_trab = (trab1+trab2)/2 * 0.15
cal_final = nota_calif + nota_examen + nota_trab
Imprimir cal_final
Fin

Pulse
Pulse elel
botón
botón Para
Para
ejecutar
ejecutar oo F5
F5

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 31


INGENIERIA ASISTIDA POR COMPUTADORA 2011

4) Un maestro desea saber qué porcentaje de hombres y que porcentaje de mujeres hay en un grupo
de estudiantes.

Inicio
Leer nh, nm
ta = nh + nm
ph = nh * 100 / ta
pm = nm * 100 / ta
Imprimir ph, pm
Fin

5) Realizar un algoritmo que calcule la edad de una persona.

Inicio
Leer fnac, fact
edad = fact - fnac
Imprimir edad
Fin.

Ejercicio Nº 1. Desarrolle el algoritmo de solución para resolver los siguientes ejercicios

1) Dada una cantidad en bolivianos, obtener la equivalencia en dólares, asumiendo que la unidad
cambiaría es un dato conocido 6.97 Bs por cada dólar americano.

2) Leer un número y escribir el valor absoluto del mismo.

3) La presión, el volumen y la temperatura de una masa de aire se relacionan por la formula:


masa = (presión * volumen)/(0.37 * (temperatura + 460))

5. El dueño de una tienda compra un artículo a un precio determinado. Obtener el precio en que lo
debe vender para obtener una ganancia del 30%.

6. Todos los lunes, miércoles y viernes, una persona corre la misma ruta y cronometra los tiempos
obtenidos. Determinar el tiempo promedio que la persona tarda en recorrer la ruta en una semana
cualquiera.

7. Tres personas deciden invertir su dinero para fundar una empresa. Cada una de ellas invierte una
cantidad distinta. Obtener el porcentaje que cada quien invierte con respecto a la cantidad total
invertida.

4.3 Estructuras Condicionales

Las estructuras condicionales comparan una variable contra otro(s) valor(es), para que en
base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe
mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se
necesite. Existen dos tipos básicos, las simples y las múltiples.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 32


INGENIERIA ASISTIDA POR COMPUTADORA 2011

 Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”.
Estas tomas de decisión tienen la siguiente forma:

Si <condición> entonces
Acción(es)
Fin-si

 Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas
posibles en función del cumplimiento o no de una determinada condición. Se representa de la
siguiente forma:

Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si

Donde:

Si ………………… Indica el comando de comparación


Condición………… Indica la condición a evaluar

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 33


INGENIERIA ASISTIDA POR COMPUTADORA 2011

entonces……..…… Precede a las acciones a realizar cuando se cumple la condición


acción(es)………… Son las acciones a realizar cuando se cumple o no la condición
si no……………… Precede a las acciones a realizar cuando no se cumple la condición

Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o mas acciones.

 Múltiples: Las estructuras de comparación múltiples, son tomas de decisión especializada que
permiten comparar unos variables contras distintos posibles resultados, ejecutando para cada
caso una serie de instrucciones específicas. La forma común es la siguiente:

Si <condición> entonces
Acción(es)
si no
Si <condición> entonces
Acción(es)
si no .
. Varias condiciones

 Forma General
Casos Variable

Op1: Acción(es)
Op2: Acción(es)
.
OpN: acción
Fin-casos

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 34


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ejemplo Algoritmo: dados dos números enteros imprime el mayor de los dos.
ALGORITMO: Mayor_de_dos
ENTRADA: dos números enteros.
SALIDA: el mayor de los dos.
VARIABLES: valor1, valor2: entero.
INICIO
ESCRIBIR ‘Introduce el prime valor’
LEER valor1
ESCRIBIR ‘Introduce el segundo valor’
LEER valor2
SI valor1 > valor2
ESCRIBIR ‘El mayor es’, valor1
SI NO
ESCRIBIR ‘El mayor es’, valor2
FIN_SI
FIN

Veamos cómo se codifica en el programa MatLab utilizando el editor

Pulse
Pulse elel
botón
botón Para
Para
ejecutar
ejecutar oo F5
F5

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 35


INGENIERIA ASISTIDA POR COMPUTADORA 2011

En algunas ocasiones la selección es múltiple, por ejemplo imagínese que se quiere realizar un
algoritmo de modo que dado un número entero entre 1 y 3 produzca como salida su expresión en
caracteres (si introducimos 3 devuelve ‘tres’). Su solución requiere utilizar varios bloques SI
anidados (un SI dentro de otro y anidado por la sentencia SI NO). La solución al problema
propuesto podría ser la siguiente:

ALGORITMO: texto_numero
ENTRADA: un número entero entre 1 y 3
SALIDA: la expresión en caracteres del numero de entrada
VARIABLES: numero: entero
texto: cadena de caracteres
INICIO
ESCRIBIR ‘Introduce un número entre 1 y 3:’
LEER número
SI numero = 1
texto ’uno’
SI NO
SI numero = 2
texto ’dos’
SI NO
SI numero = 3
texto ’tres
SI NO
texto ’error’
FIN SI
FIN SI
FIN SI
ESCRIBIR ‘El numero’, numero, ’en texto es’, texto
FIN

Codificando al lenguaje para probar su ejecución:

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 36


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ejemplo de aplicación: Uso de la ecuación Clausius-Clapeyron

Los meteorólogos estudian la atmósfera con la intensión de comprender y al final de cuentas predecir el clima. La
predicción del clima es un proceso complicado, incluso con los mejores datos. Los meteorólogos estudian química,
física, termodinámica y geografía, además de curso de especialización acerca de la atmósfera.
Una ecuación que usan los meteorólogos es la ecuación Clausius-Clapeyron, que, por lo general, se introduce en las
clases de química y se examina con má detalle en clases de termodinámica avanzada.
En meteorología, la ecuación Clausius-Clapeyron se emplea para determinar la relación entre presión de vapor de agua
de saturación y la temperatura atmosférica. La presión de vapor de agua de saturación se puede usar para calcular la
humedad relativa, un componente importante de la predicción del clima, cuando se conoce la verdadera presión parcial
del agua en el aire.

La ecuación Clausius-Clapeyron es

Donde:
P0=presión de vapor de saturación para el agua en mbar a temperatura T.
Calor latente de vaporización para el agua, 2.453 x 106 J/Kg
Constante de gas para el aire húmedo, 461 J/Kg, y
T = Temperatura en grados Kelvin (K)

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 37


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Es raro que las temperaturas en la superficie de la tierra sean menores que -60 ºF o mayores que 120 ºF. Use la ecuación
de Clausius-Clapeyron para encontrar la opresión de vapor de saturación para temperaturas en este rango. Presente sus
resultados como una tabla de temperaturas Fahrenheit y presiones de vapor de saturación.
Problema:
Encontrar la presión de vapor de saturación a temperatura de -60ºF a 120ºF, con la ecuación de Clausius-Clapeyron.
Describa las entradas y salidas.
Entrada:

T= -60ºF a 120ºF
La temperatura se calculara a cada 10 grados.
Salida:
Presiones de vapor de saturación

La ecuación de Clausius-Clapeyron requiere que todas las variables tengan unidades consistentes. Esto significa que la
temperatura (T) necesita estar en grados Kelvin. Para cambiar grados Fahrenheit a Kelvin, se usa la ecuación de
conversión

Ahora se requiere resolver la ecuación de Calusius-Clapeyron para la presión de vapor de saturación p0. Se tiene

Probemos para una temperatura T = 0ºF

Sustituyendo los valores en la ecuación se tiene

Ahora desarrollaremos la solución en el programa MatLab

ALGORITMO: presiones_de_vapor_de_saturacion
ENTRADA: calor latente de vaporización y constante de gas para el aire húmedo, Temperatura
en grados fahrenhait
SALIDA: Temperatura en grados Kelvin y presiones de vapor de saturación (presión_satur) en
tabla
VARIABLES: TF,TK, Delta_H, R_air, presión_satur

Inicio
Leer TF, TK, Delta_H, R_air
TK=(TF+459.6)/1.8
presion_satur=6.11*exp((Delta_H/R_air)*(1/273-1./TK));
resultados=[TF',presion_satur']
Imprimir resultados
fin

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 38


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ahora realice un programa que los datos como calor latente de vaporización para el agua sea introducido por teclado así
como constante de gas para el aire húmedo para generalizar de vapor de condensación

4.4 Practicando con Problemas Condicionales simples

A ) Problemas Selectivos Simples

1) Un hombre desea saber cuánto dinero se genera por concepto de intereses sobre la cantidad que
tiene en inversión en el banco. El decidirá reinvertir los intereses siempre y cuando estos
excedan a Bs 7 000, y en ese caso desea saber cuánto dinero tendrá finalmente en su cuenta.

ALGORITMO: Intereses_por_capital
ENTRADA: capital, porcentaje de interés
SALIDA: capital mas interes
VARIABLES: cap, p_interes, int, capf
Inicio
Leer p_int, cap
int = cap * p_int
si int > 7000 entonces
capf = cap + int
fin-si
Imprimir capf

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 39


INGENIERIA ASISTIDA POR COMPUTADORA 2011

fin

2) Determinar si un estudiante de ing. de Petróleo aprueba o reprueba la materia de IAC022,


sabiendo que aprobara si su promedio de tres calificaciones es mayor o igual a 51; reprueba en
caso contrario.

ALGORITMO: aprueba_reprueba
ENTRADA: calif1, calif2, calif3
SALIDA: texto: aprobado, reprobado
VARIABLES: calif1, calif2, calif3, prom tipo: real

Inicio
Leer calif1, calif2, calif3
prom = (calif1 + calif2 + calif3)/3
Si prom >= 51 entonces
Imprimir “alumno aprobado”
si no
Imprimir “alumno reprobado”
Fin-si
Fin

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 40


INGENIERIA ASISTIDA POR COMPUTADORA 2011

3) Un obrero necesita calcular su salario semanal, el cual se obtiene de la siguiente manera:


Si trabaja 40 horas o menos se le paga Bs 16 por hora.

Si trabaja más de 40 horas se le paga Bs 16 por cada una de las primeras 40 horas y Bs 20
por cada hora extra.

ALGORITMO: salario_semanal
ENTRADA: horas trabajadas
SALIDA: salario semanal
VARIABLES: hora_trab, hora_ext, acumulado

Inicio
Leer hora_trab
Si hora_trab > 40 entonces
Hora_ext = hora_trab - 40
acumulado = hora_ext * 20 + 40 * 16
si no
acumulado = hora_trab * 16
Fin-si
Imprimir acumulado
Fin

INSTRUCCIONES if ANIDADAS

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 41


INGENIERIA ASISTIDA POR COMPUTADORA 2011

A través de algunos ejemplos en el programa MatLab trataremos de ejemplificar el uso de


instrucciones anidadas.

Ejemplo de solución de una ecuación de segundo grado codificado. Es de apreciar que los simbolos % antes de una frase
se utiliza para hacer comentario y cuando el programa ejecuta no muestra.

ALGORITMO: ecuación_segundo_grado
ENTRADA: coeficientes de la ecuación
SALIDA: las raíces de la ecuación real e imaginaria
VARIABLES: A, B, C, x1, x2: Real
Texto mensaje: cadena de caracteres
INICIO
ESCRIBIR (‘Introduzca el valor del coeficiente A de la ecuación:’)
LEER (A)
ESCRIBIR (‘Introduzca el valor del coeficiente B de la ecuación:’)
LEER (B)
ESCRIBIR (‘Introduzca el valor del coeficiente C de la ecuación:’)
LEER (C)

SI A == 0
X= - C/B
Escribir (‘La ecuación no es de segundo grado’)
Escribir (‘La solución es = ‘, X)
SI NO
SI B == 0
Z= -C/A
SI Z > 0
X1= sqrt(Z)
Imprimir (X1)
SI NO
X2 = sqrt(Z)*i
mostrar(X2)
FIN SI
SI NO
SI C == 0
X1=0
X2=-B/A
Imprimir (X1)
Imprimir (X2)
SI NO
Z=B^2-4AC
SI Z > 0
X1= (- B + sqrt(Z))/(2A)
X2= (-B – sqrt(Z))/(2A)
Imprimir(‘La solución de X1 = ‘,X1)
Imprimir(‘La solución de X2 =’,X2)
SI NO

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 42


INGENIERIA ASISTIDA POR COMPUTADORA 2011

X1= (- B + sqrt(abs(Z))*i)/(2A)
X2= (-B – sqrt(abs(Z))*i)/(2A)
Mostrar(X1), mostrar(X2)
FIN SI
FIN SI

Algoritmo codificado en programa MatLab

clc;% para limpieza de pantalla


%Este es un programa que resuelve una ecuacion de segundo grado
% AX^2 + BX + C = 0
%Los coeficientes son introducidos por teclado

format short;% formato para la salida de núnmero complejo


A=input('Introduzca el coeficiente A de x^2: ');
B=input('Introduzca el coeficiente B de x: ');
C=input('Introduzca el término independiente C: ');
if A==0
x=-C/B;
disp('La ecuacion no es de segundo grado');
fprintf('La solucion para x = %2.4f\n',x);
elseif B==0
z=-C/A;
if z>0
x1=sqrt(z);
fprintf('La solución es: %2.4f\n',x1);
else
x2=sqrt(abs(z))*i;
disp('La solucion es imaginaria cuya raiz es:'),
disp(x2)
end
elseif C==0
x1=0;
x2=-B/A;
disp('La solucion es real');
fprintf('para x1 = %1.1d\n',x1);
fprintf('y para x2 = %4.3f\n',x2);
else
z=B^2-4*A*C;
if z>0
x1=(-B+sqrt(z))/(2*A);
x2=(-B-sqrt(z))/(2*A);
disp('La solucion es real')
fprintf('para x1 es = %2.4f\n',x1);
fprintf('y para x2 es = %2.4f\n',x2);
else
disp('La solución es imaginaria, cuya raiz es:');
x1=(-B+sqrt(abs(z))*i)/(2*A);
x2=(-B-sqrt(abs(z))*i)/(2*A);
disp(x1),disp(x2)
end
end

Es de apreciar las variables utilizadas en esta porción del programa es g y count

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 43


INGENIERIA ASISTIDA POR COMPUTADORA 2011

if g < 50
count = count +1;
disp(g)
if b > g
b= 0;
end
end

Si anidamos varios niveles de instrucción if – else, puede ser difícil determinar cuáles
expresiones lógicas deben ser verdaderas ( o falsas) para ejecutar cada serie de instrucciones. En
estos casos es común utilizar la cláusula elseif para aclara la lógica del programa, como se ilustra
con la siguientes instrucciones.

if temperatur > 100


disp(‘Demasiado caliente – falla de equipo’)
elseif temperatura > 90
disp(‘Intervalo operativo normal’)
elseif temperatura > 50
disp(‘ Temperatura por debajo del intervalo operativo deseado’)
else
disp.(‘Demasiado frio – apagar equipo’)
end

B. Problemas Selectivos Compuestos

1) Leer 2 números; si son iguales que los multiplique, si el primero es mayor que el segundo
que los reste y si no que los sume.

Inicio
Leer num1, num2
si num1 = num2 entonces
resul = num1 * num2
si no
si num1 > num2 entonces
resul = num1 - num2
si no
resul = num1 + num2
fin-si
fin-si

2. Leer tres números diferentes e imprimir el número mayor de los tres.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 44


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Inicio
Leer num1, num2, num3
Si (num1 > num2) entonces
aux = num1
si no
aux = num2
fin-si
si(aux>num3) entonces
mayor = aux
imprimir(‘El mayor es: ‘,mayor)
si no
mayor=num3
imprimir(‘El mayor es: ‘,mayor)
fin-si

3) Determinar la cantidad de dinero que recibirá un trabajador por concepto de las horas extras
trabajadas en una empresa, sabiendo que cuando las horas de trabajo exceden de 40, el resto se
consideran horas extras y que estas se pagan al doble de una hora normal cuando no exceden de
8; si las horas extras exceden de 8 se pagan las primeras 8 al doble de lo que se pagan las horas
normales y el resto al triple.

Inicio
Leer ht, pph
Si ht < = 40 entonces
tp = ht * pph
si no
he = ht - 40
Si he < = 8 entonces
pe = he * pph * 2
si no
pd = 8 * pph * 2
pt = (he - 8) * pph * 3
pe = pd + pt
fin-si
tp = 40 * pph + pe
fin-si
Imprimir tp
fin

4) Calcular la utilidad que un trabajador recibe en el reparto anual de utilidades si este se le asigna
como un porcentaje de su salario mensual que depende de su antigüedad en la empresa de
acuerdo con la siguiente tabla:

Tiempo Utilidad

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 45


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Menos de 1 año 5 % del salario


1 año o más y menos de 2 años 7% del salario
2 años o más y menos de 5 años 10% del salario
5 años o más y menos de 10 años 15% del salario
10 años o más 20% del salario

Inicio
Leer sm, antig
Si antig < 1 entonces
util = sm * 0.05
si no
Si (antig > = 1) and (antig < 2) entonces
util = sm * 0.07
si no
Si (antig > = 2) and (antig < 5) entonces
util = sm * 0.10
si no
Si (antig > = 5) and (antig < 10) entonces
util = sm * 0.15
si no
util = sm * 0.20
fin-si
fin-si
fin-si
fin-si
Imprimir util
fin.

5) El AFB en Bolivia requiere clasificar a las personas que se jubilaran en el año de 2000. Existen
tres tipos de jubilaciones: por edad, por antigüedad joven y por antigüedad adulta. Las personas
adscritas a la jubilación por edad deben tener 58 años o más y una antigüedad en su empleo de
menos de 25 años. Las personas adscritas a la jubilación por antigüedad joven deben tener menos
de 58 años y una antigüedad en su empleo de 25 años o más.

Las personas adscritas a la jubilación por antigüedad adulta deben tener 58 años o más y una
antigüedad en su empleo de 25 años o más. Determinar en qué tipo de jubilación, quedara adscrita
una persona.

Inicio
leer edad,ant
si edad >= 58 and ant < 25 entonces
imprimir “la jubilación es por edad”
si no
si edad >= 58 and ant > 25 entonces
imprimir “la jubilación es por edad adulta”

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 46


INGENIERIA ASISTIDA POR COMPUTADORA 2011

si no
si edad < 58 and ant > 25 entonces
imprimir “la jubilación es por antigüedad joven”
si no
imprimir “no tiene por qué jubilarse”
fin-si
fin-si
fin-si
fin

8. Un alumno desea saber cuál será su promedio general en las tres materias más difíciles que cursa
y cuál será el promedio que obtendrá en cada una de ellas. Además desea saber si estará
habilitado a alguna de las mesas.

Las materias se evalúan de acuerdo al siguiente detalle como se muestra a continuación:

La calificación de Matemáticas se obtiene de la siguiente manera:


Examen parcial 60%
Promedio de tareas 10%
Trabajo de investigación 20%
Por participación 10%
En esta materia se pide un total de tres tareas.

La calificación de Física se obtiene de la siguiente manera:


Exámenes parciales 40%
Promedio de tareas 20%
Promedio de laboratorio 30%
Por participación 10%
En esta materia se pidió un total de tres tareas y cuatro prácticas de laboratorio.

La calificación de Química se obtiene de la siguiente manera:


Examen parcial 45%
Promedio de tareas 25%
Promedio por prácticas de laboratorio 30%
En esta materia se pidió un promedio de tres tareas y cuatro practicas de laboratorios.
Las evaluaciones anteriores habilitan al examen de mesa en la siguiente proporción:
Si sus promedios son mayores a 50 puntos habilitan a primera mesa
Si sus promedios son mayores a 39 puntos habilitan a segunda mesa
Si sus promedios son menores a 40 puntos son reprobados

5.5 Estructuras Cíclicas

Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar


un mismo conjunto de acciones que se puedan ejecutar una cantidad específica de veces. Esta

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 47


INGENIERIA ASISTIDA POR COMPUTADORA 2011

cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en
función de algún dato dentro del programa).Los ciclos se clasifican en:

Ejemplo:
Introducir n números por teclado para seleccionar múltiplos de m números. Observe como se
introducen los números por teclado utilizando la instrucción for – end, luego if-end tmbien observe
el formato de salida de datos para adaptar a otras situaciones similares.

Ciclos con un Número Determinado de Iteraciones (Hacer-Para)

Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo.

En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta que la
variable de control llegue al límite superior.

Problemas ( Hacer para )

1) Calcular el promedio de un alumno que tiene 7 calificaciones en la materia de Diseño


Estructurado de Algoritmos.

Inicio
Sum=0
Leer Nom
Hacer para c = 1 a 7

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 48


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Leer calif
Sum = sum + calif
Fin-para
prom = sum /7
Imprimir prom
Fin.

2) Leer 10 números y obtener su cubo y su cuarta.

Inicio
Hacer para n = 1 a 10
Leer num
cubo = num * num * num
cuarta = cubo * num
Imprimir cubo, cuarta
Fin-para
Fin.

3) Leer 10 números e imprimir solamente los números positivos

Inicio
Hacer para n = 1 a 10
Leer num
Si num > 0 entonces
Imprimir num
fin-si
Fin-para
Fin.

3) Leer 20 números e imprimir cuantos son positivos, cuantos negativos y cuantos neutros.

Inicio
cn = 0
cp = 0
cneg = 0
Hacer para x = 1 a 20
Leer num
Sin num = 0 entonces
cn = cn + 1
si no
Si num > 0 entonces
cp = cp + 1
si no
cneg = cneg + 1
Fin-si
Fin-si
Fin-para

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 49


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Imprimir cn, cp, cneg


Fin.

5) Leer 15 números negativos y convertirlos a positivos e imprimir dichos números.


Inicio
Hacer para x = 1 a 15
Leer num
pos = num * -1
Imprimir num, pos
Fin-para
Fin.

6) Suponga que se tiene un conjunto de calificaciones de un grupo de 40 alumnos. Realizar un


algoritmo para calcular la calificación media y la calificación mas baja de todo el grupo.

Inicio
sum = 0
baja = 9999
Hacer para a = 1 a 40
Leer calif
sum = sum + calif
Si calif < baja entonces
baja = calif
fin-si
Fin-para
media = sum / 2
Imprimir media, baja
fin

7) Calcular e imprimir la tabla de multiplicar de un numero cualquiera. Imprimir el multiplicando, el


multiplicador y el producto.
Inicio
Leer num
Hacer para X = 1 a 10
resul = num * x
Imprimir num, “ * “, X, “ = “, resul
Fin-para
fin.

8) Simular el comportamiento de un reloj digital, imprimiendo la hora, minutos y segundos de un


día desde las 0:00:00 horas hasta las 23:59:59 horas

Inicio
Hacer para h = 1 a 23
Hacer para m = 1 a 59
Hacer para s = 1 a 59
Imprimir h, m, s

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 50


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Fin-para
Fin-para
Fin-para
fin.

Ciclos con un Numero Indeterminado de Iteraciones ( Hacer-Mientras, Repetir-Hasta)

Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que esta dado
en función de un dato dentro del programa.

 Hacer-Mientras: Esta es una estructura que repetirá un proceso durante “N” veces,
donde “N” puede ser fijo o variable. Para esto, la instrucción se vale de una condición
que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se
cumple, entonces ya no se ejecuta el proceso.

Ejercicio Nº 5 Desarrolle el algoritmo y plantee la solución (Hacer Mientras)

1) Una compañía de seguros tiene contratados a n vendedores. Cada uno hace tres ventas a la
semana. Su política de pagos es que un vendedor recibe un sueldo base, y un 10% extra por
comisiones de sus ventas. El gerente de su compañía desea saber cuánto dinero obtendrá en la
semana cada vendedor por concepto de comisiones por las tres ventas realizadas, y cuanto tomando
en cuenta su sueldo base y sus comisiones.

4) En una empresa se requiere calcular el salario semanal de cada uno de los n obreros que laboran
en ella. El salario se obtiene de la siguiente forma:

Si el obrero trabaja 40 horas o menos se le paga Bs 20 por hora


Si trabaja más de 40 horas se le paga Bs 20 por cada una de las primeras 40 horas y Bs 25
por cada hora extra.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 51


INGENIERIA ASISTIDA POR COMPUTADORA 2011

3) Determinar cuántos hombres y cuantas mujeres se encuentran en un grupo de n personas,


suponiendo que los datos son extraídos alumno por alumno.

4) El Depto. de Seguridad Publica y Transito desea saber, de los n autos que entran a la ciudad de
Santa Cruz, cuantos entran con calcomanía de cada color. Conociendo el último dígito de la placa de
cada automóvil se puede determinar el color de la calcomanía utilizando la siguiente relación:

DÍGITO COLOR
1o2 amarilla
3o4 rosa
5o6 roja
7o8 verde
9o0 azul

5) Obtener el promedio de calificaciones de un grupo de n alumnos.

6) Una persona desea invertir su dinero en un banco, el cual le otorga un 2% de interés. Cuál será la
cantidad de dinero que esta persona tendrá al cabo de un año si la ganancia de cada mes es
reinvertida?.

7) Calcular el promedio de edades de hombres, mujeres y de todo un grupo de alumnos.

8) Encontrar el menor valor de un conjunto de n números dados.

9) Encontrar el mayor valor de un conjunto de n números dados.

10) En un supermercado un cajero captura los precios de los artículos que los clientes compran e
indica a cada cliente cual es el monto de lo que deben pagar. Al final del día le indica a su supervisor
cuanto fue lo que cobro en total a todos los clientes que pasaron por su caja.

11) Cinco miembros de un club contra la obesidad desean saber cuánto han bajado o subido de peso
desde la última vez que se reunieron. Para esto se debe realizar un ritual de pesaje en donde cada
uno se pesa en diez básculas distintas para así tener el promedio más exacto de su peso. Si existe
diferencia positiva entre este promedio de peso y el peso de la última vez que se reunieron, significa
que subieron de peso. Pero si la diferencia es negativa, significa que bajaron. Lo que el problema
requiere es que por cada persona se imprima un letrero que diga: “SUBIO” o “BAJO” y la cantidad
de kilos que subió o bajo de peso.

3) Se desea obtener el promedio de g grupos que están en un mismo año escolar; siendo que cada
grupo puede tener n alumnos que cada alumno puede llevar m materias y que en todas las materias
se promedian tres calificaciones para obtener el promedio de la materia. Lo que se desea desplegar
es el promedio de los grupos, el promedio de cada grupo y el promedio de cada alumno.

Repetir-Hasta: Esta es una estructura similar en algunas características, a la anterior. Repite un


proceso una cantidad de veces, pero a diferencia del Hacer-Mientras, el Repetir-Hasta lo hace hasta
que la condición se cumple y no mientras, como en el Hacer-Mientras. Por otra parte, esta estructura
permite realizar el proceso cuando menos una vez, ya que la condición se evalúa al final del proceso,

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 52


INGENIERIA ASISTIDA POR COMPUTADORA 2011

mientras que en el Hacer-Mientras puede ser que nunca llegue a entrar si la condición no se cumple
desde un principio. La forma de esta estructura es la siguiente:

Ejercicio Nº 6 Implemente la Repetir – Hasta

1) En una tienda de descuento las personas que van a pagar el importe de su compra llegan a la caja
y sacan una bolita de color, que les dirá que descuento tendrán sobre el total de su compra.
Determinar la cantidad que pagara cada cliente desde que la tienda abre hasta que cierra. Se sabe que
si el color de la bolita es roja el cliente obtendrá un 40% de descuento; si es amarilla un 25% y si es
blanca no obtendrá descuento.

2) En un supermercado un ama de casa pone en su carrito los artículos que va tomando de los
estantes. La señora quiere asegurarse de que el cajero le cobre bien lo que ella ha comprado, por lo
que cada vez que toma un articulo anota su precio junto con la cantidad de artículos iguales que ha
tomado y determina cuánto dinero gastara en ese artículo; a esto le suma lo que ira gastando en los
demás artículos, hasta que decide que ya tomo todo lo que necesitaba. Ayúdale a esta señora a
obtener el total de sus compras.

3) un teatro otorga descuentos según la edad del cliente. Determinar la cantidad de dinero que el
teatro deja de percibir por cada una de las categorías. Tomar en cuenta que los niños menores de 5
años no pueden entrar al teatro y que existe un precio único en los asientos. Los descuentos se hacen
tomando en cuenta el siguiente cuadro:

Edad Descuento
Categoría 1 5 - 14 35 %
Categoría 2 15 - 19 25 %
Categoría 3 20 - 45 10 %
Categoría 4 46 - 65 25 %
Categoría 5 66 en adelante 35 %

Resolver los siguientes Problemas Propuestos

1) La presión, volumen y temperatura de una masa de aire se relacionan por la formula:

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 53


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Masa = presión * volumen .


0.37 * (temperatura + 460)

Calcular el promedio de masa de aire de los neumáticos de n vehículos que están en


compostura en un servicio de alineación y balanceo. Los vehículos pueden ser motocicletas o
automóviles.

2) Determinar la cantidad semanal de dinero que recibirá cada uno de los n obreros de una empresa.
Se sabe que cuando las horas que trabajo un obrero exceden de 40, el resto se convierte en horas
extras que se pagan al doble de una hora normal, cuando no exceden de 8; cuando las horas extras
exceden de 8 se pagan las primeras 8 al doble de lo que se paga por una hora normal y el resto al
triple.

3) En la Cámara de Diputados se levanta una encuesta con todos los integrantes con el fin de
determinar qué porcentaje de los n diputados está a favor del Tratado de Libre Comercio, que
porcentaje está en contra y que porcentaje se abstiene de opinar.

4) Una persona que va de compras a la tienda “Enano, S.A.”, decide llevar un control sobre lo que
va comprando, para saber la cantidad de dinero que tendrá que pagar al llegar a la caja. La tienda
tiene una promoción del 20% de descuento sobre aquellos artículos cuya etiqueta sea roja.
Determinar la cantidad de dinero que esta persona deberá pagar.

5) Un censador recopila ciertos datos aplicando encuestas para el último Censo Nacional de
Población y Vivienda. Desea obtener de todas las personas que alcance a encuestar en un día, que
porcentaje tiene estudios de primaria, secundaria, carrera técnica, estudios profesionales y estudios
de posgrado.

6) Un jefe de casilla desea determinar cuántas personas de cada una de las secciones que componen
su zona asisten el día de las votaciones. Las secciones son: norte, sur y centro. También desea
determinar cuál es la sección con mayor número de votantes.

7) Leer 50 calificaciones de un grupo de alumnos. Calcule y escriba el porcentaje de reprobados.


Tomando en cuenta que la calificación mínima aprobatoria es de 70.

8) Leer por cada alumno de Diseño estructurado de algoritmos su número de control y su


calificación en cada una de las 5 unidades de la materia. Al final que escriba el numero de control
del alumno que obtuvo mayor promedio. Suponga que los alumnos tienen diferentes promedios.

9) El profesor de una materia desea conocer la cantidad de sus alumnos que no tienen derecho al
examen de nivelación.

Diseñe un algoritmo que lea las calificaciones obtenidas en las 5 unidades por cada uno de los 40
alumnos y escriba la cantidad de ellos que no tienen derecho al examen de nivelación.

10) Leer los 250,000 votos otorgados a los 3 candidatos a gobernador e imprimir el número del
candidato ganador y su cantidad de votos.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 54


INGENIERIA ASISTIDA POR COMPUTADORA 2011

11) Suponga que tiene usted una tienda y desea registrar las ventas en su computadora. Diseñe un
algoritmo que lea por cada cliente, el monto total de su compra. Al final del día que escriba la
cantidad total de ventas y el número de clientes atendidos.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 55


INGENIERIA ASISTIDA POR COMPUTADORA 2011

V. ARREGLOS

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Utilizar los datos de tipo arreglo para plantear la solución de problemas que requieran de esta
estructura.

Arreglo: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre (variable) a
una colección de datos del mismo tipo.

Los arreglos se caracterizan por:


 Almacenan los elementos en posiciones contiguas de memoria

 Tienen un mismo nombre de variable que representa a todos los elementos. Para hacer
referencia a esos elementos es necesario utilizar un índice que especifica el lugar que ocupa
cada elemento dentro del archivo.

Unidimensionales (Vectores)
Tipo de
Arreglos
Bidimensionales (Matrices)

6.1. Vectores

Es un arreglo de “N” elementos organizados en una dimensión donde “N” recibe el nombre
de longitud o tamaño del vector. Para hacer referencia a un elemento del vector se usa el nombre del
mismo, seguido del índice (entre corchetes), el cual indica una posición en particular del vector. Por
ejemplo:

Vec[x]
Donde:
Vec………… Nombre del arreglo
x…………… Numero de datos que constituyen el arreglo

Representación gráfica de un vector


Vec[1] 7
Vec[2] 8
Vec[3] 9
Vec[4] 1
0

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 56


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Llenado de un Vector

 Hacer para I = 1 a 10
Leer vec[I]
Fin-para

 Hacer mientras I <= 10


Leer vec[I]
Fin-mientras
 I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10

Ejercicio Desarrolle el algoritmo de solución e implemente los siguientes ejercicios en MatLab

1) Calcular el promedio de 50 valores almacenados en un vector. Determinar además cuantos son


mayores que el promedio, imprimir el promedio, el número de datos mayores que el promedio y
una lista de valores mayores que el promedio.

2) Llenar dos vectores A y B de 45 elementos cada uno, sumar el elemento uno del vector A con el
elemento uno del vector B y así sucesivamente hasta 45, almacenar el resultado en un vector C, e
imprimir el vector resultante.

3) Llenar un vector de 20 elementos, imprimir la posición y el valor del elemento mayor


almacenado en el vector. Suponga que todos los elementos del vector son diferentes.

4) Almacenar 500 números en un vector, elevar al cuadrado cada valor almacenado en el vector,
almacenar el resultado en otro vector. Imprimir el vector original y el vector resultante.

5) Almacenar 300 números en un vector, imprimir cuantos son ceros, cuántos son negativos,
cuantos positivos. Imprimir además la suma de los negativos y la suma de los positivos.

6) Almacenar 150 números en un vector, almacenarlos en otro vector en orden inverso al vector
original e imprimir el vector resultante.

7) Se tienen almacenados en la memoria dos vectores M y N de cien elementos cada uno. Hacer un
algoritmo que escriba la palabra “Iguales” si ambos vectores son iguales y “Diferentes” si no lo
son.
Serán iguales cuando en la misma posición de ambos vectores se tenga el mismo valor para
todos los elementos.

8) Se tiene el vector A con 100 elementos almacenados. Diseñe un algoritmo que escriba “SI” si el
vector esta ordenado ascendentemente o “NO” si el vector no está ordenado

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 57


INGENIERIA ASISTIDA POR COMPUTADORA 2011

9) Diseñe un algoritmo que lea un número cualquiera y lo busque en el vector X, el cual tiene
almacenados 80 elementos. Escribir la posición donde se encuentra almacenado el número en el
vector o el mensaje “NO” si no lo encuentra. Búsqueda secuencial.

10) Diseñe un algoritmo que lea dos vectores A y B de 20 elementos cada uno y multiplique el
primer elemento de A con el último elemento de B y luego el segundo elemento de A por el
diecinueveavo elemento de B y así sucesivamente hasta llegar al veinteavo elemento de A por el
primer elemento de B. El resultado de la multiplicación almacenarlo en un vector C.

11) Diseñe un algoritmo que almacene en un vector llamado FIB[100] los 100 primeros números de
la serie fibonacci.

6.2 Matriz

Es un arreglo de M * N elementos organizados en dos dimensiones donde “M” es el numero


de filas o reglones y “N” el numero de columnas.

Para representar una matriz se necesita un nombre de matriz se necesita un nombre de matriz
acompañado de dos índices.
Mat [R,C]
Donde R indica el renglón y C indica la columna, donde se encuentra almacenado el dato.
Representación gráfica de una matriz
Mat [R,C] Fila o Renglon
[R] 1,1 1,2 1,3 1,4
2,1 2,2 2,3 2.4
3,1 3,2 3,3 3,4
4,1 4,2 4,3 4,4

Llenado de una matriz Columna


[C]

 Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

 Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 58


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices y se
utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les llama ciclos
anidados (un ciclo dentro de otro ciclo).

Problemas propuestos

1) Hacer un algoritmo que almacene números en una matriz de 5 * 6. Imprimir la suma de los
números almacenados en la matriz.

2) Hacer un algoritmo que llene una matriz de 10 * 10 y determine la posición [renglon, columna]
del número mayor almacenado en la matriz. Los números son diferentes.

3) Hacer un algoritmo que llene una matriz de 7 * 7. Calcular la suma de cada renglón y
almacenarla en un vector, la suma de cada columna y almacenarla en otro vector.

4) Hacer un algoritmo que llene una matriz de 20 * 20. Sumar las columnas e imprimir que
columna tuvo la máxima suma y la suma de esa columna.

5) Hacer un algoritmo que llene una matriz de 5 * 5 y que almacene la diagonal principal en un
vector. Imprimir el vector resultante.

6) Hacer un algoritmo que llene una matriz de 10 * 10 y que almacene en la diagonal principal
unos y en las demás posiciones ceros.

7) Hacer un algoritmo que llene una matriz de 6 * 8 y que almacene toda la matriz en un vector.
Imprimir el vector resultante.

8) Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de los renglones y la
suma de las columnas en un vector. Imprimir el vector resultante.

9) Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números
almacenados son ceros, cuántos son positivos y cuántos son negativos.

10) Diseñe un pseudocódigo que escriba el número de la hilera cuya suma sea mayor que las demás
hileras. Suponga que todas las hileras suman diferente cantidad.

11) El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas por medio
de una computadora. Los datos de entrada son:

a) El numero de la tienda (1 a 50)

b) Un numero que indica el deporte del articulo (1 a 20)

c) El costo del artículo.

Hacer un pseudocódigo que escriba al final del día lo siguiente:

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 59


INGENIERIA ASISTIDA POR COMPUTADORA 2011

1. Las ventas totales en el día para cada tienda


2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.

12) Se tiene almacenada la matriz M (50,5) la cuál contiene la información sobre las calificaciones
de la materia de IAC022. Diseñe un pseudocódigo que imprima:

a).- Cantidad de alumnos que aprobaron la materia.

B).- Cantidad de alumnos que tienen derecho a nivelación.

C).- El (o los) numero (s) de control de lo(s) alumno(s) que haya (n) obtenido la máxima
calificación final.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 60


INGENIERIA ASISTIDA POR COMPUTADORA 2011

VI. MANEJO DE MÓDULOS

OBJETIVO EDUCACIONAL:

El alumno será capaz de:

Identificar y aplicara los datos de tipo cadena de caracteres (string) para la solución de
problemas de tipo administrativo.

7.1 Definición, Función y Manipulación

Un problema complejo se puede dividir en pequeños subproblemas mas sencillos. Estos


subproblemas se conocen como “Módulos” y su complementacion en un lenguaje se llama
subprograma (procedimientos y funciones).

Un subprograma realiza las mismas acciones que un programa, sin embargo, un subprograma
lo utiliza solamente un programa para un propósito especifico.

Un subprograma recibe datos de un programa y le devuelve resultados (el programa “llama”


o “invoca” al subprograma, este ejecuta una tarea especifica y devuelve el “control” al programa que
lo llamo).

Funciones
Tipos de
Módulos
Procedimientos

Función: Una función en matemáticas, es una operación que toma un o mas valores (argumentos) y
devuelve un resultado (valor de la función para los argumentos dados). Por ejemplo:

F(X) = X / (1+X2)

Donde:
F ………….. Nombre de la función
X …………. Es el argumento (también conocido como parámetro formal)

Definición de funciones: Una definición de función se presenta de la siguiente manera:

Función nombre_funcion (p1, p2, …, pn)


Inicio
Bloque de instrucciones
Fin

Donde:

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 61


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Función …………… Es la palabra clave que nos indica una definición de función.
Nombre_funcion ….. Es el identificador con el cual se reconoce a la función en el cuerpo del
algoritmo principal.
P1,p2,…,pn ……... Es el grupo de parámetros que define a la función.

Llamado a una función

Cuando definimos una función solo le indicamos al algoritmo que esta función existe, pero
una definición de función no implica la realización de las instrucciones que la constituyen. Para
hacer uso de una función, el algoritmo principal la debe llamar. Por ejemplo:

Función F(X)
Inicio
F = X /(1 + X^2)
Fin
Inicio
Imprimir “Este es el algoritmo principal”
Leer N
R = F(N) llamado de la función
Imprimir “El resultado de la función es:”,R
Fin

Problemas Propuestos para resolver

1) Diseñe un algoritmo que llene una matriz de 10 * 10 y determine:


A) El numero mayor almacenado en la matriz
B) El numero mayor almacenado en cada renglón
C) La columna que tuvo la máxima suma
D) El renglón que tuvo la máxima suma
Diseña una función para cada inciso.

2) Diseñe un algoritmo que lea un número y mediante una función regrese el valor de 1 si el
numero es positivo y -1 si es negativo).

También, se puede declarar el tipo de las variables usando la sentencia DIM:

DIM numero AS DOUBLE (numero es una variable en doble precisión).


DIM direccion AS STRING (dirección es una cadena de caracteres de longitud variable)
DIM codigo AS STRING*10 (codigo es una cadena de caracteres de 10 caracteres)
DIM index AS INTEGER (index es una variable entera)

Ejemplo: Desarrollar un código QBASIC que pida el ingreso del nombre de una persona, su número
de documento y su dirección. Mostrar estos datos en pantalla

CLS
INPUT "Nombre: ", n$

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 62


INGENIERIA ASISTIDA POR COMPUTADORA 2011

INPUT "DNI: ", dni$


INPUT "Direccion: ", d$
PRINT n$, dni$, d$
END

Otro ejemplo:

DIM nombre AS STRING


DIM numero AS INTEGER
CLS
PRINT "ESTE PROGRAMA SELECCIONA SI EL NUMERO DIGITADO ES PAR O IMPAR"
PRINT
INPUT "Digite tu nombre: ", nombre
INPUT "Digite un numero por teclado: ", numero
IF numero MOD 2 = 0 THEN
PRINT "el numero introducido es par "; numero
ELSE
PRINT "El numero introducido es impar "; numero
END IF
END
Ejemplo que ubica el cursor en la posicion indicada para escribir

CLS
LOCATE 2, 5
PRINT "cadena de texto inicia desde fila 2, columna 5"
LOCATE 10, 10
PRINT "fila 10 columna 10"
LOCATE 15, 20
PRINT "fila 15 y columna 20"
LOCATE 16, 30
PRINT "fila 16 y columna 30"
LOCATE 17, 40
PRINT " fila 17 y columna 40 "
LOCATE 19, 20
PRINT "La instruccion LOCATE ubica el"
LOCATE 20, 20
PRINT "comienzo de la salida del primer print"
LOCATE 21, 20
PRINT "desde la fila 2 y la columna 5."

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 63


INGENIERIA ASISTIDA POR COMPUTADORA 2011

DESARROLLO DEL PROGRA EN MATLAB

Una de las razones por las que MatLab se ha convertido en una herramienta tan popular dentro de
las Ciencias e Ingeniería son:
 Su capacidad de realizar operaciones con matrices de forma sencilla. Así podrán realizarse
operaciones con matrices (suma, resta, multiplicación, inversiones, etc) sin necesidad de
preocuparse por programar bucles que recorran los elementos de las matrices.
 Ni siquiera es necesario definir las dimensiones de las matrices utilizadas. Además estas
dimensiones pueden alterarse si es necesario.
 Presenta una gran facilidad de crear gráficos sencillos, e interfaces de usuario.
 Existen un gran número de bibliotecas adicionales de funciones para facilitar el trabajo en
muchas áreas de ciencias e Ingeniería, denominadas toolboxes.
En definitiva MatLab se utiliza ampliamente en:
 Cálculos numéricos
 Desarrollo de algoritmos
 Modelado, simulación y prueba de prototipos
 Análisis de datos, exploración y visualización
 Traficación de datos con fines científicos o de ingeniería
 Desarrollo de aplicaciones que requieran de una interfaz gráfica de usuario (GUI, Graphical
User Interface)
En el ámbito académico y de investigación, es la herramienta estándar para los cursos introductorios
y avanzados de matemáticas, ingeniería e investigación. En la industria es la herramienta usada para
el análisis, investigación y desarrollo de nuevos procesos y productos tecnológicos.
Desde el punto de vista del control, MatLab se puede considerar un entorno matemático de
simulación que puede utilizarse para modelar y analizar sistemas.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 64


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Como se ve la ventana de apertura de MATLAB


El ambiente de MatLab consta de algunas ventanas, cuatro de las cuales se aben en la vista por
defecto. Otros se abren conforme se necesiten durante una sesión de MatLab.

La ventana de comandos se localiza en el lado derecho de la vista por defecto de la pantalla de


MatLab, como se muestra en la figura. La ventana de comandos ofrece un ambiente similar a una
memoria de trabajo auxiliar. El empleo de la ventana de comandos le permite guardar los valores
que calcula, mas no los comandos que uso para generarlos. Si necesita guardar la secuencia de
comando, necesitara emplear la ventana de edición para crear un archivo-m (m-file)

La ventana de historia de comando registra los comandos que se escriben en la ventana de


comandos. Cuando sale de MatLab, o cuando escribe el comando clc, la ventana de comandos se
limpiar (clear). Sin embargo, la ventana de historia de comandos conserva una lista de todos sus
comandos. Esta ventana es valiosa por varias razones, dos de las cuales son: porque permite revisr
sesiones anteriores de MatLab y porque se puede usar para transferir comandos a la ventana de
comandos.

La ventana de directorio actual lista todos los archivos en una carpeta de la computadora llamada
directorio actual. Cuando MatLab ingresa a archivos o guarda información, usa el directorio actual
a menos que se diga algo diferente. La ubicación por defecto del directorio actual varia con su
versión del software y con cómo se instalo.

La ventana Workspace constituye un entorno gráfico para ver las variables definidas en el espacio de
trabajo. Se activa con el comando view/Workspace. En la ventana de array editor se pueden
modificar los elementos de la matriz.

La ventana gráfica se lanza automáticamente cuando solicita una gráfica. Para crear una ventana
gráfica se usa el comando plot(x,y)

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 65


INGENIERIA ASISTIDA POR COMPUTADORA 2011

En MatLab un solo signo igual (=) se llama operador de asignación, este es diferente al de una
igualdad.

Ejm: x = 8 (se asigna un numero 8 a la variable x),

Orden de las operaciones: En todos los cálculos matemáticos es importante entender el orden en el
que se realizan las operaciones.

Primero realiza los cálculos adentro de paréntesis, desde el conjunto más interno hasta el más
externo
 A continuación, realiza operaciones de exponenciación.
 Luego realiza operaciones de multiplicación y división de izquierda a derecha.
 Finalmente, realiza operaciones de suma y resta de izquierda a derecha.

Para entender mejor la importancia del orden de las operaciones, considere los cálculos que se
involucran al encontrar el área de un cilindro circular recto.
El área es la suma de las áreas de las dos bases circulares y el área de la superficie curva entre ellas,
Si la altura del cilindro es 10 cm y el radio es de 5 cm, se puede usar el siguiente código MatLab
para encontrar el área.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 66


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Variables: altura y radio


radio = 5;
altura = 10;
sup_area= 2*pi*radio^2+2*pi*radio*altura =471.2389

En este caso, MatLab realiza primero la exponenciación y eleva el radio a la segunda potencia.
Luego trabaja de izquierda a derecha y calcula el primer producto y luego el segundo producto.
Finalmente, suma los dos productos.

Variables: son secuencia de caracteres que se utiliza para almacenar datos. Sin embargo, a
diferencia de la mayoría de los lenguajes de programación no requiere de ningún tipo de
declaraciones de tipo de datos (entero, punto flotante, complejo, etc) ni de dimensionamiento.
Cuando MatLab encuentra una nueva variable, automáticamente crea la variable y reserva la
cantidad de localidades de memoria necesarias. Si la variable ya existía dentro del espacio de
trabajo actual, simplemente cambia el contenido.

Operadores
Las expresiones utilizan los operadores aritméticos comunes. Los operadores aritméticos son los
mismos que en cualquier lenguaje de programación y se sigue un orden de evaluación similar al que
se utiliza en los demás lenguajes de programación.

Funciones
MatLab proporciona un gran número de funciones matemáticas simples y avanzadas. La gran
mayoría de estas funciones acepta argumentos complejos. Las funciones más comunes, como sqrt y
sin son parte del núcleo del programa y están programadas en bajo nivel para hacerlas más eficientes
y no es posible acceder a su código. El resto de las funciones está programada en archivo M y su
código está disponible para revisiones o modificaciones.

Funciones entrada y salida


input: esta función permite imprimir un mensaje en la línea de comandos de MatLab y recuperar
como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.
nro = input (‘Ingrese un numero:’);

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 67


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Disp: Esta función permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero
sin imprimir su nombre. En realidad, disp. Siempre imprime vectores y o matrices. Las cadenas de
caracteres son un caso particular de vectores.
disp.(‘El programa ha terminado’);

Sentencia if.
El lenguaje incluye instrucciones estándar, tales como condicionales y bucles.
El if-elseif-else condicional tiene la forma general:

if condición (1)
instrucción (1)
elseif condición (2)
instrucción (2)
.
.
.
else
instrucción (n)
end

donde la condición(1), condición(2), …. representan conjunto de expresiones lógicas, con valores 0


o 1 (falso o verdadero) y la construcción entera permite la ejecución de la instrucción
correspondiente a la condición que toma el valor igual a 1. Si todas las condiciones fuesen falsas,
tendría lugar la ejecución de instrucción (n). De hecho, si el valor de condición (k) fuese cero, el
control se movería hacia adelante.

En su forma más simple, la sentencia if se describe como sigue:


if condición
sentencias
end

Observe que la condición no va encerrada entre paréntesis.

Existen también bifurcaciones múltiples, en la que pueden concatenarse tantas condiciones como se
desee, y que la forma:
if condicon1
Bloque1
elseif condicion2
Bloque2
elseif condicion3
Bloque3
else
Bloque4
end

Es de aclarar que el uso de else es opcional. Cuando no se cumplen las condiciones anteriores se
ejecuta esta opción.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 68


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ejemplos:
nro=input(‘Ingrese un numero positivo’);
if mod(nro,2)==0
disp(‘es par’);
else
disp(‘es impar’);
end

Ejemplo de uso if/elseif

nro=input(‘Ingrese un numero positivo’);


if nro==1
disp(‘Usted ingreso el numero 1’);
elseif nro==2
disp(‘usted ingreso el numero 2’);
elseif nro==3
disp(‘usted ingreso el numero 3’);
else
disp(‘El numero es mayor que 3’);
end

Sentencias switch
Esta sentencia realiza la función análoga a un conjunto if …elseif concatenados. Su forma general
es:
Switch switch_expresion
case case_expresion
Bloque1
Case {case_expesion2, case_expresion3, case_expresion4, …},
Bloque2
……
otherwise,
Bloque3
end

Al principio se evalúa la switch_expresion, cuyo resultado debe ser un numero escalar o una
cadena de caracteres. Este resultado se compara con las case_expr, y e ejecuta el bloque de
sentencias que corresponda con este resultado. Si ninguno es igual a switch_expresion se
ejecutan las sentencias correspondientes a otherwise (que significa de otra manera). Es
posible poner varias case_expr dentro de llaves, como se ve arriba.

Ejemplo:
nro=input(‘Ingrese un numero positivo’)
switch nro
case 1, disp(‘Ud. Ingreso el numero 1’)

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 69


INGENIERIA ASISTIDA POR COMPUTADORA 2011

case 2, disp(‘Usted ingreso el numero 2’)


case 3, disp(‘Usted ingreso el numero 3’)
otherwise, disp(‘El numero es mayor que 3’)
end

Sentencia for
MatLab permite dos tipos de bucles, un bucle for (comparable al bucle for de C) y un bucle while.

Un bucle for repite las instrucciones en el bucle mientras el índice toma los valores contenidos en un
vector fila dado. Por ejemplo, para calcular los seis primeros términos de la sucesión de Fibonacci
fi = fi-1 +fi-2, para i >=3, con fi = 0 y f2 = 1, uno puede usar las siguientes instrucciones:

f(1) = 0; f(2) = 1;
for i = [3 4 5 6]
f(i) = f(i-1) + f(i-2);
end

Note que se puede usar un punto y coma para separar varias instrucciones tecleadas en la misma
línea. Obsérvese también que podemos reemplazar la segunda instrucción por for i = 3:6, que es
equivalente.

La siguiente construcción ejecuta sentencias con valores de i de 1 a n, variando en uno.


for i=1:n
sentencias
end

for anidados:

for i=1:n
for j=1:m
sentencias
end
end

El bucle while se repite en tanto en cuanto la condición dada sea cierta. Por ejemplo, el siguiente
conjunto de instrucciones puede utilizarse como alternativa al conjunto anterior:

f(1) = 0; f(2) = 1; k = 3;
while k <=6
f(k) = f(k-1) + f(k-2); k = k+1;
end

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 70


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Formatos de salida

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 71


INGENIERIA ASISTIDA POR COMPUTADORA 2011

Ejercicios para resolver

1. Las poblaciones tienden a expandirse exponencialmente. Esto es p = p0ert


Donde: p = población actual
P0 = población original
R = tarifa de crecimiento continua, expresado como fracción y
t = tiempo
Si originalmente se tienen 100 conejos que se reproducen a una tasa de crecimiento constante
de 90% (r = 0.9) por año, encuentre cuantos conejos tendrá al final de 10 años?

2. La tasa de reacción química son proporcionales a una constante de tasa k que cambia con la
temperatura de acuerdo con la ecuación arrhenius
k = k0e-Q/RT
Para cierta reacción:
Q = 8000 cal/mol
R = 1.987 cal/mol ºK
K0 = 1200 min-1
Encuentre los valores de k para temperaturas desde 100k hasta 500 k, en incrementos de 50
grados. Cree una tabla con sus resultados.

3. Considere los requerimientos de aire acondicionado de la gran casa que se muestra en la


figura. El interior de la casa se calienta por calor que se desecha de la iluminación y los
aparatos eléctricos, del calor que se filtra desde el exterior y del calor que expulsan las
personas en la casa. Un acondicionador de aire debe ser capaz de remover toda esta energía
térmica con la finalidad de evitar que aumente la temperatura interna. Suponga que hay 20
focos que expulsan 100 J/s de energía cada uno y cuatro aparatos que expulsan 50 J/s cada
uno. Suponga también que el calor se filtra del exterior a una tasa de 3000 J/s
a. ¿Cuánto calor por segundo debe remover de la casa el acondicionador de aire?
b. Una unidad particular de acondicionador de aire puede manipular 2000 J/s. Cuántas
de estas unidades se requieren para mantener constante la temperatura de la casa?

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 72


INGENIERIA ASISTIDA POR COMPUTADORA 2011

4. Los números primos muy grandes se usan en criptografía. ¿Cuántos números primos existen
entre 10,000 y 20,000? (Estos no son números primos suficientemente grandes como para
usarse en cifrados) (sugerencia: use la función primes y el comando length)
5. El desplazamiento del resorte oscilatorio que se muestra en
la figura se puede describir mediante: x = Acos(wt)
Donde:
x = desplazamiento en el tiempo t,
A = Desplazamiento máximo.
w = frecuencia angular, que depende de la constante de
resorte y la masa unida al mismo, y
t = tiempo.
Encuentre el desplazamiento x para tiempos desde 0 hasta
10 segundos cuando el desplazamiento máximo A es 4 cm y
la frecuencia angular es 0.6 radianes/s. Presente sus
resultados en una tabla de desplazamiento y tiempo.

6. La aceleración de resorte descrito en el problema anterior es: a = -Aw2cos(wt)


Encuentre la aceleración para tiempos desde 0 hasta 10 segundos, con los valores constantes
del problema anterior. Cree una tabla que incluya el tiempo, el desplazamiento de valores
correspondientes en el problema anterior y la aceleración.

7. El rango de un objeto que se dispara en un ángulo θ con respecto al eje x y una velocidad
inicial v0 está dado por :

Para 0≤ θ ≤ π/2 y resistencia del aire despreciable. Use g= 9.81 m/s2 y una velocidad inicial
v0 de 100 m/s. Muestre que el rango máximo se obtiene a aproximadamente θ = π/4 al
calcular el rango en incrementos de 0.05 entre 0≤ θ ≤ π/2. No podrá encontrar el ángulo
exacto que produce el rango máximo, porque sus cálculos están en ángulos igualmente
espaciados de 0.05 radianes.
8. Elabora un programa que solicite el valor del radio y devuelva por pantalla la longitud de la
circunferencia y el radio del círculo.
9. Elaborar un programa que represente en una tabla por pantalla los valores de altura y presión
correspondiente en altura h desde cero a 80 Km. Y tomadas cada 10 Km Calcular la presión
P según la ecuación: P [=g/cm2] = 1035*exp(-0.12*h[= Km])
10. Elaborar un programa con un bucle for que presente en pantalla los números enteros entre 0
y 50.
11. Elaborar un programa que solicite los 10 números enteros componentes de un vector de
dimensión diez, y devuelva como resultado su suma.
12. Elaborar un programa que un numero entero y devuelva como resultado la cantidad de veces
que es divisible por dos.
13. Realizar un programa que calcule y muestre por pantalla los números primos menores que N,
donde N será pedido por el programa e introducido por usuario.
14. Realizar un programa que calcule la integral numérica aproximada de la función f(x)= 1-e-x
en el intervalo [0, L] donde L será pedido por el programa e introducido por usuario. Utilizar
el método de los trapecios.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 73


INGENIERIA ASISTIDA POR COMPUTADORA 2011

15. Realizar un programa que calcule la velocidad con que cae un cuerpo por un plano inclinado
siendo los datos de entrada: la masa del cuerpo, la inclinación del plano inclinado y el
coeficiente de rozamiento. El programa debe mostrar la velocidad a intervalos de 0.1,
segundos y el tiempo de simulación lo decide el usuario.
16. Realizar un programa que pida los elementos de un vector de 10 elementos y,
posteriormente, compruebe si existen valores repetidos, mostrando estos y sus posiciones
dentro del vector.
17. Realizar un programa que calcule la media ponderada de una serie de valores. El usuario
deberá introducir los valores así como ponderación de cada uno de ellos.
18. Realizar un programa que realice la suma de dos matrices introducidos por el usuario.
19. Realizar un programa que calcule el producto de dos matrices introducidos por el usuario.
20. Realizar un programa que calcule la serie de Fibonacci. El programa debe pedir el número
de términos deseados.
21. Realizar un programa que calcule el cociente de dos números complejos.
22. Realizar un programa que resuelva la ecuación f(x) = x2 – 43 =0 por el método de Newton
Raphson. El programa debe pedir el punto de inicio del algoritmo x0, el número máximo de
iteraciones n y la aproximación deseada.
23. Realizar un programa que obtenga los factores primos de un número entero y nos diga si
dicho numero es primo.
24. Realizar un programa que calcule la media de n números y la desviación estándar.
25. Realizar un programa que simule el movimiento de un péndulo. El programa debe pedir
como variables la masa, la longitud del hilo, la constante de rozamiento con el aire (se
supone que actual con una fuerza proporcional a la velocidad), el tiempo de simulación y el
intervalo temporal con el que se quiere tener los datos. El programa ira sacando una tabla a
lo largo de la simulación con el tiempo, la posición y la velocidad a cada instante.
26. Realizar un programa que realice una interpolación numérica lineal. El programa pedirá n
puntos de coordenadas (xi, yi) y la coordenada x de un punto p. Por interpolación lineal
usando los puntos vecinos a p., el programa debe devolver la coordenada y de dicho punto.
27.

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 74


INGENIERIA ASISTIDA POR COMPUTADORA 2011

BIBLIOGRÁFIA
JEAN Paul Tremblay, B. Bunt Richard; "Introducción a la ciencias de las computadoras (enfoque
algoritmico)" Mc Graw Hill

JOYANES Aguilar Luis; "Metodología de la programación" Mc Graw Hill

JOYANES Aguilar Luis; "Problemas de metodología de la programación" Mc Graw Hill

CORREA Uribe Guillermo; "Desarrollo de algoritmos y sus aplicaciones en Basic, Pascal y C (3ª.
Edición)" Mc Graw Hill

Levine Guillermo; "Introducción a la computación y a la programación estructurada" Mc Graw Hill

JOYANES Aguilar Luis, Luis Rodríguez Baena y Matilde Fernández Azuela; "Fundamentos de
programación, libro de problemas" Mc graw Hill

LOZANO Letvin; "Diagramación y programación estructurada y libre" Mc Graw Hill

LOPEZ Roman Leobardo; "Programación estructurada (enfoque algoritmico)" Computec

Aguado-Muñoz, R., Blanco, A., Zabala, J. y Zamarreño, R.; “BASIC básico. Curso de
programación”, 7ª ed., Grupo Distribuidor Editorial, Madrid (1984).

Bellido, A. y Sánchez, A.; “BASIC para estudiantes”, Editorial Paraninfo, Madrid (1991).

Ceballos, F.J.; “Manual para QuickBASIC 4.0. Guía del programador”, RA-MA Editorial, Madrid
(1988).

Jarabo, F. y Elortegui, N.; “El ordenador”, Centro de la Cultura Popular Canaria, Santa Cruz de
Tenerife (1992).

Nameroff, S.; “Quick BASIC: manual de referencia”, Osborne/McGraw-Hill, Madrid (1989).

Rodríguez, J.; “Introducción a la Informática”, Colección “Guías Prácticas”, Ediciones Anaya


Multimedia, Madrid (1996).
Nakamura, Shoichiro, “Análisis Numérico y Vualización gráfica con MatLab”, Pearson Educación
The MathWorks Inc., “Using matlab Graphic Version 5.x”

Ing. Salomón Benito H. U.A.J.M.S – Villa Montes 75