gonzalob

Untitled

Apr 28th, 2020
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 7.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "pila.h"
  4.  
  5. int cargarArreglo(int arreglo[]);
  6. void mostrarArreglo(int arreglo[],int validos);
  7. int sumaArreglo(int arreglo[],int validos);
  8. void pasarPila(int arreglo[],int validos,Pila * p_pila);
  9. //Pila pasarPila(int arreglo[],int validos,Pila pila);
  10. int cargarArregloReales(float arreglo[]);
  11. void mostrarArregloReales(float arreglo[],int validos);
  12. float sumaArregloReales(float arreglo[],int validos);
  13. int determinaExistencia(char arreglo[],int validos, char caracterBuscado);
  14. int insertarEnOrden(char arreglo[],int validos, char caracterNuevo);
  15. char buscarMayor(char arreglo[],int validos);
  16. int buscarPosMayor(char arreglo[],int validos);
  17. int determinaCapicua(char arreglo[],int validos);
  18. void invertirArreglo(char arreglo[],int validos);
  19.  
  20. int main()
  21. {
  22.     int arreglo[100] = {0};
  23.     float arregloReales[100] = {0};
  24.     char palabra[100] = "gonzalo";
  25.    // int validos = cargarArreglo(arreglo);
  26.     system("cls");
  27.    // mostrarArreglo(arreglo,validos);
  28.    // int suma  = sumaArreglo(arreglo,validos);
  29.    // printf("la suma del arreglo -> %d",suma);
  30.     Pila pilin;
  31.     inicpila(&pilin);
  32.     //pasarPila(arreglo,validos,&pilin);
  33.     //mostrar(&pilin);
  34.  
  35.   //  int validosReales = cargarArregloReales(arregloReales);
  36.   //  mostrarArregloReales(arregloReales,validosReales);
  37.   //  float sumaReales = sumaArregloReales(arregloReales,validosReales);
  38.   //  printf("la suma del arreglo reales -> %f",sumaReales);
  39.  
  40.     //int buscado = determinaExistencia(palabra,10,'p');
  41.     //if (buscado == 1) printf("esta!\n"); else printf("no esta\n");
  42.    // int validosC = insertarEnOrden(palabra,5,'d');
  43.    // printf("nuevos validosC -> %d\n",validosC);
  44.    // printf("%s\n",palabra);
  45.  
  46.    // char mayor = buscarMayor(palabra,validosC);
  47.   //  printf("el mayor es --> %c\n",mayor);
  48.  
  49.   //  int posMayor = buscarPosMayor(palabra,validosC);
  50.   //  printf("el mayor es --> %c\n",palabra[posMayor]);
  51.  
  52.     char capicua[] = "abba";
  53.     printf("es capicua? -> %d\n",determinaCapicua(capicua,4));
  54.  
  55.     invertirArreglo(palabra,7);
  56.     printf("la palabra nueva es %s\n",palabra);
  57.  
  58.     return 0;
  59. }
  60.  
  61. /*
  62. Hacer una función que reciba como parámetro un arreglo de números enteros
  63. y permita que el usuario ingrese valores al mismo por teclado.
  64. La función debe retornar la cantidad de elementos cargados en el arreglo.
  65. */
  66. int cargarArreglo(int arreglo[])
  67. {
  68.     int validos = 0;
  69.     char mander = 's';
  70.     while ((mander == 's')&&(validos<100))
  71.     {
  72.         printf("ingrese un numero entero en la posicion %d\n",validos+1);
  73.         fflush(stdin);
  74.         scanf("%d",&arreglo[validos]);
  75.  
  76.         // printf("arreglo %d\n",arreglo[validos]); control
  77.  
  78.         validos++;//validos = validos + 1
  79.         printf("Desea seguir? s/n \n");
  80.         fflush(stdin);
  81.         scanf("%c",&mander);
  82.     }
  83.     return validos;
  84. }
  85.  
  86.  
  87. /*
  88. Hacer una función que reciba como parámetro un arreglo
  89. y la cantidad de elementos (válidos) cargados en él y los muestre por pantalla.
  90. */
  91. void mostrarArreglo(int arreglo[],int validos)
  92. {
  93.     int indice = 0;
  94.     for (indice = 0; indice<validos; indice++)
  95.     {
  96.         printf("arreglo pos -> %d = %d\n",indice+1,arreglo[indice]);
  97.     }
  98. }
  99.  
  100. /*
  101. Hacer una función que reciba como parámetro un arreglo
  102. y la cantidad de elementos (válidos) cargados en él y calcule la suma de sus elementos.
  103. */
  104.  
  105. int sumaArreglo(int arreglo[],int validos)
  106. {
  107.     int suma = 0;
  108.     int indice = 0;
  109.     for (indice = 0; indice<validos; indice++)
  110.     {
  111.         suma = suma + arreglo[indice];
  112.         //suma += arreglo[indice];
  113.     }
  114.     return suma;
  115. }
  116.  
  117. /*
  118. Hacer una función que reciba como parámetro un arreglo,
  119. la cantidad de elementos (válidos) cargados en él y una Pila.
  120. La función debe copiar los elementos del arreglo en la pila.
  121. */
  122. void pasarPila(int arreglo[],int validos,Pila * p_pila)
  123. {
  124.     int indice = 0;
  125.     for (indice = 0; indice<validos; indice++)
  126.     {
  127.         apilar(p_pila,arreglo[indice]);
  128.     }
  129. }
  130.  
  131. /*
  132. Realizar una función que sume los elementos de un arreglo números reales de dimensión 100.
  133. (para poder hacer esta función, hay que cargar un arreglo de reales,
  134.  se recomienda hacer una función para cargar y otra para mostrar este tipo de arreglos)
  135.  */
  136.  
  137.  int cargarArregloReales(float arreglo[])
  138. {
  139.     int validos = 0;
  140.     char mander = 's';
  141.     while ((mander == 's')&&(validos<100))
  142.     {
  143.         printf("ingrese un numero real en la posicion %d\n",validos+1);
  144.         fflush(stdin);
  145.         scanf("%f",&arreglo[validos]);
  146.  
  147.         // printf("arreglo %d\n",arreglo[validos]); control
  148.  
  149.         validos++;//validos = validos + 1
  150.         printf("Desea seguir? s/n \n");
  151.         fflush(stdin);
  152.         scanf("%c",&mander);
  153.     }
  154.     return validos;
  155. }
  156.  
  157.  
  158. void mostrarArregloReales(float arreglo[],int validos)
  159. {
  160.     int indice = 0;
  161.     for (indice = 0; indice<validos; indice++)
  162.     {
  163.         printf("arreglo pos -> %d = %f\n",indice+1,arreglo[indice]);
  164.     }
  165. }
  166.  
  167.  
  168.  
  169. float sumaArregloReales(float arreglo[],int validos)
  170. {
  171.     float sumaReales = 0;
  172.     int indice = 0;
  173.     for (indice = 0; indice<validos; indice++)
  174.     {
  175.         sumaReales = sumaReales + arreglo[indice];
  176.         //suma += arreglo[indice];
  177.     }
  178.     return sumaReales;
  179. }
  180. /*
  181. Realizar una función que indique si un elemento dado se encuentra en un arreglo de caracteres.
  182. */
  183. int determinaExistencia(char arreglo[],int validos, char caracterBuscado)
  184. {
  185.     int encontrado = 0;
  186.     int indice = 0;
  187.  
  188.     while ((indice<validos)&&(encontrado==0))
  189.     {
  190.         if (arreglo[indice]==caracterBuscado)
  191.         {
  192.             encontrado = 1;
  193.         }
  194.         /*
  195.         else
  196.         {
  197.             encontrado = 0;
  198.         }
  199.         */
  200.         validos++;
  201.     }
  202.  
  203.     return encontrado;
  204. }
  205.  
  206. /*
  207. Realizar una función que inserte un carácter en un arreglo ordenado alfabéticamente,
  208. conservando el orden.
  209. */
  210. int insertarEnOrden(char arreglo[],int validos, char caracterNuevo)
  211. {
  212.    int indice = validos - 1;
  213.    while ((indice >=0) && (caracterNuevo < arreglo[indice]))
  214.    {
  215.        arreglo[indice+1] = arreglo[indice];
  216.        indice--;
  217.    }
  218.    arreglo[indice+1] = caracterNuevo;
  219.    return validos+1;
  220. }
  221.  
  222. /*
  223. Realizar una función que obtenga el máximo carácter de un arreglo dado.
  224. */
  225. char buscarMayor(char arreglo[],int validos)
  226. {
  227.     char mayor = arreglo[0];
  228.     int indice = 0;
  229.     for (indice = 0;indice<validos;indice++)
  230.     {
  231.         if (arreglo[indice]>mayor)
  232.         {
  233.             mayor = arreglo[indice];
  234.         }
  235.     }
  236.     return mayor;
  237. }
  238.  
  239. int buscarPosMayor(char arreglo[],int validos)
  240. {
  241.     char mayor = arreglo[0];
  242.     int posMayor = 0;
  243.     int indice = posMayor+1;
  244.     for (indice = 1;indice<validos;indice++)
  245.     {
  246.          if (arreglo[indice]>mayor)
  247.         {
  248.             mayor = arreglo[indice];
  249.             posMayor = indice;
  250.         }
  251.     }
  252.     return posMayor;
  253. }
  254.  
  255. int determinaCapicua(char arreglo[],int validos)
  256. {
  257.     int indice = 0;
  258.     int ultimaPos = validos -1;
  259.     int capicua = 1;
  260.     while ((indice<validos)&&(ultimaPos>=0)&&(capicua==1))
  261.     {
  262.         if (arreglo[indice] == arreglo[ultimaPos])
  263.         {
  264.              indice++;
  265.             ultimaPos--;
  266.         }
  267.         else
  268.         {
  269.             capicua = 0;
  270.         }
  271.  
  272.     }
  273.     return capicua;
  274. }
  275.  
  276. void invertirArreglo(char arreglo[],int validos)
  277. {
  278.     int indice = 0;
  279.     char aux;
  280.     int ultimaPos = validos - 1;
  281.     while (indice < ultimaPos)
  282.     {
  283.         aux = arreglo[indice];
  284.         arreglo[indice] = arreglo[ultimaPos];
  285.         arreglo[ultimaPos] = aux;
  286.         indice++;
  287.         ultimaPos--;
  288.     }
  289. }
Advertisement
Add Comment
Please, Sign In to add comment