Proyectos en CarlosPes.com

Voy despacio, no tengo mucho tiempo para desarrollar contenidos, pero, poco a poco, estoy incorporando nuevos apartados a mi web CarlosPes.com.

Así pues, muy pronto añadiré dos nuevos cursos de programación: de Pascal y de COBOL. Al menos, esas son mis pretensiones. Sé que el curso de lenguaje C no está completo, ni el de algoritmos tampoco, pero, quiero diversificar y ampliar.

Por supuesto, no me olvido del JAVA y otros lenguajes, pero, tiempo al tiempo. También admito sugerencias.

Recuerdo cuando empecé a desarrollar mi Web, tan solo hace poco más de un año y, desde entonces, ya voy por la versión 29. Primero sólo estaba la sección "Principal" y "Acerca de", más tarde añadí la sección de "Recursos" y finalmente la de "Sintaxis". Además, en este tiempo he cambiado el diseño varias veces y, muy pronto, le voy a dar un pequeño retoque. En cuanto al logotipo, me pasé varios días diseñándolo y, al final, me quedé con la versión 11.

A todo esto, quiero decir que tengo bastantes ideas en el cajón y es el tiempo quien determina cuando van saliendo a la luz. Me gustaría que, en este sentido, las cosas fuesen "pensado y hecho", pero lo cierto es que hay que trabajarlas mucho. Así que, paciencia hay que tener.

Test 11.5 EDC lenguaje C

Respecto al siguiente programa (test_11_05.c):

#include <stdio.h>
int main()
{
...printf( "Pregunta 17" /* comentario );
...return 0;
}

¿Cuál es VERDADERA?

A) La salida por pantalla es: Pregunta 17
B) La salida por pantalla es: Pregunta 17 /* comentario
C) El código fuente no es correcto sitácticamente.
D) Se produce un error de ejecución.
E) Ninguna de las anteriores.

Ver solución

Herramientas de Google para Webmasters

Hoy me he llevado la grata sorpresa de que al buscar por la cadena de búsqueda "lenguaje C" en Google, aparece un enlace hacia mi Curso de lenguaje C en tercera posición:

Búsqueda de -lenguaje C- en Google

Recuerdo que, al principio, el enlace aparecía en la posición 298 y, poco a poco, ha ido subiendo, al mismo tiempo que otras de mis páginas Web. También es cierto que la posición de una página web puede oscilar, subir o bajar, dependiendo de distintos factores. Por lo que siempre hay que estar trabajando en ello.

Todo esto lo he podido ir observando por medio de las Herramientas para Webmasters de Google, son gratuitas y, si os registráis, podréis consultar, entre otras cosas, las consultas de búsquedas más frecuentes en Google que han llevado a los usuarios a vuestras páginas Web y las posiciones de dichas páginas en las búsquedas.

Utilizo las herramientas de Google para Webmasters desde que empecé a hacer mis páginas Web y me han sido de gran utilidad, os las recomiendo.

Technorati

Me acabo de inscribir en Technorati. Podéis ver mi perfil en:

Technorati Profile

Test 11.4 EDC lenguaje C

Respecto al siguiente programa (test_11_04.c):

#include <stdio.h>
int main()
{
...printf( "Pregunta 16" /* comentario */ );
...return 0;
}

¿Cuál es VERDADERA?

A) La salida por pantalla es: Pregunta 16
B) La salida por pantalla es: Pregunta 16 /* comentario */
C) Se produce un error de ejecución.
D) El código fuente no es correcto sintácticamente.
E) Ninguna de las anteriores.

Ver solución

Contador de visitas y estadísticas

Ayer añadí un contador de visitas al blog en statcounter.com. Me he decidido por él, ya que, entre otras características importantes, es gratuito, no añade publicidad y puedes hacerlo invisible.

Las instrucciones están en inglés, pero, echándole un vistazo, me dió muy buena impresión.

Instrucciones de salto en pseudocódigo

Desde hoy, podéis acceder a un nuevo apartado que he añadido al Curso de Diseño de Algoritmos acerca de las instrucciones de control de salto:

11. Instrucciones de control de salto
11.1 Instrucción interrumpir
11.2 Instrucción continuar
11.3 Instrucción ir_a
11.4 Instrucción volver
11.5 Ventajas de no usar las instrucciones de salto

Todos los contenidos los he extraído del libro Domine la programación en lenguaje C, que, como ya sabéis, estoy en proceso de edición.

Test 11.3 EDC lenguaje C

Respecto al siguiente programa (test_11_03.c):

