PUNTEROS Ing Anghello Quintero.

Slides:



Advertisements
Presentaciones similares
Curso de Java Capitulo 2: Introducción a Java Profesor:
Advertisements

Listas enlazadas c++ Prof. Franklin Cedeño.
ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I PROFESORA: NELWI BÁEZ.
Procedimientos y Funciones
Clase 3: Punteros y Referencias
Programación I Teoría III
Direcciones, Arreglos y Argumentos de Funciones
Estructuras de datos. Programación, Algoritmos y Estructuras de Datos.
Tipos de Datos Básicos y Estructurados
Punteros Universidad Nacional Mayor de San Marcos
INFORMATICA I Arreglos 1 CLASE 17.
Funcionamiento, programación
Objetos de un programa Datos: Se denomina dato a toda aquella información característica de una entidad y que es susceptible de tratamiento en un programa.
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Ismael Camarero1. 2 ¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria.
ARREGLOS Estructuras de datos.
Estructuras de Datos Punteros y algo más.
Unidad 3 Punteros.
Ingeniero Anyelo Quintero
Herramientas para el acceso directo a memoria en C++
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Vectores en java.
ALGORITMO, ESTRUCTURAS Y PROGRAMACIÓN I PROFESORA: NELWI BÁEZ.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.

Tipos de Datos Básicos 1.
PUNTEROS Ó (apuntadores) EN LENGUAJE C
Diseño de algoritmos “Punteros”
SCJP Sun Certified Programmer for Java 6
Introducción a los punteros
Capítulo 5. Punteros y Cadenas de Caracteres
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Informática Ingeniería en Electrónica y Automática Industrial
Índice. Revisando conceptos acerca de la memoria.
Archivos.
Estructuras.
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
Unidad VI Registros (estructuras, uniones y enumeraciones)
COMPUTACIÓN I TEMA 6. Pasaje de parámetros por Referencia. Uso de apuntadores Prof. Mireya Morales.
Programación I Técnico Universitario en Web Dpto. de Informática FCFMyN - UNSL -11-
Tipo de Datos Básicos.
Informática Ingeniería en Electrónica y Automática Industrial
FIEE VARIABLES Ing. José Antonio Poma G.. FIEE Variables Una variable es un identificador (nombre de la variable) que hace referencia a.
Aplicación de estructuras de datos
Unidad II Introducción a la programación en C++
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Informática Ingeniería en Electrónica y Automática Industrial
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Programación en C para electrónicos
Punteros.
Elementos básicos del lenguaje
PUNTEROS Y REFERENCIAS
APUNTADORES.
CAPITULO V ARREGLOS Y CADENAS.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Elementos básicos del lenguaje
Los punteros Programación modular.
Punteros Recomendado: 1. Nivelación Funciones
FUNDAMENTOS DE PROGRAMACIÓN
Contenido:  ¿Qué son los Punteros?  Los Procedimientos: New y Dispose.
ARREGLOS (arrays).
UNIDAD 4: Introducción a la Lógica Computacional Objetivo : Interpretar y aplicar adecuadamente los fundamentos básicos de la estructura y funcionamiento.
PUNTEROS EN EL LENGUAJE C
Informática Ingeniería en Electrónica y Automática Industrial
MEMORIA DINÁMICA.
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Transcripción de la presentación:

PUNTEROS Ing Anghello Quintero

PUNTEROS(APUNTADORES) Una variable puntero es una variable que contiene direcciones de otras variables. Las variables vistas hasta este momento contienen valores de datos Las variables punteros contienen valores que son direcciones de memoria donde se almacenan datos Un puntero es una variable que contiene una direccion de memoria

Cada vez que se declara una variable en C++, el compilador establece un area de memoria para almacenar el contenido de esa variable Cuando se declara una variable (int), por ejemplo el compilador asigna dos bytes de memoria El espacio para esa variable se situa en una posicion especifica de la memoria llamada Direccion de memoria El concepto de punteros tiene correspondencia en la vida diaria.

Cuando se envia una carta por correo, su informacion se entrega basada en un puntero que es la direccion de esa carta

REGLAS BASICAS DE PUNTEROS Un puntero es una variable como cualquier otra Una variable puntero contiene una direccion que apunta a otra posicion de memoria En esa posicion se almacenan los datos a los que apunta el puntero Un puntero apunta una variable de memoria

DECLARACION DE PUNTEROS Al igual que cualquier variable, las variables punteros se declaran antes de ser utilizadas. La declaracion de una variable puntero debe indicar al compilador el tipo de dato al que apunta el puntero; para ello se hace preceder su nombre con un asterisco(*) tipo de apuntador * identificador de puntero

int *ptr; //puntero a un tipo de dato entero long *ptr2; //puntero a un tipo de dato largo char *ptr3; // puntero a un tipo de dato char float *f;//puntero a un tipo de dato float Siempre que aparezca un asterisco (*) en una definicion de una variable, ésta es una variable puntero

INICIALIZACION DE PUNTEROS La inicializacion de un puntero proporciona a ese puntero la direccion del dato correspondiente. Despues de esta inicializacion se puede utilizar este puntero para referenciar los datos direccionados Para asignar una direccion de memoria a un puntero se utiliza el operador de referencia & Asi por ejemplo: &valor

INICIALIZACION DE PUNTEROS Lo anterior significa “la direccion de valor”, este metodo se conoce como inicializacion estatica. Esta asignacion requiere: Asignar memoria estaticamente definiendo una variable y a continuacion hacer que el puntero apunte al valor de la variable int i; //declara una variable i, se asigna una direccion fija y no puede desaparecer int *p;//declara un puntero o variable puntero a un entero p p=&i; //asigna la direccion de i a p

