Vous êtes sur la page 1sur 71

1 Entrada, procesamiento y salida

Tpicos 1. Diseo de programas 2. Entrada, proceso y salida 3. Despliegue de la salida con el estatuto print 4. Comentarios 5. Variables 6. Lectura de entradas por medio del teclado 7. Realizacin de clculos 8. Ms acerca de salidas de datos

1.1 Diseo de un programa


Concepto: Los programas deben ser diseados cuidadosamente antes de que sean escritos. Durante el proceso de diseo, los programadores usan herramientas tales como pseudocdigo y diagramas de flujo para crear modelos de los programas.

1.1.1 El ciclo de desarrollo de programas

En el captulo 1, aprendiste que los programadores usan, tpicamente, lenguajes de alto nivel, tal como Python, para crear programas. Sin embargo, la creacin de un programa implica mucho ms que la escritura de cdigo. Usualmente, el proceso de creacin de un programa que
Figura 2.1.- El ciclo de desarrollo de programas

trabaje correctamente requiere las cinco fases mostradas en la figura 2.1. Al proceso completo se le conoce como ciclo de desarrollo de programas. 1

Permtenos echar un vistazo ms cercano a cada etapa del ciclo: 1. Disear el programa. Todos los programadores profesionales te dirn que un programa debe disearse cuidadosamente antes de que se escriba su cdigo. Cuando los programadores comienzan un proyecto nuevo, nunca empiezan de lleno con la escritura del cdigo como primer paso. Inician creando un diseo del programa. Existen varias maneras de disear un programa, posteriormente, discutiremos algunas tcnicas que puedes usar para disear tus programas Python ms adelante en esta seccin. 2. Escribir el cdigo. Despus de disear el programa, el programador comienza por escribir el cdigo en lenguaje de alto nivel tal como Python. Te recordamos que en el captulo 1 te indicamos que cada lenguaje tiene sus propias reglas, conocidas como sintaxis, que deben respetarse cuando se escribe un programa. Las reglas de sintaxis del lenguaje establecen cosas tales como las palabras claves, los operadores y los signos de puntuacin que deben usarse. Un error de sintaxis ocurre si el programador falta a cualquiera de estas reglas. 3. Corregir errores de sintaxis. Si el programa contiene un error de sintaxis o hasta un error simple, tal como una palabra clave mal escrita, el compilador o intrprete mostrar un mensaje de error indicando cul error es. Usualmente, todos los cdigos tienen errores de sintaxis cuando se escriben por primera vez, de manera que los programadores emplearn algn tiempo corrigindolos. Una vez que todos los errores de sintaxis y los errores de escritura simple han sido corregidos, el programa puede ser compilado y traducido a un programa en lenguaje mquina (o ejecutado por un intrprete, dependiendo del lenguaje que est siendo usado). 4. Probar el programa. Una vez que el programa se encuentra en su forma ejecutable, entonces, es probado para determinar si existe un error de lgica. Un error de lgica es un error que no evita la ejecucin del programa, pero, que hace que se generen resultados equivocados (los errores matemticos son causas comunes de errores de lgica). 2

5. Corregir errores de lgica. Si el programa produce resultados incorrectos, el programador depura el cdigo. Esto significa que el programador encuentra y corrige errores de lgica en el programa. Algunas veces, durante el proceso, el programador descubre que el diseo original del programa debe cambiarse. Bajo esta eventualidad, el ciclo comienza otra vez y contina as hasta que no se encuentran errores.

1.1.2 Ms acerca del proceso de diseo


Se podra decir que el diseo de un programa es la parte ms importante del ciclo. Puedes considera al diseo de un programa como el cimiento de ste. Si construyes una casa con un cimiento dbil, eventualmente, te encontrars haciendo una gran cantidad de trabajo para arreglarlo. El diseo de un programa no debe ser visto de manera diferente. Si tu programa est pobremente diseado, eventualmente, te encontrars haciendo una cantidad considerable de trabajo para arreglar el programa. El proceso de disear un programa puede resumirse en los dos siguientes pasos: 1. Entiende la tarea que el programa realizar. 2. Determina los pasos que deben ser efectuados para realizar la tarea. Permtenos echar un vistazo ms cercano a estos pasos: Entiende la tarea que el programa realizar. Es esencial que entiendas las funciones que realizar el programa antes que determines los pasos que llevar a cabo para efectuarlas. Tpicamente, un programador profesional obtiene esta comprensin trabajando directamente con el cliente. Usamos el trmino cliente para describir a la persona, grupo u organizacin que te pidi escribir el programa. ste podra ser un cliente en el sentido tradicional de la palabra, significando que es alguien que te paga para escribir un programa. Tambin, podra ser tu jefe o el administrador de un

departamento dentro de una empresa. Independientemente de quien sea, el cliente ser aquella persona que depender de tu programa para realizar una tarea importante. Para tener una idea de las funciones que el programa realizar, usualmente, el programador entrevista al cliente. Durante la entrevista, el cliente describir las tareas que el programa deber realizar y el programador har preguntas para descubrir tantos detalles como sea posible acerca de la tarea. Se necesitarn entrevistas posteriores debido a que raramente los clientes todo aquello que desean durante el encuentro inicial y porque a los programadores, a menudo, les surgen otras preguntas. El programador estudia la informacin que fue obtenida del cliente durante las entrevistas y crea una lista de los requerimientos diferentes del software. Un requerimiento de software es, simplemente, una sola tarea que el programa debe realizar con la finalidad de satisfacer al cliente. Una vez que los clientes aceptan que la lista de requerimientos est completa, el programador puede comenzar con la siguiente fase. Sugerencia. Si has optado por ser un desarrollador profesional de software, tu cliente ser cualquier persona que te pida escribir un programa como parte de tu trabajo. Sin embargo, mientras eres un estudiante, tu cliente es tu instructor, el cual te asignar problemas de programacin para que los resuelvas. Para garantizar tu xito acadmico, asegrate que entiendes los requerimientos de tu instructor para estas asignaciones y escribe los programas como corresponde. Determina los pasos que deben ser efectuados para realizar la tarea. Una vez que has entendido la tarea que el programa efectuar, comenzars por dividirla en una serie de pasos. Esto es similar a la manera en que divides una tarea en una serie de pasos para que una persona pueda efectuarla. Por ejemplo, supn que alguien te pide hervir agua. Podras dividir esta tarea en pasos similares a los siguientes: 1. Echar la cantidad deseada de agua en una olla.

2. Colocar la olla sobre un quemador de la estufa. 3. Encender el quemador a fuego alto. 4. Esperar a que en el agua haya grandes burbujas que suben

rpidamente. Cuando esto ocurra, el agua est hirviendo. 5. Apagar el quemador de la estufa. ste es un ejemplo de un algoritmo, el cual es un conjunto de pasos lgicos bien definidos que deben llevarse a cabo para realizar una tarea. Observa que los pasos en este algoritmo estn secuencialmente ordenados. El paso 1 debe hacerse antes que el paso 2 y as sucesivamente. Si una personas sigue estos pasos religiosamente, debe ser capaz de hervir agua exitosamente. Un programador divide la tarea que un programa debe realizar de manera similar. Un algoritmo debe ser creado, el cual listar todos los pasos lgicos que deben ser efectuados. Por ejemplo, supn que se te ha pedido que calcules y despliegues el pago bruto de un empleado contratado por horas. Los pasos siguientes podran ser realizados: 1. Preguntar el nmero de horas trabajadas. 2. Preguntar el salario por hora. 3. Multiplicar el nmero de horas trabajadas por el salario por hora. 4. Mostrar el resultado del clculo realizado en el paso 3. Por supuesto, este algoritmo no est listo para ser ejecutado en la computadora. Los pasos relacionados en esta lista deben traducirse a cdigo. Comnmente, los programadores usan dos herramientas para ayudarse a efectuar esta tarea: el pseudocdigo y el diagrama de flujo. Permtenos ver cada uno de ellos con mayor detalle. Pseudocdigo Debido a errores pequeos tales como palabras mal escritas y caracteres de 5

puntuacin

olvidados

que

pueden

ocasionar

errores

de

sintaxis,

los

programadores tienen que estar atentos de esos detalles pequeos cuando escriben cdigo. Por esta razn, los programadores encuentran til escribir un programa en pseudocdigo antes de escribir el cdigo real en un lenguaje de programacin tal como Python. La palabra pseudo significa falso, as que pseudocdigo es un cdigo falso. ste es un lenguaje informal que no tiene reglas de sintaxis y que no implica que vaya a ser compilado o ejecutado. En lugar de eso, los programadores usan el pseudocdigo para crear modelos o maquetas de programas. Debido a que no tiene que preocuparse acerca de los errores de sintaxis mientras escribe el pseudocdigo, el programador puede enfocar toda su atencin en el diseo del programa. Una vez que un diseo satisfactorio ha sido creado con el pseudocdigo, ste puede ser traducido directamente al cdigo real. He aqu un ejemplo de cmo podras escribir el pseudocdigo para el programa que calcula el pago que discutimos anteriormente:

1. Solicitar las horas trabajadas 2. Solicitar el salario por hora 3. Calcular el pago bruto como las horas trabajadas por el salario por hora 4. Comunicar el salario bruto
Cada estatuto en el pseudocdigo representa una operacin que puede ser realizada en Python. Por ejemplo, Python puede leer la entrada que es escrita en el teclado, efectuar clculos matemticos y desplegar mensajes en la pantalla. Diagramas de flujo El diagrama de flujo es otra herramienta que los programadores usan para disear programas. Un diagrama de flujo es un diagrama que representa grficamente los pasos ocurren en un programa. La figura 2.2 muestra cmo podras crear un diagrama de flujo para el programa del clculo del pago.

