GatoBooster

MODULO 4 Cuest 2

Nov 8th, 2017
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.62 KB | None | 0 0
  1. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2. PREGUNTA N°1
  3.  
  4. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  5. PREGUNTA N°2
  6.  
  7. typedef struct Ingrediente{
  8.     char ingre[1001];
  9.     int caso;
  10. }ingrediente;
  11.  
  12. void cualesNoLeGustan(FILE *entrada){
  13.     char cadena[1001]={};
  14.     int caso;
  15.    
  16.     ingrediente vector[1001] ={};
  17.    
  18.     int i, flag, totalS = 0, totalN = 0, total = 0,cont = 0;
  19.    
  20.     while(fscanf(entrada,"%s",cadena) != EOF){
  21.         //Cuando le gustra el colado
  22.         flag = 0;
  23.         if(cadena[0] == 'S'){
  24.             while(fscanf(entrada,"%s",cadena) != EOF){ //hay que hacer bien el final de la cadena
  25.                 if(cadena[0] == 'F'){    
  26.                     caso = 0;
  27.                     totalS++;
  28.                     //Falta corroborar acá si ya estaba antes
  29.                     for(i = 0; i < cont; i++){
  30.                         if(strncmp( cadena, vector[i].ingre, 10001 ) == 0){
  31.                             flag = 1;
  32.                             if(vector[i].caso == 1){
  33.                                 vector[i].caso = 0;
  34.                             }
  35.                             break;
  36.                         }
  37.                     }
  38.                 }    
  39.             }
  40.         }else{
  41.             while(fscanf(entrada,"%s",cadena) != EOF){
  42.             if(cadena[0] == 'F'){    
  43.                     caso = 1;
  44.                     totalN++;
  45.                     if(strncmp( cadena, vector[i].ingre, 10001 ) == 0){
  46.                         flag = 1;
  47.                         break;
  48.                     }
  49.                 }
  50.             }    
  51.         }
  52.         //Cuando es valido se guarda el valor
  53.         if(flag == 0){
  54.             strcpy(vector[cont].ingre, cadena);
  55.             vector[cont].caso = caso;
  56.             cont++;
  57.         }
  58.     }
  59.    
  60.     total = totalS+totalN;
  61.     totalN = 0;
  62.    
  63.     if(totalN > 0 && total > 0){
  64.         cont = 0;
  65.         i = 0;
  66.         printf("A Lucas NO le gustan los siguientes ingredientes :");
  67.         do{
  68.            if(vector[cont].caso == 1){
  69.                printf("\n%s",vector[i].ingre);
  70.                i++;
  71.            }
  72.            cont++;
  73.         }while(i != (totalN-1));
  74.     }else if(totalN == 0 && total > 0){
  75.         printf("A Lucas le gustan todos los ingredientes !");
  76.     }else{
  77.         printf("Es imposible determinar que ingredientes no le gustan a Lucas!");
  78.     }
  79.    
  80. }
  81.  
  82. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  83. PREGUNTA N°3
  84.  
  85.  
  86. void desencriptar(FILE *entrada, FILE **salida){
  87.    
  88.     int i, j, pos, despla = 0, largo, flag;
  89.     char cadena[1001];
  90.     char mayus[27] = "abcdefghijklmnopqrstuvwxyz";
  91.     char minus[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";  
  92.    
  93.     scanf("%d",&despla);
  94.    
  95.     do{
  96.         if(despla < 26){
  97.             break;
  98.         }
  99.         despla %= 26;
  100.     }while(despla >= 26);
  101.    
  102.     if(despla == 0){
  103.     while(fscanf(entrada,"%s",cadena) != EOF){
  104.         printf("%s",cadena);
  105.     }
  106.         exit(0);
  107.     }
  108.        
  109.     while(fscanf(entrada,"%s",cadena) != EOF){
  110.        
  111.         largo = (int)strlen(cadena);
  112.         for(i = 0; i < largo; i++){
  113.             if(isalpha(cadena[i]) == 0){
  114.             flag = 0;    
  115.                 for(j = 0; flag == 0; j++){
  116.                     if(cadena[i] == mayus[j]){
  117.                         pos = j+despla;
  118.                         do{
  119.                         if(pos < 26 && pos > -26){
  120.                             break;
  121.                         }    
  122.                         pos %= 26;
  123.                         }while(pos >= 26 && pos <= -26);
  124.                         cadena[i] = mayus[pos];
  125.                         break;    
  126.                    
  127.                     if(cadena[i] == minus[j]){
  128.                         pos = j+despla;
  129.                         do{
  130.                             if(pos < 26 && pos >= -26){
  131.                             break;
  132.                             }
  133.                             pos %= 26;
  134.                         }while(pos >= 26 && pos >= -26);
  135.                         cadena[i] = minus[pos];
  136.                         break;
  137.                     }
  138.                 }
  139.             }
  140.         }
  141.         printf("%s ",cadena);    
  142.     }  
  143.        
  144.     }
  145.     //los problemas estan al guardar los datos, imprimir los datos, lo recomendable sería que use los caracteres para que
  146.     //los espacios y enter funcionen al imprimir y revisar que se muevan los caracteres correctamente
  147.    
  148. }
  149. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  150. PREGUNTA N°4
  151.  
  152. typedef struct Nombres{
  153.     int cantNom;
  154.     char nombre[26];
  155. }nombres;
  156.        
  157. void mostrarNombresDeModa(FILE *entrada){
  158.        
  159.     nombres *cadena;
  160.     char vector[26];
  161.     int i, cont = 1, aux = 0;
  162.        
  163.     cadena = (nombres*) malloc (sizeof(nombres));
  164.    
  165.     scanf("%25[^\n]s", vector);
  166.     strcpy(cadena[0].nombre, vector);
  167.     cadena[0].cantNom++;
  168.        
  169.     while( scanf("%25[^\n]s", vector) != EOF){
  170.         cont++;
  171.         for(i = 0; i < cont; i++){
  172.             if(strcmp(vector, cadena[i].nombre) == 0){
  173.                 cadena[i].cantNom++;
  174.                 break;
  175.             }
  176.         }
  177.         if(cadena[i].cantNom == 0){
  178.             cadena = (nombres*) realloc (cadena, (cont)*sizeof(nombres));
  179.             strcpy(cadena[cont-1].nombre, vector);
  180.             cadena[cont-1].cantNom++;
  181.         }
  182.        
  183.     }
  184.    
  185.     for(i = 0; i < strlen(cadena); i++){
  186.         if(aux < cadena[i].cantNom){
  187.             aux = cadena[i].cantNom;
  188.         }
  189.     }
  190.    
  191.     printf(" ------------------------------------------------------------\n");
  192.     printf("|              LISTADO DE NOMBRES MAS POPULARES              |\n");
  193.     printf(" ------------------------------------------------------------\n");
  194.     for(i = 0; i < strlen(cadena); i++){
  195.         if(cadena[i].cantNom == aux){
  196.             prinf(" Cantidad  | Nombre\n");
  197.             printf(" ------------------------------------------------------------\n");
  198.             printf("%10d | %s", cadena[i].cantNom, cadena[i].nombre);
  199.             printf(" ------------------------------------------------------------\n");
  200.         }
  201.     }
  202. }
  203.  
  204. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  205. PREGUNTA N°5
  206.  
  207. filtrarNumerosEnteros(FILE *entrada, FILE **salida){
  208.     int i,cont;
  209.     char cadena[1001] = {};
  210.    
  211.     while(fscanf(entrada,"%s",cadena) != EOF){
  212.         cont = 0;
  213.         for(i = 0; i < strlen(cadena); i++){
  214.             if(isdigit(cadena[i])){
  215.                 cont++;
  216.             }
  217.         }
  218.        
  219.         if(cont == strlen(cadena)){
  220.             printf("%s\n",cadena);
  221.         }
  222.        
  223.         for(i = 0; i < strlen(cadena); i++){
  224.             cadena[i] = '\0';
  225.         }  
  226.     }
  227. }
  228.  
  229. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment