Sie sind auf Seite 1von 14

RESOLUCIONES DE 1 PARCIAL #include <stdio.h> #include <stdlib.h> #include "pila.h" TEMA 1??

/* ejercicio 1 */ void cargaPila (Pila *p) { int cont = 0; char letra ='s'; while (letra=='s'&& cont<50) { leer(p); cont++; printf("\nDesea continuar? s/n\n"); fflush(stdin); scanf("%c",&letra); } } /* ejercicio 2 parcial del miercoles, el menor */ int encuantraMenorDePila (Pila *p) { int menor=0; Pila aux; inicpila(&aux); if(!pilavacia(p)) menor=desapilar(p); while(!pilavacia(p)) { if (menor>tope(p)) { apilar(&aux, menor); menor = desapilar(p); } else { apilar(&aux, desapilar(p)); } } while(!pilavacia(&aux)) { apilar(p, desapilar(&aux)); } return menor; } /* ejercicio 2 parcial del jueves, el mayor */ void pasaPilaToArreglo (Pila p, int A[]) { int encuentraMayorDePila (Pila * p) { int mayor = 0; Pila aux; inicpila(&aux); if (!pilavacia(p)) mayor = desapilar(p); while(!pilavacia(p)) { if (mayor<tope(p)) { apilar(&aux, mayor); mayor=desapilar(p); } else { apilar(&aux, desapilar(p)); } } while(!pilavacia(&aux)) { apilar(p, desapilar(&aux)); } return mayor; } /*ejercicio 3 */ int cuentaElementosPila(Pila p) { Pila aux; inicpila(&aux); int cont=0; while(!pilavacia(&p)) { apilar(&aux, desapilar(&p)); cont++; } return cont; } /* ejercicio 4 para los dos parciales... */

int cant = cuentaElementosPila(p); int i=0; while (i<cant) { // A[i]= encuantraMenorDePila(&p); A[i]= encuentraMayorDePila(&p); i++; } } void muestraArreglo (int A[], int cant) { int i=0; printf("El contenido del arreglo es: "); while (i<cant) { printf("%d ",A[i]); i++; } printf("\n\nCantidad de elementos del arreglo: %d", i); }

int main() { Pila dada; inicpila(&dada); cargaPila(&dada); mostrar(&dada); int cant = cuentaElementosPila(dada); printf("\n La cantidad de elementos de la pila es %d \n", cant); /* int menor = encuantraMenorDePila(&dada); printf("\n El menor elemento de la pila es %d \n", menor);*/ mostrar(&dada); int unArreglo[50]; pasaPilaToArreglo(dada, unArreglo); muestraArreglo(unArreglo, cant); return 0; }

OTRO #include <stdio.h> #include <stdlib.h> #include "pila.h" /* ejercicio 1 */ void cargaPila (Pila *p) { int cont = 0; char letra ='s'; while (letra=='s'&& cont<50) { leer(p); cont++; printf("\nDesea continuar? s/n\n"); fflush(stdin); scanf("%c",&letra); } } /* ejercicio 2 */ int encuantraMenorDePila (Pila *p) { int menor=0; Pila aux; inicpila(&aux); if(!pilavacia(p)) menor=desapilar(p); while(!pilavacia(p)) { if (menor>tope(p)) { apilar(&aux, menor); menor = desapilar(p); } else { apilar(&aux, desapilar(p)); } } while(!pilavacia(&aux)) { apilar(p, desapilar(&aux)); } return menor; } /* ejercicio 4 */ int pasaPilaToArreglo (Pila p, int A[], int dimension) { int cant = cuentaElementosPila(p); int i=0; while (i<cant && i<dimension) // tambien podemos limitar por !pilavacia() { A[i]= encuantraMenorDePila(&p); i++; } return i; } // ejercicio 5 // void muestraArreglo (int A[], int cantValidos) { int i=0; printf("El contenido del arreglo es: "); while (i<cantValidos) { printf("%d ",A[i]); i++; } } } /*ejercicio 3 */ int cuentaElementosPila(Pila p) { Pila aux; inicpila(&aux); int cont=0; while(!pilavacia(&p)) { apilar(&aux, desapilar(&p)); cont++; } return cont;

// ejercicio 6 // int main() { Pila dada; inicpila(&dada); cargaPila(&dada); mostrar(&dada); int cant = cuentaElementosPila(dada); printf("\n La cantidad de elementos de la pila es %d \n", cant); int menor = encuantraMenorDePila(&dada); printf("\n El menor elemento de la pila es %d \n", menor); mostrar(&dada); int unArreglo[50]; int validos = pasaPilaToArreglo(dada, unArreglo, 50); muestraArreglo(unArreglo, validos); printf("\n\nBueno, esto fue el primer parcial de Laboratorio 1\nespero que haya gustado!\n"); return 0; }

TEMA 2 #include <stdio.h> #include <stdlib.h> #include "pila.h" /* ejercicio 1 */ void cargaPila (Pila *p) { int cont = 0; char letra ='s'; while (letra=='s'&& cont<50) { leer(p); cont++; printf("\nDesea continuar? s/n\n"); fflush(stdin); scanf("%c",&letra); } } /* ejercicio 2 */ void pasaValores (Pila a, Pila *b) { Pila aux; inicpila(&aux); while(!pilavacia(&a)) { if(tope(&a)>20 && tope(&a)<50) { apilar(b, desapilar(&a)); } if (!pilavacia(p)) mayor = desapilar(p); while(!pilavacia(p)) { if (mayor<tope(p)) { apilar(&aux, mayor); mayor=desapilar(p); } else { apilar(&aux, desapilar(p)); }***SIGUE else { apilar(&aux, desapilar(&a)); } } }***pasa valores

/* ejercicio 3 */ int encuentraMayorDePila (Pila * p) { int mayor = 0; Pila aux; inicpila(&aux);

}***SIGUE while(!pilavacia(&aux)) { apilar(p, desapilar(&aux)); } return mayor; }

} // ejercicio 6 // int main() { Pila dada; inicpila(&dada); cargaPila(&dada); Pila valores; inicpila(&valores); // como le envio una copia de dada, no se modifica // el contenido de ella en el main.. pasaValores(dada,&valores); printf("Pila dada"); mostrar(&dada); printf("Pila valores"); mostrar(&valores); int mayor = encuentraMayorDePila(&dada); printf("\n El mayor elemento de la pila es %d \n", mayor); mostrar(&dada); int unArreglo[50]; int validos = pasaPilaToArreglo(dada, unArreglo, 50); muestraArreglo(unArreglo, validos); printf("\n\nBueno, esto fue el primer parcial de Laboratorio 1\nespero que haya gustado!\n"); return 0; }

