[ Foro de C# ]

Diversos problemillas del curso

19-Feb-2010 19:35
Jess S.
10 Respuestas

¡Hola!
A continuación indico algunas cuestiones o errores que me han surgido durante el estudio de los apuntes.

Párrafo 2.1- ¿Hay un tipo de entero denominado 'char' tal como aparece en la tabla de tipos?

Párrafo 2.2.2- Una entrada por teclado la convertimos en 'float' con 'Convert.ToSingle' y en 'double' con 'Convert.ToDouble'. El 'decimal' es con ¿'Convert.ToDecimal'? Convendría indicarlo.

Párrafo 3.1.2- Después del Ejemplo 11 se dice "En este caso, si el número es 'negativo' ......" y debe decir 'positivo'.

Párrafo 3.1.4- En esta página cuando se le da a 'Siguiente' no pasa a la siguiente página sino que vuelve a la misma.

Párrafo 3.1.5- Aquí se indica, después de explicar lo que significan los operadores 'De modo que podremos escribir cosas como (-Fichero no encontrado)-'. Falta el ejemplo.

A medida que encuentre otras cosillas, las indicaré por lotes.

Saludos.


21-Feb-2010 00:21
Nacho Cabanes (+30)

Gracias, Jesús. Los apunto para corregirlos en la próxima versión, que será pronto, porque quiero proponer algún ejercicio más de ficheros, y añadir un apartado sobre la librería gráfica SDL.


25-Feb-2010 08:00
Jess S.

¡Hola!

Aquí van otras pocas anotaciones:

1.- Ejemplo 22 y otros. Se utiliza Console.Write en vez de Console.Writeline, sin explicar la diferencia entre ambas.

2.- Ejemplo 36. Sobra System en Convert.ToInt32 y en Console.ReadLine().

3.- Ejemplo 37. El primer comentario //2 bloques de 10 datos debe ser //2 bloques de 2 datos. Y, poniéndome un poco tiquismiquis, en los Console.WriteLine quitar la 's' del plural a 'grupos'.

4.- En los Ejercicios del 4.2 Arrays bidimensionales, se piden trabajos con arrays de caracteres sin haber puesto ningún ejemplo, como se hace en los apuntes de 'C' en 5.4.

Saludos.


01-Mar-2010 08:21
Jess S.

¡Hola!
Sigo con el recuento de pequeños deslices.

Ejemplo 41. Creo que tras 'struct fechaNacimiento {....};' se podría omitir el ';'.

En 4.3 'Estructuras o registros' se comienza a usar el sufijo 'f' tras los literales, sin explicación previa. Convendría comentar algo al respecto.

En 4.4.4 Si omito el segundo número en 'Substring' el compilador me da el error 'an argument is missing'.

4.6 Método de Burbuja. En el segundo método entiendo que 'i debe descender de i=n a i=2' y que en vez de 'A[j]' hay que poner 'A[i]'.
   Método de selección directa: al lado del símbolo '<>' pondría (o quizá lo sustituiría por) '!='.

5. Introducción a funciones. Si en esta página pincho en 'Anterior' me voy a '4.5' en vez de a '4.6'.

Si en estos comentarios hay algo en lo que esté equivocado, me lo indican por favor.


05-Mar-2010 09:59
Jess S.

¡Hola!

Apunto algunas cosillas más.

4.4.8. Este número de párrafo está duplicado. A 'Recorriendo con foreach' habría que ponerle el 4.4.9.

4.6. En el Ejemplo en C# denomina a éste como 'ordenar.cs' y en public class como 'Ejemplo43c'. Este último nombre ya lo tenía el Ejemplo del '4.4.7 Ordenación de Cadenas'. Pienso que se podría cambiar a 'Ejemplo46a'.

5.4. En el último párrafo 'Podemos hacer una función....' pone 'public static int float mayor(....)', Creo que sobra 'int'.

5.5  En el Ejemplo50 sobran todos los System, ya que se ha puesto 'using System'.

5.9.1. En Ejercicios propuestos 'Mejorar el programa del ahorcado...en 4.4.8....' En 4.4.8 NO está el programa citado. Se podría cambiar el párrafo a 'Adivinar una palabra que se escogerá al azar de un array de palabras prefijadas (por ejemplo, nombres de ciudades).'

Saludos.


06-Mar-2010 00:59
Nacho Cabanes (+30)

Buenas, Jesús. Gracias por tus múltiples aportaciones. Empiezo la tanda de respuestas, a ver si en dos o tres ratos consigo contestarte a todo...

Párrafo 2.1- ¿Hay un tipo de entero denominado 'char' tal como aparece en la tabla de tipos?

Cierto, no está bien explicado. Los creadores del lenguaje catalogan todos esos tipos como "integral types", no como "integer types". Una traducción libre pero algo más fiel sería "tipos simples". Quito el "char" de ahí, porque se trata en el 2.3. Puedes ver la lista de "integral types" en: http://msdn.microsoft.com/en-us/library/exx3b86w%28VS.71%29.aspx

Párrafo 2.2.2- Una entrada por teclado la convertimos en 'float' con 'Convert.ToSingle' y en 'double' con 'Convert.ToDouble'. El 'decimal' es con ¿'Convert.ToDecimal'? Convendría indicarlo.

Efectivamente. Ya lo he indicado.

Párrafo 3.1.2- Después del Ejemplo 11 se dice "En este caso, si el número es 'negativo' ......" y debe decir 'positivo'.

Corregido también.

Párrafo 3.1.4- En esta página cuando se le da a 'Siguiente' no pasa a la siguiente página sino que vuelve a la misma.

Sí, ya está corregido el enlace

Párrafo 3.1.5- Aquí se indica, después de explicar lo que significan los operadores 'De modo que podremos escribir cosas como (-Fichero no encontrado)-'. Falta el ejemplo.

Cierto, un error en el formato interno del curso. Ya está corregido también. Y lo mismo ocurría en el 3.1.7.

Ejemplo 22 y otros. Se utiliza Console.Write en vez de Console.Writeline, sin explicar la diferencia entre ambas.

Es verdad. Ya está explicado en 3.1.9, justo después de utilizarlo por primera vez.

Ejemplo 36. Sobra System en Convert.ToInt32 y en Console.ReadLine().

Cierto. Es lo malo de reutilizar fuentes del principio. No hace que no funcione, pero en innecesario desde el momento en el que se utiliza "using System;"

Ejemplo 37. El primer comentario //2 bloques de 10 datos debe ser //2 bloques de 2 datos. Y, poniéndome un poco tiquismiquis, en los Console.WriteLine quitar la 's' del plural a 'grupos'.

Me parece perfecto que seas tiquismiquis. :-) Ya está corregido también.
07-Mar-2010 00:31
Nacho Cabanes (+30)