Observa que existen tres tipos de smbolos en el diagrama de flujo: los valos, los paralelogramos y los rectngulos.

Figura 2.2.- Diagrama de flujo del programa que calcula el salario bruto

Cada uno de estos smbolos representa un paso en el programa, tal como se describe a continuacin: Los valos, los cuales aparecen al inicio y al final del diagrama de flujo, son llamados smbolos terminales. El smbolo terminal Inicio marca el punto de partida del programa y el smbolo terminal Fin marca el fin del mismo. Los paralelogramos son usados como smbolos de entrada y como smbolos de salida. Ellos representan pasos de lectura o despliegue de datos en el programa. Los rectngulos son empleados como smbolos de procesamiento.

Representan pasos en los cuales el programa efecta algn proceso sobre los datos, tales como clculos matemticos. Los smbolos estn conectados por flechas que representan el flujo del programa. Para recorrer los smbolos en el orden apropiado, debes comenzar con el smbolo terminal Inicio y seguir las flechas hasta que llegas al smbolo terminal Fin. Punto de control 1. Quin es el cliente del programador? 2. Qu es un requerimiento de software? 3. Qu es un algoritmo? 4. Qu es pseudocdigo? 5. Qu es un diagrama de flujo? 6. Qu significa cada uno de los siguientes smbolos en un diagrama de flujo? a. valo b. Paralelogramo c. Rectngulo

1.2 Entrada, procesamiento y salida


Concepto: La entrada hace referencia a los datos que el programa recibe. Usualmente, un programa procesa los datos cuando los recibe, realizando algunas operaciones sobre ellos. Los resultados de las operaciones son enviados fuera del programa como una salida. Tpicamente, los programas de computadora realizan el siguiente proceso de tres pasos: 1. La entrada es recibida

2. Se hace algn proceso sobre la entrada 3. La salida es producida La entrada es cualquier dato que el programa recibe mientras se encuentra en ejecucin. Una forma comn de entrada son los datos escritos por medio del teclado. Una vez que es recibida, algn proceso, tal como un clculo matemtico, es usualmente realizado sobre ella. Entonces, los resultados del proceso son enviados fuera del programa como una salida. La figura 2.3 ilustra estos tres pasos en el programa del clculo del salario bruto que hemos discutido anteriormente. El nmero de horas trabajadas y el salario por hora son provistos como una entrada. El programa procesa las horas trabajadas y el salario por hora, que se proporcionaron como entrada, multiplicndolos. Entonces, el resultado del clculo es mostrado en la pantalla como una salida.

Figura 2.3.- La entrada, el proceso y la salida del programa que calcula el salario bruto

En este captulo discutiremos las maneras bsicas en que puedes realizar la entrada, el procesamiento y la salida, haciendo uso de Python.

1.3 Mostrando la salida con el estatuto print


Concepto: Usars el estatuto print para mostrar la salida en un programa escrito en el lenguaje Python. Quizs una de las cosas fundamentales que un programa puede hacer es desplegar un mensaje en la pantalla de la computadora. Como vimos en el captulo 1, el estatuto print de Python despliega salidas en la pantalla. He aqu un ejemplo: 9

print Hola mundo El propsito de este estatuto es desplegar el mensaje Hola mundo en la pantalla. Observa que, despus de la palabra print, hemos escrito la frase Hola mundo dentro de apstrofes. Los apstrofes no sern desplegados cuando el estatuto se ejecute. Simplemente, ellos marcan el inicio y el final del texto que se desea mostrar. Supn que tu instructor te dice que escribas un programa que muestre tu nombre y direccin en la pantalla de la computadora. La figura de programa 2.1 muestra ese programa, con la salida que producir cuando se ejecute (Los nmeros de lnea que aparecen en los listados de programa de este libro no son parte del programa. Los usamos en nuestras discusiones para hacer referencias a partes de los programas).

Figura de programa 2.1

Figura de salida de programa 2.1

Es importante entender que los estatutos en este programa se ejecutan en el orden en que aparecen, de arriba hacia abajo. Cuando ejecutas este programa, se ejecutar el primer estatuto, seguido del segundo y terminando con el tercero.

1.3.1 Cuerdas y literales de cuerdas


Los programas siempre trabajan con datos de algn tipo. Por ejemplo, el programa 2.1 usa los siguientes tres fragmentos de datos: Lucy Guadalupe Crdenas Quijano Calle desconocida, sin nmero 10

En Chetumal desconocido Los fragmentos de datos anteriores son secuencias de caracteres. En trminos de programacin, una secuencia de caracteres que es usada como dato es denominada cuerda. Cuando una cuerda aparece en el cdigo real de un programa se denomina literal de cuerda. En cdigo Python, las literales de cuerda deben encerrarse entre apstrofes. Como mencionamos anteriormente, los apstrofes sealan dnde comienzan y terminan los datos tipo cuerda. En Python, puedes encerrar las literales de cuerdas entre pares de apstrofes o pares de comillas. Las literales de cuerdas del programa 2.1 estn delimitadas por apstrofes, pero, el programa podra haber sido escrito como se muestra en la figura de programa 2.2.

Figura de programa 2.2

Figura de salida de programa 2.2

Si deseas una literal de cuerda que contenga apstrofes como parte de ella, puedes delimitar la literal de cuerda con comillas. Por ejemplo, el programa 2.3 imprime dos cuerdas que contienen apstrofes.

Figura de programa 2.3

Figura de salida de programa 2.3

De la misma manera, puedes emplear apstrofes para delimitar una literal de 11

cuerda que contenga comillas como parte de ella. El programa 2.4 muestra un ejemplo de ello.

Figura de programa 2.4

Figura de salida de programa 2.4

Tambin, Python permite que encierres las literales de cuerdas entre pares triples de comillas o de apstrofes. Las cuerdas delimitadas por estos pares triples pueden contener tanto comillas como apstrofes como parte de ellas. El siguiente estatuto muestra un ejemplo:

Este estatuto imprimir:

Los pares triples de comillas o apstrofes pueden usarse para delimitar cuerdas que ocupan lneas mltiples, situacin para la cual no pueden emplearse los pares simples de comillas o de apstrofes.

Este estatuto imprimir:

Punto de control 1. Escribe un estatuto print que despliegue tu nombre. 2. Escribe un estatuto print que despliegue lo siguiente:

12

Atenas la meca de la cultura 3. Escribe un estatuto print que despliegue lo siguiente: Slo dijo: Chispas!

1.4 Comentarios
Concepto: Los comentarios son observaciones que documentan lneas o secciones de un programa. Los comentarios son parte del programa, pero, el intrprete Python las ignora. Ellos son escritos con la intencin de que la gente que lee el cdigo fuente lo comprenda con facilidad. Los comentarios son pequeas notas colocadas en diferentes partes de un programa que explican cmo trabajan esas partes. Aunque los comentarios son partes crticas de un programa, son ignorados por el intrprete Python. Estn escritos para cualquier persona que lea el cdigo del programa no para la computadora. En Python, comienzas un comentario con el caracter #. Cuando el intrprete Python ve el carcter #, ignora todo lo escrito desde ese carcter hasta el final de la lnea. Por ejemplo, mira la figura de programa 2.5. Las lneas 1 y 2 son comentarios que explican brevemente el propsito del programa.

Figura de programa 2.5

Figura de salida de programa 2.5

Comnmente, los programadores escriben comentarios de final de lnea. Un comentario de final de lnea es un comentario que aparece al final de una lnea de cdigo. Usualmente, el estatuto que aparece en esa lnea. El programa 2.6 13

muestra un ejemplo. Cada lnea termina con un comentario que explica brevemente qu es lo que hace la lnea.

Figura de programa 2.6

Figura de salida de programa 2.6

Como programador principiante podras resistirte a la idea de escribir comentarios en tus programas. Despus de todo, Parece ser ms productivo escribir cdigo que realmente haga algo! Sin embargo, es crucial que tomes tiempo extra para escribir comentarios apropiados. Es casi seguro que ellos te ahorren tiempo futuro a ti y a otros cuando tengas que modificar o depurar el programa. Casi es imposible leer y entender con facilidad los programas grandes y complejos si no estn comentados apropiadamente.

1.5 Variables
Concepto: Una variable es un nombre que representa a un valor almacenado en la memoria de la computadora. Usualmente, los programas almacenan datos en la memoria de la computadora y realizan operaciones sobre ellos. Por ejemplo, considera la experiencia tpica de las compras en lnea: t exploras un sitio web y agregas los tems que deseas comprar al carrito de compras. Los datos de los tems que agregas al carrito de compras son almacenados en memoria. Entonces, cuando das un click al botn de la caja registradora, un programa que se encuentra en ejecucin en la computadora del sitio web calcula el costo de todos los tems que tienes en el carrito de compras, aplica los impuestos correspondientes, determina los costos de envo y almacena los resultados en la memoria de la computadora.

14

Los programas usan variables para acceder y manipular datos que estn almacenados en memoria. Una variable es un nombre que representa un valor en la memoria de la computadora. Por ejemplo, un programa que calcula los impuestos de ventas en una compra podra usar el nombre de variable Impuesto para representar ese valor en memoria. Un programa que calcula la distancia entre dos ciudades podra usar la variable denominada DistanciaEntreCiudades para representar ese valor en memoria. Cuando una variable representa un valor en la memoria de la computadora, decimos que la variable referencia al valor.

1.5.1 Creacin de variables con el estatuto de asignacin


T usas un estatuto de asignacin para crear un variable en Python. He aqu un ejemplo de un estatuto de asignacin. Edad = 25 Despus de que este estatuto se ejecuta, una variable llamada Edad ser creada y referenciar al valor 25. Este concepto es mostrado en la figura 2.4. Al observarla, piensa que el valor 25 ha sido almacenado en algn lugar de la memoria de la computadora. La punta de flecha va desde la variable Edad hasta el valor 25, indicando que la primera referencia al segundo.

