36
UNIDAD III PUNTEROS JULIO - 2015 UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA ANTONIO JOSE DE SUCRE VICERRECTORADO PUERTO ORDAZ DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA COMPUTACION II Elaborado Por: Prof. Silimar Salazar Prof. Lorena Estévez

Clase - Unidad 3 new2.pptx

  • Upload
    luis

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

UNIDAD IIIPUNTEROS

JULIO - 2015

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA

ANTONIO JOSE DE SUCRE

VICERRECTORADO PUERTO ORDAZ

DEPARTAMENTO DE INGENIERA ELECTRNICA

COMPUTACION II

Elaborado Por:

Prof. Silimar Salazar

Prof. Lorena Estvez

Esta plantilla se puede usar como archivo de inicio para presentar materiales educativos en un entorno de grupo.

Secciones

Para agregar secciones, haga clic con el botn secundario del mouse en una diapositiva. Las secciones pueden ayudarle a organizar las diapositivas o a facilitar la colaboracin entre varios autores.

Notas

Use la seccin Notas para las notas de entrega o para proporcionar detalles adicionales al pblico. Vea las notas en la vista Presentacin durante la presentacin.

Tenga en cuenta el tamao de la fuente (es importante para la accesibilidad, visibilidad, grabacin en vdeo y produccin en lnea)

Colores coordinados

Preste especial atencin a los grficos, diagramas y cuadros de texto.

Tenga en cuenta que los asistentes imprimirn en blanco y negro o escala de grises. Ejecute una prueba de impresin para asegurarse de que los colores son los correctos cuando se imprime en blanco y negro puros y escala de grises.

Grficos y tablas

En breve: si es posible, use colores y estilos uniformes y que no distraigan.

Etiquete todos los grficos y tablas.

1

INTRODUCCION

Un puntero, tambin llamado apuntador, es una herramienta que permite hacer los programas ms eficientes y flexibles, stos son una de las razones por las cuales el lenguaje C++ es tan potente y tan utilizado.

Todas las variables vistas hasta este momento contienen valores de datos, las variables punteros, por el contrario, almacenan direcciones de memoria que hacen referencia a dnde se encuentran datos guardados.

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Ofrezca una breve descripcin general de la presentacin. Describa el enfoque principal de la presentacin y por qu es importante.

Introduzca cada uno de los principales temas.

Si desea proporcionar al pblico una gua, puede repetir esta diapositiva de informacin general a lo largo de toda la presentacin, resaltando el tema particular que va a discutir a continuacin.

2

CONTENIDO

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

3

Definicin y Conceptos Bsicos.

Unidad III: PUNTEROS

Inicializacin de punteros.

Operaciones bsicas utilizando punteros.

Punteros de Arreglos como parmetros en funciones y procedimientos.

Punteros de Registros como parmetros en funciones y procedimientos.

Aplicaciones.

Implementacin de unidades para el manejo de punteros.

Definicin

y

Conceptos Bsicos

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

4

Concepto

de Puntero

Al declarar una variable, se le asocian tres atributos fundamentales:

Nombre o Identificador

Tipo de Dato

Direccin en Memoria

Al valor o contenido de una variable se accede por medio de su nombre. Para saber en qu direccin de memoria se aloja se le antepone el operador de direccin &.

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

sta es otra opcin para una diapositiva Informacin general que usa transiciones.

5

Concepto de Puntero

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

6

Declaracin de Puntero

Un puntero es una variable que contiene una direccin de una posicin de memoria que puede corresponder o no a una variable declarada en el programa.

La declaracin de una variable puntero se debe indicar el tipo de dato al que apunta y su nombre debe comenzar con un asterisco (*).

Tipo_de_Dato *Nombre_Variable_Puntero

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

7

Inicializacin

de

Punteros

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

8

Luego de la declaracin y antes de usar el puntero, ste se debe inicializar, es decir hacerlo apuntar a una variable. Existen dos mtodos de inicializacin: esttico y dinmico.

En el mtodo esttico se le asigna la direccin de la variable al puntero mediante el operador &, el cdigo sera como el siguiente:

Puntero = &Variable;

Inicializacin de Puntero

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

9

Operaciones bsicas utilizando punteros

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

10

Operaciones con Punteros

El uso del puntero para manipular el valor al que apunta, es decir, su dato apuntado, se denomina indireccionar o desreferenciar el puntero, para ello se utiliza el operador de indireccin: asterisco (*) en la instruccin.