#include <stdio.h>
int main()
{
...printf( "Pregunta 15 /* comentario */" );
...return 0;
}

¿Cuál es VERDADERA?

A) La salida por pantalla es: Pregunta 15
B) La salida por pantalla es: Pregunta 15 /* comentario */
C) El código fuente no es correcto sintácticamente.
D) Se produce un error de ejecución.
E) Ninguna de las anteriores.

Ver solución

Agradecimientos a mis lectores

Quiero agradecer a todos aquellos que me escribís felicitándome por el libro Empezar de cero a programar en lenguaje C y preguntándome sobre cómo y dónde comprarlo.

Sin ir más lejos, antes de ayer me escribió Carola, natural de Perú y estudiante en la Leibniz Universidad de Hannover, con su permiso diré que me aminó mucho saber de su interés por comprar un ejemplar de mi libro. De hecho, después, estuve escribiendo mucho más motivado en el siguiente libro de lenguaje C que tengo entre manos.

Siempre es agradable recibir mensajes de ese tipo y, por ello, quiero dar las gracias a todos los que me habéis escrito desde España, Argentina, México, Colombia, Estados Unidos, Venezuela, etc.

Test 11.2 EDC lenguaje C

Respecto al siguiente programa (test_11_02.c):

#include <stdio.h>
#define UNO 1, DOS 2
int main()
{
...printf( "%.1f", UNO / DOS );
...return 0;
}

¿Cuál es VERDADERA?

A) La salida por pantalla es: 5.0
B) La salida por pantalla es: 5.1
C) La salida por pantalla es: 0.5
D) El programa no se puede ejecutar.
E) Ninguna de las anteriores.

Ver solución

Blog enlazado en

Para dar a conocer el blog, es fundamental estar enlazado desde otras Webs. Por lo que, poco a poco, iré añadiendo nuevas Webs (que me enlazan) en esta entrada:

- elGuille


- Planeta Educativo


- The House of Blogs

Libros en bibliotecas

Ya están disponibles varios ejemplares que doné del libro Empezar de cero a programar en lenguaje C en los catálogos de la Universidad Politécnica de Madrid y de la Universidad Politécnica de Cataluña.

Además de los disponibles en la Universidad Politécnica de Valencia.

Test 11.1 EDC lenguaje C

Ahí va la primera pregunta del Test de Autoevaluación del capítulo 11 "Introducción a la codificación en C" del libro Empezar de cero a programar en lenguaje C:

Respecto a las fases de puesta a punto de un programa en C, ¿cuál es VERDADERA?

A) El enlazador genera el código fuente de un programa.
B) El preprocesador guarda el código objeto de un programa en un archivo.
C) El compilador une el código objeto de las funciones que se utilizan en un programa con el código objeto del programa en sí.
D) B y C son CORRECTAS.
E) Ninguna de las anteriores.

Ver solución

¿Cómo aprender a programar?

Esta es una buena pregunta que está presente en muchos foros de Internet, ya que, muchos iniciados se la hacen. Ahora bien, la programación se puede aplicar para muchas cosas. Por lo que, quien desee aprender a programar, previamente debería preguntarse para qué quiere aprender.

Así, por ejemplo, no es lo mismo la programación estructurada que la orientada a objetos, o programar un dispositivo electrónico que programar un videojuego.

En cualquier caso, soy de la opinión de que antes de ponerse a aprender a programar en un lenguaje de programación específico (C, Pascal, JAVA, ...) se debería aprender a diseñar algoritmos y, de esta forma, familiarizarse con elementos básicos de programación, tales como: tipos de datos, variables, constantes, operadores, expresiones, instrucciones...

Una vez consolidados dichos conceptos básicos diseñando algoritmos, el aprendizaje de un lenguaje de programación específico será mucho más fácil.

6 nuevos ejemplares donados a bibliotecas

De nuevo, ayer doné 3 ejemplares del libro Empezar de cero a programar en lenguaje C para la Universidad de Alicante y otros 3 para la Universidad Rey Juan Carlos.

Para mí es muy gratificante realizar estas donaciones, y más todavía si me ocurre como me pasó, también, ayer por la tarde, en la que decidí donar un libro a la biblioteca del barrio en donde vivo, y cual fue mi sorpresa que ya lo habían comprado el pasado mes de abril. Así que, ahora tienen dos ejemplares.

De momento, sólo he realizado donaciones a bilbiotecas españolas, pero, tampoco descarto hacer donaciones a latinoamérica en un futuro, especialmente a Universidades de aquellos países de los que más visitantes tengo (México, Argentina,...) en mi web CarlosPes.com.

