#!/usr/bin/python
print "\t\tObtener la potencia de un numero\n"
x = int(input("Dame el valor de la base -> "))
y = int(input("Dame el valor del exponente -> "))
i = 0
potencia = 1
for i in range (y):
potencia = potencia * x
print "El numero "
print x
print "elevado a la "
print y
print "es igual a "
print potencia
#!/usr/bin/python
print "\t\tOBTENER UN PROMEDIO\n"
valores = float(input("Cuantos valores vamos a promediar? -> "))
contador = 1
total = 0
promedio = 0
while(contador <= valores):
numero = float(input("Dame un valor -> "))
total = total + numero
contador = contador + 1
promedio = total / valores
print "El promedio es -> "
print promedio
Laboratorio de Lenguajes de Programacion - Semana 3
AWK
Es un lenguaje tipo script que es interpretado, tiene una amplia funcionalidad puesto que puede combinarse con las expresiones de la terminal Unix.
Suele utilizarse para modificar archivos.
Ejemplos:
SHELL
Es otro tipo de lenguaje script interpretado, al igual que AWK puede interpretar las instrucciones de la terminal Unix y ejecutarlas
Ejemplos
Programa que registra personas en una agenda y las guarda en un archivo
PYTHON
Es un tipo de lenguaje mutiparadigma, interpretado o de script. La sintaxis de Python es muy sencilla y clara por lo que aprenderlo es muy sencillo.
Ejemplos
Numero Par o Impar
#!/usr/bin/python
print "\t\tSaber si un numero es Par o Impar\n"
x = input ("Dame el numero -> ")
y = x/2
if(x%2==0):
print "El numero es par"
else:
print "El numero es impar"
#!/usr/bin/python
print "\t\tOBTENER EL PORCENTAJE DE UN TOTAL\n"
x = float(input("Dame el valor total -> "))
y = float(input("Porcentaje obtener -> "))
porcentaje = x*y/100
print "El resultado es -> "
print porcentaje
Lenguajes de Programacion - Semana 4 - Tarea 3: Presentacion
Miembros del Equipo:
- Juan Carlos Espinosa Ceniceros
- Rolando Javier Benitez Segura
Estas imagenes corresponden a la parte del tema que se me asigno, no acostumbro a colocar mucho texto en las diapositivas asi que lo explicare en la clase.
Archivos Adjuntos: Presentacion (PowerPoint y OpenDocument) asi como el texto en el que me base para cada diapositiva (Word y OpenDocument)
Laboratorio de Lenguajes de Programación – Semana 2
Se trata de un entorno no grafico de secuencias de comandos nativo de los sistemas Unix-Linux.
Antes de los entornos gráficos todas las operaciones eran ejecutadas en distintos tipos de Shell (Consolas o Terminales), esta es la forma más directa para comunicarnos con nuestro equipo ya que nosotros introducimos una serie de comandos y operadores, y el equipo actúa en consecuencia. Trabajar en un ambiente de línea de comandos no es una tarea imposible y no se necesitan conocimientos muy avanzados para realizar tareas sencillas, desde la terminal podemos hacer todo lo que un entorno grafico nos permite.
Lo primero que veremos será una ventana como esta:
La primera secuencia escrita tiene la siguiente sintaxis: nombreusuario@nombreequipo: ~ $
Por lo general también al iniciar la terminal siempre nos ubicamos en la carpeta /home/nombreusuario/
PRIMEROS COMANDOS
ls = Este comando mostrara un listado de las carpetas o archivos que están en nuestra ubicación actual ls – a = Nos muestra un listado de los archivos (incluyendo los ocultos) contenidos en nuestra ubicación actual ls – l = Muestra un listado con información sobre permisos, fecha de creación, tamaño, nombre de los archivos contenidos en nuestra ubicación actual cd = Cambiar de directorio, por ejemplo: cd /home/usuario/Música cd .. = Regresar un directorio atrás mkdir = Crear un directorio. Sintaxis: mkdir nombrenuevacarpeta rmdir = Borra una carpeta. SintaxiS igual a mkdir cp = Copiar un archivo o carpeta. Sintaxis: cp nombrearchivo.extension /home/usuario/carpetadestino cp –r = Copiar un directorio a otro. Sintaxis: cp –r nombrecarpeta /home/usuario/carpetadestino mv = Mueve un archivo o carpeta y también cambia el nombre de un archivo o carpeta. Sintaxis (mover) mv archivo /destino/
Sintaxis (cambiar nombre): mv nombreactual nuevonombre
ATAJOS CON EL TECLADO
Ctrl + A = Mueve el cursor al principio de línea Ctrl + E = Mueve el cursor al final de línea Ctrl + C = Mata el proceso que se ha iniciado desde ese Terminal Ctrl + U = Elimina la línea donde está el cursor Alt + F = Mueve el cursor una palabra hacia adelante Alt + B = Mueve el cursor una palabra hacia atrás Ctrl + W = Elimina la palabra delante del cursor Ctrl + L = Borra todo el contenido del Terminal Shift + Ctrl + C = Copia el fragmento seleccionado al portapapeles Shift + Ctrl + V (o Shift + Insert) = Pega en la línea de comandos el contenido del portapapeles Shift + Ctrl + N = Abrir otro terminal Shift + Ctrl + T = Abrir una pestaña en la ventana actual del terminal Shift + Ctrl + W = Cerrar la pestaña actual Shift + Ctrl + Q = Cerrar la terminal Flecha Arriba / Abajo = Recupera comandos escritos con anterioridad
PRIVILEGIOS
sudo = Escribir esta palabra antes de algún comando nos proporciona privilegios de administrador, haciéndote pasar por root. No siempre colocando “sudo” la terminal hará todo lo que le digas, para aumentar la seguridad regularmente después te aparecerá la palabra PASSWORD pidiéndote la contraseña del administrador del equipo.
COMANDOS AVANZADOS
less = Muestra en la ventana de la terminal el contenido de un archivo. cat = Muestra el contenido del archivo. (Concatenado, es decir, relacionado a otro). sort = Ordenar archivos de texto, y/o, clasificar, combinar o comparar todas las líneas de los archivos dado. grep = Buscar un archivo, por texto especifico cut = Dividir archivo en partes echo = Mostrar mensaje en pantalla kill = Si una aplicación se ha colgado, este comando nos ayudara a matarla, se usa junto con el comando “ps” which = Busca el “user’s path” de un programa man = Manual, muestra un instructivo de ayuda para el uso de los comandos.
A la derecha en Recursos les dejo un link llamado "Comandos bash en Terminal", es un listado completo de todos los comandos de la terminal, y la forma de escribir su sintaxis, opciones, ect.
Laboratorio de Lenguajes de Programación - Semana 1
A grandes rasgos, Emacs es el editor más potente existente para sistemas Unix-Linux, esto es fácilmente comprobable. Vamos a conocer algunas de sus funciones
Emacs es un editor que reconoce una gran cantidad de formatos de ficheros, desde un simple archivo de texto, hasta los complejos códigos fuente de diferentes lenguajes de programación en donde nos proporciona la posibilidad de detectar y resaltar la sintaxis del código.
Asi mismo, se trata de un editor muy flexible, casi todo es personalizable, colores, crear comandos nuevos, asignar combinaciones de teclas distintas; esto es un dato curioso ya que el nombre EMACS proviene de Editor Macros.
Emacs está escrito en 2 lenguajes: C y Emacs Lisp, Lisp le proporciona la posibilidad de manejar múltiples tareas, es por ello que esta aplicación sirve desde un editor de archivos, compilar programas hasta navegar en internet
En fin, tardaríamos en listar todo lo que Emacs nos ofrece, pero para mayor información vean la liga “Introducción a EMACS” en los Recursos de la derecha.
Veamos algunos comandos utiles:
Para iniciar nuestro trabajo en Emacs, escribiremos en la terminal esta fórmula: emacs nombredelarchivo.extension comando
Donde “comando” se sustituye ya sea por un & , o por la combinación –nw.
&: Permite iniciar un archivo en emacs sin dejar ocupada la terminal.
-nw: técnicamente No Window, iniciar un archivo en emacs en la misma ventana del terminal.
Ejemplo: emacs archivo.txt –nw
Esto generara un archivo “archivo.txt” en la carpeta donde estemos posicionados y el archivo lo visualizaremos en la ventana de la terminal.
CTRL– A = Nos posicióna al inicio de la línea
CTRL– E = Nos posiciona al final de la línea
CTRL - K = Corta la línea desde donde está ubicado el cursor
CTRL – Y = Pega la línea cortada
CTRL – X = Deshace la ultima modificación
CTRL – B = Carácter atrás
CTRL – F = Carácter adelante
ALT - B = Palabra atrás
ALT - F = Palabra adelante
CTRL - P = Línea atrás
CTRL - N = Línea adelante
ALT – U = Letras a mayúscula
ALT – L = Letras a minúsculas
CTRL – X CTRL – U = Palabras a mayúscula
CTRL – X CTRL – L = Palabras a minúscula
CTRL – S = Búsqueda adelante
CTRL – R = Búsqueda atrás
CTRL – X 2 = Divide la pantalla arriba y abajo
CTRL – X 3 = Divide la pantalla lado a lado
En fin, para cada acción existe un comando en EMACS, claro que recordarlos todos es casi imposible, pero siempre podemos recordar aquellos que nos faciliten nuestro trabajo personal. Para ello les dejo en la sección de Recursos un link a las Tarjetas de Referencia de EMACS y también una pequeña Introduccion a EMACS.
“Objective-C es un lenguaje de programación orientado a objetos creado como un superconjunto de C pero que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone en 1980. En 1988 fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como lenguaje principal de programación en Mac OS X y GNUstep.” (1) (2)
El lenguaje de programación Objective-C fue el primer intento por integrar un ambiente de programación orientado a objetos al lenguaje C, es por eso que en su definición nos encontramos con que Objective-C es un superconjunto de C (3), es decir, todas las funciones de C, también forman parte de Objective-C.
Durante mucho tiempo estuvo en desuso siendo menos popular que C++, que fue la variante más difundida y aceptada para proporcionar programación orientada a objetos en C; pero, en la actualidad Objective-C ha recibido un empujón tremendo por parte de Apple convirtiéndose en el lenguaje de programación oficial de aplicaciones para MAC OS y iPhone. (4)
Les puedo platicar que aprender Objective- C es como el siguiente paso para los que ya hemos programado en C, la sintaxis es la misma tomando en cuenta que hablamos de un paradigma imperativo y estructurado, pero pasar al paradigma orientado a objetos nos debe ser tan familiar como aprender nuevas funciones de C.
Les puedo decir también que si quieren aprender a programar en este hermoso lenguaje lean el manual que Apple ha proporcionado (4) y a la vez observen los tutoriales en Youtube que les proporciono también (liga al primer video (5), los demás aparecen listados a la derecha del cuadro de reproducción de Youtube)
A mí se me hizo tan familiar como C, pero como les platico, al verlo por el lado de la programación orientada a objetos es algo completamente nuevo pero además con mucho potencial y camino por delante. Objective-C es uno de los lenguajes que mayor crecimiento han tenido en estos últimos años, lamentablemente no está muy difundido fuera del mundo de Apple (6), lo que le resta algo de alcance.
En Mac OS X se incluye un IDE llamado XCODE (7) suministrado gratuitamente por Apple Inc. El compilador GNU GCC (8) incluye la posibilidad de compilar archivos escritos en Objective-C (*.m), pero también se puede utilizar EMACS como lo hemos estado utilizando hasta ahora e instalar GCC en Ubuntu. (La ventaja del IDE es que contiene opciones de autocompletado de funciones por lo que es más fácil, EMACS no lo incluye lo que nos obliga a aprendernos los nombres de las numerosas funciones).
Mi recomendación es que si tienen la posibilidad se avienten a aprender este lenguaje, como les platico, tiene mucho potencial y un muy amplio campo de desarrollo, en la actualidad las aplicaciones para iPad – iPhone están muy de moda así que tenemos mucha tela de donde cortar.
EJEMPLO EN OBJECTIVE C
#import
//creamos un objeto llamada Person, con las variables age y weight
@interface Person: NSObject {
int age;
int weight;
}
-(void) print;
-(void) setAge: (int) a;
-(void) setWeight: (int) w;
@end
//Aqui iniciamos la implementacion de los metodos
@implementation Person
-(void) print {
NSLog(@"I am %i years old and weight %i pounds", age, weight);
}
-(void) setAge: (int) a {
age = a;
}
-(void) setWeight: (int) w {
weight = w;
}@end
// Funcion principal, iniciamos el objeto Person
// Le damos un nombre, separamos un poco de memoria en sistema,
// asignamos valores de edad y peso, despues llamamos a Print
// para mostrar en pantalla los datos, retiramos el objeto de
// memoria, vaciamos la memoria, cerramos la aplicacion.
int main (int argc, char *agrV[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Person *bucky;
bucky = [Person alloc];
bucky = [bucky init];
[bucky setAge: 23];
[bucky setWeight: 350];
[bucky print];
[bucky release];
[pool drain];
return 0;
}
El codigo lo que hace es generar un objeto persona, que tiene las variables edad y peso. Por medio de la implementacion de metodos llegaremos a la impresion de una linea de informacion que nos proporciona la edad y el peso que asignemos a las variables age y weight, aunque se ve un poco rudimentario nos ayuda a entender la estructura de Objective-C, por ello casi no inclui fuciones parecidas a C, porque de querer implementar este codigo cualquiera de nosotros lo pudiera hacer en C.
Laboratorio de Lenguajes de Programacion - Semana 1 - Puntos extra
La compañera Carmen me gano XD, pero yo encontre un pequeño PDF donde se da una pequeña Introduccion a EMACS, esta muy bien explicado y espero que a cada uno le pueda servir
Se incluye tambien la Tarjeta de Referencia de EMACS
Un listado de los comandos Bash de la Terminal y una vez dentro de la direccion si se quita el /bash/ entraran a un listado de otros sistemas operativos donde tambien se pueden ver los comandos de cada S.O.
LINKS en mis Recursos en la SIDEBAR derecha
Que tal compañeros, bueno aqui les traigo un pequeño resumen sobre lenguajes ensambladores (lo que he entendido con lo que he estado investigando)
Assembly (es el nombre del lenguaje por lo que no podemos traducirlo) es un lenguaje que trabaja intimamente con nuestras maquinas, es decir, para poder escribir Assembly hay que conocer practicamente la arquitectura del procesador para el cual programaremos, pero no se confien porque muchas veces hay que reescribir un codigo Assembly si queremos implementarlo en otra maquina aunque esta otra tenga el mismo procesador que la primera.
Son lenguajes mas rapidos y eficientes puesto que la maquina los entiende mas facilmente, pero para nosotros son mas dificles de entender porque al contrario de un lenguaje de alto nivel Assembly casi no contiene palabras o funciones entendibles para nosotros.
Ustedes diran -Bueno, eso ya lo leimos pero aun no entendemos que es un assembly-
Yo tampoco, necesitaria leer un poco mas e inclusive practicar para entender mas, les sigo contando.
Basicamente un Assembly trabaja con numeros binarios, pero tambien son utilizados numeros hexadecimales, ademas de utilizar un set de instrucciones que vienen por default en cada CPU. La maquina asigna y mueve registros dentro de la memoria una y otra vez (bloques o direcciones de memoria), y aplica un poco de logica para manipular estos registros, es decir, (los que ya llevaron Mate discretas y los que apenas la estamos llevando) la maquina trabaja con operadores como AND, OR, NOT, XOR, etc... para lograr asi una operacion aritmetica (esto viene siendo como asignar una variable en un lenguaje de alto nivel, darle un valor, despues asignar una accion u operacion).
Como pueden ver la maquina solo aplica logica para trabajar, es por eso que los assembly son mas rapidos, porque trabajamos al nivel de lo que la maquina entiende nativamente, como el principio de los bulbos, ON y OFF, 1 y 0, esto es la base de la computacion; una persona que maneja Assembly pienso debe ser mejor pagada, aunque hay ciertos inconvenientes: es mas probable cometer errores sobretodo en la lógica del programa, ademas de que cada arquitectura de CPU es diferente por lo que cada Assembly puede ser diferente.
Seguire leyendo más y tratare de explicarlo de una manera más sencilla, pueden replicar, debatir, regañar
Como estan compañeros, este blog apartir de ahora sera referente a la materia de Lenguajes de Programacion que imparte la DR. Elisa Shaeffer en la FIME.
Como pueden ver debajo el motivo anterior de este blog estuvo enfocado a JAVA (posiblemente encuentren algo que les ayude).
Espero y les guste, espero tambien poder ayudarlos, aclarar dudas, etc, etc, etc
Tambien estare publicando en la SIDEBAR a la derecha algunos links interesantes
^_^
PD: Tratare de evitar links de Wikipedia ya que supongo es el primer lugar en el que habemos de buscar algo, pero agregare links de otros recursos que encuentre y que complementen lo leido en wiki.