[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