Publicidad

viernes, 12 de noviembre de 2010

[Algunos enlaces útiles]

Material de bibliotecas: http://goo.gl/uov2n
Material para aprender a programar en shell: http://goo.gl/pj9KD
Diapositivas de repaso: http://goo.gl/Q30UB
Código(búsqueda, API's, Android, etc.): http://code.google.com/




martes, 9 de noviembre de 2010

Práctica de Utilerías

Descarga el material de utilerías.


Haz una evidencia de lectura (cuadro sinóptico, mapa mental, mapa de araña, etc.)


Haz la siguiente investigación en Internet:


Busca en qué consiste:

Dist-utils

bin-utils

shell-utils

file-utils

core-utils

diff-utils

Anota en tu libreta cuál o cuáles son los comandos que forman parte de cada una de estas utils y una descripción breve, así como la sintaxis de cada uno.

Diapositivas: Depuración

Depuradores

Depuración con GDB

#include 
#include 

char* Mstrupr(char* szCad);

int main()
{
char szCadena[] = "Esto es una cadena";

printf("%s\n", Mstrupr(szCadena));
printf("%s\n", Mstrupr("Esto es otra cadena"));

return 0;
}

char* Mstrupr(char* szCad)
{
int i;

for (i=0; szCad[i]; i++)
szCad[i] = toupper(szCad[i]);

return szCad;
}



Compilamos y ...
Según el compilador no hay error alguno en el código, pero al ejecutar, esto es lo que sucede:
$ ./sample
ESTO ES UNA CADENA
Segmentation Fault (core dumped)
$
Para localizar el problema utilizamos gdb con el programa del siguiente modo:
$ gdb sample
.
.
(gdb) break main
Breakpoint 1 at 0x8048348: file sample.c, line 8
(gdb) run
Breakpoint 1, main() at sample.c:8
8     char szCadena[] = "Esto es una cadena";
(gdb) next
10    printf("%s\n", Mstrupr(szCadena));
(gdb) next
ESTO ES UNA CADENA
12    printf("%s\n", Mstrupr("Esto es otra cadena"));
(gdb) step
Mstrupr(szCad=0x804856f "Esto es otra cadena") at sample.c:17
21    for (i=0; szCad[i]; i++)
(gdb) next
22       szCad[i] = toupper(szCad[i]);
(gdb) next
Program received signal SIGSEGV, Segmentation fault
0x80484e1 in Mstrupr (szCad=0x08048e1 in Mstrupr (szCad=0x0804856f
"Esto es otra cadena") at sample.c:19
22       szCad[i] = toupper(szCad[i]);
(quit) next
Program terminated with signal SIGSEGV, Segmentation fault
The program no longer exists
(gdb) quit
$
Como vemos, el programa recibe la señal SIGSEGV cuyo significado es "fallo de segmentación" o "violación de segmento", eso quiere decir que nuestro programa ha intentado acceder a memoria que NO       le ha sido asignada por el sistema operativo.
El punto en el que el programa es abortado corresponde con la asignación:
szCad[i] = toupper(szCad[i]);
que corresponde a la función Mstrupr( ), es decir, el valor a la izquierda de la asignación es una localización de memoria que no podemos modificar. Dicha posición de memoria es parte de la cadena "Esto es otra cadena", concretamente el primer carácter.
Pero... ¿por qué no falló la función la primera vez que se llamó y sí la segunda? La respuesta es evidente a la vista del código: En la primera llamada, el argumento es una cadena estática, mientras que en la segunda llamada el argumento es un literal, y como es lógico un literal no puede modificarse porque no es una variable.
De modo que, para solucionar el problema debemos almacenar el literal en otra cadena igual que se hace con la primera. El código modificado quedaría como sigue (la función Mstrupr( ) no sufre ninguna modificación).
int main()
{
char szCadena[] = "Esto es una cadena";
char szOtraCadena[] = "Esto es otra cadena";

printf("%s\n", Mstrupr(szCadena));
printf("%s\n", Mstrupr(szOtraCadena));

return 0;
}
Al compilar y ejecutar el nuevo código obtenemos:
$ ./sample
ESTO ES UNA CADENA
ESTO ES OTRA CADENA
$

viernes, 22 de octubre de 2010

Ejercicios

Un webmaster ha detectado que hay un error en las páginas que forman parte del sitio; en el pie de página dice: Pogüered vy y debe decir: Powered by, el problema es que debe editar cada una y el sitio se compone de más de 250 Páginas.

Tú debes crear una macro que haga los cambios en cada uno de los archivos.

Solo hay 2 posibilidades C o M4.

Crear una macro que permita pasar un archivo de texto que contiene pseudocódigo a código en C, el pseudocódigo (palabras, asignaciones, etc.) será definido "al gusto"


Algunas ayudas: Manual M4
Artículo sobre M4

martes, 19 de octubre de 2010

martes, 28 de septiembre de 2010

jueves, 9 de septiembre de 2010

Palabras

-34,2     
12/05/2004     
32.455     
693141592     
Pepito Cuarto
-45    
1990130N    
333,    
91234567    
esto no son cuatro palabras
.5667    
199011N    
3333,3    
963141592    
Esto Son Cuatro Palabras
03/001/2003    
22556871n    
4/3/5    
99/99/99    
hola 25
12.34    
26026    
68888    
PEPito CONejo    
hola adios

Ejercicio

Crea un archivo de texto (expr_reg_1.txt) que contenga las siguientes palabras (una en cada línea):

-34,2 12/05/2004 32.455 693141592 Pepito Cuarto
-45 1990130N 333, 91234567 esto no son cuatro palabras
.5667 199011N 3333,3 963141592 Esto Son Cuatro Palabras
03/001/2003 22556871n 4/3/5 99/99/99 hola 25
12.34 26026 68888 PEPito CONejo hola adios

Escribe expresiones regulares de manera que la orden:

grep -opciones expresion_regular expr_reg_1.txt

extraiga únicamente las líneas que sean:

  1. números enteros (positivos o negativos)
  2. números decimales (con una coma como separador decimal)
  3. números decimales (con una coma o un punto como separador decimal)
  4. números de teléfonos (de nueve cifras, que empiecen por 9 o 6)
  5. códigos postales (de cinco cifras, que empiecen como mucho por 5)
  6. DNI (siete u ocho cifras que pueden ir seguidas de una letra)
  7. fechas (dd/mes/año)
  8. palabras en minúsculas sin números
  9. palabras en las que sólo la primera letra esté en mayúscula
  10. tres o cuatro palabras (sin números)

Arquitectura de la máquina virtual de JAVA

Leer el artículo y hacer una evidencia de lectura para el día Martes 14 de septiembre de 2010

martes, 7 de septiembre de 2010

Práctica con grep

Práctica: 

  1. Abre una sesión en GNU/Linux

  2. En tu directorio de trabajo genera un archivo llamado eses que contenga las siguientes lineas (copia identico todo el texto, toma en cuenta mayúsculas, minúsculas y puntuaciones):

    LA sonsa osa Susy a esos osos solo asea.
    La sonsa osa Susy a esos osos solo asea.
    .
    Salas se sale a esa sala, a esa sala se sale Salas, sale a esa sala Salas.
    SALAS SE SALE A ESA SALA, A ESA SALA SE SALE SALAS
    A esos osos la osa Susy solo asea
    .SOLO ASEA LA SONZA OSA SUSY A ESOS OSOS
    Esto es el uso de las eses, ssss.
    FIN

  3. Utilizando el comando grep y las espresiones regulares visualiza las líneas que contienen solo tres caracteres del archivo  eses.

  4. Visualiza las líneas del archivo eses que contengan tres o más eses seguidas.

  5. Muestra las líneas del archivo eses que comienzan por punto.

  6. Ahora muestra las líneas que no comienzan por punto del mismo archivo

  7. Visualiza las líneas del mismo archivo que terminan con caracter S.

  8. Muestra las líneas que terminen con  a del mismo archivo.

  9. Muestra las líneas que contienen como secuencia de caracteres una o más letras mayúslas del archivo eses.

  10. Despliega las palabras que contienen la secuencia de caracteres en la que tenemos en primer lugar una O, después dos caracteres cualesquiera y por último una S, no importando si son mayúsculas o minúsculas.

viernes, 27 de agosto de 2010

Atención: Programa de Movilidad Nacional

Universidad Veracruzana

Departamento de Intercambio y Colaboración Académica

 

Les hace una atenta invitación a consultar la convocatoria abierta del Programa de Movilidad Nacional de Estudiantes

 

 

Dirigida a

 

Estudiantes de Licenciatura, Maestría y Doctorado

 

Descripción

 

La Movilidad Nacional es un programa que permite a los estudiantes cursar un periodo escolar en una Institución de Educación Superior (IES) diferente dentro del país y que sus estudios sean reconocidos a su egreso, además de facilitar la realización de estancias de investigación, trabajos de titulación y estudios de posgrado.

 

            Requisitos mínimos:

 

Es un requisito primordial para poder participar dentro del Programa de Movilidad contar con promedio mínimo de 8.5 y haber cursado el 60% de los créditos al momento de realizar los trámites incluidos el Área de Formación Básica General.

 

            Modalidad:

           

·         Semestre de Licenciatura

·         Semestre de Maestría

·         Semestre de Doctorado

·         Trabajo de Titulación de Licenciatura

·         Estancia de Investigación en Maestría

·         Estancia de Investigación en Doctorado

 

Fecha limite

 

La convocatoria permanecerá abierta a partir del 23 de Agosto y cerrar para el Programa de ECOES: 14 de Septiembre y para el Programa de ANUIES: aun sin fecha de cierre. Los estudiantes que deseen participar, deberán entregar la documentación directamente al Departamento de Intercambio y Colaboración Académica con la Lic. Gabriela Ramírez Jácome, Coordinadora del Programa.

 

Platica Informativa

 

Lunes 30 de Agosto de 11:00 - 14:00 hrs en la sala 1 de Videoconferencias de la USBI Xalapa, con transmisión a las regiones de Veracruz, Poza Rica, Coatzacoalcos y Vicerrectoria Orizaba.

 

 

Mayores Informes

 

Departamento de Intercambio y Colaboración Académica
Universidad Veracruzana
Juárez 55 Col. Centro  Xalapa, Ver. México C.P. 91000
52 (228) 8421700  Ext. 18400 Fax 18402 Directo 8171316

http://www.uv.mx/dgda/intercambio/movilidad/nacional.html

cpn@uv.mx

jueves, 26 de agosto de 2010

Ejercicio con Flex

Capturar el archivo y generar el analizador de léxico.

Actividad del día: 260810

Leer el archivo "tema2.pdf" de las páginas 35 a 42 y 45 a 52 diseñar un mapa de araña, un mapa mental o un esquema conceptual (puedes ocupar el programa Dia portable, a continuación está la liga para su descarga: http://portableapps.com/apps/office/dia_portable) y contestar las siguientes preguntas:

  1. Menciona por lo menos 4 diferentes tipos de componentes léxicos
  2. Con qué otro nombre se le conoce a un analizador de léxico
  3. Define qué es un patrón
  4. Define qué es un lexema
  5. Define qué es un token
  6. A qué se le conoce como principio de máxima longitud
  7. Qué es un error léxico
  8. Cuál es la función del analizador léxico
Al terminar enviar el diagrama en formato de imagen: .gif, .jpg, .png
Nota: El cuestionario se revisará en la libreta.