Figura 2.4.- La variable Edad referencia al valor 25

Un estatuto de asignacin es escrito conforme al siguiente formato general:

Variable = expresin
El signo igual (=) es conocido como el operador de asignacin. En el formato general, Variable es el nombre de una variable y expresin es un valor o un fragmento de cdigo que genera un valor. Despus de que un estatuto de asignacin se ha ejecutado, la variable que se encuentra a la izquierda del

15

operador = referenciar al valor dado al lado derecho de este mismo operador. En un estatuto de asignacin, la variable que est recibiendo la asignacin debe aparecer al lado izquierdo del operador =. Por ejemplo, el siguiente estatuto originar un error:

25 = Edad # Esto es un error!


El cdigo en la figura de programa 2.7 hace uso de una variable. La lnea 2 crea la variable Cuarto y le asigna el valor de 503. Los estatutos print de las lneas 3 y 4 despliegan un mensaje. Observa que la lnea 4 despliega el valor que es referenciado por la variable Cuarto.

Figura de programa 2.7

Figura de salida de programa 2.7

Observa que en la lnea 4 la variable Cuarto no se encuentra entre comillas. Si se hubieran colocado comillas alrededor de Cuarto, se hubiera indicado que se mostrara la palabra Cuarto en lugar del contenido de la variable Cuarto. En otras palabras, el siguiente estatuto desplegar el contenido de la variable Cuarto: print Cuarto Sin embargo, este estatuto mostrar la palabra Edad print Edad

16

La figura de programa 2.8 muestra un programa ejemplo que crea y usa dos variables. La lnea 2 crea una variable llamada VelocidadMaxima y se le asigna el valor de 160. La lnea 3 crea la variable denominada Distancia, asignndole el valor de 300. Esto se ilustra en la figura 2.5.

Figura de programa 2.8

Figura de salida de programa 2.8

Figura 2.5.- Modelo de memoria de dos variables y sus valores asignados

Advertencia. No puedes usar una variable hasta que le hayas asignado un valor. Ocurrir un error si tratas de realizar una operacin sobre una variable, tal como imprimirla, antes de que le hayas asignado un valor. Algunas veces un simple error de escritura causar este error. Un ejemplo es un nombre de variable mal escrito, tal y como se muestra aqu: Temperatura = 74.5 # Crea una variable print Temperetura # Error! Nombre de variable mal escrito En este cdigo la variable Temperatura es creada por el estatuto de asignacin. Sin embargo, el nombre de la variable es escrito de manera diferente en el estatuto print, lo cual ocasionar un error. Otro ejemplo es el uso inconsistente de minsculas y maysculas en el nombre de la 17

variable. He aqu un ejemplo: Temperatura = 74.5 # Crea una variable print temperatura y minsculas. # Error! Uso inconsistente entre maysculas

En este cdigo la variable Temperatura (con la primera T en mayscula) es creada por el estatuto de asignacin. En el estatuto print, el nombre empleado es temperatura (con la primera T en minscula). Esto causar un error debido a que Python es sensible a minsculas y maysculas para los nombres de las variables.

1.5.2 Reglas para asignar el nombre a las variables


Aunque se te permite asignar libremente nombres a las variables, debes seguir estas reglas: No puedes emplear una de las palabras claves de Python como nombre de variable (ver la tabla 1.2 que lista las palabras claves). Un nombre de variable no puede contener espacios. El primer caracter puede ser el guin bajo (_) o una letra del idioma ingls en minscula o mayscula. Despus del primer caracter, puedes emplear dgitos, guiones bajos o letras del idioma ingls en minsculas o maysculas. Las letras minsculas o maysculas son diferentes. Esto significa que la variable ItemsOrdenados es diferente a itemsordenados. Adems de la observacin de estas reglas, siempre debes escoger nombres para tus variables que brinden un indicio adecuado del uso que se le da dentro del programa. Por ejemplo, una variable que contenga valores de temperaturas podra ser llamada Temperatura y una variable que contenga la velocidad de un auto podra llamarse VelocidadAuto. Podras estar tentado a darle a tus variables nombres como x y b2, pero esos nombres no dan una idea de los propsitos de las variables.

18

Debido a que el nombre debe reflejar el propsito de la variable, los programados a menudo se encuentran creando nombres compuestos de palabras variables: pagobruto tasadepago perroscalientesvendidoshoy Infortunadamente, estos nombres no son pueden ser ledos con facilidad por el ojo humano, debido a que las palabras no estn separadas. Ya que no podemos tener espacios dentro de los nombres de variables, necesitamos encontrar otra manera de separar las palabras en los nombres de variables compuestos de palabras mltiples para hacerlos ms legibles al ojo humano. Una manera de hacer esto es usar el guin bajo para representar un espacio. Por ejemplo, los nombres de variables siguientes son ms fciles de leer que los previamente mostrados. pago_bruto tasa_de_pago perros_calientes_vendidos_hoy Este estilo para nombrar a las variables es popular entre los programadores de Python y es el que emplearemos en el libro. Existen otros estilos populares, sin embargo, tales como la convencin caso de camello para asignar nombres o la notacin de Borland. Los nombres que siguen la convencin caso de camello son escritos de la siguiente manera: El nombre de la variable comienza con una letra minscula. Las palabras subsecuentes comienzan con una letra mayscula. mltiples. Por ejemplo, considera los siguientes nombres de

Por ejemplo, las siguientes variables tienen nombres asignados conforme a la convencin caso de camello:

19

pagoBruto tasaDePago perrosCalientesVendidosHoy Nota: Este estilo de asignar nombres a las variables es llamado caso de camello debido a que las letras maysculas que aparecen en el nombre sugiere la forma de una joroba de camello La tabla 2.1 lista varios ejemplos de nombres de variable e indica si cada uno de ellos es legal o no en Python.

Tabla 2.1.- Ejemplos de nombres de variables


Nombre variable de Legal o ilegal en Python?

Unidades_por_dia Legal DiaDeLaSemana 3DGrafica Junio1997 Mezcla#3 Legal Ilegal, el nombre debe comenzar con una letra o un guin bajo. Legal Ilegal, los nicos caracteres permitidos son las letras en ingls, ya sea minscula o mayscula, el guin bajo y los dgitos. Ilegal, en el idioma ingls no hay vocales acentuadas, por lo tanto, una vocal acentuada se considera como un smbolo especial para el ingls. Ilegal, la tampoco existe en el idioma ingls.

UnidadesPorDa

NombreNio

1.5.3 Despliegue de tems mltiples con el estatuto print


Si observas la figura de programa 2.7, vers que hemos usado el estatuto print en las lneas 3 y 4: print Estoy hospedado en el cuarto print Cuarto 20

Usamos dos veces el estatuto print debido a la necesidad de imprimir dos datos. La lnea 3 despliega la literal de cuerda Estoy hospedado en el cuarto y la lnea 4 el valor referenciado por la variable Cuarto. Sin embargo, este programa puede ser simplificado, debido a que Python nos permite desplegar tems mltiples con un estatuto print. Simplemente, tenemos que separar los tems con comas, tal como se muestra en la figura de programa 2.9.

Figura de programa 2.9

Figura de salida de programa 2.9

El estatuto print de la lnea 3 despliega dos tems: una literal de cuerda seguida por el valor referenciado por la variable Cuarto. Observa que Python automticamente imprimi un espacio entre estos dos tems. Cuando tems mltiples son impresos en una lnea de salida, ellos son separados automticamente por un espacio.

1.5.4 Reasignacin de valores a variables


Las variables son denominadas variables debido a que ellas pueden referenciar valores diferentes mientras el programa se encuentra en ejecucin. Cuando asignas un valor a una variable, la variable lo referenciar hasta que le asignes un valor diferente. Por ejemplo, observa la figura de programa 2.10. El estatuto de la lnea 3 crea una variable llamada Pesos y le asigna el valor de 2.75. Esto se muestra en la parte superior de la figura 2.6. Entonces, el estatuto de la lnea 8 le asigna un valor diferente, 9.95, a la variable Pesos. El viejo valor 2.75, todava se encuentra en la memoria de la computadora, pero, ya no se puede usar debido a que no es referenciado por una variable (Eventualmente, el intrprete Python eliminar el valor sin usar en la 21

memoria).

Figura de programa 2.10

Figura de salida de programa 2.10

Figura 2.6.- Reasignacin de valores a una variable

1.5.5 Tipo de datos numricos y literales


En el captulo 1 discutimos la manera en que la computadora almacena los datos en memoria (ver la seccin 1.3). Podras recordar sobre esa discusin que las computadoras usan una tcnica diferente a la de los nmeros enteros para almacenar los nmeros reales (nmeros con una parte decimal). No slo estos tipos de nmeros son almacenados diferentemente, sino que operaciones similares son llevadas a cabo de manera diferente. 22

Debido a que tipo diferentes de nmeros son almacenados y manipulados de maneras diferentes, Python usa los tipos de datos para clasificar los valores que se encuentran en memoria. Cuando un nmero entero es almacenado en memoria, es clasificado como int y cuando un nmero real se almacena en memoria se le clasifica como un float. Permtenos ver como Python determina el tipo de dato al que corresponde un nmero dado. Varios de los programas que has visto tienen datos numricos escritos dentro de sus cdigos. Por ejemplo, el siguiente estatuto, el cual aparece en la figura de programa 2.9, tiene el nmero 503 escrito en l. Cuarto = 503 Este estatuto ocasiona que el valor 503 sea almacenado en memoria y que la variable Cuarto lo referencie. El siguiente estatuto, que aparece en la figura de programa 2.10, tiene el nmero 2.75 escrito en l. Pesos = 2.75 Este estatuto ocasiona que el valor 2.75 se almacene en memoria y que la variable Pesos lo referencie. Un nmero que est escrito en el cdigo de un programa es llamado literal de nmero o literal numrica. Cuando el intrprete Python lee una literal numrica en el cdigo de un programa, determina su tipo de datos de acuerdo a las siguientes reglas: Una literal numrica que est escrita como un nmero completo, pero, sin punto decimal es considerada de tipo int. Ejemplos de ello son 7, 124 y -9. Una literal numrica que est escrita con un punto decimal es considerada de tipo float. Ejemplos de ello son 1.5, 3.14159 y 5.0. As que el siguiente estatuto causa que el nmero 503 sea almacenado en memoria como un int: Cuarto = 503 23