*Puntero = Cantidad + 10

Leer ( *Puntero )

Mostrar ( *Puntero )

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

11

Resumen de Operadores

OperadorPropsito&Obtiene la direccin de una variable.*Define una variable como puntero.*Manipula el contenido de la variable a la cual apunta el puntero.

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

12

Siempre que aparezca un asterisco (*) en una definicin de variable, sta es una variable puntero.

Siempre que aparezca un asterisco delante de una variable puntero se accede a la variable a la que apunta el puntero.

El operador & devuelve la direccin de la variable a la cual se aplica.

C++ requiere que las variables puntero direccionen variables del mismo tipo de dato con el cual fueron declarados.

NOTAS IMPORTANTES

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

13

Operaciones bsicas utilizando punteros

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

14

12345678void main () { int A, B, C int *p1, *p2 A =__, B=__, C=__; p1= &A; p2= &B; *p2 = *p1*4; p1= &C; C = *p1 + *p2; *p2 = A + B; *p1 = A C + B;}Direc-cinVaria-bles12345678100A102B104C106p1108p2

Llene la siguiente tabla con los valores que correspondan segn el cdigo:

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Ejercicios: Parte 1.

15

12345678void main () { int A, B, C int *p1, *p2 A =__; B=__; C=__; p1= &A; p2= &C; *p2 = *p1*3; p1 += 1; *p1 = A + C; p2 = p2 - 2; *p1 += *p2; C = *p1 + *p2;}Direc-cinVaria-bles12345678100A102B104C106p1108p2

Llene la siguiente tabla con los valores que correspondan segn el cdigo:

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Ejercicios: Parte 1.

16

12345678void main () { int A, B, C int *p1, *p2 A =__; B=__; C=__; p1= &B; p2= &C; *p2 = *p1*3; p2 = p1; *p1 = A + B; p1--; *p1 += *p2; C = *p1 + *p2;}Direc-cinVaria-bles12345678100A102B104C106p1108p2

Llene la siguiente tabla con los valores que correspondan segn el cdigo:

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Ejercicios: Parte 1.

17

Declaracin Dinmica

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

18

Declaracin Dinmica

Para manejar de forma dinmica la memoria de un programa, se utilizan los operadores NEW y DELETE.

El operador new solicita espacio de memoria para una estructura nueva que se quiera crear durante la ejecucin del programa:

Tipo_Dato *Nom_Punt = new Tipo_Dato[nelem];

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

sta es otra opcin para una diapositiva Informacin general que usa transiciones.

19

El operador delete libera o borra la memoria que ocupa la estructura de datos que se ha creado previamente con new.

delete [ ] Nom_Punt;

Declaracin Dinmica

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

20

Punteros a Arreglos como parmetros en funciones y procedimientos

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

Use un encabezado de seccin para cada uno de los temas, de manera que la transicin resulte clara para el pblico.

21

Punteros

funciones y procedimientos

Entre las variables punteros y las funciones existe una relacin significativa, ya que al utilizar parmetros formales de tipo punteros se estar aplicando el mtodo de paso por referencia.

Por lo tanto, un parmetro de tipo puntero representa una variable de entrada/salida.

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

sta es otra opcin para una diapositiva Informacin general que usa transiciones.

22

El nombre de un arreglo es un puntero que contiene la direccin de memoria en donde comienza la secuencia de elementos que conforman dicho arreglo.

Este nombre del arreglo es un puntero constante ya que no se puede modificar, es decir, no se puede mover la direccin a donde apunta.

Punteros a Arreglos

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

23

Si se tiene la siguiente declaracin de arreglo:

Su almacenamiento en memoria ser el siguiente:

int V[6]= {1, 11, 21, 31, 41, 51};Direccin100102104108110112Notacin ArregloV[0]V[1]V[2]V[3]V[4]V[5]Contenido11121314151Notacin Puntero*V*(V+1)*(V+2)*(V+3)*(V+4)*(V+5)

Punteros a Arreglos

Computacin II Unidad III: Punteros.

Elaborado por: Ing. Silimar Salazar - Ing. Lorena Estvez

24

Punteros a Arreglos

Ejemplo 1. Desarrolle un programa que permita ingresar los datos de un arreglo y llenar un segundo arreglo con los datos invertidos del primero. Hgalo a travs de subrutinas.

#include

#include

void cargar (int *p, int n) {

int i;

for (i=0; i