algoritmos y lenguaje de programacionivan y yo´po

18

Click here to load reader

Upload: ivan-gutierrez

Post on 03-Jul-2015

1.032 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

26-ENERO-2011

Page 2: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

ALGORITMOS Y LENGUAJE DE PROGRAMACION.

OBJETIVO:El estudiante desarrollara la lógica algorítmica para aplicar los conocimientos de un lenguaje estructurado en la resolución de problemas científicos y tecnológicos.

UNIDA I. INTRODUCCION A LA COMPUTACION1.1 NUEVAS TECNOLOGIAS DE LA INFORMACION1.2 ELEMENTOS DE UN SISTEMA COMPUTACIONAL1.2.1 HARDWARE1.2.2 SOFTWARE1.3 CLASIFICACION DE LOS SITEMAS OPERATIVOS1.4 PAQUETERIA DE SOFTWARE

UNIDAD II. DESARROLLO DE LOGICA ALGORITMICA

2.1 METODOLOGIA PARA LA SOLUCION DE PROBLEMAS2.2 METODOLOGIA PARA EL DISEÑO DE SOFTWARE2.3 DEFINICION DE LENGUAJES ALGORITMICOS2.3.1 ELEMENTOS Y REGLAS DE LA REPRESENTACION GRAFICA Y MANUSCRITA DE LOS ALGORITMOS2.3.2 IMPLEMENTACION DE ALGORITMOS SECUENCIALES2.4 PRUEBAS Y DEPURACION

UNIDAD III. CONOCIMIENTO DE PROGRAMACION Y UN LENGUAJE ESTRUCTURADO

3.1 INTRODUCCION A LA PROGRAMACION3.1.1 DEFINICION DEL PROGRAMA3.1.2 DEFINICION DE PROGRAMACION3.1.3 DEFINICION DEL LENGUAJE DE PROGRAMACION3.2 INTRODUCCION Y ORIGENES DEL LENGUAJE3.3 ESTRUCTURA BASICA DE UN PROGRAMA3.4 DATOS 3.4.1 TIPOS DE DATOS3.4.2 IDENTIFICADORES3.4.3 ALMACENAMIENTO, DIRECCION Y REPRESENTACION EN MEMORIA3.4.4 PROPOSICION Y ASIGNACION3.5 OPERADORES OPERANDOS Y EXPRESIONES3.5.1 PRIORIDAD DE OPERADORES, EVALUACION DE EXPRESIONES3.6 PROCESO DE CREACION DE UN EJECUTABLE

UNIDAD IV. FUNCIONES

4.1 FUNCIONES4.1.1 DEFINICION4.1.2 FUNCIONES ESTANDAR4.2 ENTRADA Y SALIDA DE DATOS4.3 FUNCIONES DEFINIDAS POR EL USUARIO4.4 PUNTEROS

Page 3: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

UNIDA I. INTRODUCCION A LA COMPUTACION (parte teórica)

1.1 Nuevas tecnologías de la información

En base a la función que realiza un sistema de cómputo tiene cuatro componentes:

entrada, procesamiento, salida y almacenamiento.

Entrada, procesamiento, almacenamiento/salida, capacidades de un sistema,

velocidad, precisión, confiabilidad y capacidad de memoria.

1.2.1 HARDWARE

Hardware son todos los componentes y dispositivos físicos y tangibles que forman una computadora como la CPU o la placa base, mientras que el Software es el equipamiento lógico e intangible como los programas y datos que almacena la computadora.

1.2.2 Software

El Software es el soporte lógico e inmaterial que permite que la computadora pueda

desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con

instrucciones y datos a través de diferentes tipos de programas.

1.3 Clasificación de los sistemas operativos

El sistema operativo, es el instrumento indispensable para hacer de la computadora

un objeto útil. Bajo este nombre se agrupan todos aquellos programas que permiten a

los usuarios la utilización de este enredo de cables y circuitos, que de otra manera

serian difíciles de controlar. Un sistema operativo se define como un conjunto de

procedimientos manuales y automáticos, que permiten a un grupo de usuarios

compartir una instalación de computadora eficazmente.

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).

Sistema Operativo Mono tareas.

1.4 Paquetería de software

Una Aplicación es un programa informático diseñado para facilitar al usuario la

realización de un determinado tipo de trabajo. Posee ciertas características que le

