Sei sulla pagina 1di 48

Arreglos

Definición, características, operaciones leer, mostrar


POO

Prof. Elizabeth Murakami


Elimura@hotmail.com
Definición

 Es un tipo de dato estructurado


que almacena en una sola
variable un conjunto limitado de
datos o elementos del mismo
tipo.
Características

 Ser una lista de un número finito de n elementos del mismo


tipo.
 Almacenar los elementos del arreglo en memoria contigua.
 Tener un único nombre de variable que representa a todos los
elementos y éstos se diferencian por un índice o subíndice.
 Acceder de manera directa o aleatoria a los elementos
individuales del arreglo, por el nombre del arreglo y el índice y
subíndice.
Pseudocódigo Lenguaje C
Entero a [100], x[50] Int a [100], x[50];

Los arreglos se clasifican en:

Unidimensionales (vectores o listas)


Bidimensionales (tablas o matrices)
Multidimensionales (más de 2 dimensiones)
Ejemplos de vector y una matriz

Tipo de
Ejemplos Espacios en memoria
arreglo
Pseudocódigo Lenguaje C

Entero lista [4] Int lista[4]; vector 4

Real matriz[4][4] Real matriz [4][4]; Tabla 16


Arreglos unidimensionales
(vectores o listas)

 Es un conjunto de n elementos del mismo tipo almacenados en


memoria continua en un vector o lista.
 Para acceder a cada elemento del arreglo se requiere de un
solo índice o subíndice el cual representa la posición en la que
se encuentra.
Formato Para Declarar Un Arreglo
Unidimensional

Pseudocódigo Lenguaje C
Tipo_dato identif_arreglo[tam_arreglo] Tipo_dato identif_arreglo[tam_arreglo];

Donde:
Tipo_dato se refiere al tipo de dato de cada elemento del arreglo; puede ser
entero, real, carácter, etc.
Identif_arreglo es el nombre que representa a todo el arreglo
Tam_arreglo es la cantidad de elementos que contiene el arreglo.
Representación en memoria de un
arreglo entero lista [4]
Posición de la memoria 1000 1001 1002 1003 1004 1005 1006 1007
lista 0 1 2 3

Representación en memoria de un
arreglo real [8]
Pseudocódigo Lenguaje C
Real x[8] Float x[8];

X[0] X[1] X[2] X[3] X[4] X[5] X[6] X[7] posiciones

elementos 4.2 12.0 3.45 4.32 0.31 51.9 2.65 13.0


Para imprimir la suma de valores contenidos
en los primeros 3 elementos de un arreglo x
Pseudocódigo Lenguaje C
Ax[0]+x[1]+x[2] A=x[0] +x[1] +x[2];
Imprimir A Cout<<A;

Para dividir el séptimo elemento del arreglo x


entre 2 y asignar el resultado a la variable c se
escribiría
Pseudocódigo Lenguaje C

Cx[6]/2 Cx[6]/2;
El subíndice debe ser un entero o una
expresión cuyo resultado sea entero

Si i=2 y j=4 entonces

Pseudocódigo Lenguaje C

C[i+j] 10 C[i+j] = 10;


Inicialización de arreglos
unidimensionales

