[C con Clase] error al programar
Davidson, Steven
srd4121 en njit.edu
Mie Nov 23 04:35:28 CET 2016
Hola Ana,
Te hago unos cuantos comentarios acerca de tu código fuente:
- En 'leer()', escribes,
while( num != 1 || num != 0 )
{
cin >> num;
m[i][j] = num;
}
Esto no es del todo correcto. Deberías leer del teclado antes de verificar
su valor. Esto es,
cin >> num;
while( num != 1 || num != 0 ) // Repetir hasta que se introduzca 0 ó 1
{
m[i][j] = num;
cin >> num;
}
También podrías haber usado un bucle 'do/while'; por ejemplo,
do
cin >> num;
while( num != 1 || num != 0 ); // Repetir hasta que se introduzca 0 ó 1
m[i][j] = num; // Asegurado de que 'num' contenga 0 ó 1
-- No necesitas pasar un parámetro 'num' a la función 'leer()', ya que no
lo usas fuera de esta función. Como es una variable interna y local a
'leer()', simplemente créala en el cuerpo de la función; esto es,
void leer( float m[HORIZ][VERTI] )
{
short i, j;
float num;
...
}
- Tienes varios errores en 'vericono()':
-- Intentas asignar una cadena de caracteres a una variable booleana al
escribir,
icono = " ";
...
icono = "#";
Esto no tiene sentido y además es imposible de realizar, ya que los tipos
no concuerdan.
-- Al final escribes,
return icono
Te falta agregar el punto y coma; es decir,
return icono;
-- De todos modos, lo que intentas hacer no es del todo correcto. Como
indica la función, tienes que mostrar los caracteres, por lo que sólo
tienes que usar 'cout'; esto es,
if( 1 == m[i][j] )
cout << ' ';
else
cout << '#';
O incluso, puedes usar el operador condicional:
cout << (1 == m[i][j] ? ' ' : '#');
Por lo tanto, 'vericono()', no debería retornar nada; puedes colocar 'void'
para el tipo de retorno y eliminar la sentencia 'return'.
- Luego tienes otro error en 'main()', al crear un 'float', en lugar de una
matriz de 'float'. Escribes,
float m, num;
cuando deberías escribir,
float m[HORIZ][VERTI], num;
- Por último, no entiendo por qué la matriz debe ser de tipo 'float',
cuando solamente guardas un número entero. Sugiero usar 'int' en lugar de
'float', o incluso 'short int'.
Espero que esto te oriente.
Steven
2016-11-22 16:49 GMT-05:00 Ana Pallares Vilar <anapallares20 en gmail.com>:
> Hola tengo un ejercicio en el que me piden que realice un programa que
> permita leer iconos en blanco y negro, estos se almacenaran en una matriz
> de dos dimensiones.
> El programa debe permitir introducir un icono y mostrarlo, representando
> los 0 por un espacio en blanco y los 1 por el carácter #.
> Se deberá emplear la función/procedimiento que implemete cada una de estas
> tareas:
> leer matriz
> visualizar matriz
> vericono
>
> Al hacerlo me salen dos tipos de errores que no entiendo que es
> exactamente lo que me piden que cambie en el programa:
> [Error] cannot convert 'float' to 'float
> [Error] expected ';' before '}' token
>
> Antes que nada muchas gracias y saludos.
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20161122/05a1cd4c/attachment.html>
Más información sobre la lista de distribución Cconclase