/* ejercicio 4 */ int pasaPilaToArreglo (Pila p, int A[], int dimension) { int i=0; while (!pilavacia(&p)&& i<dimension) { A[i]= encuentraMayorDePila(&p); i++; } return i; } // ejercicio 5 // void muestraArreglo (int A[], int cantValidos) { int i=0; printf("El contenido del arreglo es: "); while (i<cantValidos) { printf("%d ",A[i]); i++; }

ARREGLOS AVANZADOS, PRCTICO 4 DEL 1 AL 4 #include <stdio.h> #include <stdlib.h> #include <../../../pila.h> int cargarArreglo (int a[],int dimension)// ejercicio 1 arreglos { int i = 0; char letra ='s'; while(i < dimension && letra == 's') { printf("\n Ingrese un valor entero:"); scanf("%d",&a[i]); i++;

printf("Desea continuar? s/n......"); fflush(stdin); scanf("%c",&letra); } return i;//retorna la cantidad de elementos cargados pero q puede q no sea la cant, total del arreglo } int muestraArreglo (int A[],int validos) //ejer 2, validos representa a una variable de cantidad de elementos validos encontradas en el arreglo, es decir no todo { int i=0; printf("Los elementos del arreglo son: \n "); while(i<validos) // validos son los elem validos en el arreglo { printf(" %d\n", A[i]); i++; } return i; } int sumaArreglo (int A[], int validos)//ejer 3, funcion de tipo entero porque dice "int" antes de la fx { int i=0;// acumulador para recorrer los subindices int suma=0; while(i<validos) { suma+= A[i]; i++; } return suma; } void pasarArregotoPila(int a[],int validos,Pila *p)// Ejercicio 4 { int i=0; while(i<validos) { apilar(p,a[i]);//para pasar de una pila al arreglo a[i]=tope(&dada) i++; } } //MAIN DE FUNCIONES DE ARREGLOS int main () { int arreglo [20];//aca defino el tamao del arreglo int validos = 0; int totalsuma=0; validos = cargarArreglo(arreglo,20);//ejer 1 muestraArreglo(arreglo,validos); printf("La CANTIDAD de datos ingresados al arreglo es: %d\n", validos);//ejer 2 totalsuma = sumaArreglo(arreglo,validos);//ejer 3 printf("La SUMA de los elementos es: %d\n",totalsuma); pasarArregotoPila(arreglo,validos,&pasarrpila); printf("Este es la pila cargada con los valores del arreglo");

