SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Arreglos y apuntadores
Arreglo
    Conjunto de variables del mismo
    tipo, las cuales están indexadas.




26/04/12    Programación avanzada y métodos numéricos   2
Declaración:
tipo_variable nombre[tamaño];

Inicialización:
tipo_variable nombre[tamaño] =
{ elemento 1, elemento 2, ... , elemento
n };




26/04/12    Programación avanzada y métodos numéricos   3
int numeros[40];
float otros_numeros[] = {4.6, 5.6, 2.1, 4.5};
int i;
for(i = 0; i < 40; i++) {
    printf(“Escribe un número: ”);
    scanf(“%d”, &numeros[i]);
}
for (i = 0; i < 4; i++)
    printf(“%fn”, otros_numeros[i]);

26/04/12       Programación avanzada y métodos numéricos   4
Apuntador
   Son variables que almacenan
    direcciones de memoria.




26/04/12    Programación avanzada y métodos numéricos   5
Declaración: tipo_variable *nombre;

Asignar dirección: nombre =
&variable_del_mismo_tipo;

Devuelve valor almacenado
(desreferenciamiento): *nombre




26/04/12   Programación avanzada y métodos numéricos   6
Ejemplo:
      int *px; // apuntador
      int x = 1, y = 2; // Variables
      px = &x; // apunta a x
      y = *px; // el valor de x se asigna a
               // y, ahora y vale 1
      *px = 0; // ahora x vale 0


26/04/12       Programación avanzada y métodos numéricos   7
Reserva de espacio en la memoria

    Incluir biblioteca stdlib
   Declarar apuntador

    Asignar espacio a cada apuntador
    declarado usando malloc()

    Después de usar, liberar espacio usando
    free()




26/04/12        Programación avanzada y métodos numéricos   8
int *numeros;
// numeros apunta a un espacio donde
caben 40 variables int
numeros = (int *) malloc(40 *
sizeof(int));


// ... Código ...


free(numeros); // Liberamos espacio

26/04/12     Programación avanzada y métodos numéricos   9
Aritmética de direcciones
int *px; int x; px = &x;

px++; // apunta 1 posición más adelante
px = px + 2; // apunta 5 posiciones más
             //adelante
px = px – 8; // apunta 8 posiciones más atrás




11 Agosto       Programación avanzada y métodos numéricos   10
11 Agosto   Programación avanzada y métodos numéricos   11
int i;
// captura números
for(i = 0; i < 40; i++)
     scanf(“%i”,numeros + i);
// imprime números
for(i = 0; i < 40; i++)
     printf(“%in”,*(numeros + i));



26/04/12      Programación avanzada y métodos numéricos   12
Equivalencia entre arreglos y
                   apuntadores
   vect[i] y *(pv + i) son expresiones
    equivalentes
   El nombre de un arreglo es el
    sinónimo de la dirección de su
    posición inicial




26/04/12         Programación avanzada y métodos numéricos   13
int vect[10]; int *pv;

pv = vect; // Expresión válida
vect = pv; // Expresión inválida

*(vect + 4) = 302; // asigna 302 a vect[4]

 pv[4] = 302; // asigna 302 a *(pv + 4)


26/04/12     Programación avanzada y métodos numéricos   14
Arreglos de varios dimensiones




26/04/12          Programación avanzada y métodos numéricos   15
Declaración e inicialización
Declaración:
Tipo_de_variable nombre[Tamaño] ... [Tamaño];
                       float arreglo[2][4];


Inicialización:
Tipo_de_variable nombre[Tamaño] ... [Tamaño] =
{ conjuntos anidados de elementos } ;
           float arreglo[2][2] = { {1, 2} , { 4 , 5 } };


26/04/12            Programación avanzada y métodos numéricos   16
int numeros[40][20];
int i, j;
for(j = 0; j < 20; j++)
    for(i = 0; i < 40; i++) {
           printf(“Escribe un número: ”);
           scanf(“%d”, &numeros[i][j]);
    }
