Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Punteros Introducción: ¿Qué son los punteros? Un puntero es una variable que almacena la dirección de memoria de un objeto . Los punteros se usan ampliamente en C y C++ para tres propósitos principales: · Para asignar nuevos objetos en el montón, · Para pasar funciones a otras funciones · Para recorrer en iteración los elementos de matrices u otras estructuras de datos. Las variables que contienen direcciones a memoria se denominan de tipo puntero. ejemplo: int precio = 23; printf("Precio: %i\n", precio); int *punteroAPrecio = &precio; printf("Puntero a precio: %i", punteroAPrecio); Declarando una variable de tipo puntero Se declara como una variable normal, solo que se precede su nombre con un asterisco. En este caso no tiene un tipo especial como "pointer" o algo así, sino que se deduce que es un puntero por el asterisco. Y en la declaración, el tipo, se sigue utilizando, y representa al tipo del valor al que apunta. Ejemplos: · int * : es un puntero a una dirección de memoria alocada para contener un entero · float * · int * variable[]: es un arreglo de punteros a enteros Obtener la dirección de una variable (&) El operador & precede a una variable y nos permite obtener la dirección de memoria a la que apunta. Así es que en nuestro ejemplo (de más arriba) creamos un puntero que apunta la misma posición de memoria que la variable antes declarada. Desarrollo: La practica 11 es desarrollar al menos 3 ejercicios que vienen anexados en la página: http://ejercicioscpp.blogspot.com/p/ejercicios.html para poder tener una mejor comprensión de cómo se debe ejecutar correctamente los punteros, estas prácticas solamente son posibles en lenguaje C ya que en Python no existe como tal los punteros. El Pseudocodigo y el código en ejecución estarán mostrados en capturas a continuación. Pseudocodigo: (convertir cadena a mayúsculas) //Variables Vacio pasa_a_mayusculas(char *) //Funciones (menú principal) Inicio Char cadena[80] Imprimir (“Escriba una cadena de caracteres”) Escanear (cadena,80) pasa_a_mayusculas(cadena) Imprimir (“Cadena en mayúsculas”,cadena) Sistema (“pause”) Fin Vacio pasa_a_mayusculas(char *s) Inicio Mientras(*s) *s = toupper(*s) S++ Fin Pseudocodigo: (calcular el mayor numero de un vector) //Variables constante entero elemento = 8; flotante mayor(float*) //Funciones (menú principal) Inicio Flotante a[elemento] desde (i = 0;i < elemento; i++) Imprimir (“introduce el elemento:”,i) Escanear (a[i]) Imprimir (“El mayor numero es:”,mayor) Fin Flotante mayor (float *v) Inicio Flotante mayor; int i; mayor=*v; v++; Desde (i=1;i<elemento;i++) Si (*v > mayor) mayor=*v v++ retorno mayor Fin Pseudocodigo: (calcular el número de vocales de una cadena) //Variables Entero cuenta_vocales(char *) //Funciones (menú principal) Inicio Char cadena [80] Imprimir (“Introduce una cadena”) Escanear(cadena,80) Imprimir (“Numero de vocales”,cuenta_vocales(cadena)) Fin Entero cuenta_vocales(char *s) Inicio Entero cont = 0; Mientras (*s) Cambiar (toupper(*s)) Caso 'A': Caso 'E': Caso 'I': Caso 'O': Caso 'U': cont++ s++ retorno cont Fin Resultados: Primero programa en lenguaje c que mediante el uso de punteros calculara el mayor numero según los datos ingresados en el vector correspondiente Segundo programa que tiene como función leer una cadena para que después sea esta trasladada a una función que ejecute nuevamente otra función para cambiar cada letra de la cadena en una letra mayúscula, al final esta cadena será nuevamente impresa en pantalla Ultimo programa que utilizara la memoria del puntero para encontrar en donde se encuentra ubicado una vocal, esta la almacenara en una función para después ser llamada a la función principal Conclusiones: La practica pasada fue sobre las funciones, de cómo estas podían llegar a facilitar al programador la ejecución del programa. Esta practica sobre el tema de punteros nos ayuda aun mas a las funciones ya que su utilidad es cambiar el parámetro de una función, ya sea por que nos equivocamos en algo o simplemente para ejecutar la función de un modo mas especifico, las variables juegan un papel importante en este tema ya que es donde se llevara a cabo los punteros. Bibliografía Oeste, U. N. (s/d). Google Sites. Obtenido de https://sites.google.com/site/programacioniiuno/temario/unidad-1---manejo-de-memoria-dinmica/punteros-referencias-y-direcciones?authuser=0
Compartir