Pseudocódigo Lenguaje C
Tipo_dato identif[tam_arreglo][valores] int lista[5]={10,17,8,4,9};
Entero lista[5]{10,17,8,4,9}
Lectura e impresión de una arreglo
unidimensional
Pseudocódigo Lenguaje C
#include<stdio.h>
Principal() #include<conio.h>
Inicio
Entero lista [10], i main()
{
Desde (i0, i<=9, ii+1) int lista [10], i;
Inicio For (i=0, i<=9, i++)
Imprimir “Dame el elemento” {
Leer lista[i] cout <<“Dame el elemento”;
fin cin>>lista[i];
Imprimir “elementos de la lista” fin
Desde (i0, i<=9, ii+1) cout<<“elementos de la lista”;
Imprimir lista[i] For (i=0, i<=9, i++)
cout<< lista[i];
Fin System(“PAUSE”);
Return 0;
}
Modificación de un elemento del arreglo
unidimensional

Pseudocódigo Lenguaje C
Tipo_dato identif_arr[pos]valor Tipo_dato identif_arr[pos]= valor;
Entero b[3]18 int b[3]= 18;
Arreglos de caracteres
 Son necesarios para la implementación de cadenas de
caracteres. Una cadena de texto es un conjunto de caracteres.

Pseudocódigo Lenguaje C

Caracter cad[]”lenguaje” Char cad[]=“lenguaje”;


 Una cadena de caracteres es un arreglo de caracteres que
contiene al final el carácter nulo(\0) por esta razón es necesario
que al declarar los arreglos éstos sean de un carácter más que
la cadena más grande. El compilador inserta automáticamente
un carácter nulo al final de la cadena, de modo que realmente
queda.

Pseudocódigo Lenguaje C

caracter cad[9]”lenguaje” Char cad[9]=“lenguaje”;


Representación en memoria de
un arreglo cad [9]

Posición memoria 1315 1316 1317 1318 1319 1320 1321 1322 1323
Contenido L e n g u a j e \0
Elemento del arreglo Cad[0] Cad[1] Cad[2] Cad[3] Cad[4] Cad[5] Cad[6] Cad[7] Cad[8]

Carácter nulo
Inicializar un arreglo de 10 elementos,
realizar e imprimir la suma
Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
Entero x [10]{6,7,9,2,4,7,4,3,2,9}
Entero i, s0 main()
{
Desde (i0, i<10, ii+1) int x [10]={6,7,9,2,4,7,4,3,2,9};
ss+x[i] int i, s=0;
Imprimir “La suma es”,s for (i=0, i<10, i++)
Fin s+=x[i];
Cout<<“La suma es”<<s;
System(“PAUSE”);
Return 0;
}

posición 0 1 2 3 4 5 6 7 8 9 elementos
6 7 9 2 4 7 4 3 2 9
Almacenar la edad de todos los alumnos de un salón de
clases y posteriormente imprimir la edad de alguno de ellos
Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
Entero alumn[45],total_a,i
Imprimir “total de alumnos:” main()
Leer total_a {
Desde (i0, i<total_a, ii+1) int alumn[45],total_a,i;
inicio Cout<< “total de alumnos:”;
Imprimir “Dame la edad del alumno”,i+1 Leer total_a;
Leer alumn[i] Desde (i=0, i<total_a, i++)
Fin {
Imprimir “De que alumno desea la Cout<< “Dame la edad del alumno”,i+1;
edad?” Cin>>alumn[i];
Leer i }
Imprimir “La edad”,i,”es:”,alumn[i-1] Cout<<“De que alumno desea la edad?”;
Fin Cin>>i;
Cout<< “La edad”<<i<<”es:”<<alumn[i-1];
System(“PAUSE”);
Return 0;
}
Calcule el promedio de las calificaciones de las materias del
semestre anterior, usando un arreglo para almacenar todas las
calificaciones y el promedio guárdelo en la siguiente posición
después de la última calificación
Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
real cal[10],prom0
Entero i, mat main()
Imprimir “Cuantas materias llevas(max9)” {
Leer mat float cal[10],prom=0;
Desde (i0, i<mat, ii+1) int i, mat;
inicio Cout<< “Cuantas materias llevas(max9)”;
Imprimir “Calificación de la ”,i+1,”materia” Cin>> mat;
Leer cal[i] for (i=0, i<mat, i++)
{
promprom + cal[i] Cout<< “Calificación de la
Fin ”<<i+1<<”materia”<<endl;
Cal[mat]prom/mat Cin>> cal[i];
Imprimir”el promedioes”,cal[mat] prom=prom + cal[i];
Fin }
cal[mat]=prom/mat;
Cout<<”el promedio es”<<cal[mat]<<endl;
System(“PAUSE”);
Return 0;
}
Almacene en un arreglo n elementos de tipo entero, calcule el
cuadrado de cada uno de los elementos y guárdelo en un segundo
arreglo. Imprimir ambos vectores.

Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
Entero x[10],y[10],i,n #include<math.h>
Imprimir “Dame el tamaño del arreglo” main()
{
Leer n int x[10],,i,n;
Desde (i0, i<n, ii+1) Float y[10];
inicio Cout<<“Dame el tamaño del arreglo”;
Imprimir “Dame un numero” Cin>> n;
Leer x[i] For (i=0, i<n, i++)
{
y[i]cuadrado x[i] Cout<< “Dame un numero”;
Fin Cin>> x[i];
Imprimir”Los cuadrados son” y[i]=pow( x[i],2);
Desde (i0, i<n, ii+1) }
Imprimir x[i], y[i] Cout<<”Los cuadrados son”;
for (i=0, i<n, i++)
Cout<< x[i]<< y[i];
Fin System(“PAUSE”);
Return 0;
}
Calcular la desviación estándar S de 5 números
(desv_stan= cuadrado de la diferencia de media y cada numero de la serie y
a esto dividirlo entre el total de valores ingresados)

Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
Entero num[5], i #include<math.h>
main()
Real s0, m0 {
Imprimir “Introduce los 5 números” int num[5], i;
Desde (i0, i<5, ii+1) float s=0.0, m=0.0;
inicio Cout<< “Introduce los 5 números”<<endl;
Leer num[i] for (i=0, i<5, i++)
{
Mm+num[i] Cin>> num[i];
Fin M+=num[i];
mm/5 }
Desde (i0, i<5, ii+1) m=m/5 ;
for (i=0, i<5, i++)
ss + cuadrado(m-num[i]) s+=pow((m-num[i],2);
sraizcuad(s/5) s=sqrt(s/5);
Imprimir “la media es:”, m Cout<< “la media es:”<< m<<endl;
Imprimir “la desviación estándar es”,s Cout<< “la desviación estándar es”<<s<<endl;
System(“PAUSE”);
Return 0;
Fin }
Almacenar en un vector, n elementos[máximo 30] e
insertar un elemento ni en la posición pos, recorriendo
los siguientes elementos una posición a la derecha
Pseudocódigo Lenguaje C
Constante MAX30 #include<stdio.h>
#include<conio.h>
Principal() #define MAX 30
Inicio main()
Entero lista[MAX], i,ni,n,pos {
int lista[MAX], i,ni,n,pos;
Imprimir “Dame el tamaño del arreglo” Cout<< “Dame el tamaño del arreglo”<<endl;
Leer n Cin>>n;
Imprimir “Dame el numero a insertar” Cout<< “Dame el numero a insertar”<<endl;
Leer ni Cin>> ni;
Cout<< “Dame la posición”<<endl;
Imprimir “Dame la posición” Cin>> pos;
Leer pos for (i=0, i<n, i++)
Desde (i0, i<n, ii+1) {
Cout<<“Dame el valor cuya posición es:”<< i<<endl;
inicio Cin>> lista[i];
Imprimir“Dame el valor cuya posicion es:”, i }
Leer lista[i] for (i=n; i>pos; i--)
Lista[i]=lista[i-1];
fin Lista[pos]=ni;
Desde (in, i>pos, ii-1) for (i=0; i<=n; i++)
Cout<<lista[i]<<endl;
Lista[i]lista[i-1] System(“PAUSE”);
Lista[pos]ni Return 0;
}
Desde (i0, i<=n, ii+1)
Imprimir lista[i]
Fin
Almacene en un arreglo a, un conjunto de n elementos
de tipo entero (max 15) almacenar en el arreglo b los
elementos del arreglo a en forma invertida
Pseudocódigo Lenguaje C
Principal() #include<stdio.h>
Inicio #include<conio.h>
Entero a[15],b[15],n,i,j
Imprimir “total de números” main()
{
Leer n int a[15],b[15],n,i,j;
Desde (i0, i<n, ii+1) Cout<< “total de números”<<endl;
Leer a[i] Cin>> n;
Desde (i0, jn-1; i<n,j>=0;ii+1,jj-1) for (i=0; i<n, i++)
Cin>> a[i];
b[i]a[j] for (i=0, j=n-1; i<n,j>=0;i++,j--)
Desde (i0, i<n, ii+1) b[i]=a[j];
Imprimir a[i] for (i=0, i<n, i++)
Desde (i0, i<n, ii+1) Cout<< a[i]<<endl;
for (i=0, i<n, i++
Imprimir b[i] Cout<< b[i]<<endl;
Fin System(“PAUSE”);
Return 0;
}
Ejercicio Laboratorio

 Implementar los pseudocódigos vistos en clase


teórica en código C++
Programación orientada a
objetos
Conceptos clave

 Abstracción  Herencia
 Atributos
 Instancia
 Clases y objetos
 Mensaje
 Clase base
 Método
 Clase derivada
 Operaciones
 Comportamiento
 Polimorfismo
 Correspondencia entre
 Reutilización
objetos
 Reusabilidad
 Encapsulamiento
 Sobrecarga
 Estado
 TAD
 Función miembro
 Variable de instancia
Programación Estructurada (P.E) – Programación
Orientada a Objetos
P.E P.O.O

 Las funciones tienen acceso  Modela objetos del mundo real.


ilimitado a datos globales, la Por ejemplo: personas, casas,
programación procedural da un autos, libros, etc.
bajo modelo del mundo real.  Incorpora atributos (datos), y
comportamiento (funciones).
Atributos=Datos
Persona= color de cabello
estatura
color de ojos

Comportamiento=Funciones
Persona.CaminaconAceleracion(…)
Persona.CaminaconRetardo()
Existe separación entre los datos “Combina en una sola entidad (objeto), los
datos y funciones”.
y las funciones.
Programación Orientada a objetos (POO)

 Es un modo de implementación que utiliza objetos, no


algoritmos como bloques de construcción lógicos, los
mismos que son instancias de una clase, estas se
relacionan con otras por medio de relaciones de
herencia.
Abstracción

Proceso que consiste en aislar un elemento de su contexto o


del resto de los elementos que lo acompañan.
En programación, el término se refiere al énfasis en el "¿qué
hace?" más que en el "¿cómo lo hace?"
La abstracción consiste en captar las características esenciales de
un objeto, así como su comportamiento. Por ejemplo, piensa en
unos automóviles, ¿Qué características podemos abstraer de
los automóviles? O lo que es lo mismo ¿Qué características
semejantes tienen todos los automóviles? Todos tendrán una
marca, un modelo, número de chasis, peso, llantas, puertas,
ventanas, etc. Y en cuanto a su comportamiento todos los
automóviles podrán acelerar, frenar)
Objeto

En el mundo de la programación orientada a objetos


(POO), un objeto es el resultado de la instanciación de
una clase. Una clase es el anteproyecto que ofrece la
funcionalidad en ella definida, pero ésta queda
implementada sólo al crear una instancia de la clase, en la
forma de un objeto.

Ejemplos: persona, casa, auto, equipo de fulbito, etc.


Sea el objeto: equipo de fulbito
atributos: jugadores, color de camiseta, partidos
jugados, tiempo de juego.
OBJETO
El objeto es una entidad que contiene atributos que describen el estado
de un objeto del mundo real.

DATOS + FUNCIONES ------------ DATOS

OBJETOS

DATOS 1
DATOS 2
DATOS 3
FUNCIONES

FUNCION 1()
FUNCION 2 ()
EJEMPLO DE UN OBJETO

ALUMNO AUTO

Cod_matricula num_matricula
Edad fabricante
Fecha_nac Precio_compra
Mostrar_fecha_nac () acelerar ()
mostrar_edad ()
Frenar ()
Matricular ()
Estacionar ()
Estudiar ()
Función Miembro
OBJETO 1
DATOS
 Es la forma como
se comunican los Función miembro 1
objetos Función miembro 1

OBJETO 2
OBJETO 3 DATOS
DATOS
Función miembro 1
Función miembro 1
Función miembro 1
Función miembro 1
Tipo abstracto de dato (TAD)

Un TAD es una representación informática formado por un


conjunto de operaciones definidos sobre un conjunto de datos.
TAD = < valores , operaciones >

Tanto los datos como el conjunto de operaciones son parte del


modelo.
Tipo abstracto de dato (TAD): Clase

Clase: es la implementación de un TAD

class Equipo_fulbito {
// atributos
entero jugadores;
cadena_caracteres color_camiseta;
entero partidos_jugados;
entero tiempo_de_juego;

// operaciones (métodos)
reemplazar_jugador();
entero tiempo_suplementario(); }
Métodos

Algoritmo asociado a un objeto (o a una clase de objetos),


cuya ejecución se desencadena tras la recepción de un
"mensaje".
Desde el punto de vista del comportamiento, es lo que el
objeto puede hacer.
Un método puede producir un cambio en las propiedades del
objeto, o la generación de un "evento" con un nuevo
mensaje para otro objeto del sistema.
OBJETO

Llegada
De
mensajes

Métodos
Clases y objetos

Clase, modelo o patrón para sus objetos. Los objetos


definidos para una clase comparten el marco
fundamental de la clase.
Clase es la abstracción, objeto es una entidad real.
En la naturaleza de una clase, se consideran dos
niveles de definición: abstracto y el de
instrumentación.
Clases y objetos

Nivel abstracto:
La clase se representa como una interfaz, describiendo los
métodos, que realizan sus objetos.
La vista abstracta de la clase como una interfaz,
proporciona una vista de salida mientras oculta su
estructura interna y detalles de comportamiento.
Nivel de instrumentación:
Vista interior de la clase, mostrando la organización de los
datos en dos secciones principales: pública, privada.
Modo de acceso a elementos objeto

OBJETO

PRIVADO NO
ACCESIBLE
DATOS O DESDE EL
FUNCIONES EXTERIOR

PÚBLICO ACCESIBLE
DATOS O DESDE EL
FUNCIONES EXTERIOR
(INTERFAZ
PÚBLICO)
Public, Private, Protected

Las palabras :
public, private, protected
son palabras reservadas.

Al definir una clase, todos los miembros que no necesitan


accederse desde el exterior, pueden ser declarados como
privados. Así facilita la programación modular al ocultar los
detalles de la clase.
Crear objetos
clase Persona {
/privados:
String nombre;
int edad;

//publicos:
publico AsignarNombre(String nom){
nombre=nom; }
publico AsignarEdad(int e){ edad=e; }
publico Caracters ObtenerNombre(){… }
publico entero ObtenerEdad(){ return edad;};
}

Persona alumno = new Persona();


Al ejecutar un POO

 Se crean los objetos a medida que son necesarios.


 Los mensajes se mueven de un objeto a otro o de un
usuario a objeto, respondiendo a petición del mismo.
 Al no ser necesarios los objetos se eliminan y liberan
memoria.
Crear objetos
En el método principal se declara los objetos, y se llama a las
funciones miembros de la clase, utilizando el operador “.”.

Principal () {
Persona alumno=new Persona();
Persona profesor=new Persona();
alumno.AsignarNombre("Miguel");
alumno.AsignarEdad(20);
profesor.AsignarNombre("José");
Escribir("Nombre del alumno:"+alumno.ObtenerNombre());
Escribir("edad del alumno:"+alumno.ObtenerEdad());
Escribir("Nombre del profesor:"+profesor.ObtenerNombre());
}
Constructor

Un constructor es una función miembro especial que construye


objetos.
Un constructor es llamado para asignar espacio a un objeto, asignar
valores a sus miembros datos y realizar tareas iniciales para un nuevo
objeto.
Tiene el mismo nombre que la clase, y puede tener parámetros, pero
no puede devolver valores. Si no se define un constructor para una
clase el compilador generara un constructor por defecto.
Constructor
clase cRectangulo {
// privado
float x1,y1,x2,y2;
// publico
//constructor
cRectangulo() {
x1=0; y1=0; x2=0; y2=0;
}
//constructor
publico cRectangulo(float ex1, float ey1,float ex2, float ey2) {
x1=ex1; y1=ey1;
x2=ex2; y2=ey2;
}
// Otros métodos
…….}
Destructor

Un Destructor es una función miembro con el mismo


nombre que la clase, mas una tilde que se añade al
principio. Una clase tendrá solo una función
destructor, que no tendrá argumentos y no devolverá
resultado. Su tarea es opuesta al constructor, liberara
memoria que fue asignada al objeto por el
constructor.
Destructor

clase frutas {
privado:
entero datos;
publico:
frutas () { datos = 0; }
~ frutas() { }
}
Ejercicio

 De acuerdo a lo revisado establezca 5 ejemplos de


clases con sus atributos y métodos.

Potrebbero piacerti anche