for (i = 0; i < 40; i++)
   for(j = 0; j < 20; j++)
        printf(“%dn”, numeros[i][j]);
26/04/12           Programación avanzada y métodos numéricos   17
Arreglos de apuntadores
Declaración
Tipo_variable *nomb_arreglo[tamaño];
                    float *pesos[500];


Inicialización
Tipo_variable *nomb_arreglo[tamaño] =
{ &variable1, &variable2, ..., &variablen};
      int *datos_biblio[3] = {&libros, &empleados,
                        &mesas};

26/04/12         Programación avanzada y métodos numéricos   18
int *numeros[20];
int i, j;
for(i = 0; i < 20; i++)
   numeros[i] = (int *) malloc(40 * sizeof(int));
for (i = 0; i < 40; i++)
   for(j = 0; j < 20; j++)
       scanf(“%d”, numeros[j] + i);
for (i = 0; i < 40; i++)
   for(j = 0; j < 20; j++)
       printf(“%d”, *(numeros[j] + i));
26/04/12         Programación avanzada y métodos numéricos   19
Apuntadores y Arreglos
              multidimensionales
int a[2][7];
int *b[2];
b[0] = a[0]; // dirección primera fila
b[1] = a[1] + 1; // dirección segunda fila con
offset de 1 espacio
b[0][1] = 6; // a[0][1] también es igual a 6
b[1][4] = 7; // a[1][5] también es igual a 7


26/04/12        Programación avanzada y métodos numéricos   20
26/04/12   Programación avanzada y métodos numéricos   21
int *numeros[20];
int i, j;
for(i = 0; j < 20; j++)
   numeros[i] = (int *) malloc(40 * sizeof(int));
for (i = 0; i < 40; i++)
   for(j = 0; j < 20; j++)
       scanf(“%d”, &numeros[j][i]);
for (i = 0; i < 40; i++)
   for(j = 0; j < 20; j++)
       printf(“%d”, numeros[j][i]);
26/04/12        Programación avanzada y métodos numéricos   22
char *palabras[3] =
            {“kilowatt”, “centímetro”, “gramo”};




11 Agosto           Programación avanzada y métodos numéricos   23
char *palabras[10];
char *aux;
int i,j;
/* Reservamos un espacio y capturamos una
cadena en él */
for(i = 0; i < 10; i++) {
  nombres[i] = (char *) malloc(30 *
sizeof(char));
    printf("Dame una palabra cualquiera: ");
    scanf("%s",palabras[i]);
}
26/04/12        Programación avanzada y métodos numéricos   24
/* Algoritmo de burbuja */
for(i = 0; i < 9; i++)
   for(j = i + 1; j < 10; j++) {
      if( strlen(palabras[j]) < strlen(palabras[i]) ) {
           /* Solo intercambiamos direcciones */
           aux = palabras[j];
           palabras[j] = palabras[i];
           palabras[i] = aux;
      }
  }
26/04/12            Programación avanzada y métodos numéricos   25
Bibliografía

    Luis Joyanes e Ignacio Zahonero.
    Programación en C, C++, Java y UML. Ed.
    McGraw Hill Latinoamericana.

    Harvey y Paul Deitel, Como programar en
    C, Ed. Prentice Hall.




26/04/12      Programación avanzada y métodos numéricos   26

Weitere ähnliche Inhalte

Was ist angesagt?

Manual de latex
Manual de latex Manual de latex
Manual de latex ivan10204
 
Calculo de-los-valores-y-vectores-propios-
Calculo de-los-valores-y-vectores-propios-Calculo de-los-valores-y-vectores-propios-
Calculo de-los-valores-y-vectores-propios-Carlita Vaca
 
El método de la secante y secante modificado
El método de la secante y secante modificadoEl método de la secante y secante modificado
El método de la secante y secante modificadoMoises Costa
 