diferencia de un sistema operativo (, de una utilidad y de un lenguaje.

PROGRAMAS REALIZADOS EN CLASE (parte practica)

PROGRAMA PARA LA SUMA DE DOS NUMEROS

#include<stdio.h>#include<conio.h>

Page 4: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

SU(){ clrscr(); int A=0,B=0,C=0,D=0,E=0,F=0,G=0; printf("Da el primer numero a sumar%d",A); scanf("%d",&A); printf("Da el segundo numero a sumar%d",B); scanf("%d",&B); C=A+B; printf("El resultado es=%d",C); scanf("%d",&C); getch(); printf("Da el primer numero a restar%d",D); scanf("%d",&D); printf("Da el segundo numero a restar%d",E); scanf("%d",&E); C=D-E; printf("El resultado es=%d",C); scanf("%d",&C); getch(); printf("Da el primer numero a multiplicar%d",F); scanf("%d",&F); printf("Da el segundo numero a multiplicar%d",G); scanf("%d",&G); C=F*G; printf("El resultado es=%d",C); scanf("%d",&C); getch(); return 0;}

PROGRAMA QUE CONVIERTE UN NUMERO ENTERO A BINARIO.

#include<stdio.h>#include<conio.h>main(){ int A=0, B=0, C=10; clrscr(); gotoxy(11,2);printf("PROGRAMA QUE CONVIERTE UN NUMERO ENTERO A BINARIO"); gotoxy(16,6);printf("INTRODUCE UN NUMERO:",A); scanf("%d",&A); while(A!=0) { B=A%2; A=A/2; gotoxy(15,C);printf("%d = %d",A,B); C=C+1; }

getch(); return 0;}

Page 5: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

PROGRAMA QUE TE INDICA EL NUMERO MAYOR, MENOR E INTERMEDIO DE TRES NUMEROS

#include<stdio.h>#include<conio.h>main(){ float A=0,B=0,C=0; clrscr(); gotoxy(5,2);printf("PROGRAMA QUE TE INDICA EL NUMERO MAYOR, MENOR E INTERMEDIO DE TRES NUMEROS"); gotoxy(16,6);printf("INTRODUCE EL 1er NUMERO:",A); scanf("%f",&A); gotoxy(16,8);printf("INTRODUCE EL 2do NUMERO:",B); scanf("%f",&B); gotoxy(16,10);printf("INTRODUCE EL 3er NUMERO:",C); scanf("%f",&C); if(A>B && A>C) { gotoxy(50,15);printf(" EL MAYOR ES: %f",A); } if(B>A && B>C) { gotoxy(50,15);printf(" EL MAYOR ES: %f",B); } if(C>B && C>A) { gotoxy(50,15);printf(" EL MAYOR ES: %f",C); } if(A>B && B>C)

{ gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",B);} if(B>A && A>C) { gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",A); } if(A>C && C>B) { gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",C); } if(C>A && A>B) { gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",A); } if(B>C && C>A)

{ gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",C);} if(C>B && B>A) { gotoxy(50,17);printf(" EL INTERMEDIO ES: %f",B); } if(A<B && A<C)

Page 6: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

{ gotoxy(50,19);printf(" EL MENOR ES: %f",A); } if(B<A && B<C) { gotoxy(50,19);printf(" EL MENOR ES: %f",B); } if(C<B && C<A)

{ gotoxy(50,19);printf(" EL MENOR ES: %f",C);} if(A==B && B>C) { gotoxy(10,21);printf(" HAY UNA IGUALDAD CON: %f Y

SON MAYORES QUE: %f",A,C); } if(B==C && C>A) { gotoxy(10,21);printf(" HAY UNA IGUALADAD CON: %f Y

SON MAYORES QUE: %f ",B,A); } if(C==A && C>B) { gotoxy(10,21);printf(" HAY UNA IGUALDAD CON: %f Y

SON MAYORES QUE: %f",C,B); }

getch(); return 0;}

PROGRAMA QUE DA EL PROMEDIO

#include<stdio.h>#include<conio.h>main(){ clrscr(); char N[8]; float A=0,B=0,C=0,D=0; printf("PON TU NOMBRE %s"); scanf("%s",&N); printf("DA CALIFICACION DE PRIMER PARCIAL %d",A); scanf("%f",&A); printf("DA CALIFICACION DE PRIMER PARCIAL %d",B); scanf("%f",&B); printf("DA CALIFICACION DE PRIMER PARCIAL %d",C); scanf("%f",&C); D=(A+B+C)/3; printf("TU PROMEDIO ES %f",D); if (D<=69.99) { printf("NA"); } if(D>=70 && D<= 74.99)

Page 7: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

{ printf("SUFICIENTE"); } if(D>=75 && D<= 84.99) { printf("BIEN"); } if(D>=85 && D<= 94.99) { printf("MUY BIEN"); } if(D>=95 && D<= 100) { printf("EXCELENTE"); } getch(); return (0); }

UNIDAD II. DESARROLLO DE LOGICA ALGORITMICA (PARTE TEORICA)

2.1 Metodología para la solución de problemasHay cinco etapas para resolver problemas algorítmicos, estas son:

1. Definición del sistema

2. Diseño del sistema

3. Codificación

4. Prueba y depuración: Se realizan pruebas

5. Documentación y Mantenimiento

2.2 Metodología para el diseño de software

El Diseño de Sistemas se define el proceso de aplicar ciertas técnicas y principios con

el propósito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles

como para permitir su interpretación y realización física.

2.3 Definición de lenguajes algorítmicos

Es un Método para resolver un problema mediante una serie de pasos precisos,

definidos y finitos. Un algoritmo es una serie de operaciones detalladas, en otras

palabras un algoritmo es un conjunto de reglas para resolver una cierta clase de

problemas y se puede formular de muchas formas con el cuidado de que no exista

ambigüedad. Características: Preciso Definido, Finito, Debe ser Sencillo, Legible.

Modular y Eficiente y Efectivo.

Page 8: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

2.3.1 Elementos y reglas de la representación grafica y manuscrita de los algoritmosUn algoritmo puede adoptar una de las estructuras siguientes o combinaciones de ellas: lineal o secuencial, alternativa o selectiva y repetitiva o cíclica. La más sencilla de las tres es la lineal, también llamada secuencial que se caracteriza porque todos los pasos del algoritmo se realizan en secuencia, es decir, se suceden uso a otros.

2.3.2 Implementación de algoritmos secuencialesEl ingreso de la notación algebraica en el desarrollo de algoritmos logró un gran avance para los programadores ya que fue una forma más tangible de desarrollar sus programas, por medio de la lógica.

2.4 Pruebas y depuraciónUna vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de determinar si resuelve o no el problema planteado en forma satisfactoria. Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo de problema

PROGRAMAS REALIZADOS EN CLASE (PARTE PRACTICA)

PROGRAMA QUE REALIZA UN CIADRADO Y SU SOMBRA

#include<dos.h>#include<stdio.h>#include<conio.h>main(){ int A=0, B=0, C=0, D=0, a=0, b=0, c=0, d=0; clrscr(); for(A=1; A<=79; A++) { delay(20); gotoxy(A,1);printf("Ü"); } for(B=1; B<=25; B++) { delay(20); gotoxy(79,B);printf("Ü"); } for(C=79; C>=1; C--) { delay(20); gotoxy(C,25);printf("Ü"); } for(D=25; D>=1; D--)

{ delay(20); gotoxy(1,D);printf("Ü");}

Page 9: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

for(a=20; a<=60; a++) { delay(20); gotoxy(a,6);printf("Ü"); } for(b=20; b<=25; b++) { delay(20); gotoxy(60,b);printf("Ü"); } for(c=60; c>=20; c--) { delay(20); gotoxy(c,12);printf("Ü"); } for(d=12; d>=6; d--)

{ delay(20); gotoxy(1,d);printf("Ü");}

getch();}

PROGRAMA QUE REALIZA LA DIVISION DE DOS NUMEROS ENTEROS

#include<stdio.h>#include<conio.h>main(){ float A=0,B=0,C=0; clrscr(); gotoxy(10,3);printf("PROGRAMA QUE REALIZA LA DIVISION DE DOS NUMEROS ENTEROS"); gotoxy(10,5);printf("INTRODUCE EL PRIMER NUMERO: "); scanf("%f",&A); gotoxy(10,7);printf("INTRODUCE EL SEGUNDO NUMERO: "); scanf("%f",&B); C=A/B; gotoxy(15,15);printf("LA DIVISION ES = %f",C); getch(); return 0;}

PROGRAMA QUE MULTIPLICA DOS NUMEROS

#include<stdio.h> #include<conio.h> MUL() { int A=0,B=0,C=10;

Page 10: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

clrscr(); gotoxy(10,2);printf("Inserta el numero de la tabla"); scanf("%d",&B); for(A=1;A<=10;A++) { gotoxy(10,C);printf("%d*%d=%d",B,A,B*A); C=C+2; } getch(); return 0; }

UNIDAD III. CONOCIMIENTO DE PROGRAMACION Y UN LENGUAJE ESTRUCTURADO (PARTE TEORICA).

3.1 Introducción a la programaciónEs importante aclarar desde un principio la diferencia que existe entre programación orientada a objetos y un lenguaje orientado a objetos.La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología, que conviene conocer y estudiar antes de nada. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos.

3.1.1 Definición de programa

Un programa es un conjunto de instrucciones u órdenes basadas en un lenguaje de