INICIALIZACION DE PUNTEROS Asignar un valor a la direccion de memoria int *p; *p=50; NOTA: la asignacion p=50 es erronea El operador & devuelve la direccion de memoria El operador * devuelve el contenido de la memoria apuntada por el puntero

ASIGNACION DE MEMORIA A UN PUNTERO 100 A P contiene el valor de 100 que es la direccion de i 1001 char *p 1000 999 *p es la direccion de del elemento al que apunta p. Por consiguiente, *p contiene el valor de ‘A’ P=&i 101 char i 100 99 cout<<“\n la direccion de i”<<p; // muestra 100 (hexa) cout<<“\n el contenido de i”<<*p; // muestra ‘A’

ejemplo

ejemplo

TALLER De acuerdo a lo visto sobre punteros, elabore un programa donde se implemente el tema de punteros. No utilice funciones Utilizando funciones, elabore un programa con punteros

TALLER Redacte un ejemplo de la vida diaria donde podamos aplicar o ver la similitud con punteros

//apuntador a caracter #include<iostream.h> main() { char c; char *p; p=&c; for(c='a';c<='z';c++) {cout<<*p; } return 0;

Ejercicio Elaborar un programa que convierta cada letra del ejercicio anterior en su respectivo codigo ASCII. Ejemplo la a es el 97 , la b es el 98 y asi sucesivamente a = 97 b = 98 c= 99 .....z=122

TIPOS DE DATOS ENUMERADOS Hay diferentes tipos de datos: Numericos(Entero, real, doble) Carácter(Char) Cadena(char nombre[30]) Pero existe un tipo de datos especial, estos son los tipos de datos enumerados

Un tipo de datos enumerado o enumeracion esta constituido por una serie de constantes simbolicas enteras. Se declara una enumeracion con la palabra reservada enum y una serie de enumeradores delimitados por caracteres llaves (elementos de un tipo enumerado) y separados por coma Por defecto, el primer enumerador tiene un valor de cero. A cada enumerador se le atribuye un valor incrementando un valor constante en relacion a su predecesor

Ejemplo enum {false, true};//false ==0, true==1 cout<<“\n falso es igual a ”<<false; Otra forma de declarar un tipo de dato enumerado es: enum dias{lunes,martes,miercoles,...,domingo}; cout<<“\nLunes es el dia”<<lunes; Se puede tambien asignar explicitamente un valor a un enumerador enum dias{lunes=1,martes,miercoles,...domingo};

#include<iostream.h> class dias { enum dia{lunes=1,martes,miercoles}; public: void mostrar() cout<<"\n martes es igual a "<<martes; } }dia; main() {dia.mostrar();return 0;}

OPERACIONES ARITMETICAS CON DATOS ENUMERADOS Lo anterior significa que un valor enumerado se puede utilizar en lugar de int. OPERACIONES ARITMETICAS CON DATOS ENUMERADOS #include<iostream.h>//enum3.cpp main() { enum carro{mazda=32767,renault=-32768};//maximo valor que puede tomar una constante numerada float precio; cout<<"\nmazda "<<mazda*1000000;//se pueden realizar operaciones aritmeticas, pero da un error por que el resultado seria una constante demasiado grande return 0;}

#include<iostream.h>//enum4.cpp main() { enum carro{mazda=32767,renault=-32768};//maximo valor que puede tomar una constante numerada float precio; precio=((float)mazda)*1000;//se debe convertir a flotante cout<<"\nmazda "<<precio; return 0; }

Cada enumerador puede tener diferentes valores diferentes #include<iostream.h>//enum5.cpp main() { enum mes{enero=31,febrero=28,marzo=31};//cada enumerador puede tener un valor diferente cout<<"\nEnero tiene "<<enero<<" dias"; cout<<"\nFebrero tiene "<<febrero<<" dias"; cout<<"\nMarzo tiene "<<marzo<<" dias"; return 0; }

FUNCION CIN.GETLINE La funcion cin.getline es una funcion interna de C++ utilizada para capturar cadenas de caracteres que tengan espacios en blanco. Esta funcion permite la lectura de cadenas completas incluyendo espacios en blanco. Si se va a leer una cadena ha de ser mayor que la cadena real al menos en dos caracteres, para permitir el carácter ‘\n’ y el carácter ‘\0’. El primer carácter indica la tecla enter y el segundo es el carácter nulo de toda cadena de caracteres

M I Q P O ‘\n’ ‘\0’ A B C Espacio reconocido por cin.getline Espacio no reconocido por cin Espacio reconocido por cin.getline enter Carácter nulo introducido por cin.getline

#include<iostream.h>//cinget1.cpp main() { char nombre[30]; char apellido[30]; cout<<"\nDigite el nombre"; cin>>nombre;//escriba un nombre compuesto cout<<"\nNombre es "<<nombre;//solo muestra el primer nombre

//cinget2.cpp main() { char nombre[30]; char apellido[30]; cout<<"\nDigite el nombre "; cin.getline(nombre,32);//especificar una longitud mayor a //la cadena real cout<<"\nDigite el apellido "; cin.getline(apellido,32);//especificar una longitud mayor a cout<<"\n El nombre es "<<nombre; cout<<"\n El apellido es "<<apellido; return 0; }

TALLER 1. Elaborar un programa que convierta cada letra del ejercicio anterior en su respectivo codigo ASCII. Ejemplo la a es el 97 , la b es el 98 y asi sucesivamente a = 97 b = 98 c= 99 .....z=122

TALLER 2. Elaborar un programa que convierta cada letra del alfabeto dado en minuscula en su respectiva mayuscula. a = A b = B c= C .....z=Z

TALLER 3. Elaborar un programa a traves de punteros que muestre la tabla ASCII Valor Decimal Carácter . 33 !