Sigamos...

4.- En los Ejercicios del 4.2 Arrays bidimensionales, se piden trabajos con arrays de caracteres sin haber puesto ningún ejemplo, como se hace en los apuntes de 'C' en 5.4.

No exactamente: es un array de cadenas, no de caracteres, y las cadenas de texto en C# (al contrario que en C) son casi tan fáciles de manejar como los números enteros. Aun así, pongo una nota recordatoria. Lo que sí ocurre es que esos ejemplos no son de arrays bidimensionales, por lo que no deberían estar en ese apartado sino en el anterior, y debería incluir alguno que sí sea de arrays de dos dimensiones. Después de contestarte lo dejo hecho.

Ejemplo 41. Creo que tras 'struct fechaNacimiento {....};' se podría omitir el ';'.

Cierto, ya está corregido.

En 4.3 'Estructuras o registros' se comienza a usar el sufijo 'f' tras los literales, sin explicación previa. Convendría comentar algo al respecto.

Hecho. De paso, he añadido otro ejercicio propuesto (muy similar al de 4.3.2, pero con un solo struct, en vez de un array).

En 4.4.4 Si omito el segundo número en 'Substring' el compilador me da el error 'an argument is missing'.

No debería. Si conservas sólo el primer argumento (eliminando el segundo y la coma), debería funcionar. Mira la refencia oficial: http://msdn.microsoft.com/es-es/library/system.string.substring.aspx

5. Introducción a funciones. Si en esta página pincho en 'Anterior' me voy a '4.5' en vez de a '4.6'.