programación que una computadora interpreta para resolver un problema o una

función especifica.

3.1.2 Definición de programaciónCódigo utilizado para la creación de programas. Lo utilizan los programadores (generalmente especializados en un lenguaje en particular) para la creación de diversas aplicaciones. En informática, es cualquier forma de escritura (lenguaje) que posee determinadas instrucciones que combinadas y modificadas correctamente (dependiendo del resultado que se desee), podrán ser interpretadas y así resultar.

3.1.3 Definición de lenguaje de programaciónLenguaje artificial que puede ser usado para controlar el comportamiento de una máquina, especialmente una computadora. Estos se componen de un conjunto de reglas sintácticas y semánticas que permiten expresar instrucciones que luego serán interpretadas.

3.2 Introducción y orígenes del lenguajeLenguaje C Introducción C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo

Page 11: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

3.3 Estructura básica de un programaLa mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente: main( ) { } que esta encerrado entre llaves {}. Un programa algo más complicado es el siguiente: include <stdio.h> main( ) { printf(“Hola amigos!\n”); } Hay un grupo de símbolos, que son tratados como caracteres individuales, que especifican algunos caracteres especiales del código ASCII. Los más importantes son: import.java.oi.*; inclusion de archivos { inicio del main y fin de la clase \a Alerta \b Espacio atrás \f Salto de página \n Salto de línea \r Retorno de carro \t Tabulación horizontal \v Tabulación vertical \\ Barra invertida \’ Comilla simple \” Comillas dobles \OOO Visualiza un carácter cuyo código ASCII es OOO en octal \xHHH Visualiza un carácter cuyo código ASCII es HHH en hexadecimal

3.4 Datos

Los datos son aquello que un programa manipula. Sin datos un programa no funcionaría correctamente. Los programas manipulan datos de manera muy diferente según el tipo de dato del que se trate. Y hay varios de estos tipos.

3.4.1 Tipo de datos.

Enteros Los enteros son el tipo de dato más primitivo en C. Se usan para representar números enteros. Pero siempre se pueden encontrar otras aplicaciones para los números enteros. En general se pueden usar para representar cualquier variable discreta.

Los tipos de datos enteros son: short, int, long y long long.

3.4.2 IdentificadoresEs un conjunto de caracteres alfanuméricos de cualquier longitud que sirve para identificar las entidades del programa (clases, funciones, variables, tipos compuestos, Etc.)  Los identificadores pueden ser combinaciones de letras y números.

Page 12: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

3.4.3 Almacenamiento, direccionamiento y representación en memoria

Almacenamiento

La computadora posee determinada cantidad de almacenamiento interno

denominado memoria principal, memoria RAM o memoria volátil. Esta memoria se

activa al encender la computadora y se desactiva al apagarla

Direccionamiento

La memoria principal de la computadora se divide en pequeñas unidades de tamaño

uniforme denominadas palabras, que tienen una dirección única. Cada una de éstas

palabras es capaz de almacenar una unidad de información (como, por ejemplo,

resultados numéricos), y determina el número más grande y el más pequeño que

puede almacenar. El tamaño de la palabra depende de la computadora, pero siempre

se especifica en múltiplos de 8 bits. Así, existen computadoras con tamaños de palabra

de 8, 16, 32 y 64 bits.

Representación en memoria

La representación en memoria de los caracteres no reviste mayor complicación,

debido a que los códigos utilizados, como el ASCII (American Standard Code for

Información Interchange), les asignan valores enteros positivos.

En el caso de los datos numéricos hay que considerar la distinción entre números

negativos y positivos, y la que hay entre números de punto flotante y enteros.

3.4.4 Proposición de asignación

La expresión permitida b. Es decir, a=b tiene el sentido a b, que no es la misma definición usada en matemáticas para “=“.

Ejemplo: A=2.5, TO=1+XT, I=I+1 (correctos)

A+B=C, 20=16.2+3.8 (son incorrectos)

La forma de una proposición de asignación es: a = b

3.5 Operadores, operandos y expresiones

Los operadores son elementos del lenguaje que sirven para reducir expresiones y

obtener resultados. Dependiendo de su tipo, se aplican sobre uno, dos o tres

operandos.

Los operadores se agrupan en las siguientes categorías:

Unarios. Se aplican sobre un sólo operando.

Binarios. Se aplican sobre dos operandos.

Ternarios. Se aplican sobre tres operandos.

Page 13: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

3.5.1 Prioridad de operadores evaluación de expresiones

Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con

paréntesis anidados se evalúan de dentro a fuera, el paréntesis más interno se evalúa

primero.

Dentro de una misma expresión los operadores se evalúan en el siguiente orden:

1. ^ Exponenciación

2. *, /, mod Multiplicación, división, modulo.

3. +, - Suma y resta.

Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izquierda a derecha.

3.6 Proceso de creación de un ejecutable

• Programa fuente: Main.java• Archivo en código intermedio: Main.class • Archivo “ejecutable” de Java: Main.jar• Si la computadora tiene instalada la JVM, se puede ejecutar el programa Java

mediante el archivo “.jar”

PROGRAMAS REALIZADOS EN CLASE (PARTE PRACTICA)

PROGRAMA QUE DA LA SUMA DE DOS NUMEROS

#include<stdio.h>

#include<conio.h>

SU()

{

clrscr();

int A=0,B=0,C=0,D=0,E=0,F=0,G=0;

printf("Da el primer numero a sumar%d",A);

scanf("%d",&A);

printf("Da el segundo numero a sumar%d",B);

scanf("%d",&B);

C=A+B;

printf("El resultado es=%d",C);

scanf("%d",&C);

Page 14: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

getch();

printf("Da el primer número a restar %d",D);

scanf("%d",&D);

printf("Da el segundo número a restar %d",E);

scanf("%d",&E);

C=D-E;

printf("El resultado es=%d",C);

scanf("%d",&C);

getch();

printf("Da el primer número a multiplicar% d",F);

scanf("%d",&F);

printf("Da el segundo número a multiplicar %d",G);

scanf("%d",&G);

C=F*G;

printf("El resultado es=%d",C);

scanf("%d",&C);

getch();

return 0;

}

Programa que cuenta, vocales, espacios y consonantes

#include<stdio.h>#include<conio.h>#include<string.h>VO(){ clrscr(); int cons=0, voc=0, esp=0, D=0, A=0; char nom[35]; printf("Programa que cuenta ,vocales, espacios y consonantes"); printf("Escribe tu nombre:"); gets(nom); D=strlen(nom); for(A=0;A<D;A++) { if(nom[A]==' ')

Page 15: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

{ esp=esp+1; } else if(nom[A]=='A'||nom[A]=='E'||nom[A]=='I'||nom[A]=='0'||nom[A]=='U') {

voc=voc+1; } else {cons=cons+1; } gotoxy(5,10);printf("el numero de espacios es=%d",esp); gotoxy(5,12);printf("el numero de vocales es=%d",voc); gotoxy(5,14);printf("el numero de consonantes es=%d",cons); } getch(); return 0; }