F4002 - L03 - Raíces de ecuaciones no lineales
F4002 - L03 - Raíces de ecuaciones no linealesF4002 - L03 - Raíces de ecuaciones no lineales
F4002 - L03 - Raíces de ecuaciones no linealesSergio Camacho-Leon
 
examen inf-164
examen inf-164examen inf-164
examen inf-164tecmac
 
Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de LagrangeKike Prieto
 
Ecuaciones diferenciales
Ecuaciones diferencialesEcuaciones diferenciales
Ecuaciones diferencialesantonio meneses
 
Sección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempoSección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempoJuan Palacios
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónDaniela Medina
 
Metodos de programcion no lineal
Metodos de programcion no linealMetodos de programcion no lineal
Metodos de programcion no linealAngel Jhoan
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Método de gauss y gauss seidel
Método de gauss y gauss seidelMétodo de gauss y gauss seidel
Método de gauss y gauss seidelLilly Kwang
 
resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB Raul Ibañez
 
Transformada inversa
Transformada inversaTransformada inversa
Transformada inversaGILALEJANDRO
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punterospedreror1
 

Was ist angesagt? (20)

Manual de latex
Manual de latex Manual de latex
Manual de latex
 
Calculo de-los-valores-y-vectores-propios-
Calculo de-los-valores-y-vectores-propios-Calculo de-los-valores-y-vectores-propios-
Calculo de-los-valores-y-vectores-propios-
 
El método de la secante y secante modificado
El método de la secante y secante modificadoEl método de la secante y secante modificado
El método de la secante y secante modificado
 
F4002 - L03 - Raíces de ecuaciones no lineales
F4002 - L03 - Raíces de ecuaciones no linealesF4002 - L03 - Raíces de ecuaciones no lineales
F4002 - L03 - Raíces de ecuaciones no lineales
 
Sistema de Ecuaciones 2x2
Sistema de Ecuaciones 2x2Sistema de Ecuaciones 2x2
Sistema de Ecuaciones 2x2
 
examen inf-164
examen inf-164examen inf-164
examen inf-164
 
Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de Lagrange
 
Ecuaciones diferenciales
Ecuaciones diferencialesEcuaciones diferenciales
Ecuaciones diferenciales
 
Sección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempoSección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempo
 
Colas o Filas en Java
Colas o Filas en JavaColas o Filas en Java
Colas o Filas en Java
 
Ejemplo del Método de Falsa Posición
Ejemplo del Método de Falsa PosiciónEjemplo del Método de Falsa Posición
Ejemplo del Método de Falsa Posición
 
Metodos de programcion no lineal
Metodos de programcion no linealMetodos de programcion no lineal
Metodos de programcion no lineal
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Método de gauss y gauss seidel
Método de gauss y gauss seidelMétodo de gauss y gauss seidel
Método de gauss y gauss seidel
 
resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB resolucion de ecuaciones diferenciales con MATLAB
resolucion de ecuaciones diferenciales con MATLAB
 
Método por plegamiento Hash
Método por plegamiento HashMétodo por plegamiento Hash
Método por plegamiento Hash
 
Transformada inversa
Transformada inversaTransformada inversa
Transformada inversa
 
Punteros
PunterosPunteros
Punteros
 
Arreglo de punteros
Arreglo de punterosArreglo de punteros
Arreglo de punteros
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 

Andere mochten auch

Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamientoSergio Ramos
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaCarlitos Correa Jr.
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Diosmary Marrón Dellán
 
Administración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasAdministración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasUVM
 
Arrays bidimensionales
Arrays bidimensionalesArrays bidimensionales
Arrays bidimensionalesasvargas
 
Apuntadores
ApuntadoresApuntadores
Apuntadoresluisabn
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Linealkarlalopezbello
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++die_dex
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Jorge Ulises
 

Andere mochten auch (20)

Apuntadores y direccionamiento
Apuntadores y direccionamientoApuntadores y direccionamiento
Apuntadores y direccionamiento
 
Arrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos CorreaArrays Bidimensionales y Multidimensionales - Carlos Correa
Arrays Bidimensionales y Multidimensionales - Carlos Correa
 
08 - Punteros en lenguaje C
08 - Punteros en lenguaje C08 - Punteros en lenguaje C
08 - Punteros en lenguaje C
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Exp compi(2)
Exp compi(2)Exp compi(2)
Exp compi(2)
 
Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_Estructuras de datos_dinamicas_definicion_e_implementacion_
Estructuras de datos_dinamicas_definicion_e_implementacion_
 
Trabajo de estructura de datos
Trabajo de estructura de datosTrabajo de estructura de datos
Trabajo de estructura de datos
 
Administración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicasAdministración de memoria continuación -matrices estáticas y dinámicas
Administración de memoria continuación -matrices estáticas y dinámicas
 
Memoria memoria dinamica
 Memoria memoria dinamica Memoria memoria dinamica
Memoria memoria dinamica
 
Arrays bidimensionales
Arrays bidimensionalesArrays bidimensionales
Arrays bidimensionales
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Apuntadores
ApuntadoresApuntadores
Apuntadores
 
Clase 1- Programacion Lineal
Clase 1- Programacion LinealClase 1- Programacion Lineal
Clase 1- Programacion Lineal
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Ejercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectoresEjercicios punteros cadenas-vectores
Ejercicios punteros cadenas-vectores
 
PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++PUNTEROS (APUNTADORES) EN C++
PUNTEROS (APUNTADORES) EN C++
 
Manipulacion de Datos SQL cap10
Manipulacion de Datos SQL cap10Manipulacion de Datos SQL cap10
Manipulacion de Datos SQL cap10
 
Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6Oracle Spatial de la A a la Z - Unidad 6
Oracle Spatial de la A a la Z - Unidad 6
 
colas de prioridad
colas de prioridad colas de prioridad
colas de prioridad
 
Solucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectoresSolucion ejercicios punteros cadenas-vectores
Solucion ejercicios punteros cadenas-vectores
 

Ähnlich wie Arreglos multidimensionales y de apuntadores

Ähnlich wie Arreglos multidimensionales y de apuntadores (20)

Cpp
CppCpp
Cpp
 
Cpp
CppCpp
Cpp
 
Informe tecnico victor_uex
Informe tecnico victor_uexInforme tecnico victor_uex
Informe tecnico victor_uex
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Punteros2
Punteros2Punteros2
Punteros2
 
Informe tecnico
Informe tecnicoInforme tecnico
Informe tecnico
 
ArreglosC++para-el-usodememoria-en-uno-dos-tres-dimensiones.pdf
ArreglosC++para-el-usodememoria-en-uno-dos-tres-dimensiones.pdfArreglosC++para-el-usodememoria-en-uno-dos-tres-dimensiones.pdf
ArreglosC++para-el-usodememoria-en-uno-dos-tres-dimensiones.pdf
 
MODELO PASO DE MENSAJES
MODELO PASO DE MENSAJESMODELO PASO DE MENSAJES
MODELO PASO DE MENSAJES
 
Curso c i
Curso c iCurso c i
Curso c i
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Java Basico-Ficheros
Java Basico-FicherosJava Basico-Ficheros
Java Basico-Ficheros
 
7. operadores y estructura secuencial
7. operadores y estructura secuencial7. operadores y estructura secuencial
7. operadores y estructura secuencial
 
Curso9 estructuras
Curso9 estructurasCurso9 estructuras
Curso9 estructuras
 
Curso9 estructuras
Curso9 estructurasCurso9 estructuras
Curso9 estructuras
 
informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento- informe unidad 5 -Metodos de ordenamiento-
informe unidad 5 -Metodos de ordenamiento-
 
Diapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdfDiapositivs~Elementos_basicos_C.pdf
Diapositivs~Elementos_basicos_C.pdf
 
