Académique Documents
Professionnel Documents
Culture Documents
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
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.
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
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.
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).
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.
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.
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.
cuerda que contenga comillas como parte de ella. El programa 2.4 muestra un ejemplo de ello.
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:
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.
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.
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.
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.
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:
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.
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.
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.
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
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.
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.
memoria).
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!
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
26
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.
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.
29
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.
*
/ %
**
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:
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.
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
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
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
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
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
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.
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
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.
42
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.
el 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.
45
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.
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
eso, emiten un espacio en blanco en sus salidas respectivas. He aqu la salida de estos tres estatutos: uno dos tres
50
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:
Puedes emplear el caracter de escape <\\> para desplegar una diagonal inversa, tal como se muestra a continuacin:
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:
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
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.
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.
55
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.
57
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:
Aqu est un ejemplo de cmo aplicar el especificador de formato %s para formatear una cuerda:
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.
59
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
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.
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.
mecates,
para
que
posteriormente
seale
el nmero
de
hectreas
equivalentes.
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