18 ejemplares donados a bibliotecas

Ayer envié 6 ejemplares del libro Empezar de cero a programar en lenguaje C a la Universidad Politécnica de Madrid y otros 6 a la Universidad de Sevilla, que junto con otros 6 que envié el pasado miércoles, 31 de octubre, a la Universidad Politécnica de Cataluña, hacen un total de 18.

Así pues, espero que en dos o tres semanas, más o menos, ya estén disponibles en las bibliotecas de dichas universidades.

En cualquier caso, también me he puesto en contacto con otras universidades y pronto haré nuevas donaciones.

Presentación del libro en Marcilla

Gracias a todos los compañeros que habéis asistido hoy a la presentación de mi libro Empezar de cero a programar en lenguaje C en la sala de profesores y, en especial a Julia, por organizar el evento. Aquí os dejo una foto del mismo.

Presentación en Marcilla del libro -Empezar de cero a programar en lenguaje C- de Carlos Pes
Por cierto, en la foto también podéis ver a Julia presentando el libro "Fungi. El placer de cocinar con setas" del marido de nuestra compañera Patricia, Carlos Ruíz de Vergara. Son 50 recetas de cocina muy sencillas y apetitosas, os lo recomiendo.

Donación de libros

El año pasado, por estas fechas, doné a la biblioteca de la Universidad Politécnica de Valencia (donde yo estudié) varios ejemplares del libro Empezar de cero a programar en lenguaje C. Podéis consultar en la siguiente dirección:

http://www.upv.es/bib/ Encontraréis mi libro fácilmente si buscáis por autor e introduciendo mi nombre completo: Carlos Javier Pes Rivas

De vez en cuando, ojeo la disponibilidad de los libros y, casi siempre, observo que hay más de un libro prestado. Así pues, esto me ha animado a realizar nuevas donaciones este año.

Por lo que, ya me he puesto en contacto con varias universidades y pronto enviaré los libros. En cuanto lo haga os haré saber de qué universidades se trata.

¿Qué es un ordinograma?

En programación, antes de escribir un programa en un lenguaje de programación específico (C, Pascal, ...), es conveniente diseñar un algoritmo para definir los pasos o acciones que debe llevar a cabo el programa en cuestión.

Pues bien, dicho algoritmo se suele diseñar utilizando pseudocódigo o, también, un ordinograma. El pseudocódigo es un lenguaje de programación intermedio entre el lenguaje natural y cualquier lenguaje de programación específico. Sin embargo, mediante un ordinograma se puede representar el mismo algoritmo, pero, de manera gráfica.

Para saber más acerca de cómo se diseña un algoritmo utilizando ordinogramas y en comparación con el pseudocódigo, podéis visitar los siguientes enlaces de mi Web:

Llamadas a subalgoritmos - Capítulo 2

Terminado el capítulo 2 del libro siguiente a Empezar de cero a programar en lenguaje C, puedo adelantar el índice del mismo:

2.1 INTRODUCCIÓN
2.2 PROBLEMAS Y SUBPROBLEMAS
2.3 SUBPROGRAMAS
...2.3.1 Procedimientos
...2.3.2 Declaraciones locales y globales
......2.3.2.1 Declaración de subprogramas
...2.3.3 Parámetros
......2.3.3.1 Parámetros formales
......2.3.3.2 Parámetros actuales
......2.3.3.3 Paso por valor
......2.3.3.4 Paso por referencia
...2.3.4 Funciones
...2.3.5 Representación mediante diagramas de flujo
...2.3.6 Codificación en lenguaje C
2.4 RECURSIVIDAD

En el capítulo explico qué son los subprogramas (procedimientos y funciones) y cómo podemos diseñar subalgoritmos en pseudocódigo y con ordinogramas. Todo ello mediante ejemplos y sus correspondientes trazas.

Hay que saber que en lenguaje C todo son funciones. No obstante, los procedimientos se pueden simular con funciones de tipo void en las que no será necesario hacer uso de la instrucción return, ya que, dichas funciones no devolverán ningún valor.

Por otra parte, en lenguaje C no existe el paso de parámetros por referencia, sino que, todos son por valor, de forma que, para simular el paso de parámetros por referencia haremos uso de punteros (también llamados apuntadores).

En el capítulo también se muestra de que forma se ve afectada la memoria del ordenador cuando se hace una llamada a una función, para así poder comprender mejor el paso de parámetros y el uso de la pila.

Instrucciones de control de salto - Capítulo 1

