• Domingo 28 de Abril de 2024, 22:34

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - ralehuy

Páginas: [1]
1
C/C++ / Re: nesecito hacer este programa
« en: Jueves 25 de Julio de 2002, 20:13 »
PARECE LARGO PERO ES CORTO...

IMÁGENES

 Tienes una importante compañía de diseño gráfico por computadora la cual ha realizado importantes trabajos de computación a películas como “ritanic”, “microbios”, y muchas mas que seguramente fueron éxitos. Tu fama se debe a que tu compañía es la única que trabaja con el trabajo de imágenes digitales por computadora usando una técnica muy especial que pocos “profesionales conocen”.

Has llegado a tal fama que una gran empresa internacional de origen mexicano te ha solicitado tus servicios. El trabajo consiste en lo siguiente:

Se tiene una imagen digital de dimensión n por m   (renglones, columnas). Esta imagen tiene variaciones de hasta 128 colores. Las imágenes son fotografías de mapas que van a ser usados en la película. Estos contienen figuras que tu deberás de identificar dado un rango determinado de colores que pude varias entre un intervalo h1 y h2 (ie: h1 h2 siempre) donde 0 127 y k es el color admisible en la figura. Una vez identificadas todas las figuras deberás exhibir los siguientes mapas: un mapa binario (0’s y 1’s) que represente con unos el área de todas las figuras que se identificaron en el mapa original (a esta técnica se le llama binarización. Un mapa binario (0’s y 1’s) que muestre únicamente los contornos de las figuras representando con unos el contorno y con ceros cualquier otra información.. Y como última tarea, al final del archivo deberás de escribir el número de figuras encontradas y el área de la figura más grande.

ENTRADA   
La entrada consiste en un archivo de texto que contiene en la primer fila dos números: n y m, que denotan las dimensiones de la imagen.
A continuación se presenta la matriz de números que representa a la imagen digital.
En el siguiente renglón los números h1, h2, intervalo en el cual se encuentran los colores de la figura a analizar.

SALIDA
Tu programa deberá de exhibir en un archivo de texto:
a) Una matriz de unos y ceros  que muestre la imagen binarizada de las figuras encontradas
b) Una matriz de unos y ceros que muestre los contornos de cada una de las figuras encontradas
c) Dos números; el primero indicará el número de figuras encontradas el segundo, el área de la figura más grande.

RESTRICCIONES
 10 100.
 Las figuras tendrán de 5 unidades de área como mínimo (una unidad de área es una celda de la matriz).
 Tu programa debe llamarse IMÁGENES.* (* = C si estas en C o pas si estas en pascal)
 Tu programa deberá de leer la entra de un archivo de texto llamado IMÁGENES.IN y deberá de arrojar su salida a un archivo de texto llamado IMÁGENES.OUT.

En la siguiente figura se muestra una figura ejemplo la cual se a pintado de un mismo color para que puedas distinguirla, siguiente a ella esta la misma figura con el contorno sin embargo nota que hay algunos tonos de color mas débil junto al contorno, estos cuadritos te indican que ese es un contorno incorrecto, el contorno correcto o el que tu programa debe de devolver es el de la siguiente figura.

 
 


IMÁGENES.IN
8 13
8 8 9 10 10 10 29 3 3 3 3 34 45
12 32 8 3 4 4 3 2 2 2 2 3 2
3 3 5 6 5 5 6 3 2 3 23 2 12
2 1 5 5 4 4 5 5 6 7 8 2 2
12 3 2 4 5 4 5 6 7 8 9 12 3
12 3 4 4 5 6 6 5 7 3 2 3 3
12 43 5 6 56 54 3 34 23 3 2 3 12
21 2 1 2 1 2 1 2 3 3 45 15 45
4 7






IMÁGENES.OUT
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0
0 0 1 1 1 1 1 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 0 0 0
0 0 0 1 1 1 1 1 1 0 0 0 0
0 0 1 1 1 1 1 1 1 0 0 0 0
0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0


0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0 0 0 0
0 0 1 1 0 0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 1 1 1 0 0 0
0 0 0 1 0 0 0 0 1 0 0 0 0
0 0 1 0 1 1 1 1 1 0 0 0 0
0 0 1 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
1 30

2
C/C++ / Re: Ayuda de alguien por favor
« en: Jueves 11 de Julio de 2002, 21:08 »
Necesito ayuda de alguien que pueda transformar este programa a algo mas simple ya que no se funciones
#include<stdio.h>
#define MAX 100
FILE *dat, *out;
void mostrar(char [][16]);
void marcar(char [][16],int,int,int,int);
void limpiar(char [][16]);
char datos[MAX], pantalla[16][16];
main(){
int i, j, x, h, x_inicio, x_fin, y_inicio, y_fin;
if((dat=fopen("dibu.dat","r"))==NULL)
  printf("Error de apertura del archivo 'dibu.dat'");
  else{
      i=-1;
      while(!feof(dat)){
      i++;
      datos=fgetc(dat);
      if((datos==32) || (datos==10) || (datos==13))
        i--;
      }
      fclose(dat);
      }

for(j=0;j<i;j++)
   printf("%c,",datos[j]);
limpiar(pantalla);
mostrar(pantalla);
if(datos[0]=='1'){
  x_inicio=y_inicio=1;
  x_fin=y_fin=8;
  }
if(datos[0]=='2'){
  x_inicio=9;
  x_fin=16;
  y_inicio=1;
  y_fin=8;
  }
if(datos[0]=='3'){
  x_inicio=y_inicio=9;
  x_fin=y_fin=16;
  }
if(datos[0]=='4'){
  x_inicio=1;
  x_fin=8;
  y_inicio=9;
  y_fin=16;
  }
x=1;
while(x!=i){
     while(datos
  • !='x'){

     if(datos
  • =='1')

       x_fin=y_fin=(0.5*(x_fin+x_inicio-1));
     if(datos
  • =='2'){

       x_inicio=(0.5*(x_fin+x_inicio+1));
       y_fin=(0.5*(y_fin+y_inicio-1));
       }
     if(datos
  • =='3')

       x_inicio=y_fin=(0.5*(x_fin+x_inicio+1));
     if(datos
  • =='4'){

       x_fin=(0.5*(x_fin+x_inicio-1));
       y_inicio=(0.5*(y_fin+y_inicio+1));
       }
     x++;
     }
     marcar(pantalla,x_inicio,x_fin,y_inicio,y_fin);
     mostrar(pantalla);
     printf("ja0ja0a");
     }
printf("ja0ja0a");
mostrar(pantalla);
return 0;
}
void mostrar(char pantalla[][16]){
int i,j;
for(i=0;i<=16;i++){
   printf("n");
   for(j=0;j<=16;j++)
      printf("%c",pantalla[j]);
   }
}
void limpiar(char pantalla[][16]){
int i, j;
for(i=0;i<=16;i++)
   for(j=0;j<=16;j++)
      pantalla[j]='o';

}
void marcar(char pantalla[][16], int q, int w, int e, int r){
int t, y;
for(t=q;t<=w;t++)
   for(y=e;y<=r;y++)
      pantalla[t][y]='x';
}

3
C/C++ / Necesito Ayuda Urgente
« en: Miércoles 10 de Julio de 2002, 20:51 »
HOLA !, NECESITO DE SU AYUDA, primero que todo dejame decirles que soy estudiante de ingenieria civil informatica de la universidad catolica del maule y tengo que hacer un trabajo  de LENGUAJE DE PROGRAMACION por eso necesito de su colaboracion Por Favor (La tarea es para el viernes 12 de julio y de esto depende si paso el ramo o no).
El problema consiste en lo siguiente:
Tengo que hacer un programa de Lenguaje en C (no en C++)y consiste en lo siguiente.

El Doscolores es un monitor monocromatico con pantalla cuadrada formada por una matriz de 16x16 puntos, cada uno de los cuales se puede poner de color blanco o de color negro.
el monitor dibuja a partir de ciertas ordenes que recibe en forma de secuencia de caracteres; los caracteres enviados actuan no sobre toda la pantalla , sino solamente sobre un area seleccionada, que puede cambiarse mediante algunos de estos caracteres.
Incialmente, el area seleccionada es toda la pantalla, y puede suponerse que todos sus puntos son de color blanco. El caracter 'x' sirve para pintar el area seleccionada (es decir, poner todos sus puntos de color negro) e inmediatamente, volver a considerar como area seleccionada la pantalla entera.
Finalmente, los caracteres del '1' al '4' sirven para hacer más pequeña el area seleccionada, de manera que posteriores caracteres 'x' afecten e menos puntos. Concretamente, estos caracteres erscogen como nueva área seleccionada uno de los cuatro trozos siguientes:
'1' trozo superior izquierdo
'2' trozo superior derecho
'3' trozo inferior derecho
'4' trozo inferior izquierdo

Nótese, pues, que en realidad DOSCOLORES solo permite pintar uno o más cuadrados; cualquier figura compleja debe pintarse a trozos, seleccionando y pintando los cuadrados adecuados.

para dibujar una figura como la que aprece abajo, que est acompuesta por diversos cuadrados, se dibujan por separado cada uno de ellos, en cualquier orden. Para cada uno de ellos, enviaremos:
Para:
el cuadrado pequeño del vertice derecho superior: '2' '2' '2' '2' 'x'
el cuadrado grande del vertice derecho inferior: '3' 'x'
el cuadrado mediano de la izquierda: '1' '1' '3' 'x'

Por lo tanto, las seis posibles secuencias de caracteres que dibujan esta figura son:

'2' '2' '2' '2' 'x' '3' 'x' '1' '1' '3' 'x'
'2' '2' '2' '2' 'x' '1' '1' '3' 'x' '3' 'x'
'3' 'x' '2' '2' '2' '2' 'x' '1' '1' '3' 'x'
'3' 'x' '1' '1' '3' 'x' '2' '2' '2' '2' 'x'
'1' '1' '3' 'x' '2' '2' '2' '2' 'x' '3' 'x'
'1' '1' '3' 'x' '3' 'x' '2' '2' '2' '2' 'x'

se pide un programa que sea capaz de, dada una secuencia de caracteres, dibujar una figura según las reglas anteriores.
FORMATO DE LA ENTRADA (residente en el archivo de texto "dibu.dat"): varias lineas que forman una figura, cada línea corresponde a un cuadrado y consta pues de cero, uno, dos, tres o cuatro digitos entre el '1' y el '4' y , como último caracter de la línea, el caracter 'x'. Todos estos caracteres estaran separados por un unico caracter blanco.
FORMATO DE SALIDA (a guardar en el archivo de texto "dibu.out"): la figura resultante de aplicar las reglas descritas en el enunciado. Representamos la figura con 16 lineas de 16 caracteres.
Cada caracter de esta superficie 16x16 sera o bien un caracter 'o'(letra 'o') o bien un caracter 'x', segun el punto correspondiente debe ser de color blanco o de color negro.

Asi la primera secuencia de las seis que aparecen al inicio de esta pagina se almacenaria en el fichero "dibu.dat" como:
2 2 2 2 x
3 x
1 1 3 x

y el programa deberia en este caso crear el fichero "dibu.out" siguiente:
ooooooooooooooox
oooooooooooooooo
ooxxoooooooooooo
ooxxoooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx

POR FAVOR AYUDAME .......
ralehuy@hotmail.com

4
C/C++ / Necesito ayuda urgente
« en: Miércoles 10 de Julio de 2002, 20:49 »
HOLA !, NECESITO DE SU AYUDA, primero que todo dejame decirles que soy estudiante de ingenieria civil informatica de la universidad catolica del maule y tengo que hacer un trabajo  de LENGUAJE DE PROGRAMACION por eso necesito de su colaboracion Por Favor (La tarea es para el viernes 12 de julio y de esto depende si paso el ramo o no).
El problema consiste en lo siguiente:
Tengo que hacer un programa de Lenguaje en C (no en C++)y consiste en lo siguiente.

