Sesión 25 - Curso C Marcilla 2008

Con esta sesión terminamos el Curso. Así, en esta última sesión, vamos a realizar una pequella mejora en nuestro programa, que consiste en contemplar el hecho de que, cuando el usuario quiera ejecutar la opción 2 ó 3 del menú, en el caso de que, previamente, no se haya ejecutado la opción 1, se muestre por pantalla:

"Antes de ejecutar esta opción debe realizar el test."

El curso se ha terminado, pero, como ya anuncié hace algún tiempo, tengo pensado desarrollar, con ficheros y más opciones, el proyecto que hemos hecho en estas últimas sesiones. Por lo que, más adelante os proporcionaré el código fuente de dicho programa.

Quiero agradecer a todos mis alumnos y, al mismo tiempo, compañeros (Jesús, Abel, Gabriela, Patricia, Luis Alberto, Cristina, Ángel y Belén) el gran detalle que han tenido al obsequiarme con el regalo que me han hecho :)

Para mí, ha sido un verdadero placer impartir este curso y, a la vez, compartirlo vía online, a través de mi blog. Así pues, es posible que pronto me plantee esta misma metodología para nuevos cursos.

Sesión 24 - Curso C Marcilla 2008

Continuamos modificando el código fuente del ejemplo 26 del capítulo 11 del libro Empezar de cero a programar en lenguaje C.

En esta ocasión, escribimos el código necesario para realizar la tercera opción del menú:

3. Comprobar qué preguntas se han fallado.

Imáginemos, por ejemplo, que las respuestas correctas para un test de 4 preguntas son:

1B, 2B, 3B, 4A

Y que las respuestas dadas han sido:

1B, 2B, 3C, 4B

En pantalla se mostrará, algo parecido a:

La respuesta a la pregunta 1 es CORRECTA.
La respuesta a la pregunta 2 es CORRECTA.
La respuesta a la pretunta 3 es INCORRECTA.
Ha respondido C y la correcta es B.
La respuesta a la pretunta 4 es INCORRECTA.
Ha respondido B y la correcta es A.

Test 11.23 EDC lenguaje C

Respecto al siguiente programa (test_11_23.c):

#include <stdio.h>
int main()
{
...int x = 9, y, z = 2;
...x =+ 4;
...y = x / z;
...printf( "%d%.2f%d", x, ( float ) y, z );
...return 0;
}

¿Cuál es VERDADERA?

A) La salida por pantalla es: 42.002
B) La salida por pantalla es: 136.002
C) La salida por pantalla es: 136.502
D) El código fuente no es correcto sintácticamente.
E) Ninguna de las anteriores.

Ver solución

La instrucción continue en lenguaje C

Ya he subido el subapartado 4.2 Instrucción continue del Curso de lenguaje C.

He tardado más de lo que pensaba, pero, al fin hoy lo he hecho :)

Nuevo Blog en BuscoAfiliados

Hace una semana creé un nuevo blog en BuscoAfiliados. Hace ya algún tiempo que os hablé de esta Web en:

http://carlospes.blogspot.com/2008/02/buscoafiliadoscom.html

Se trata de una comunidad en la que puedes compartir experiencias, preguntar o responder acerca de cómo se puede ganar dinero en Internet.

¡Espero que os sea de utilidad!

Sesión 23 - Curso C Marcilla 2008

Continuamos modificando el código fuente del ejemplo 26 del capítulo 11 del libro Empezar de cero a programar en lenguaje C.

Así, escribimos el código necesario para realizar la segunda opción del menú:

2. Ver resultados del Test (aciertos/fallos).

En pantalla se verá, por ejemplo:

Aciertos: 7 - Fallos: 3

Sesión 22 - Curso C Marcilla 2008

En esta sesión empezamos a modificar el código fuente del ejemplo 26 del capítulo 11 del libro Empezar de cero a programar en lenguaje C.

De forma que, cambiamos las opciones del Menú por las siguientes:

1. Responder a las preguntas del Test.
2. Ver resultados del Test (aciertos/fallos).
3. Comprobar qué preguntas se han fallado.
4. Salir

Y, por otra parte, escribirmos el código necesario para realizar la opción 1. En pantalla veremos algo parecido a:

Pregunta 1. ¿Cuál es ....?
A) Respuesta A
B) Respuesta B
C) Respuesta C
Teclee opción (A/B/C):

Pregunta 2. ¿Cuál es ....?
A) Respuesta A
B) Respuesta B
C) Respuesta C
Teclee opción (A/B/C):

...

Pregunta 10. ¿Cuál es ....?
A) Respuesta A
B) Respuesta B
C) Respuesta C
Teclee opción (A/B/C):

Obviamente, tenemos que inventarnos las preguntas.

Test 11.22 EDC lenguaje C

Respecto a la siguiente instrucción:

strcpy( cadena1, cadena2 );

¿Cuál es VERDADERA?

A) Copia cadena1 en cadena2.
B) strcpy es una palabra reservada del lenguaje C.
C) Para poder utilizar strcpy se debe escribir: #include <stdio.h>
D) B y C son CORRECTAS.
E) Ninguna de las anteriores.

Ver solución

Nueva errata detectada

De nuevo Elena ha descubierto una errata en mi Web, está vez en el ejercicio 1 de Operadores y Expresiones de Diseño de Algoritmos.

La errata (ya corregida) estaba en el apartado 3), ya que, la evaluación de la expresión de este apartado da verdadero y yo había puesto falso.

Así pues, gracias de nuevo a Elena.

Sesión 21 - Curso C Marcilla 2008

Para el proyecto vamos a necesitar un menú de opciones, por lo que, en esta sesión estudiamos el código de los ejemplos 24, 25 y 26 del capítulo 11 del libro Empezar de cero a programar en lenguaje C.

De los tres ejemplos, en la siguiente sesión vamos a utilizar el último de ellos para nuestro proyecto. En dicho ejemplo se hace uso de un filtro para recoger la opción deseada por el usuario en una variable de tipo carácter, en vez de tipo entero.

Si tenéis dudas acerca del código fuente, no dudéis en preguntarme.

Fijaros que no es necesario que tecleéis el código, ya que, lo podéis descargar pinchando abajo donde pone Fichero con extensión (.c) en ejemplo_13_26.c

Acerca de las "erratas"

Hoy tengo que agradecer a Elena, profesora de informática, el avisarme de una errata en el ejercicio 2 de Operadores y Expresiones de Diseño de Algoritmos.

En concreto, la errata está en el enunciado, ya que, en vez de:

real i = 6E3

debe ser:

real i = 6E-3 (ya lo he corregido en la web)

de esta forma, de la expresión:

G ** ALBERTO

sustituyendo valores (-3 ** 0), obtendremos 1, ya que, cualquier número elevado a cero es 1 y, por tanto, al evaluar:

1 > 0.006

obtendremos VERDADERO, en vez de FALSO si evaluasemos:

1 > 6000

La razón de “inventarme” este ejemplo fue que un error frecuente que he observado en mis alumnos es considerar que ALBERTO vale 1, ya que, es la primera constante de la lista, en vez de 0.

De cometer dicho error, el resultado de evaluar la expresión:

G ** ALBERTO > i

-3 ** 1 > 0.006

-3 > 0.006

será FALSO.

Fijaros que esto es así para el número 6E-3 (0.006), pero, para el número 6E3, tanto de la expresión:

-3 ** 0 > 6000 ( cometiendo error)

como de:

-3 ** 1 > 6000

se obtiene FALSO. Por tanto, no tendría sentido haber puesto este ejercicio.

Y eso es todo, no pensaba que una errata me iba a dar para escribir tanto, pero, me he puesto a escribir sobre ello y me he enrollado un poco ;) Sorry

En cualquier caso, doy de nuevo las gracias a Elena por avisarme de la errata, ya que, al corregirla, le evitaremos muchos quebraderos de cabeza a otros.

Para mí es una especie de obsesión el corregir las erratas cuanto antes, una vez las descubro o me las comunicáis. Además, acabo de decidir crear una nueva etiqueta "erratas" en el blog, para comentar las que vayamos detectando, tanto en la Web como en mis libros.

También podéis consultar las erratas del libro "Empezar de cero a programar en lenguaje C". Recuerdo que la semana antes de llevar el libro a la imprenta lo leí cuatro veces seguidas de principio a fin y, aunque, en cada pasada corregí un gran número de ellas (de memoria creo que fueron algo así como 70, 30, 10 y 4), siempre se escapan algunas erratas. Y eso que cada página está leída y requeteleída, pero nada. De hecho, a veces me da la impresión de que no leo, sino que al releer tanto, es como si viese lo que tengo en la mente y no lo que realmente he escrito.

Me sabe muy mal que alguien pierda tiempo intentando enteder algo que he escrito y tiene "errata", por lo que, lo dicho, si encontráis alguna, os agradezco de antemano que me lo hagáis saber.

Al final me he enrollado un poco más... Sorry, Sorry,... ¡ya está!

La satisfacción de enseñar

Como profesor es para mí una gran satisfacción cuando mis alumnos aprenden lo que les intento enseñar. A veces se consigue y, otras veces no, pero cuando esto sucede me siento recompensado. Y más todavía cuando recibo felicitaciones por mi trabajo. De hecho, esta entrada la escribo motivado por un correo electrónico que acabo de leer de Daniel M. (estudiante de informática de la UNAM México), en la que me dice:

"...mi vida cambió a partir de que encontré por casualidad tu página."

"...desde que leí tu libro y comprendi cual fácil es, o puede ser, experimentar con un lenguaje tan poderoso como lo es C, partiendo de cuestiones tan elementales."

La verdad es que no tengo mucho tiempo, ya que, con el trabajo y la familia se me va mucho tiempo. Pero, raro es el día que no me quedo dormido delante de la pantalla hasta altas horas de la noche, que es cuando suelo dedicarme a mis libros y proyectos.

Así pues, es para mí una gran satisfacción recibir mensajes de felicitación como el de Daniel y, además, me da nuevas fuerzas para continuar escribiendo los libros que tengo en proyecto.

También quiero que sirva este artículo para motivar a todos los docentes en su trabajo, ya que, es un arduo trabajo, muchas veces poco reconocido. Sin embargo, cuando menos te lo esperas puedes recibir felicitaciones, como me ocurre a mí, esta vez desde México.

¡Ánimo a todos los docentes!

Test 11.21 EDC lenguaje C

En lenguaje C, ¿cuál de las siguientes sentencias es una instrucción de expresión escrita de forma correcta?

A) a =% b = 5 * c;B) pow( a = b, 5 * c );
C) fflush( stdin );
D) A y C son CORRECTAS
E) Ninguna de las anteriores.

Ver solución

Sesión 20 - Curso C Marcilla 2008

Ya de vuelta, después de las vacaciones de Semana Santa, retomamos el curso de iniciación al lenguaje C. Así pues, cumplidos los tres primeros objetivos:
  1. Entender el funcionamiento básico de una computadora.
  2. Conocer los pasos que se tienen que dar para desarrollar un programa.
  3. Aprender a escribir programas "sencillos" en lenguaje C.
ahora, vamos a realizar un pequeño proyecto software. Cada profesor/alumno puede realizar uno diferente tutorizado por mí. No obstante, en las sesiones del blog, voy a ir explicando el desarrollo de un programa que permita al profesor realizar un test de repuestas (A, B, C, D) a sus alumnos. De forma que, el alumno realice el test en el ordenador y se le notifique el número de aciertos y fallos, así como, la respuesta correcta en caso de responder incorrectamente.
Empezamos de cero el proyecto, por lo que, cualquier rezagado puede sumarse, ya que, además, voy a facilitar todo el código fuente del mismo, para que pueda ser modificado o ampliado por cualquiera. De hecho, una ampliación del proyecto (posterior a la finalización del curso) será implementar la aplicación con ficheros, pero, a eso, ya llegaremos con el tiempo, y también os facilitaré dicho código fuente.
Por tanto, esta sesión está dedicada a que cada profesor/alumno piense,... analice,... diseñe... (por encima) qué proyecto quiere hacer y, con mi ayuda, lo "puliremos".
Así que, ánimo a todos los que estáis realizando el curso presencial y/o siguiéndolo a distancia por el blog.