Punteros_v2.ppt
Punteros_v2.pptPunteros_v2.ppt
Punteros_v2.ppt
 
2 _expresiones_matematicas_254209
2  _expresiones_matematicas_2542092  _expresiones_matematicas_254209
2 _expresiones_matematicas_254209
 
Previo8- Dispos E/S
Previo8- Dispos E/SPrevio8- Dispos E/S
Previo8- Dispos E/S
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 

Kürzlich hochgeladen

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfGruberACaraballo
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Katherine Concepcion Gonzalez
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxFernando Solis
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.JonathanCovena1
 

Kürzlich hochgeladen (20)

PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.Análisis de los Factores Externos de la Organización.
Análisis de los Factores Externos de la Organización.
 

Arreglos multidimensionales y de apuntadores

  • 2. Arreglo Conjunto de variables del mismo tipo, las cuales están indexadas. 26/04/12 Programación avanzada y métodos numéricos 2
  • 3. Declaración: tipo_variable nombre[tamaño]; Inicialización: tipo_variable nombre[tamaño] = { elemento 1, elemento 2, ... , elemento n }; 26/04/12 Programación avanzada y métodos numéricos 3
  • 4. int numeros[40]; float otros_numeros[] = {4.6, 5.6, 2.1, 4.5}; int i; for(i = 0; i < 40; i++) { printf(“Escribe un número: ”); scanf(“%d”, &numeros[i]); } for (i = 0; i < 4; i++) printf(“%fn”, otros_numeros[i]); 26/04/12 Programación avanzada y métodos numéricos 4
  • 5. Apuntador  Son variables que almacenan direcciones de memoria. 26/04/12 Programación avanzada y métodos numéricos 5
  • 6. Declaración: tipo_variable *nombre; Asignar dirección: nombre = &variable_del_mismo_tipo; Devuelve valor almacenado (desreferenciamiento): *nombre 26/04/12 Programación avanzada y métodos numéricos 6
  • 7. Ejemplo: int *px; // apuntador int x = 1, y = 2; // Variables px = &x; // apunta a x y = *px; // el valor de x se asigna a // y, ahora y vale 1 *px = 0; // ahora x vale 0 26/04/12 Programación avanzada y métodos numéricos 7
  • 8. Reserva de espacio en la memoria  Incluir biblioteca stdlib  Declarar apuntador  Asignar espacio a cada apuntador declarado usando malloc()  Después de usar, liberar espacio usando free() 26/04/12 Programación avanzada y métodos numéricos 8
  • 9. int *numeros; // numeros apunta a un espacio donde caben 40 variables int numeros = (int *) malloc(40 * sizeof(int)); // ... Código ... free(numeros); // Liberamos espacio 26/04/12 Programación avanzada y métodos numéricos 9
  • 10. Aritmética de direcciones int *px; int x; px = &x; px++; // apunta 1 posición más adelante px = px + 2; // apunta 5 posiciones más //adelante px = px – 8; // apunta 8 posiciones más atrás 11 Agosto Programación avanzada y métodos numéricos 10
  • 11. 11 Agosto Programación avanzada y métodos numéricos 11
  • 12. int i; // captura números for(i = 0; i < 40; i++) scanf(“%i”,numeros + i); // imprime números for(i = 0; i < 40; i++) printf(“%in”,*(numeros + i)); 26/04/12 Programación avanzada y métodos numéricos 12
  • 13. Equivalencia entre arreglos y apuntadores  vect[i] y *(pv + i) son expresiones equivalentes  El nombre de un arreglo es el sinónimo de la dirección de su posición inicial 26/04/12 Programación avanzada y métodos numéricos 13
  • 14. int vect[10]; int *pv; pv = vect; // Expresión válida vect = pv; // Expresión inválida *(vect + 4) = 302; // asigna 302 a vect[4] pv[4] = 302; // asigna 302 a *(pv + 4) 26/04/12 Programación avanzada y métodos numéricos 14
  • 15. Arreglos de varios dimensiones 26/04/12 Programación avanzada y métodos numéricos 15
  • 16. Declaración e inicialización Declaración: Tipo_de_variable nombre[Tamaño] ... [Tamaño]; float arreglo[2][4]; Inicialización: Tipo_de_variable nombre[Tamaño] ... [Tamaño] = { conjuntos anidados de elementos } ; float arreglo[2][2] = { {1, 2} , { 4 , 5 } }; 26/04/12 Programación avanzada y métodos numéricos 16
  • 17. int numeros[40][20]; int i, j; for(j = 0; j < 20; j++) for(i = 0; i < 40; i++) { printf(“Escribe un número: ”); scanf(“%d”, &numeros[i][j]); } for (i = 0; i < 40; i++) for(j = 0; j < 20; j++) printf(“%dn”, numeros[i][j]); 26/04/12 Programación avanzada y métodos numéricos 17
  • 18. Arreglos de apuntadores Declaración Tipo_variable *nomb_arreglo[tamaño]; float *pesos[500]; Inicialización Tipo_variable *nomb_arreglo[tamaño] = { &variable1, &variable2, ..., &variablen}; int *datos_biblio[3] = {&libros, &empleados, &mesas}; 26/04/12 Programación avanzada y métodos numéricos 18
  • 19. int *numeros[20]; int i, j; for(i = 0; i < 20; i++) numeros[i] = (int *) malloc(40 * sizeof(int)); for (i = 0; i < 40; i++) for(j = 0; j < 20; j++) scanf(“%d”, numeros[j] + i); for (i = 0; i < 40; i++) for(j = 0; j < 20; j++) printf(“%d”, *(numeros[j] + i)); 26/04/12 Programación avanzada y métodos numéricos 19
  • 20. Apuntadores y Arreglos multidimensionales int a[2][7]; int *b[2]; b[0] = a[0]; // dirección primera fila b[1] = a[1] + 1; // dirección segunda fila con offset de 1 espacio b[0][1] = 6; // a[0][1] también es igual a 6 b[1][4] = 7; // a[1][5] también es igual a 7 26/04/12 Programación avanzada y métodos numéricos 20
  • 21. 26/04/12 Programación avanzada y métodos numéricos 21
  • 22. int *numeros[20]; int i, j; for(i = 0; j < 20; j++) numeros[i] = (int *) malloc(40 * sizeof(int)); for (i = 0; i < 40; i++) for(j = 0; j < 20; j++) scanf(“%d”, &numeros[j][i]); for (i = 0; i < 40; i++) for(j = 0; j < 20; j++) printf(“%d”, numeros[j][i]); 26/04/12 Programación avanzada y métodos numéricos 22
  • 23. char *palabras[3] = {“kilowatt”, “centímetro”, “gramo”}; 11 Agosto Programación avanzada y métodos numéricos 23
  • 24. char *palabras[10]; char *aux; int i,j; /* Reservamos un espacio y capturamos una cadena en él */ for(i = 0; i < 10; i++) { nombres[i] = (char *) malloc(30 * sizeof(char)); printf("Dame una palabra cualquiera: "); scanf("%s",palabras[i]); } 26/04/12 Programación avanzada y métodos numéricos 24
  • 25. /* Algoritmo de burbuja */ for(i = 0; i < 9; i++) for(j = i + 1; j < 10; j++) { if( strlen(palabras[j]) < strlen(palabras[i]) ) { /* Solo intercambiamos direcciones */ aux = palabras[j]; palabras[j] = palabras[i]; palabras[i] = aux; } } 26/04/12 Programación avanzada y métodos numéricos 25
  • 26. Bibliografía  Luis Joyanes e Ignacio Zahonero. Programación en C, C++, Java y UML. Ed. McGraw Hill Latinoamericana.  Harvey y Paul Deitel, Como programar en C, Ed. Prentice Hall. 26/04/12 Programación avanzada y métodos numéricos 26