El Doscolores es un monitor monocromatico con pantalla cuadrada formada por una matriz de 16x16 puntos, cada uno de los cuales se puede poner de color blanco o de color negro.
el monitor dibuja a partir de ciertas ordenes que recibe en forma de secuencia de caracteres; los caracteres enviados actuan no sobre toda la pantalla , sino solamente sobre un area seleccionada, que puede cambiarse mediante algunos de estos caracteres.
Incialmente, el area seleccionada es toda la pantalla, y puede suponerse que todos sus puntos son de color blanco. El caracter 'x' sirve para pintar el area seleccionada (es decir, poner todos sus puntos de color negro) e inmediatamente, volver a considerar como area seleccionada la pantalla entera.
Finalmente, los caracteres del '1' al '4' sirven para hacer más pequeña el area seleccionada, de manera que posteriores caracteres 'x' afecten e menos puntos. Concretamente, estos caracteres erscogen como nueva área seleccionada uno de los cuatro trozos siguientes:
'1' trozo superior izquierdo
'2' trozo superior derecho
'3' trozo inferior derecho
'4' trozo inferior izquierdo

Nótese, pues, que en realidad DOSCOLORES solo permite pintar uno o más cuadrados; cualquier figura compleja debe pintarse a trozos, seleccionando y pintando los cuadrados adecuados.

para dibujar una figura como la que aprece abajo, que est acompuesta por diversos cuadrados, se dibujan por separado cada uno de ellos, en cualquier orden. Para cada uno de ellos, enviaremos:
Para:
el cuadrado pequeño del vertice derecho superior: '2' '2' '2' '2' 'x'
el cuadrado grande del vertice derecho inferior: '3' 'x'
el cuadrado mediano de la izquierda: '1' '1' '3' 'x'

Por lo tanto, las seis posibles secuencias de caracteres que dibujan esta figura son:

'2' '2' '2' '2' 'x' '3' 'x' '1' '1' '3' 'x'
'2' '2' '2' '2' 'x' '1' '1' '3' 'x' '3' 'x'
'3' 'x' '2' '2' '2' '2' 'x' '1' '1' '3' 'x'
'3' 'x' '1' '1' '3' 'x' '2' '2' '2' '2' 'x'
'1' '1' '3' 'x' '2' '2' '2' '2' 'x' '3' 'x'
'1' '1' '3' 'x' '3' 'x' '2' '2' '2' '2' 'x'

se pide un programa que sea capaz de, dada una secuencia de caracteres, dibujar una figura según las reglas anteriores.
FORMATO DE LA ENTRADA (residente en el archivo de texto "dibu.dat"): varias lineas que forman una figura, cada línea corresponde a un cuadrado y consta pues de cero, uno, dos, tres o cuatro digitos entre el '1' y el '4' y , como último caracter de la línea, el caracter 'x'. Todos estos caracteres estaran separados por un unico caracter blanco.
FORMATO DE SALIDA (a guardar en el archivo de texto "dibu.out"): la figura resultante de aplicar las reglas descritas en el enunciado. Representamos la figura con 16 lineas de 16 caracteres.
Cada caracter de esta superficie 16x16 sera o bien un caracter 'o'(letra 'o') o bien un caracter 'x', segun el punto correspondiente debe ser de color blanco o de color negro.

Asi la primera secuencia de las seis que aparecen al inicio de esta pagina se almacenaria en el fichero "dibu.dat" como:
2 2 2 2 x
3 x
1 1 3 x

y el programa deberia en este caso crear el fichero "dibu.out" siguiente:
ooooooooooooooox
oooooooooooooooo
ooxxoooooooooooo
ooxxoooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
oooooooooooooooo
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx
ooooooooxxxxxxxx

POR FAVOR AYUDAME .......
ralehuy@hotmail.com

Páginas: [1]