UNIDAD IV. FUNCIONES

4.1 Funciones

es un conjunto de líneas de código que realizan una tarea específica y puede retornar un valor. Las funciones pueden tomar parámetros que modifiquen su funcionamiento. Las funciones son utilizadas para descomponer grandes problemas en tareas simples y para implementar operaciones que son comúnmente utilizadas durante un programa y de esta manera reducir la cantidad de código. Cuando una función es invocada se le pasa el control a la misma, una vez que esta finalizó con su tarea el control es devuelto al punto desde el cual la función fue llamada.

4.1.1 Definición

Una función es una relación entre dos variables, de forma que a cada valor de la

variable independiente , le asocia un único valor de la variable dependiente , que

llamaremos imagen de . Decimos que y es función de y lo representamos por

4.1.2 Funciones estándar

C ofrece un conjunto de funciones estándar que dan soporte a las operaciones que se utilizan con más frecuencia. Estas funciones están agrupadas en bibliotecas. Para utilizar cualquiera de las funciones que forman parte de las bibliotecas estándar de C, sólo hace falta realizar una llamada a dicha función.

Page 16: ALGORITMOS Y LENGUAJE DE PROGRAMACIONIVAN Y YO´PO

4.2 Entrada y salida de datos

Cuando nos referimos a entrada/salida estándar (E/S estándar) queremos decir que los datos bien se están leyendo del teclado, ó bien se están escribiendo en el monitor de video. Como se utilizan muy frecuentemente se consideran como los dispositivos de E/S por default y no necesitan ser nombrados en las instrucciones de E/S.

4.3 Funciones definidas por el usuario

las funciones definidas por el usuario de Microsoft SQL Server son rutinas que aceptan parámetros, realizan una acción, como un cálculo complejo, y devuelven el resultado de esa acción como un valor. El valor devuelto puede ser un valor escalar único o un conjunto de resultados.

4.4 PunterosUn puntero o apuntador es una variable que referencia una región de memoria; en otras palabras es una variable cuyo valor es una dirección de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una dirección de memoria en la que se encuentra almacenado un valor ' v ' se dice que ' p ' apunta a ' v’.