Y el siguiente estatuto causa que el nmero 2.75 sea almacenado en memoria como un float: Pesos = 2.75 Cuando almacenas un tem en memoria, es importante que ests al tanto del tipo de dato del tem. Como vers, algunas operaciones se comportan de manera diferente y dependiente del tipo de dato al que se aplican y otras slo pueden ser aplicadas sobre ciertos tipos de datos. Advertencia! No puedes escribir smbolos de pesos ($), espacios o comas en las literales numricas. Por ejemplo, el siguiente estatuto ocasionar un error: Valor = $4,697.99 # Error! Este estatuto debe ser escrito como: Valor = 4697.99 # Correcto!

1.5.6 Almacenamiento de cuerdas con el tipo de datos str


Adems de los tipos int y float, Python tambin tiene un tipo de dato denominado str, el cual es usado para almacenar cuerdas en memoria. El cdigo en la figura de programa 2.11 muestra cmo las cuerdas pueden ser asignadas a variables.

Figura de programa 2.11

Figura de salida de programa 2.11

Punto de control 1. Qu es una variable? 24

2. Cules de los nombres siguientes son ilegales en Python y porqu? a. X b. 99Botellas c. elCalculoDeVentas d. Corderos&Becerros e. InformeAnual 3. Los nombres de variables Ventas y ventas son lo mismo en Python? Por qu s o por qu no? 4. Es el siguiente estatuto de asignacin vlido o invlido? Si es invlido, Por qu lo es? 72 = Monto 5. Qu es lo que desplegar el siguiente cdigo? Valor = 99 print El valor es:, Valor 6. Mira los siguientes estatutos: a. Valor1 = 99 b. Valor2 = 45.9 c. Valor3 = 7.0 d. Valor4 = 7 e. Valor5 = abc Despus de que esos estatutos se ejecuten, Cul tipo de datos es referenciado por cada una de esas variables? 25

7. Qu resultado desplegar el siguiente programa? a. Valor = 99 b. Valor = 0 c. print Valor

26

1.6 Lectura de entradas desde el teclado


Concepto: Comnmente, los programas necesitan leer entradas escritas por el usuario en el teclado. Usaremos funciones de Python para hacer esto. La mayora de los programas que escribirs necesitarn leer entradas y entonces realizar operaciones sobre ellas. En esta seccin discutiremos una operacin bsica: la lectura de datos que han sido escritos en el teclado. Cuando un programa lee datos del teclado, usualmente los almacena en una variable, la cual puede ser emplearla posteriormente. En este libro usaremos dos funciones integradas de Python para leer entradas del teclado. Una funcin es una pieza de cdigo, previamente escrito, que realiza una operacin y entonces devuelve un valor al programa que la invoca. Emplearemos la funcin input para leer datos numricos del teclado y la funcin raw_input para leer cuerdas.

1.6.1 Lectura de nmeros con la funcin input


La funcin input de Python es til para la lectura de entradas numricas desde el teclado. Normalmente, usars la funcin input en un estatuto de asignacin que sigue este formato general: Variable = input ( Mensaje ) En el formato general, el Mensaje es una cuerda que es desplegada en la pantalla. El propsito del mensaje es instruir al usuario al momento de introducir el valor. Variable es el nombre de la variable que referenciar al dato que fue introducido en el teclado. He aqu un ejemplo de un estatuto que usa la funcin input para leer datos desde el teclado: HorasTrabajadas = input (Cuntas horas trabajaste? ->) Cuando este estatuto es ejecutado, las siguientes cosas pasan:

27

La cuerda Cuntas horas trabajaste?-> se despliega en la pantalla. El programa hace una pausa y espera a que el usuario escriba algo y, posteriormente, pulse la tecla <Enter>.

Despus de que la tecla <Enter> ha sido pulsada, el dato que el usuario escribi es asignado a la variable HorasTrabajadas.

La figura de programa 2.12 muestra un ejemplo que usa la funcin input.

Figura de programa 2.12

Figura de salida de programa 2.12

El estatuto en la lnea 2 usa la funcin input para leer datos que son escritos en el teclado. En el ejemplo de ejecucin, el usuario escribi 35 y entonces puls la tecla <Enter>. Como resultado, el valor entero 35 fue asignado a la variable Edad. Echemos un vistazo ms cercano a la cuerda que usamos como apuntador, en la lnea 2: Cul es tu edad? -> Observa que el ltimo caracter de la cuerda es un espacio. Colocamos un espacio all porque la funcin input no despliega automticamente un espacio despus del apuntador. Cuando el usuario comienza a escribir los caracteres, ellos aparecern inmediatamente despus del sealador. El hacer que el ltimo carcter en el apuntador sea un espacio, ocasiona que el apuntador y la entrada del usuario se separen visualmente en la pantalla. Cuando el usuario introduce un nmero como respuesta a la funcin input, 28

Python determina el tipo de dato del nmero de la misma manera que determina el tipo de datos de una literal numrica. Si el nmero no contiene punto decimal, entonces, es almacenado en la memoria como un int. Si contiene un punto decimal, por lo tanto, ser almacenado en la memoria como un float. Nota: En esta seccin hemos mencionado al usuario. El usuario es cualquier persona hipottica que est usando un programa y que le proporciona entradas a ste. El usuario es algunas veces llamado el usuario final.

1.6.2 Lectura de cuerdas con la funcin raw_input


Aunque la funcin input trabaja bien para la lectura de nmeros, no es conveniente para la lectura de cuerdas. Con la finalidad de leer datos como cuerdas, el usuario tiene que encerrarlos entre comillas o apstrofes cuando los escribe en el teclado. La mayora de los usuarios no est acostumbrada a hacer esto, as que es mejor usar otra funcin: raw_input. La funcin raw_input trabaja de la misma manera que la funcin input, con una excepcin: la funcin raw_input recupera toda la entrada del teclado como una cuerda. No hay necesidad que el usuario escriba comillas o apstrofes alrededor de los datos que son introducidos. La figura de programa 2.13 muestra un programa que hace uso funcin raw_input para leer cuerdas.

Figura de programa 2.13

29

Figura de salida de programa 2.13

Punto de control 1. Necesitas que el usuario de un programa introduzca el monto de ventas de la semana. Escribe un estatuto que solicite al usuario la introduccin de este dato y que asigne la entrada a una variable. 2. Necesitas que el usuario de un programa introduzca el nombre del pueblo o ciudad que considere ms atractiva. Escribe un estatuto que solicite al usuario la introduccin de este dato y que asigne la entrada a una variable.

1.7 Realizacin de clculos


Concepto: Python tiene operaciones numerosas que pueden ser usadas para realizar clculos matemticos. La mayora de los algoritmos del mundo real requieren que se realicen clculos. Una herramienta del programador para la realizacin de clculos son los operadores matemticos. La tabla 2.2 lista los operadores matemticos que son provistos por el lenguaje Python. Tabla 2.2.- Operadores matemticos de Python Smbolo Operacin Descripcin Suma dos nmeros Sustrae un nmero de otro Multiplica dos nmeros Divide un nmero por otro y genera como resultado el cociente. Divide un nmero por otro y genera como resultado el residuo.

*
/ %

Adicin Sustraccin Multiplicacin Divisin Residuo

**

Exponenciacin Eleva un nmero a una potencia

30

Los programadores usan los operadores mostrados en la tabla 2.2 para crear expresiones matemticas. Una expresin matemtica realiza un clculo y genera un valor. Lo siguiente es un ejemplo de una expresin matemtica simple: 12 + 2 Los valores que se encuentran a la derecha y la izquierda de + son llamados operandos. Estos son los valores que + suma. El resultado generado por la expresin es 14. Las variables tambin pueden ser usadas en una expresin matemtica. Por ejemplo, supn que tenemos valores en las variables HorasTrabajadas y SalarioPorHora. La siguiente expresin matemtica usa el operador * para multiplicar los valores referenciados por ellas dos. HorasTrabajadas * SalarioPorHora Cuando usamos una expresin para calcular un valor, normalmente deseamos guardar ese valor en memoria de manera que podamos usarlo otra vez en el programa. Hacemos esto por medio de un estatuto de asignacin. La figura de programa 2.14 muestra un ejemplo:

Figura de programa 2.14

Figura de salida de programa 2.14

31

La lnea 2 asigna 10000 a la variable Salario y la lnea 5 asigna 2500.00 a la variable Compensacion. La lnea 9 asigna el resultado de la expresin Salario + Compensacion a la variable SalarioTotal. Como puedes ver en la salida del programa, la variable SalarioTotal referencia al valor 12500.0. En un lugar destacado Calculando un porcentaje La determinacin de un porcentaje es un clculo comn en programacin de computadoras. En matemticas, el smbolo % es usado para indicar un porcentaje, pero, la mayora de los lenguajes de programacin, incluido Python, no lo emplean para este propsito. Usualmente, en un programa se tiene que convertir un porcentaje a su equivalente decimal. Por ejemplo, 50% podra ser escrito como 0.5 y 2% como 0.02. Permtenos dar un paseo a travs del proceso para escribir un programa. Supn que un negocio de ventas al menudeo est planeando tener una rebaja del 20% en toda su mercanca. Se nos ha pedido escribir un programa que calcule el precio de venta de un tem despus que el descuento es aplicado. He aqu el modelo de entrada-proceso-salida aplicado.

