Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Juan MCarreon Tarea 1 V 2
Juan MCarreon Tarea 1 V 2
Juan MCarreon Tarea 1 V 2
AUTÓNOMA DE MÉXICO
Tarea 1
Compiladores
(Semestre 2020-II)
Febrero, 2019
Contenido
1. Introducción de Python ..................................................................................... 3
1.7. Funciones................................................................................................. 21
2. Ejercicios. ....................................................................................................... 24
1. Introducción de Python
Python es un lenguaje de programación interpretado, una de sus ventajas es el
manejo de un código legible y sencillo. La lógica de programación puede ser
utilizada para aplicarse con otros lenguajes realizando cambios mínimos en los
mismos.
https://www.python.org/downloads/
Python cuenta con varias características, algunas de las más importantes son:
Tipado dinámico: La mayoría de lenguajes debe pasar por dos etapas para
declarar variables:
1. Colocar el nombre y el tipo de dato de la variable.
2. Asignar un valor de acuerdo al tipo de dato especificado
anteriormente.
Sin embargo, Python realiza estas dos etapas en una sola, esto es, el tipo de
dato se establece de forma automática dependiendo del dato asignado.
Además, es capaz de modificar el tipo posteriormente si se requiere.
Indentación: Para delimitar bloques de código, como sentencias, funciones o
bucles, Python utiliza dos puntos “:” como delimitadores al inicio de su
cuerpo, siendo el sangrado la representación del inicio y final del mismo.
Multiparadigma: Permite que los programadores adopten diferentes estilos
de programación:
Programación Estructurada.- El programa se debe escribir de tal forma
que las instrucciones se ejecutarán de modo descendente, es decir,
describe lo que las instrucciones deben hacer para resolver un
problema de forma lineal. Es el paradigma más básico y fácil de
comprender.
Programación Funcional.- Trata de definir las cosas, por ejemplo para
resolver problemas por medio de la creación de funciones, las cuales
deben tener un nombre clave que describa lo que hace, cero o más
entradas para que trabaje, además de un posible valor final para
devolver. Las funciones se pueden utilizar las veces necesarias en el
momento que se requiera.
Programación Orientada a Objetos.- Define los programas en términos
de comunidades de objetos, los cuales tienen cada uno una serie de
atributos y métodos que lo caracterizan, gracias a una clase base
desde la cual se establece su creación.
Para ver el resultado del script anterior, se puede hacer desde la pestaña Run
Run Module o también presionando la tecla F5. El resultado de la ejecución se
muestra en la figura 1.2.4.
Una vez más, se ejecuta el script anterior para obtener el resultado de la figura 1.2.5.
Figura 1.2.5 Los comentarios no se ven en la ejecución del programa, sólo son para el
programador.
if(condicion):
Cuerpo del if.
elif(condicion):
Cuerpo del elif.
elif…:
Cuerpo del elif.
else:
Cuerpo del else.
Un ejemplo para comprender esta estructura sería el siguiente:
Realizar un programa que solicite al usuario ingresar un número. Si resulta ser mayor o
igual a 18, imprimir que es un mayor de edad, pero si no, es un menor de edad. También se
debe tener en cuenta lo que pase si se ingresan números negativos.
Si se requiere obtener un dato del usuario por medio del Shell de Python, se requiere
usar la sintaxis:
Lo que está ocurriendo es que el programa toma a lo que envía el usuario como una
cadena, pero en este caso se necesita un valor del tipo entero. Esto no es de
preocuparse mucho, ya que necesitamos tener en cuenta el concepto de “casteo”,
lo cual resulta de cambiar el tipo de dato al que se desee. Esto se realiza en Python
con la forma:
clase_de_tipo_de_dato(dato)
De tal forma que lo único que se necesita modificar en el código anterior sería la
línea que solicita la edad del usuario para que sea “casteada” a un valor entero.
Figura 1.5.3. Ahora se convierte al tipo de dato entero que se necesita en el cuerpo de la
sentencia de control.
while(condicion):
Cuerpo del while…
- for (para): Esta estructura trabaja con un conjunto de elementos que
pueden iterarse uno a uno, el cual puede resultar ser varios tipos de datos
como una lista, cadena, entre otros datos.
La estructura de un for es:
Figura 1.5.5. Script que imprime los números del 1 al 100 con 2 estructuras iterativas.
range(entero)
Esto simplemente resulta devolver una lista de números que van del 0 a entero –
1. Aclarado este asunto, si se corre el script, se obtiene el siguiente resultado.
1.6. Archivos
De la misma forma, se verán rápidamente la creación y lectura de archivos de texto
plano. En Python es muy sencillo hacer esto porque se necesitan tener en mente 3
sencillos pasos para cualquier tipo de archivo:
Crear el archivo desde su ruta y saber qué tipo de archivo es.
Realizar las operaciones correspondientes.
Cerrar el archivo para que se pueda usar por otros programas al terminar.
Compiladores
2019-II
Primero, se debe crear el archivo que almacenará en una variable con la sintaxis:
archivo.write(“Contenido”)
Si se quiere un salto de línea, se ingresa con la secuencia de escape ‘\n’.
archivo.close()
Por lo tanto, el programa para leer el archivo que se ha creado previamente, puede
tener el aspecto de la figura 1.6.3.
1.7. Funciones
Una función en la programación no es más que una parte de código que trabaja
cuando se le llama desde cualquier parte del programa. Al final, una función puede
devolver o no un resultado final, dependiendo del objetivo para la cual fue diseñada.
def nombreFuncion(parametros):
Cuerpo de la función.
Si se requiere que la función devuelva algún resultado, se deberá tener en cuenta
que al final del cuerpo de la misma debe usarse la sentencia:
return valor
Diseña una función que devuelva el área de un rectángulo dada su base y altura.
La estructura que puede tener la función que nos ayudará a resolver este problema
puede tener la estructura de la figura 1.7.1.
nombreFuncion(parametros)
1.8. Listas
Una lista es un tipo de dato que maneja Python, que tiene la ventaja de almacenar
otros tipos de datos en sí misma (incluso otras listas mismas). La forma de declarar
una lista es abriendo y cerrando un par de corchetes con la siguiente sintaxis:
lista = []
Algunas de las funciones que puede hacer una lista es:
len(lista)
Remover el objeto seleccionado como índice (por defecto, si no se manda
algún parámetro, se retira el último elemento):
lista.pop(indice)
Limpiar la lista eliminando todos sus elementos:
lista.clear()
Ordenar los elementos:
lista.sort()
Acceder a un elemento en específico:
lista[indice]
Figura 1.8.1. Algunos métodos de una lista.
2. Ejercicios.
Ya que se ha mostrado un poco de Python en general y para una mejor comprensión
y conocimiento, a continuación para la tarea 1 se dejarán unos ejercicios en los que
se deben practicar los temas vistos y mandar el código que se utilice en caso de ser
necesario, así como el resultado final.
1. Haz un programa que pida al usuario por el Shell una letra, imprima si es una
vocal o una consonante. Hay que tener en cuenta letras mayúsculas y
minúsculas.
vocales=["a","e","i","o","u"]
consonantes=["b","c","d","f","g","h","j","k","l","m","n","ñ","p",
"q","r","s","t","v","w","x","y","z"]
letra=input("Dame una letra: ")
letra=letra[0]
if letra.lower() in vocales:
print("Es una Vocal")
elif letra.lower() in consonantes:
print("Es una consonante")
try:
opcion=int(input("Dame un numero del 0-7: "))
if opcion==1:
print("El día elegido es Lunes")
elif opcion==2:
print("El día elegido es Martes")
elif opcion==3:
print("El día elegido es Miércoles")
elif opcion==4:
print("El día elegido es Jueves")
elif opcion==5:
print("El día elegido es Viernes")
elif opcion==6:
print("El día elegido es Sábado")
elif opcion==7:
print("El día elegido es Domingo")
elif opcion==0:
print("El día elegido es Domingo")
else:
print("No es una Opción")
except ValueError: print("Ingrese un numero por favor")
3. Haz un programa que realice la sumatoria del 1 al 100 con un ciclo while.
suma=0
cont=0
while cont<101:
suma+=cont
cont+=1
print(suma)
4. Haz un programa que imprima sólo números pares del 1 al 200 con un ciclo
for. Un número es par si su residuo entre 2 resulta 0. En Python se usa la
sintaxis n % m para conocer el residuo de alguna división.
for i in range(0,201):
if i%2==0 and i<200:
print(i,end=", ")
elif i%2==0 and i==200:
print(i)
5. Haz un programa que pida al usuario 10 líneas para que se redacte una carta
y se guarde en un archivo externo con el nombre de “carta_tu_nombre.txt”
(por ejemplo: “carta_Marcelo.txt”).
6. Haz que un programa lea la carta del ejercicio 5 y la muestre de esta forma:
“Querido usuario, has recibido la carta con este contenido:
<contenido_carta>
Ya no hay más cartas…“
archivo=open("carta_JuanM.txt","r")
text=archivo.read()
print("Querido usuario, has recibido la carta con este contenido: ")
print(text)
print("Ya no hay mas cartas...")
archivo.close()
7. Diseña una función que cuando se mande el parámetro ‘n’, se imprima una
pirámide de asteriscos que cumplan la siguiente lógica:
n=3
*
**
***
n=6
*
**
***
****
*****
******
Para este ejercicio, ten en cuenta que requieres un ciclo anidado, es decir,
un ciclo dentro de otro ciclo.
Opción 1)
Opción 2)
𝑃 = 2𝜋
𝐴 = 𝜋𝑟 2
def perimetro(radio):
return 2*3.1416*radio
def area(radio):
return radio*radio*3.1416
lista=[1,5,8,9,4]
elementos=len(lista)
for i in range(elementos):
lista.pop()
print(lista)
quitaComentarios("Rectangulo.java","rect2.java")