"En programación estructurada, no se considera una buena práctica hacer uso de las instrucciones de control de salto, pero, ¿por qué entonces, casi todos los lenguajes de programación permiten codificarlas?"

De esta forma comienza el capítulo 1 del libro siguiente a Empezar de cero a programar en lenguaje C. El capítulo ya lo he terminado de escribir y, por ahora, puedo adelantaros el índice de contenidos del mismo:

1.1 INTRODUCCIÓN
1.2 INSTRUCCIONES DE SALTO
...1.2.1 interrumpir
......1.2.1.1 La instrucción break
...1.2.2 continuar
......1.2.2.1 La instrucción continue
...1.2.3 ir_a
......1.2.3.1 La instrucción goto
...1.2.4 volver
......1.2.4.1 La instrucción return
1.3 VENTAJAS DE NO USAR LAS INSTRUCCIONES DE SALTO

En el capítulo se presentan las instrucciones de control de salto en pseudocódigo (interrumpir, continuar, ir_a y volver) y en C (break, continue, goto y return), así como, la conveniencia de no hacer uso de ellas, en especial de la instrucción goto.

Además, se presentan ejemplos de cómo se pueden reescribir los algoritmos (programas) que las usan. De todas formas, también hay que tener en cuenta que, en ocasiones, es inevitable usarlas. Por ejemplo, la instrucción break se emplea en la sintaxis de la instrucción switch.

¿Qué es el pseudocódigo CEE?

Se me ocurrió llamar así al pseudocódigo que utilizo en el libro EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C, ya que, la mayoría de palabras utilizadas en dicho pseudocódigo son una traducción del inglés al castellano y, aunque la correspondencia entre un algoritmo escrito en pseudocódigo CEE (C En Español) y su codificación al C no es del 100%, sí he pretendido que sea lo más didáctico y entendible posible para el estudiante.

De modo que, por ejemplo, el siguiente algoritmo, que sirve para mostrar por pantalla los primeros diez números naturales:

algoritmo Numeros_del_1_al_10
variables
...entero contador
inicio
...contador 1
...hacer
......escribir( contador )
......contador contador + 1
...mientras ( contador <= 10 )
fin

Se puede codificar en C de la siguiente manera:

#include <stdio.h>

int main()
{
...int contador;

...contador = 1;
...do
...{
......printf( "%d ", contador );
......contador++;
...} while ( contador <= 10 );
...return 0;
}

En donde, a primera vista, se pueden observar las siguientes correspondencias:
  • Para la instrucción de asignación: en pseudocódigo (←) y en C (=).
  • Para una instrucción de salida: en pseudocódigo (escribir) y en C (printf).
  • Para la instrucción repetitiva del ejemplo: en pseudocódigo (hacer..mientras) y en C (do...while). Nótese que, por ejemplo, en Pascal se escribe (repeat...until), es decir, (repetir...hasta).
En cualquier caso, aunque he pretendido que el pseudocódigo CEE sirva, especialmente, para facilitar su posterior codificación al lenguaje C, también he querido que no implique mucha dificultad su codificación a otros lenguajes, como Pascal. De hecho, ya estoy pensando en codificar todos los ejemplos y ejercicios del libro en dicho lenguaje.

Además, en el pseudocódigo CEE también he incluido otros aspectos del lenguaje C, como son: las mismas reglas de sintaxis para escribir los identificadores o la misma prioridad de operadores.

Empezar de cero a programar en lenguaje C

Hace poco más de un año (julio de 2006) que publiqué el libro y, haciendo balance, estoy bastante contento con la aceptación que ha tenido, ya que, a pesar de las dificultades que tuve en su momento para editarlo, de vez en cuando recibo emails felicitándome y preguntándome para cuándo terminaré el siguiente libro, cosa que, evidentemente, me anima a seguir escribiendo. Por lo que, desde aquí, quiero agradecer públicamente las felicitaciones recibidas y, en cuanto al siguiente libro, me gustaría tenerlo terminado para junio de 2008 como muy tarde. Actualmente, ya he escrito dos capítulos:

1. Instrucciones de control de salto
2. Llamadas a subalgoritmos (subprogramas)

Y estoy preparando el tercero, en donde explico los arrays.

¡Bienvenido a mi blog!

Quiero dar la bienvenida a todos aquellos que os animéis a visitar mi blog. Esto es sólo el principio, de forma que, si queréis saber algo más de mí, podéis visitar el siguiente enlace:

www.carlospes.com/carlospes.php

Saludos a todos.

Blog de Carlos Pes