Corregido.

4.4.8. Este número de párrafo está duplicado. A 'Recorriendo con foreach' habría que ponerle el 4.4.9.

Cierto. En la versión PDF ya estaba solucionado, porque el índice ayuda a detectar esos problemas, pero no recordé pasarlo a la versión Web. Eso me recuerda que aún no he dejado el PDF disponible para todo el mundo. Quiero ampliar un par de cosas, y espero poder hacerlo en una semana o menos.

4.6. En el Ejemplo en C# denomina a éste como 'ordenar.cs' y en public class como 'Ejemplo43c'. Este último nombre ya lo tenía el Ejemplo del '4.4.7 Ordenación de Cadenas'. Pienso que se podría cambiar a 'Ejemplo46a'.

Lo he llamado Ordenar, por homogeneizar el nombre de la clase con el del fuente (aunque C# no obliga a que sea así).

5.4. En el último párrafo 'Podemos hacer una función....' pone 'public static int float mayor(....)', Creo que sobra 'int'.

Cierto... :-D

5.5 En el Ejemplo50 sobran todos los System, ya que se ha puesto 'using System'.

Corregido. De paso, he aprovechado para tabularlo un poco mejor... ;-) Ya queda poco para ponerme al día con tus dudas... ;-)
08-Mar-2010 01:27
Nacho Cabanes (+30)

Sigamos...

4.6 Método de Burbuja. En el segundo método entiendo que 'i debe descender de i=n a i=2' y que en vez de 'A[j]' hay que poner 'A[i]'.

Descender hasta 1 en el bucle exterior es innecesario, cierto, ya que el interior comienza en 2 (por eso de que comparas cada elemento con su anterior). Pero sí, sería A[j] porque el bucle exterior es el que controla el número de pasadas, pero el interior es el que realmente hace que cada número se compare con su anterior.

Método de selección directa: al lado del símbolo '<>' pondría (o quizá lo sustituiría por) '!='.

En pseudocódigo se suele usar esa notación, en vez de !=, pero tienes razón, sería interesante aclararlo.

5.9.1. En Ejercicios propuestos 'Mejorar el programa del ahorcado...en 4.4.8....' En 4.4.8 NO está el programa citado. Se podría cambiar el párrafo a 'Adivinar una palabra que se escogerá al azar de un array de palabras prefijadas (por ejemplo, nombres de ciudades).'

¡Vaya! Una nueva inconsistencia. En la versión PDF sí está, pero lo añadí después de haber publicado la versión inicial de ese apartado en la web, y se me pasó añadirlo en ella cuando amplié el PDF. En un momento lo dejo hecho.
22-Mar-2010 09:31
Jess S.

¡Hola!

Sigo con estas cosillas:

5.10 Recursividad. En el Ejemplo57 sobran los System.

6.3 La herencia. Visibilidad.
   Ejemplo60. En el segundo apartado de 'Main()' se escribe 'Vamos a bloquear y abrir...' y debe decir 'Vamos a bloquear...' o se le añade 'p.Abrir()'.

7.10 Leer bloques de datos de un fichero binario.
   En el Ejemplo78 debe poner Ficheros binarios (2).

Saludos.


20-Apr-2010 08:42
Jess S.

¡Hola!
Estoy repasando el Tema 6, que lo había visto demasiado deprisa.

6.2 Ejercicio propuesto al final del apartado. Está duplicado.

6.3 Tras el primer párrafo se define la clase 'Porton: Puerta'. Falta el paréntesis '}' de cierre de la clase.

6.3 Ejercicios propuestos. En ambos se escribe 'Esta clase deberá sólo la función Main'. Supongo que querrías poner 'Esta clase deberá contener sólo la función Main'.
   En el segundo Ejercicio se escribe 'Se clase PersonaInglesa' y debería poner 'La clase PersonaInglesa'.

Saludos.


07-May-2010 15:29
Nacho Cabanes (+30)

Gracias, Jesús. Ya están corregidas tus seis últimas aportaciones, y actualizada la versión PDF de los apuntes (a la 0.94) para reflejarlo, junto con algo más de contenido (SDL para hacer juegos, instalación de Visual Studio, más sobre fecha y hora...)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)