Asimismo, a continuacin se presenta el algoritmo pseudocdigo: 1. Obtener el precio original del tem. 2. Calcular el 20% del precio original. Esta cantidad ser el descuento. 3. Restar el descuento al precio original. ste ser el precio de venta. 32

4. Indicar el precio de venta. En el paso nmero 1 se obtendr el precio original del tem. Solicitaremos al usuario que introduzca este dato por medio del teclado. En nuestro programa usaremos el siguiente estatuto para hacer esto. Observa que el valor original del precio ser almacenado en la variable PrecioOriginal. PrecioOriginal artculo -> ) = input (Proporciona el precio original del

En el paso 2 calculamos el monto del descuento. Para hacer esto, multiplicamos el precio original por 20%. El siguiente estatuto realiza este clculo y asigna el resultado a la variable Descuento. Descuento = 0.2 * PrecioOriginal En el paso 3, restamos el descuento al precio original. El siguiente estatuto realiza este clculo y lo asigna a la variable PrecioDeVenta. PrecioDeVenta = PrecioOriginal Descuento La figura de programa 2.15 muestra el programa completo junto con su salida respectiva.

Figura de programa 2.15.- Programa para el clculo del precio de venta

Figura de salida de programa 2.15

1.7.1 Divisin entera


S cuidadoso cuando divides un entero por otro. Al igual que en otros lenguajes, en Python cuando un entero es dividido por otro entero el resultado 33

ser un entero. Este comportamiento es conocido como divisin entera. Por ejemplo, mira el siguiente estatuto: Numero = 3 / 2 Qu valor ser referenciado por Numero despus de que este estatuto se ejecute? Probablemente, podras asumir que Numero referenciar al valor 1.5, debido a que ese es el resultado que obtienes cuando realizas la divisin en tu calculadora. Sin embargo, eso no es lo que pasar. Debido a que los nmeros 3 y 2 son tratados como enteros, Python descartar la parte decimal del resultado. (El descarte de la parte fraccional de un nmero se llama truncamiento). Como resultado de ello, el estatuto asignar el valor 1 a la variable Numero y no 1.5. Si deseas asegrate que una operacin genere un nmero real, al menos uno de los operandos debe poseer nmero con un punto decimal o una variable que referencie a un nmero con punto decimal. Por ejemplo, podramos escribir el estatuto como sigue: Numero = 3.0 / 2.0

1.7.2 Precedencia de operadores


Puedes escribir estatutos que usen expresiones matemticas complejas involucrando varios operadores. El siguiente estatuto asigna la suma de 17, la variable x, 21 y la variable y a la variable Respuesta. Respuesta = 17 + x + 21 + y Sin embargo, algunas expresiones no son as de simples. Considera el siguiente estatuto: Resultado = 12.0 + 6.0 / 3.0 Qu valor ser asignado a Resultado? El nmero 6.0 podra ser usado como un operando tanto para el operador de adicin como para operador de la 34

divisin. A la variable Resultado podra asignrsele 6.0 o 14.0, dependiendo del momento en que ocurra la divisin. Afortunadamente, la respuesta puede ser predicha debido a que Python sigue el mismo orden en las operaciones que t ya aprendiste en las clases de matemticas. Primero, las operaciones que se encuentran entre parntesis son las que se realizan en primer lugar. Entonces, cuando dos operadores comparten un operando, el operador con la precedencia ms alta se aplica primero. La precedencia de los operadores matemticos de mayor a menor son: 1. Exponenciacin: ** 2. Multiplicacin, divisin y residuo: * / % 3. Adicin y sustraccin: + Observa que los operadores de multiplicacin (*), divisin (/) y residuo (%) tienen la misma precedencia. Los operadores de adicin (+) y sustraccin (-) tambin tienen la misma precedencia. Cuando dos operandos con la misma precedencia comparten un operando, los operadores se ejecutan de izquierda a derecha. Ahora, regresemos a la expresin matemtica previa: Resultado = 12.0 + 6.0 / 3.0 El valor que ser asignado a Resultado es 14.0 debido a que el operador de divisin tiene una precedencia ms alta que el operador de adicin. Como resultado de ello, la divisin se realiza primero que la adicin. La expresin puede ser diagramada como se muestra en la figura 2.7.

35

Figura 2.7.- Aplicacin de la precedencia de los operadores

La tabla 2.3 muestra otros ejemplos de expresiones con los resultados que generan. Tabla 2.3.- Expresiones y los resultados que generan con su evaluacin Expresin 5+ 2*4 10 / 2 - 3 8 + 12 * 2 - 4 6 3*2+ 7 -1 Resultado 13 2 28 6

1.7.3 Agrupacin con parntesis


Partes de una expresin matemtica podran ser agrupadas con parntesis para forzar a que algunas operaciones se hagan antes que otras. En el estatuto siguiente, las variables a y b son sumadas primeros y despus el resultado dividido por 4. Resultado = (a + b) / 4 36

Sin embargo, sin el parntesis primero b debera ser dividida por 4 y, posteriormente, el resultado sumado con a. La tabla 2.4 muestra ms expresiones y los resultados que generan. Tabla 2.4.que Expresiones generan con con su

agrupamiento y los resultados evaluacin Expresin (5 + 2) * 4 10 / (5 3) 8 + 12 * (6 2) (6 3) * (2 + 7) / 3 Resultado 28 5 56 9

En un lugar destacado Calculando un promedio La determinacin del promedio de un conjunto de valores es un clculo simple: suma todos los valores y el resultado divdelo por el nmero de valores. Aunque ste es un clculo simple, es fcil cometer algn error cuando se est escribiendo un programa que calcula un promedio. Por ejemplo, permtenos asumir que las variables a, b y c hacen referencia a valores sobre los cuales deseamos calcular el promedio. Si no somos cuidadosos, podramos escribir un estatuto como el siguiente para determinar el promedio: Promedio = a + b + c / 3.0 Podras identificar el error en este estatuto? Cuando lo ejecutas, el operador de divisin se ejecuta primero. El valor referenciado por c es dividido por 3.0 y entonces el resultado ser agregado a a + b. Para corregir el error, necesitamos escribir a a + b + c dentro de un 37

parntesis, tal como se muestra a continuacin: Promedio = (a + b + c) / 3.0 Permtenos realizar el proceso de escribir un programa que calcula un promedio. Supn que has presentado tres pruebas en tu curso Fundamentos de investigacin y que deseas escribir un programa que te ayude a calcular tu promedio. He aqu el algoritmo en diagrama de flujo:

En los pasos 1, 2 y 3, pedimos al usuario que introduzca los valores de las calificaciones. Almacenaremos esos valores en las variables Calificacion1, Calificacion2 y Calificacion3. En el paso 4 calculamos el promedio de las tres calificaciones. Usaremos el siguiente estatuto para hacer el clculo y almacenar el resultado en la variable Promedio: Promedio = (Calificacion1 + Calificacion2 * Calificacion3) / 3 Por ltimo, el paso 5 despliega el valor del promedio. La figura de programa 2.16 muestra el programa y su salida.

38

Figura de programa 2.16

Figura de salida de programa 2.16

1.7.4 El operador exponente y el operador residuo


Adems de los operadores matemticos bsicos para la adicin, la

multiplicacin y la divisin, Python tambin provee un operador para el exponente y otro para el residuo. Dos asteriscos (**) escritos juntos representan al operador exponente y su propsito es elevar un nmero a una potencia. Por ejemplo, el siguiente estatuto eleva la variable Longitud a la potencia 2 y asigna el resultado a la variable Area: Area = Longitud ** 2 En Python, el smbolo % es el operador residuo. (ste es conocido como el operador mdulo). El operador residuo efecta una divisin, pero, en lugar de generar como resultado el cociente genera el residuo. El siguiente estatuto asigna 2 a Residuo: Residuo = 17 % 3 Este estatuto asigna 2 a Residuo porque 17 dividido por 3 es 5 con un residuo de 2. Podras no usar el operador residuo frecuentemente, pero, es til 39

en algunas situaciones. Comnmente, es usado en clculos para detectar nmeros pares e impares, determinar el da de la semana, medir el paso del tiempo y otras operaciones especializadas.

1.7.5 Conversin de frmulas matemticas a estatutos de programacin


Probablemente recuerdes que en tu clase de lgebra te dijeron que la expresin 2xy es entendida como 2 por x por y. En matemticas, no siempre usas el operador de multiplicacin. Al igual que otros lenguajes de programacin, Python requiere un operador para cualquier operacin matemtica. La tabla 2.5 muestra algunas expresiones algebraicas que efectan la multiplicacin y las expresiones de programacin equivalentes. Tabla 2.5.Conversin de expresiones algebraicas con multiplicaciones implcitas a sus equivalentes expresiones de programacin Operacin implcita involucrada 6 por B 3 por 12 4 por x por y conviertes algunas expresiones Expresin de programacin 6*B 3 * 12 4*x*y algebraicas a expresiones de

Operacin algebraica 6B (3) (12) 4xy Cuando

programacin, tienes que insertar parntesis que no aparecen en la expresin algebraica. Po ejemplo, ve la siguiente frmula:

Para convertir esto a un estatuto de programacin, la expresin a + b tiene que encerrarse con parntesis:

40

La tabla 2.6 muestra expresiones algebraicas adicionales y sus equivalentes en Python. Tabla 2.6.Expresiones equivalentes en Python Expresin algebraica algebraicas y sus

Estatuto de Python y =3*x/ 2 z= 3*b*c+ 4 A = (x + 2) / (b 1)

En un lugar destacado Conversin de una frmula matemtica a estatuto de programacin Supn que deseas depositar cierta cantidad de dinero en una cuenta de ahorros y entonces dejas que gane intereses durante los prximos 10 aos. Al final del ao 10 esperas tener $ 10,000.00 en la cuenta. Cunto necesitas depositar para hacer que eso ocurra al final del ao 10? Puedes emplear la frmula siguiente para determinarlo: ( )

Los trminos en esta frmula son como sigue: P es el valor presente neto o el monto que necesitas depositar actualmente. F es el valor futuro que deseas tener en la cuenta. (En este caso F es $10,000). r es la tasa de inters anual. n es el nmero del ao en el que planeas obtener la cantidad futura.

Sera conveniente escribir un programa de computadora para desarrollar los clculos porque podremos experimentar con valores diferentes para 41

las variables. He aqu el algoritmo que podemos emplear: 1. Obtener el valor del monto deseado a futuro. 2. Obtener la tasa de inters anual. 3. Obtener el nmero de aos que el dinero permanecer en la cuenta. 4. Calcular el monto que debe ser depositado actualmente. 5. Desplegar el valor presente calculado. En los pasos 1, 2 y 3, le sealamos al usuario que introduzca los valores sealados. Se asignar el valor del monto deseado a futuro a la variable ValorFuturo, el valor de la tasa de inters anual a TasaDeInteresAnual y el nmero de aos que el dinero gana intereses a NumeroAnios. En el paso 4, calculamos el valor presente, el cual representa el monto que debemos depositar. Convertiremos la frmula previamente presentada en el siguiente estatuto. El estatuto guarda el resultado en la variable ValorPresente. ValorPresente NumeroAnios = ValorFuturo / (1 + TasaDeInteresAnual) **

En el paso nmero 5, se desplegar el valor referenciado por la variable ValorPresente. La figura de programa 2.17 muestra el programa realizado.

Figura de programa 2.17

42

Figura de salida de programa 2.17

43

Nota: A diferencia de la salida de este programa, los montos de dinero son usualmente redondeados a dos dgitos decimales. Posteriormente, en este captulo, aprenders cmo formatear nmeros de manera que sean redondeados a un nmero especfico de decimales.

1.7.6 Conversin de tipos de datos


Cuando realizas una operacin matemtica sobre dos operandos, el tipo de dato del resultado depender del tipo de dato de los operandos. Python sigue estas reglas cuando evalas expresiones matemticas: Cuando una operacin se realiza sobre dos valores int, el resultado ser de tipo int. Cuando una operacin se efecta sobre dos operadores tipo float, el resultado ser de tipo float. Cuando una operacin se efecta sobre un operando de tipo int y otro de tipo float, el operando de tipo int ser convertido temporalmente a tipo float y el resultado de la operacin ser de tipo float. (Una expresin que usa la mezcla de operadores de tipo int y de tipo float es llamada expresin de tipo mezclado). Las primeras dos situaciones son claras y concisas: las operaciones sobre tipos int generan resultados de tipo int y las operaciones sobre tipos float producen resultados de tipo float. Permtenos ver un ejemplo de la tercera situacin, la cual involucra expresiones con tipos mezclados: MiNumero = 5 * 2.0 Cuando este estatuto se ejecute, el valor 5 ser convertido a float (5.0) y entonces multiplicado por 2.0. El resultado, 10.0, ser asignado a MiNumero. La conversin de int a float que ocurre en el estatuto previo sucede implcitamente. En algunas situaciones, t podras desear asegurarte explcitamente que un valor es convertido a un tipo especfico. Por ejemplo, ve 44

el programa 2.18.

Figura de programa 2.18

Figura de salida de programa 2.18

Este programa pide al usuario el nmero de libros que planea leer y el nmero de meses que cree le tomar leerlos. La lnea 8, divide el nmero de libros por el nmero de meses de lectura para calcular el nmero promedio de libros que leer por mes. Sin embargo, si el usuario introduce valores enteros en ambos casos, se estatuto realizar una divisin entera. Esto fue lo que ocurri en la salida de ejemplo. Si deseas que el resultado sea bastante exacto, necesitas asegurarte que al menos uno de los operandos de la operacin de divisin sea de tipo float. Podemos hacer esto empleando la funcin integrada de Python float, tal y como lo muestra el programa 2.19.

Figura de programa 2.18

45

Figura de salida de programa 2.18

En la lnea 8, la expresin float(NumeroLibros) a tipo float el valor referencia por la variable NumeroLibros. Esto asegura que cuando la divisin ocurra, uno de los operandos ser de tipo float, evitando con esto la divisin entera. Advertencia! Observa que en la lnea 8 de la figura de programa 2.19, no pusimos la expresin completa NumeroLibros / NumeroMesesLectura dentro del parntesis de la funcin float, tal como se muestra aqu: LibrosPorMes = float( NumeroLibros / NumeroMesesLectura ) Este estatuto no convierte el valor de NumeroLibros o NumeroMesesLectura a tipo float, sino que convierte a este tipo el resultado generado por la expresin NumeroLibros / NumeroMesesLectura. Si este estatuto se hubiera usado en el programa, una operacin de divisin entera an se habra llevado a cabo. He aqu el porqu: el resultado de la expresin NumeroLibros / NumeroMesesLectura es 2 debido a que la divisin entera ocurre. El valor 2 es convertido a tipo float, generando como resultado 2.0. Para evitar que la divisin entera ocurra, es necesario que el valor de uno de los operandos se convierta a tipo float. Tambin, Python tiene una funcin integrada int que convierte un valor a tipo int. Cuando un float es convertido a tipo int, cualquier valor decimal es descartado o truncado. He aqu un ejemplo: x = 27.9 y = int(x) Despus de que este cdigo se ejecuta, a la variable y le ser asignado el valor 27. He aqu un ejemplo que muestra la conversin a tipo int de un valor negativo de tipo float.

46

x = -12.9 y = int(x) Despus que este estatuto se ejecuta, y tendr asignado el valor de -12.

1.7.7 Divisin de estatutos largos en lneas mltiples


La mayora de los estatutos de programacin son escritos en una lnea. Si un estatuto de programacin es muy largo, sera imposible para ti verlo completamente en la ventana de tu editor sin hacer un corrimiento de ella hacia la derecha. Adicionalmente, si imprimes el cdigo de tu programa en papel y uno de los estatutos es muy largo para caber en una lnea, ste se imprimir en la lnea siguiente y la forma en que se imprime har difcil la lectura del cdigo. Python te permite dividir un estatuto en lneas mltiples mediante el uso del caracter de continuacin de lnea, el cual es una diagonal inversa (\). Simplemente, escribe la diagonal inversa en el lugar donde desees dividir el estatuto y, entonces, pulsa la tecla <Enter>. He aqu como el estatuto print es dividido en dos lneas con el caracter de continuacin de lnea: print Vendimos, UnidadesVendidas, \ para un total de $, MontoDeVenta El caracter de continuacin de lnea que aparece al final de la primera lnea le dice al intrprete que el estatuto contina en la lnea siguiente. He aqu un estatuto que realiza un clculo matemtico que ha sido dividido en dos lneas: Resultado = 2 * Var1 + 3 * Var2 \ 4 * Var3 + 5 * Var5 Y aqu est un ltimo ejemplo: print Las ventas del lunes son $, VentasLuneas, \ las del martes son $, VentasMartes, \ y las ventas del mircoles son $, VentasMiercoles 47

Este estatuto es dividido en tres lneas. Observa que las primeras dos lneas terminan con una diagonal inversa. Punto de control 1. Completa la tabla siguiente, escribiendo en la columna Valor el resultado generado por la evaluacin de cada una de las expresiones proporcionadas. Consecutivo 1 2 3 4 5 6 7 8 9 Expresin 6+ 3*5 12 / 2 - 4 9 + 14 * 2 6 (6 + 2) * 3 14 / (11 4) 9 + 12 * (8 3) float(9) / 2 float (9 / 2) int( 3.0) 9.0 / Resultado

2. Qu valor se asignar a la variable Resultado, despus que el siguiente estatuto sea ejecutado? Resultado = 9 / 2 3. Qu valor se asignar a la variable Resultado, despus que el siguiente estatuto sea ejecutado? Resultado = 9 % 2

48

1.8 Ms acerca de la salida de datos


Hasta ahora, hemos discutido slo las maneras bsicas de desplegar datos. Eventualmente, podras desear ejercer ms control sobre la manera en que los datos aparecen en la pantalla. En esta seccin, aprenders ms detalles acerca del estatuto print de Python y vers tcnicas para formatear la salida de maneras especficas.

1.8.1 Supresin del efecto de nueva lnea en el estatuto print


Normalmente, el estatuto print despliega una lnea de salida. Por ejemplo, los tres estatutos siguientes usan print, generando tres lneas de salida: print uno print dos print tres Cada uno de los estatutos que hace uso del print despliega una cuerda y, entonces, imprime un caracter de <nueva lnea>. No puedes ver el carcter <nueva lnea>, pero, cuando ste es impreso ocasiona que la salida se desplace a la siguiente lnea. (Puedes asumir que el carcter <nueva lnea> es un como un comando especial que hace que la computadora contine la salida en una lnea nueva). Si deseas evitar que el estatuto print contine la salida en una lnea nueva cuando termine de mostrar datos, puedes escribir una coma (,) al final del estatuto, tal como se muestra aqu: print uno, print dos, print tres Observa que los primeros dos estatutos que hacen uso del print terminan con una coma. Las comas al final de la lnea evitan que el print emita un carcter de <nueva lnea> al trmino de la emisin de sus datos. En lugar de hacer 49

eso, emiten un espacio en blanco en sus salidas respectivas. He aqu la salida de estos tres estatutos: uno dos tres

50

1.8.2 Caracteres de escape


Un caracter de escape es un caracter especial que aparece dentro de una cuerda y que es precedido por una diagonal inversa (<\>). Cuando una cuerda literal que contiene caracteres de escape es impresa, stos son tratados como comandos especiales intercalados en la cuerda. Por ejemplo, <\n> es el caracter de escape nueva lnea. Cuando el caracter de escape <\n> es impreso, no es mostrado en la pantalla. En lugar de ello, ocasiona que la salida avance a la siguiente lnea. Por ejemplo, ve el siguiente estatuto: print Uno\ndos\tres Cuando este estatuto se ejecuta, despliega lo siguiente: Uno dos tres Python reconoce varios caracteres de escape, algunos de los cuales son listados en la tabla 2.7. Tabla 2.7.- Algunos caracteres de escape reconocidos por Python Caracter de escape

Significado Causa que la salida avance a la siguiente lnea. Causa que la salida avance a la siguiente posicin tabular. Origina que un apstrofe sea impreso. Hace que se imprima una comilla. Ocasiona que una diagonal impresa sea impresa.

\n \t \ \ \\

51

El caracter de escape <\t> hace que la salida avance a la siguiente posicin tabular. (Normalmente, una posicin tabular aparece cada ocho caracteres). Los siguientes estatutos ilustran su uso:

El primer estatuto imprime Ene, entonces, avanza la salida a la siguiente posicin tabular para desplegar Feb, posteriormente, avanza la salida a la siguiente posicin tabular e imprime Mar, continuando de la misma manera hasta imprimir May. Lo mismo ocurre para el segundo estatuto print. La salida ser como la que se muestra a continuacin:

Puedes usar los caracteres de escape <\> y <\> para imprimir apstrofe y comillas, respectivamente. Los siguientes estatutos son ilustrativos:

Estos estatutos desplegarn lo siguiente:

Puedes emplear el caracter de escape <\\> para desplegar una diagonal inversa, tal como se muestra a continuacin:

Este estatuto desplegar:

1.8.3 Despliegue de tems mltiples con el carcter +


Previamente, en este captulo, vimos que el operador + es empleado para agregar dos nmeros. Sin embargo, cuando el operador + se emplea con dos 52

cuerdas realiza la concatenacin de cuerdas. Esto significa que une las cuerdas. Por ejemplo, observa el siguiente estatuto:

El estatuto imprimir:

La concatenacin de cuerdas puede ser til para dividir una literal de cuerda tan grande como para que el estatuto print abarque lneas mltiples. He aqu un ejemplo:

El estatuto desplegar lo siguiente:

1.8.4 Formateo de nmeros


Puede que no siempre ests satisfecho con la manera en que los nmeros, especialmente los de tipo float, son impresos en la pantalla. Cuando un nmero de punto flotante es desplegado en la pantalla, puede aparecer hasta con 12 dgitos significativos. Esto es mostrado en la salida de programa 2.20.

Figura de programa 2.20

Figura de salida de programa 2.20

Debido a que este programa despliega un monto en pesos, sera agradable ver 53

esa cantidad redondeada a dos dgitos decimales. Afortunadamente, Python nos proporciona una manera de hacer exactamente eso con el operador con cuerda de formateo. Previamente, aprendiste que el smbolo % es el operador residuo. Esto es verdad cuando ambos operandos son nmeros. Sin embargo, cuando el operando de la izquierda del smbolo es una cuerda, se convierte en un operador con cuerda de formateo. He aqu el formato general que indica cmo podemos usar el operador con cuerda de formateo en el estatuto print para darle formato a un nmero que ser desplegado: print cuerda % nmero En el formato general, cuerda es una cuerda que contiene texto y/o un especificador de formateo. Un especificador de formateo es un conjunto especial de caracteres que especifica cmo un valor debe ser formateado. En el formato general, nmero es una variable o expresin que genera un valor numrico. El valor del nmero ser formateado conforme al especificador de formato que se encuentra en la cuerda. He aqu un ejemplo:

La figura 2.8 seala las partes importantes del estatuto print. En ese estatuto, el especificador de formato es %.2f. Cuando se ejecuta el estatuto, %2.f no se despliega. En lugar de ello, el valor referenciado por MiValor ser impreso. He aqu cmo aparecer la salida:

54

Figura 2.8.- Uso del operador de cuerda de formateo

La f en el especificador de formato indica que deseamos imprimir un nmero de punto flotante. El .2 que aparece antes de f especifica que el nmero debe redondearse a dos dgitos decimales. La figura de programa 2.21 muestra cmo podemos modificar el programa 2.20 de manera que se formatea su salida empleando esta tcnica.

Figura de programa 2.21

Figura de salida de programa 2.21

Puedes redondear valores a otros nmeros de dgitos decimales. Por ejemplo, el especificador de formato %.3f establece tres dgitos decimales y %.6f seala 6. En la figura de programa 2.22, un valor es desplegado con redondeos a uno, dos, tres, cuatro, cinco y seis dgitos decimales.

Figura de programa 2.22

55

Figura de salida de programa 2.22

Formateo de valores mltiples El ejemplo anterior muestra cmo formatear un valor con el operador de cuerda de formateo. Puedes formatear varios valores, haciendo uso del siguiente formato general: print cuerda % (nmero, nmero, nmero, ) En el formato general, cuerda es una cuerda que contiene mltiples especificadores de cuerda de formateo. La expresin (nmero, nmero, nmero,) es una lista de variables o expresiones entre parntesis y separadas por comas. El primer valor o la primera expresin de esta lista ser formateada conforme al primer especificador de cuerda de formateo de la cuerda, el segundo de acuerdo al segundo especificador de cuerda de formateo y as sucesivamente. He aqu un ejemplo:

En el estatuto print, el especificador de formato %.1f corresponde al valor de la variable Valor1 y el especificador de formato %.3f al valor de la variable Valor2. Cuando el cdigo se ejecuta, produce la siguiente salida:

Nota: El nmero de especificadores de formato debe ser igual al nmero de valores que sern formateados. De otra manera, ocurrir un error. Especificacin de un ancho de campo mnimo Tambin, un especificador de formato puede incluir un ancho mnimo de campo, el cual es el nmero mnimos de espacios que debern ser empleados para desplegar el valor.

56

En el estatuto print, el especificador de formato es %6.2f. El 6 seala que el nmero mnimo de espacios reservados en la pantalla para el valor que ser impreso es de 6. La salida de este estatuto ser:

En este caso, el nmero que es impreso tiene menos dgitos que el campo donde es desplegado. El nmero 1.12 usa cuatro espacios en la pantalla, pero, es desplegado en un campo que tiene seis espacios de ancho. Cuando ste es el caso, el nmero es justificado a la derecha en el campo. Si un valor es tan grande que no cabe en el ancho del campo, el campo es automticamente agrandado para darle cabida. La especificacin de las anchuras de campo puede ayudarte cuando necesites imprimir valores alineados en columnas. Por ejemplo, ve la figura de programa 2.23. Cada una de las variables es desplegada en un campo que tiene un ancho de siete espacios.

Figura de programa 2.23

57

Figura de salida de programa 2.23

Formateo de enteros y cuerdas Adems de especificadores de formato para valores e punto flotante, Python provee especificadores para los enteros y las cuerdas. Por ejemplo, el siguiente cdigo muestra cmo usar el especificador de formato %d para formatear un entero:

Este cdigo desplegar lo siguiente:

Aqu est un ejemplo de cmo formatear dos valores enteros:

Aqu est un ejemplo de cmo aplicar el especificador de formato %s para formatear una cuerda:

Este cdigo desplegar lo siguiente:

El siguiente ejemplo muestra cmo una cuerda y un nmero de punto flotante pueden ser formateados en el mismo estatuto:

58

La salida es:

Tambin,

podras

aplicar

los

anchos

mnimos

de

campo

para

los

especificadores de %d y %d. Por ejemplo, la figura de programa 2.24 imprime una serie de datos sobre vendedores y las unidades que vendieron de un producto en una empresa en dos columnas. La primera columna emplea un ancho de campo de 25 espacios y la segunda de 15 espacios.

Figura de programa 2.24

59

Figura de salida de programa 2.24

Para terminar, el signo menos (-) despus del % en el especificador de formato para cuerda le indica a Python que, cuando se ejecute el estatuto print, la cuerda imprimirse debe quedar alineada a la izquierda. Si no se pone este smbolo, la alineacin ser a la derecha. Preguntas de repaso Opcin mltiple 1. Un error de _____________________ no evita que el programa se ejecute, pero, produce resultados incorrectos. a. Sintaxis b. Tipo lgico c. Hardware d. Fatal 2. El ______________ es el operador de cuerda de formateo. a. * b. % c. & d. / 3. En la expresin 12 + 7 los valores que se encuentran a los lados del operador + son conocidos como: ________________________ a. Operandos b. Operadores 60

c. Argumentos d. Expresiones matemticas

61

4. Esta funcin integrada de Python puede ser empleada para convertir un valor de tipo int a un valor de tipo float: ______________________ a. int_to_float() b. float() c. convert() d. int() 5. Esta funcin integrada de Python puede ser empleada para leer un nmero que ha sido escrito en el teclado: _______________________ a. input() b. get_num() c. read_number() d. keyboard() 6. Supn que el siguiente estatuto es un programa: Precio = 99.0. Despus de ejecutarse, la variable Precio referenciar un valor de tipo ___________. a. int b. float c. Currency d. str 7. En Python, ste es el operador que efecta una divisin, pero, en lugar de generar como resultado el cociente produce el residuo de esa divisin: _________________ a. % b. * c. ** d. /

62

8. En Python, ste es el operador que eleva un nmero a una potencia: _________________ a. % b. * c. ** d. / 9. Cul de los siguientes estatutos causar un error? __________________ a. X = 17 b. 17 = X c. X = 99999 d. X = 17 10. Este smbolo marca el inicio de un comentario en Python:

______________ a. & b. * c. ** d. # 11. Este elemento de un programa hace que una variable referencie un valor

almacenado en la memoria: _______________________________ a. Declaracin de variable b. Estatuto de asignacin c. Expresin matemtica d. Literal de cuerda

63

12.

Las notas cortas colocadas en diferentes partes del programa para

explicar cmo trabaja esa parte en el programa se conocen con el nombre de _______________________________ a. Comentario b. Manual de referencia c. Estatuto d. Documentacin externa 13. En Python, una literal de cuerda debe encerrarse entre pares de:

_______________________________ a. Parntesis b. Comillas c. Apstrofes d. Comillas o apstrofes 14. Un _______________________ es una persona hipottica que hace uso

de un programa y le proporciona datos durante su ejecucin. a. Diseador b. Usuario c. Cliente d. Programador 15. Una _______________________ es un nombre que referencia un valor

que se encuentra en la memoria de la computadora. a. Ranura de memoria b. Lista c. Numeracin binaria d. Variable

64

16.

Una _______________________ es una secuencia de caracteres. a. Variable b. Coleccin de caracteres c. Cuerda d. rea de texto

17.

Un

_______________________

es

un

diagrama

que

muestra

grficamente los pasos que deben llevarse a cabo en un programa. a. Cdigo falso b. Pseudocdigo c. Python d. Diagrama de flujo 18. Un lenguaje informal que no tiene reglas de sintaxis y que no significa

que sea compilado o ejecutado se llama ____________________. a. Cdigo falso b. Pseudocdigo c. Python d. Diagrama de flujo 19. Un _____________________ es un conjunto de pasos lgicos bien

definidos que deben realizarse para llevar a cabo una tarea. a. Logaritmo b. Plan de accin c. Programa de lgica d. Algoritmo 20. Un _____________________ es una funcin simple que el programa

debe realizar para satisfacer al cliente. a. Estatuto b. Requerimiento de software c. Pre-requisito d. Predicado 65

Verdadero o falso 1. En Python, si imprimes una variable a la que no se le ha asignado un valor se desplegara el valor 0. _________________________ 2. En Python, el primer caracter del nombre de una variable no puede ser un dgito. _________________________ _________________________ 3. En una expresin matemtica la multiplicacin y la divisin se ejecutan antes que una suma o una resta, suponiendo que la expresin no contiene agrupaciones con parntesis. _________________________ 4. Los programadores deben ser cuidadosos de no cometer errores de sintaxis al disear sus programas en pseudocdigo. _________________________ Respuestas cortas 1. Usualmente, Qu es lo que un programador profesional debe hacer para obtener comprensin de un problema? 2. Qu es el pseudocdigo? 3. Tpicamente, Cules son los tres pasos que realiza un programa de computadora? 4. Si una expresin matemtica suma un dato de tipo int con uno de tipo float, Cul ser el tipo del resultado?

66

5. Cmo podra modificarse la siguiente expresin para evitar que el resultado sea de tipo int, suponiendo que ambos operandos son de este tipo? Resultado = a / b Banco de trabajo algortmico 1. Escribe un cdigo en Python que solicite al usuario que proporcione su altura, la cual debers asignar a una variable denominada AlturaUsuario. 2. Escribe un cdigo en Python que solicite al usuario que proporcione su color favorito, la cual asignars a una variable llamada ColorFavoritoUsuario. 3. Escribe un estatuto de asignacin que realice las siguientes operaciones con las variables a y b. a. Sume a a el valor 2 y el resultado lo asigne a b. b. Multiplique a b por 4 y asigne el resultado a a. c. Divida por 3.14 a a y el resultado lo asigne a b. d. Reste 8 a b y el resultado lo asigne a a. 4. Asume que las variables w, x, y y z son enteras y que sus valores respectivos son 5, 4, 8 y 2. Qu valor se almacenar en la variable Resultado despus de cada una de las siguientes instrucciones se ejecute? a. Resultado = x + y b. Resultado = 2 * z c. Resultado = y / x d. Resultado = y z 5. Escribe un estatuto en Python que asigne la suma de 10 y 4 a Total. 6. Escribe un estatuto en Python que sustraiga el contenido de PagoInicial a DeudaTotal y el resultado lo almacene en DeudaRestante. 7. Escribe un estatuto en Python que multiplique a SubTotal por 0.15 y asigne el resultado a Total. 8. Qu valor ser impreso despus de ejecutarse el siguiente fragmento de cdigo? A=5 67

B=2 C=3 Resultado = a + b * c print Resultado 9. Qu resultado imprimir el siguiente fragmento de cdigo? num = 99 num = 5 print num 10.Asume que la variable Ventas referencia a un valor de tipo float. Escribe un estatuto que imprima su contenido con dos decimales. Ejercicios de programacin 1. Informacin personal Escribe un programa que despliegue la siguiente informacin acerca de ti: a. Nombre completo. b. Direccin, ciudad, estado y cdigo postal. c. Nmero telefnico. d. Nombre completo de la escuela a la que perteneces. 2. Prediccin de ventas Una empresa ha observado que su utilidad promedio anual es alrededor del 23% de sus ventas totales. Escribe un programa que solicite al usuario las ventas totales pronosticadas para el prximo ao para que calcule y despliegue el valor de la probable utilidad.

Sugerencia: usa el valor de 0.23 para representar al 23%.


3. Clculo de superficie Una hectrea posee una superficie de 10,000 metros cuadrados. Por otra parte, un mecate de los mayas equivale a 400 metros cuadrados. Escribe un programa que solicite al usuario la superficie de un terreno, medida en 68

mecates,

para

que

posteriormente

seale

el nmero

de

hectreas

equivalentes.

Sugerencia: Convertir los mecates a metros y stos ltimos a hectreas.


4. Compra total Un cliente de una tienda est comprando cinco artculos. Escribe un programa que solicite el precio de cada uno de ellos para que, posteriormente, calcule e imprima el subtotal de la venta, el monto de los impuestos de la venta y el total. Asume que el impuesto aplicado es del 15% sobre el importe de la venta. 5. Distancia recorrida Asumiendo que no existen demoras ni accidentes, la distancia que un carro puede recorrer en la carretera est dada por la siguiente frmula: DistanciaRecorida = VelocidadPromedioAuto * TiempoTranscurrido Un auto est viajando a una velocidad promedio de 90 kilmetros por hora. Escribe un programa que despliegue lo siguiente: a. La distancia recorrida cuando han transcurrido exactamente 5 horas. b. La distancia recorrida cuando han transcurrido exactamente 8 horas. c. La distancia recorrida cuando han transcurrido exactamente 12 horas. 6. Impuestos sobre ventas Escribe un programa que solicite al usuario que introduzca el monto de una compra. Asume que la transaccin comercial involucra el pago de impuestos municipales, estatales y federales. El programa deber calcular e imprimir los montos de cada uno de esos impuestos, suponiendo que stos son del 3%, 6% y 15%, respectivamente. Asimismo, deber calcular e imprimir el monto total de los impuestos as como del importe total de la compra. 69

7. Kilmetros por litro El rendimiento de un vehculo es medido en kilmetros por litro. Se desea que hagas un programa que solicite al usuario la distancia recorrida por un auto y la cantidad de litros consumidos de gasolina, para que calcule e imprima su rendimiento, aplicando la frmula siguiente: Rendimiento = DistanciaRecorrida / ListrosCombustibleConsumido 8. Propinas, impuestos y total Escribe un programa que calcule el monto total de una comida consumida en el restaurante El estmago encantado. El programa debe solicitar el importe de la comida y calcular los montos de los impuestos y las propinas dejadas a los meseros. Los impuestos aplicados son del 15% y las propinas del 10%. Al final, el programa deber imprimir los montos de cada uno de los conceptos anteriores as como el importe total de la cuenta. La salida del programa deber tener una presentacin similar a la siguiente: Restaurante El estmago encantado Concepto Importe del platillo Impuesto Propinas Monto total $ Importe 250.00 37.50 25.00 --------312.50

9. Conversin de grados Celsius a grados Fahrenheit Escribe un programa que convierte la temperatura proporcionada en grados Fahrenheit a su equivalente en grados Celsius. La frmula que deber a aplicar es la siguiente: ( 10. Programa de transacciones de inventarios 70 )

El ltimo mes, ngeles Navarrete compr algunas acciones en la Bolsa Mexicana de Valores. Aqu estn los detalles de la compra: El nmero de acciones que compr fueron 1,000. Cuando compr las acciones, pag $100.00 por cada una de ellas. Pag a su corredor una comisin del 2% sobre el importe total de las acciones. Dos semanas despus, ngeles vendi las acciones. Aqu estn los detalles de la venta: El nmero de acciones que vendi fue de 1,000. Vendi cada accin a un precio de $150.00 Pag a su corredor de bolsa una comisin del 2% sobre el importe de la venta de las acciones. Escribe un programa que despliegue lo siguiente: El monto que pag por las acciones. El monto que pag a su corredor de bolsa por la compra de las acciones. El mont del importe de la venta de las acciones. El monto que pag a su corredor en la transaccin de venta de las acciones. El monto de la ganancia o prdida. Este monto se calcula restando al monto de la venta la suma del monto de la compra y de las comisiones del corredor de bolsa en las transacciones de compra y venta. Si el signo es positivo hay utilidad de lo contrario habra prdida.

71

Vous aimerez peut-être aussi