Tema: Proyecto C++
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/10/2010, 13:50
logic_tristaN
 
Fecha de Ingreso: septiembre-2010
Mensajes: 16
Antigüedad: 13 años, 8 meses
Puntos: 0
Mensaje Respuesta: Proyecto C++

Ahmm hola aquí te dejo un código .. disculpa que no esta estructurado ni muy optimizado... lo hice rapidito , pero creo que te sirve para comenzar o mejorarlo .De todas maneras mándame un PM o lo que sea :P.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define SPECIES 3
  5. #define ISLAND 2
  6.  
  7. main()
  8. {
  9.     /* Posiciones geograficas :*/
  10.     int xSub, ySub, xGeo, yGeo, xIsland, yIsland , xSpecie, ySpecie;
  11.     /* Contadores :*/
  12.     int countH=0,countV=0, i, j;
  13.    
  14.     do{
  15.     puts("Insert Geopraphic area (x,y):");
  16.     scanf("%d %d", &xGeo, &yGeo);
  17.     }while (xGeo < 0 || yGeo<0); /* no negativo */
  18.     int geoPos[xGeo][yGeo];  /* Creando vector geografico*/
  19.     do{
  20.     puts("Insert submarine  position (x,y):");
  21.     scanf("%d %d",&xSub, &ySub);
  22.     }while(ySub == 1 || xSub == 1 || xSub == xGeo || ySub == yGeo || xSub<0 || ySub<0);
  23.     geoPos[xSub][ySub] = 'S';  /* Submarino = S , y que no este en borde geografico*/
  24.     for (i=0 ; i<ISLAND ; i++)
  25.     {
  26.         do{
  27.              printf("Insert island 0%d position (x,y): ",i);
  28.              scanf("%d %d",&xIsland, &yIsland);
  29.         }while(xIsland<0 || yIsland<0 || geoPos[xIsland][yIsland] == 'S' || geoPos[xIsland][yIsland] == 'I' );
  30.         geoPos[xIsland][yIsland] = 'I';  /* No sobreponer una isla sobre otra isla  o sobre el submarino*/
  31.     }
  32.     for (i=0 ; i<SPECIES ; i++)
  33.     {
  34.        do{
  35.             printf("Insert specie %d position (x,y):",i);
  36.             scanf("%d %d",&xSpecie, &ySpecie);
  37.         }while(xSpecie<0 || ySpecie<0 || geoPos[xSpecie][ySpecie] == 'S' || geoPos[xSpecie][ySpecie] == 'I'
  38.         || geoPos[xSpecie][ySpecie] == 'E' ); /* No sobreponer una especie sobre una isla, especie o submarino*/
  39.         geoPos[xSpecie][ySpecie] = 'E';
  40.     }
  41.    
  42.     /* Vista del submarino horizontalmente */
  43.     for (j=1; j<yGeo ; j++)
  44.     {
  45.         if (geoPos[xSub][ySub+j] == 'E')
  46.             countH += 1;
  47.         else  if (geoPos[xSub][ySub+j] == 'I')
  48.             break;
  49.     }
  50.     for (i=1 ,j=ySub; j>0 ; j--, i++)
  51.     {
  52.         if (geoPos[xSub][ySub-i] == 'E')            
  53.             countH += 1;
  54.         else  if (geoPos[xSub][ySub-i] == 'I')
  55.             break;
  56.         }
  57.     /* Vista del submarino verticalmente*/
  58.     for (j=1 ; j<xGeo; j++)
  59.     {
  60.         if (geoPos[xSub+j][ySub] == 'E')
  61.             countV += 1;
  62.         else  if (geoPos[xSub+j][ySub] == 'I')
  63.             break;
  64.     }
  65.     for (i=1 ,j=xSub; j>0 ; j--, i++)
  66.     {
  67.        if (geoPos[xSub-i][ySub] == 'E')
  68.             countV += 1;
  69.        else  if (geoPos[xSub-i][ySub] == 'I')  
  70.             break;
  71.     }
  72.     printf("Localizadas %d especies horizontalmente\n\n",countH);
  73.     printf("Localizadas %d especies verticalmente\n\n",countV);
  74.     system("pause");
  75.        
  76.    
  77. }
saludos desde edo. carabobo xD