mostrar(&pasarrpila); return 0; } EJERCICIO 5 #include <stdio.h>//EJERCICIO 5, SUMA ELEMENTOS DEL ARREGLO #include <stdlib.h> float cargarArreglo (float a[],int dimension)// ejercicio 1 arreglos { int i = 0; char letra ='s'; while(i < dimension && letra == 's') { printf("\n Ingrese un valor entero:"); scanf("%f",&a[i]); i++; printf("Desea continuar? s/n......"); fflush(stdin); scanf("%c",&letra); } return i;//retorna la cantidad de elementos cargados pero q puede q no sea la cant, total del arreglo } void muestraArreglo (float A[],int validos) //ejer 2, validos representa a una variable de cantidad de elementos validos encontradas en el arreglo, es decir no todo { int i=0; printf("Los elementos del arreglo son: \n"); while(i<validos) // validos son los elem validos en el arreglo { printf(" %f\n", A[i]); i++; } } float sumaElementos (float arreglosuma[],int validos) //SEGUIR, EJERCICIO 5, tiene q tener 100 elementos el arreglo { int i=0; float suma=0; while (i<validos) { suma+= arreglosuma[i]; i++; } return (float)suma; } int main() { int arreglo [100];//aca defino el tamao del arreglo int validos = 0; //float totalsuma=0; validos = cargarArreglo(arreglo,100);//ejer 1 muestraArreglo(arreglo,validos);

printf("La CANTIDAD de datos ingresados al arreglo es: %d\n", validos);//ejer 2 //totalsuma = //ejer 3 printf("La SUMA de los elementos es: %f\n",sumaElementos(arreglo,validos)); return 0; } EJERCICIO 5 #include <stdio.h>//EJERCICIO 5, SUMA ELEMENTOS DEL ARREGLO #include <stdlib.h> float cargarArreglo (float a[],int dimension)// ejercicio 1 arreglos { int i = 0; char letra ='s'; while(i < dimension && letra == 's') { printf("\n Ingrese un valor entero:"); scanf("%f",&a[i]); i++; printf("Desea continuar? s/n......"); fflush(stdin); scanf("%c",&letra); } return i;//retorna la cantidad de elementos cargados pero q puede q no sea la cant, total del arreglo } void muestraArreglo (float A[],int validos) //ejer 2, validos representa a una variable de cantidad de elementos validos encontradas en el arreglo, es decir no todo { int i=0; printf("Los elementos del arreglo son: \n"); while(i<validos) // validos son los elem validos en el arreglo { printf(" %2.2f\n", A[i]); i++; } } float sumaElementos (float arreglosuma[],int validos) //SEGUIR, EJERCICIO 5, tiene q tener 100 elementos el arreglo { int i=0; float suma=0; while (i<validos) { suma+= arreglosuma[i]; i++; } return (float)suma; }

int main() { float arreglo [100];//aca defino el tamao del arreglo int validos = 0; validos = cargarArreglo(arreglo,100);//ejer 1

muestraArreglo(arreglo,validos); printf("La CANTIDAD de datos ingresados al arreglo es: %d\n", validos);//ejer 2 sumaElementos(arreglo,validos); printf("La SUMA de los elementos es: %2.2f\n",sumaElementos(arreglo,validos)); return 0; } EJERCICIO 6: Ver si una letra se encuentra #include <stdio.h>//EJERCICIO 7. encontrar un caracter en un arreglo y decir si esta o no. #include <stdlib.h> #include <string.h>

int cargarArregloChar (char a[],int dimension)// FUNCION CARGA DE ARREGLO TIPO CHAR { int i =0; char letra ='s'; while(i < dimension && letra == 's') { printf("\n Ingrese un Caracter:"); fflush(stdin); scanf("%c",&a[i]); i++; printf("Desea continuar? s/n......"); fflush(stdin); scanf("%c",&letra); } return i;//retorna la cantidad de elementos cargados pero q puede q no sea la cant, total del arreglo } void muestraArreglo (char A[],int validos) { int i=0; printf("\n Los elementos del arreglo son: \n"); while(i<validos) // validos son los elem validos en el arreglo { printf("[%c]", A[i]); i++; } } int encuentraCaracter (char B[],int validos,char dato)//dice si un dato esta o no { int i=0; int flag=0; while(i<validos && flag ==0) { if(B[i] == dato) { flag=1; } i++; } return flag; }

//MAIN EJERCICIO 6 int main () { printf("Encuentra el caracter escondido\n"); char abc [10]; int validos=0; validos=cargarArregloChar(abc,10);//aca va la fx de carga del arreglo muestraArreglo(abc,validos); //Ejercicio 6 int encontrado=0; char dato='r'; encontrado=encuentraCaracter(abc,validos,dato); if (encontrado==1) { printf("\n El dato se encontro QUE FELIZ, y el dato es {%c} \n",dato); } else { printf("\nEl dato NO se encontro QUE INFELIZ\n"); } return 0; } EJERCICIO 6: LA PICH #include <stdio.h> #include <stdlib.h> int carga(char a[], int dimension){ char res='s'; int i=0; char elem; while ((i<dimension) && (res=='s')){ printf("Ingrese un elemento \n"); fflush(stdin); scanf("%c", &elem); a[i]=elem; printf("Desea ingresar otro elemento ? s/n \n"); fflush(stdin); scanf("%c",&res); i++; } return i; } void muestra(char a[], int validos){ int i; for(i=0;i<validos;i++) printf("|%c|",a[i]); printf("\n"); } int encuentracaracter(char a[], int validos, char elem){ int i=0,aux=0; while ((i<validos) && (a[i]!=elem)){ i++; } if (a[i]==elem) aux=1;

return aux; } int main(){ float arreglo[100]; int validos; int caracter,c; validos=carga(arreglo,100); muestra(arreglo,validos); printf("Ingrese el caracter a buscar \n"); fflush(stdin); scanf("%c",&caracter); c=encuentracaracter(arreglo,validos,caracter); if (c==1) printf("El elemento ya se encuentra en el arreglo \n"); else printf("El elemento no se encuentra en el arreglo \n"); getchar(); return 0; } EJERCICIO 7 #include <stdio.h>//7. Realizar una funcion q inserte un caracter en un arreglo ordenado alfabeticamente, conservando el orden. #include <stdlib.h> #include <string.h> int cargarArregloChar (char a[],int dimension)// FUNCION CARGA DE ARREGLO TIPO CHAR { int i =0; char letra ='s'; while(i < dimension && letra == 's') { printf("\n Ingrese un Caracter:"); fflush(stdin); scanf("%c",&a[i]); i++; printf("Desea continuar? s/n......"); fflush(stdin); scanf("%c",&letra); } return i;//retorna la cantidad de elementos cargados pero q puede q no sea la cant, total del arreglo } void muestraArreglo (char A[],int validos) { int i=0; printf("Los elementos del arreglo son: \n"); while(i<validos) // validos son los elem validos en el arreglo { printf("[%c]", A[i]); i++; } } int insertaCharenOrden (char A[],int validos,char dato) { int u=validos -1; while(u>=0 && dato<A[u]) //mientras no llegue a la posicion cero hacer, se va a fijar en el codigo ASCII, dato<A[u], comparo el subindice con la variable dato.

{ A[u+1]=A[u]; u--; } A[u+1]=dato;//aca es donde se hace efectiva la inserccion del dato return validos + 1; //ojo q tengo q devolver la cantidad anterior mas uno q es el q se inserta } int main() { char AA[10]; int validos; char insertar; validos=cargarArregloChar(AA,10); muestraArreglo(AA,validos); printf("Estos son los valores antes de la insercion"); //carga //muestra antes de la insercion //inserta //muestra despues de la insercion printf("\t\nIngrese el caracter a insertar\n\n"); fflush(stdin); scanf("%c",&insertar); validos=insertaCharenOrden(AA,validos,insertar); getchar(); printf("\n\nEstos son los valores despues de la insercion\n\n"); muestraArreglo(AA,validos); return 0; } EJERCICIO 7, con arreglo cargado? #include <stdio.h> #include <stdlib.h> #include <string.h> //ACA LOS CARACTERES ESTAN ORDENADOS, ABCEF, METERIAMOS LA D int letraenOrden (char arreglo[],int validos,char dato){ int u=validos-1;//es el final para q empiece desde el ultimo valido para atras while(u > 0 && dato<arreglo[u]) //mientras no llegue a la posicion cero hacer, se va a fijar en el codigo ASCII, dato<A[u], comparo el subindice con la variable dato. { arreglo[u+1]=arreglo[u]; u--; } arreglo[u+1]=dato;//aca es donde se hace efectiva la inserccion del dato return validos + 1; //ojo q tengo q devolver la cantidad anterior mas uno q es el q se inserta }

void mostrarArregloletras(char letras[],int validos) { int i=0; printf("Este es el arreglo de caracteres\n"); while(i<validos) { printf("%c",letras[i]); i++; } } int main() { char laletra; char AA[10]= {'a','b','c','e','f','g'}; int validos=6;//debe corresponder a la cant de valores q le acabo de asignar en la lin anterior printf("Ingrese la letra a insertar en el arreglo ordenado: introduzca la d \n"); fflush(stdin); scanf("%c",&laletra); letraenOrden(AA,validos,laletra); mostrarArregloletras(AA,validos); return 0; } EJERCICIO 8. LETRA MAYOR DEL ARREGLO #include <stdio.h>// USAR FORMATO MEDIANTE SHORTCUT ALT + R :) #include <stdlib.h> #include <string.h> //Realizar una fx q obtenga el max caracter de un arreglo dado. Ejercicio 8 int cargaArreglo(char letritas [],int dimension){ int i=0; char ingresesi='s'; while(i<dimension && ingresesi=='s') { printf("Ingrese una letra a su arreglo \t\t\n"); fflush(stdin); scanf("%c",&letritas[i]); i++; printf("Desea ingresar mas caracteres al arreglo?\n"); fflush(stdin); scanf("%c",&ingresesi); } return i; } char letramayor (char abc[], int validos){ char letraauxiliar; int i=0; letraauxiliar=abc[i];//aca copia el valor del subindice en la pos 0 y lo pasa a la variable letraaxiliar para comparar while(i<validos) { i++; if(abc[i]>letraauxiliar) letraauxiliar=abc[i];

} return letraauxiliar; } int main(){ char arreglito [10]; int validos=4; validos=cargaArreglo(arreglito,5); char valmayorletra; valmayorletra=letramayor(arreglito,validos); printf("Esta es la letra mayor del arreglo\n"); printf("\t\t|%c|\n",valmayorletra); return 0; } EJERCICIO 9

Das könnte Ihnen auch gefallen