Preview only show first 10 pages with watermark. For full document please download

Ejercicios Guiados De Punteros En C++ , 6 Hojas

Descripción: ejercicios resueltos de punteros para aquellos que ven programacion y lo necesiten

   EMBED


Share

Transcript

Laboratorio de Programación II. Grupo C PRACTICA 4: PUNTEROS(II) PUNTEROS(II) EJERCICIO GUIADOS  Ejercicio 1 En este ejercicio se va a implementar un programa que permite al usuario introducir un número determinado de palabras y da como resultado la impresión de las palabras por  consola ordenadas de forma descendente. Para ello se va a utilizar la función strcmp(char*,  char*) de la librería estándar del C++ que permite comparar dos cadenas de caracteres. Dicha función está declarada en el fichero string.h. Escribir el siguiente código: #include #include void Ordena(char Ordena(char **, int int); ); void ImprimePalabras( ImprimePalabras(char char **, int int); ); char** char ** ReservayPide(int ReservayPide( int); ); void Libera( char **, int int); ); void main( void  main(void void) ) { char **palabras; int num; cout << "Numero de palabras:"; palabras:" ; cin >> num; palabras = ReservayPide(num); cout << "Palabras Introducidas: " << endl; ImprimePalabras(palabras,num); Ordena(palabras,num); cout << "Palabras Ordenadas: " << endl; ImprimePalabras(palabras,num); } char** char ** ReservayPide(int ReservayPide( int num) { char tmp[120]; char **words; words = new char*[num]; char*[num]; for (int i=0;i> tmp; words[i] = new char[ char[ strlen(tmp)+1 ]; strcpy( words[i], tmp); } return words; //devuelve matriz } void Ordena(char Ordena(char **words, int num) { for (int i=0;i #include //para strlen #include //para atoi() void main(void main(void) ) 2 Laboratorio de Programación II. Grupo C { int fil = 8; //numero de filas int col = 5; //numero de columnas float **datos; datos = new float*[fil]; float*[fil]; //vector filas //reserva memoria para las columnas de cada fila for (int i=0;i #include #include //para gets() void main(void main(void) ) { char frase[120]; char** char ** pfrases; int NumFrases; cout << "Cuantas frases desea almacenar:"; almacenar:"; cin >> NumFrases; pfrases = new char*[NumFrases]; char*[NumFrases]; //Espacio para NumFrases //pedir datos for (int i=0;i #include //para rand() void main(void main(void) ) { int Num; //Numero de datos int *datos; //puntero a int cout << "Cuantos numeros deseas generar:"; generar:"; cin >> Num; //asignacion de memoria datos = new int[Num]; int[Num]; if (datos == NULL) cout << "Error" "Error"; ; //Llenar el vector for (int i=0;i Hacer aquí el algoritmo . . . . . . //imprime los datos ordenados for (i=0;i> >> >> >> >> >> Introduce el Introduce el Introduce el Introduce el El polinomio El valor del numero de coeficientes: 2 coeficiente 1: 2.5 coeficiente 2: 3.5 valor de x: 2.0 es: 2.5*X^0 + 3.5*X^1 polinomio en el punto 2.0 es 9.5 Ejercicio 5  Este ejercicio consiste en implementar un algoritmo para el cálculo de la integral definida de un polinomio entre dos puntos (A y B) dados. El   polinomio debe ser de cualquier  grado: 2 3 … n P(X)=a0+a1 x+a2 x +a3 x + +an x Los pasos a seguir son: 1. Pedir el grado del polinomio.  new). 2. Crear un array de tipo double para albergar el polinomio (utilizar  new 3. Pedir los coeficientes del polinomio. 4. Pedir los puntos A y B para pa ra evaluar la integral (A < B). 5. Pedir el número de subintervalos “ n”. 6. Sacar el valor de la integral por consola. El algoritmo se basa en la división del intervalo (A, B de la figura ) en  n subintervalos, sumando las áreas de éstos. Si los subintervalos son lo suficientemente pequeños el área de cada subintervalo se puede aproximar al área de un trapecio. En definitiva, la integral se  puede aproximar como: a ∫  f ( x) ∑ ≈ ((f(x i)+f(xi+1)/2)*(xi+1-xi)) b 5 Laboratorio de Programación II. Grupo C Ejercicio 6  Este ejercicio consiste en hacer un programa que cuente cuantas veces se repiten las vocales (se deben contar las mayúsculas y las minúsculas)en un texto dado por el usuario. La estructura del programa debe ser la siguiente: #include #include char *PideTexto(); void ContarVocales(char ContarVocales(char *, int []); void Imprime(int Imprime(int []); void main() { char *texto; int Num[5]; texto = PideTexto(); ContarVocales(texto,Num); Imprime(Num); delete [] texto; //libera memoria } A continuación se explican cada una de las funciones llamadas desde main: 1.La función PideTexto devuelve un puntero a la cadena que el usuario ha escrito. 2.La función ContarVocales recibe el array que contiene el texto y otro array de enteros, en el cual va a devolver cuantas veces se repite cada una de las vocales, es decir, en   Num[0] vendrán las veces que se repite la vocal a , en Num[1] la vocal e y así sucesivamente. 3.La función  Imprime recibe el array de enteros e imprime en la consola lo que ha encontrado. ENTREGA DE LOS EJERCICIOS La forma de entregar la práctica será a través de la asignatura virtualizada en el campus virtual. En la asignatura virtualizada verás una serie de enlaces, entre ellos, hay uno titulado como prácticas. Navega sobre dicho enlace, y verás que hay un grupo con los apellidos de los integrantes de los grupos. Dicho grupo de trabajo tiene asociado una carpeta sobre la que puedes subir , eliminar o editar archivos(Accedes usando Editar Archivos). Zippea el trabajo correspondiente, y dentro del zip incluye un archivo de texto en que aparezcan los nombres de los que formáis el grupo. Etiqueta el archivo zip con el nombre LabnApellidoApellido.zip. Por ejemplo si Juan Martínez Martin y Silvia Pérez García están en el laboratorio 1, y forman un grupo etiquetan etiquetan su zip como Lab1MartinezPerez.zip. Lab1MartinezPerez.zip. A continuación usa la opción cargar  que hay en la parte derecha del área donde te encuentras, y te permitirá subir archivos desde tu disco duro. Almacénalo en la carpeta correspondiente al grupo al que perteneces. Tenéis de plazo para subir la correspondiente práctica 4 hasta este viernes día 3 de Noviembre. Acabado el  plazo no se podrán subir las prácticas, y se considerará como práctica no entregada. Si tienes alguna duda o  problema sobre el procedimiento de entrega no dudes en preguntar. 6