Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/08/2008, 09:42
ALOJOMORA
 
Fecha de Ingreso: agosto-2008
Mensajes: 25
Antigüedad: 15 años, 9 meses
Puntos: 0
Ayuda urgente plis

Miren necesito hacer este ejercicio y weno e escrito el codigo pero no me va.
ME podrian ayudar?



Ejercicio 2 (40 puntos)

En la fábrica de automóviles de la marca Ferrault se tiene un robot encargado de dar el último toque a la pintura de la carrocería. Por defectos naturales de la pintura, es posible que, de vez en cuando, aparezcan manchas y el acabado no sea perfecto. Con el fin de detectar estos casos, se ha instalado una cámara para inspeccionar el proceso de forma automática. La Dirección de la fábrica ha encargado al departamento de informática que añada al programa de control de la fábrica una función en lenguaje C que determine si un vehículo está mal pintado a partir de una imagen de 256 niveles de gris tomada con la cámara.
El equipo de ingenieros ha estimado que cuando un automovil está bien pintado con el color de valor color_auto, entonces el valor de la media de los píxeles de la imagen pertenece al intervalo [color_auto-20, color_auto+40]. Si no es así, es que ha habido defectos durante el proceso de pintado y hay que repetirlo.

Escribe el código de la función repetir_pintura que devuelva el valor 1 (cierto) si ha habido defectos de pintura, y 0 (falso) en caso contrario. Ten en cuenta que la función recibe como argumentos de entrada los siguientes:
int * imagen; // zona de memoria en la que se alojan los valores de los píxeles de la imagen
int nfilas; //número de filas de la imagen
int ncols; //número de columnas de la imagen
int color_auto; //color con que se ha pintado el vehículo que aparece en la imagen
Escribe el trozo de código de la función principal que se necesitaría para comprobar si hay que pintar un coche nuevamente. Suponga que la imagen del automóvil está guardada en una variable de nombre foto_coche, que el número de filas y columnas están almacenadas en las variables f y c, respectivamente, y que el color de la pintura está almacenada en la variable color. Dicho código debe mostrar por pantalla un mensaje que indique si hay que repintar o no. Nota: Si es necesario declarar alguna variable adicional, indícalo.






#include <stdio.h>
#include <stdlib.h>
int repetir(int* img,int ncols, int nfilas, int color);

int main(int argc,char* argv)
{


int alto,ancho,pause;
int* imagen;
int color;




printf("introduce el ancho\n");

scanf("%d",&ancho);
printf("introduce el alto\n");

scanf("%d",&alto);

printf("escribe el color\n");
scanf("%d",&color);
imagen=(int*)malloc(ancho*alto*sizeof(int));
printf("el resultado es %d",repetir(imagen,ancho,alto,color));

scanf("%d",&pause);
return 0;
}



int repetir(int* img,int ncols, int nfilas, int color)

{
int i,j,error;
int mono;
int alto=0;
for(i=0;i<=ncols;i++)
for (j=0;j<=nfilas;j++)
printf("%d",*(img + i * j));


for(i=0;i<=ncols;i++)
{for (j=0;j<=nfilas;j++)
{ mono=*(img+i *0+j);
if ((mono<(color-20))||(mono>(color+40)))

{
printf("ubo un error al comparar %d con %d\n",*(img+i * j),color);
error=1;
i=ncols;
}}}

return error;
}





Weno en la funcion repetir, lo que he puesto para que supuestamente impirma todo lo del puntero imagen, es para ver que valores coge, y el coge los valores de direccion me parece, pruebenlo.
Creo ke mi error esta en eso ke señalo en azul.


AYUDA PORFA::
GRACIAS: