SlideShare une entreprise Scribd logo
1  sur  15
Fundamentos de Programación

          Arreglos
Estructura de Datos
•   Se puede considerar un conjunto de datos,
     – Como una sola entidad…
     – Como un solo tipo de dato…
     De esta forma, se reduce la complejidad de un problema.
•   Un programa esta formado por:
     – Estructuras de control y llamadas a funciones (el
       algoritmo de nuestro programa).
     – Datos, con sus respectivos tipos, ya sean estos
       atómicos o complejos, juntos forman una jerarquía (la
       estructura de datos del programa).


    PROGRAMA = ALGORITMO + ESTRUCTURA DE DATOS
•
                 ¿Qué es un Arreglo?
                 Basándonos en los tipos de datos atómicos, podemos crear otros más
                 complejos.
            •    Un arreglo es una colección, o grupo de datos, donde:
                  – Cada dato tiene su posición (primero, segundo,
                    tercero…)
                  – Y todos los datos del grupo son del mismo tipo, es
                    decir, o todos son enteros, o todos son reales, etc.
                           NO EXISTEN ARREGLOS “MEZCLADOS”

Jamás olvidar
que un arreglo mejor forma de visualizar un arreglo es:
          • La
                                                                                      ..
 tiene un tipo – Como un grupo de cajas, una detrás de otra                           .
                 – Donde cada caja representa un dato del arreglo o un elemento.
        •       Podemos concluir que un arreglo tiene:
                 – Tamaño: cuantas cajas va a tener, el número de datos.
                 – Tipo: cuál es el tipo de todos los datos del arreglo.
                 – Nombre: el único nombre bajo el cual vamos a dirigirnos al
                   mismo.
Declaración de Arreglos
          •   Al declarar una variable cualquiera siempre indicamos: tipo y
              nombre. Por ejemplo: int a;
          •   Para declarar un arreglo, se debe indicar
                  – Tipo
                  – Nombre y
                  – Tamaño
          •   Un arreglo de 10 elementos enteros, se declara:
                  – int ArregloEnteros[10];                     Jamás olvidar,
                  – Y lo podemos visualizar:                     el tamaño de
ArregloEnteros                                                   un arreglo es
                                                                una constante

  0           1        2       3        4        5         6        7         8   9

      •   Cada elemento del grupo va a estar identificado por un valor
          numérico, llamado índice.
      •   En C el primer elemento de un arreglo tiene el índice 0.
      •   Siempre, para indicar el tamaño de un arreglo, se utilizara una
          constante, jamás una variable.
Manejo de Arreglos
•   Tenemos ahora 10 enteros bajo un mismo nombre
•   ¿Como accedemos a uno de esos datos?
     – Usamos el nombre del arreglo y el índice que identifica al elemento:
       nombre_arreglo[indice]
     – Si se desea asignar el valor de 2 al primer elemento del
       arreglo:
       arregloEntero[0] = 2;     ArregloEnteros
       arregloEntero[1] = 9;
                                  2      9                  1
       arregloEntero[4] = 1:
                                  0      1        2    3    4     5     6     7     8   9
    – Cada elemento es en efecto una variable del tipo declarado para el arreglo
    – Es muy importante recordar que:
        • El índice de un elemento, no es el valor (contenido) de dicho elemento.
        • El índice puede ser cualquier expresión que retorne un valor entero.
    – Para asignar a todos los elementos del arreglo, un mismo valor, lo mas
      práctico es usar un lazo for:
                                                      for(i = 0; i < 10; i++)
                                                      {
                                                         arregloEntero[ i ] = 0;
                                                      }
Leer e Imprimir un Arreglo
 •    Acabamos de ver un ejemplo para acceder a todos los elementos
      de una arreglo de una forma práctica.
 •    Si tenemos 10 elementos en un arreglo, y queremos pedir que
      los ingresen por teclado, debemos repetir el ingreso 10 veces:

                    for(i = 0; i < 10; i++)
                    {
                      scanf(“%d”,&a);
                      arregloEnteros[i] = a;
                    }
 •   Así mismo, para imprimir todos los elementos de un arreglo,
     deberíamos repetir el proceso de imprimir, pero diez veces:


     for(i = 0; i < 10; i++)
     {
         printf(“Elemento %d:%dn”, i, ArregloEnteros[i]);
     }
Ejercicio
• Programa que permite el ingreso de las notas de un
  curso de 20 alumnos. Una vez ingresados, debe
  mostrarse el promedio de las mismas.
             #include <stdio.h>
             #define MAX 20                                  El usuario del programa
                                                              no tiene porque saber
             void main(){                                       que los índices van
                      double notas[MAX];                      desde 0, se le pueden
                      double total, promedio;                    mostrar desde 1
                      int i,a;
                      total = 0;
                      for(i = 0; i < MAX; i++){
                                 printf("Ingrese Alumno %d:",i+1);
                                 scanf(“%d”,&a);
                                 notas[i]=a;
                      }
                      for(i = 0; i < MAX; i++)
                      {
                                 total = total + notas[i];
                      }
                      promedio = (double)total / (double)MAX;
                      printf("Promedio: %.2f",promedio);
                      getch();
             }
Arreglos Para Tabular
• En lugar de almacenar valores
  en los elementos de un arreglo,
  algunas aplicaciones usan los
  arreglos para almacenar
  “índices”, que permiten llevar
  estadísticas, de un dato en
  particular.
• Por ejemplo:
  Se pidió a 40 estudiantes que
  calificaran la calidad de la
  comida de la cafetería en una
  escala del 1 al 10 (1 es terrible y
  10 excelente).
  Escriba un programa en C que
  pida las 40 respuestas y luego
  muestre un resumen del
  resultado.
Inicialización de un Arreglo
• Un arreglo en C también se puede inicializar de
  las siguientes formas:
  – Crear un arreglo de 3 elementos
     • Inicializando cada elemento:
        int A[]={11,2,8}; ó
        int A[3]={11,2,8};
     • Inicializando todos los elementos con
       el mismo valor:
        int A[3]={0};
Arreglos Multidimensionales
• En C, los elementos de un arreglo pueden ser de cualquier tipo
• Esto quiere decir que los elementos de un arreglo pueden ser a
  su vez, arreglos.
• Arreglos de arreglos, se conocen como arreglos
  multidimensionales.
• El mas común de estos, es el de dos dimensiones, conocido
  también como Matriz o Tabla.
• Un ejemplo de una matriz, es un tablero de tres en raya.
• Este es un arreglo de 3 elementos, donde cada elemento es un
  arreglo, de tres elementos también.

         int A[3][3];
                           A[0]
       (0,0) (0,1) (0,2)                   A[0][0] A[0]1] A[0][2]
                           A[1]
       (1,0) (1,1) (1,2)                   A[1][0] A[1][1] A[1][2]
                           A[2]
       (2,0) (2,1) (2,2)                   A[2][0] A[2][1] A[2][2]
Inicialización
• Un arreglo multidimensional también se puede
  inicializar
   static double MatrizIdentidad[3][3] =
   {
     {1,0,0},
     {0,1,0}
     {0,0,1}
   };
• Así podemos inicializar todos los elementos de
  una matriz desde el inicio, sin necesidad de usar
  lazos anidados.
Búsqueda en un Arreglo
• Se refiere al proceso para encontrar un
  elemento particular en un arreglo.
• Una de las estrategias mas comunes y simples
  para buscar un dato en un arreglo es:
   – Revisar uno por uno los elementos del
     mismo, este método se conoce como
     búsqueda lineal.
• Escribir una función que determine si un valor
  dado se encuentra en un arreglo de elementos
  enteros, y si es así, indique su posición-
Solución
                        Dato a buscar: 58                 A[0] 19
                                                          A[1] 12
                                                          A[2] 1
                                                          A[3] 2
                                                          A[4] 58
                                                          A[5]100
int EncontrarElemento(int valor, int arreglo[ ] ,int n)   A[6] 3
{                                                         A[7] 4
        for(i=0; i <10; i++)                              A[8] 45
        {
                if (valor = = arreglo [ i ] )             A[9] 25
                   return(i);
        }
        return(-1);
}
Operador sizeof
• Un char ocupa un byte.
• ¿Cuantos bytes ocupa un entero? ¿un real?
  ¿una cadena?
   – Depende de cada máquina
     Podemos averiguarlo usando el
     operador sizeof.
        sizeof(int) devuelve el número de bytes que
        necesita un dato de tipo int.
   – CUIDADO: sizeof es un operador, no
     una función.
¿Cómo calcular el tamaño de un
            arreglo?1000
                                                       Arreglo[0]

                                1008
• Si inicializamos una                                   Arreglo[1]
  arreglo sin indicar su        1016
  ancho…                                                 Arreglo[2]

                                1024
                                                         Arreglo[3]
  ¿Cómo podemos saber
  el ancho, para futuros        1032
                                                         Arreglo[4]
  usos en el programa?
                           sizeof(Arreglo) devuelve 32
                           sizeof(Arreglo[0]) devuelve el desfase: 8
                           sizeof(Arreglo)/sizeof(Arreglo[0])
                           devuelve 4, justo el número de elementos
                           del arreglo.

Contenu connexe

Tendances

Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
lichic
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
rezzaca
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacion
laryenso
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
tephyfree
 

Tendances (20)

Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalación
 
Algoritmos De Ordenacion
Algoritmos De OrdenacionAlgoritmos De Ordenacion
Algoritmos De Ordenacion
 
U1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos ComplejidadU1 Analisis Algoritmos Complejidad
U1 Analisis Algoritmos Complejidad
 
Arreglos
ArreglosArreglos
Arreglos
 
4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo4. algoritmo de ordenamiento externo
4. algoritmo de ordenamiento externo
 
5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx5.2.1 Intercalación.pptx
5.2.1 Intercalación.pptx
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
 
Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.Teoria de Grafos. Conceptos básicos.
Teoria de Grafos. Conceptos básicos.
 
Bucket sort
Bucket sortBucket sort
Bucket sort
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Vectores en programacion
Vectores en programacionVectores en programacion
Vectores en programacion
 
16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales16 Curso de POO en java - arreglos unidimensionales
16 Curso de POO en java - arreglos unidimensionales
 
Vectores en power point [recuperado]
Vectores en power point [recuperado]Vectores en power point [recuperado]
Vectores en power point [recuperado]
 
1.1.5 Gestion de Memoria dinámica con TDA.pptx
1.1.5 Gestion de Memoria dinámica con TDA.pptx1.1.5 Gestion de Memoria dinámica con TDA.pptx
1.1.5 Gestion de Memoria dinámica con TDA.pptx
 
Arreglos o dimensiones en pseint
Arreglos o dimensiones en pseintArreglos o dimensiones en pseint
Arreglos o dimensiones en pseint
 
Ordenar arreglos en java
Ordenar arreglos en javaOrdenar arreglos en java
Ordenar arreglos en java
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 

En vedette

IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicios
cbertolotti
 

En vedette (20)

Estructura de un Programa en C++
Estructura de un Programa en C++Estructura de un Programa en C++
Estructura de un Programa en C++
 
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)Fundamentos de Programacion - Unidad 5 arreglos (vectores)
Fundamentos de Programacion - Unidad 5 arreglos (vectores)
 
Arreglos-Programacion
Arreglos-ProgramacionArreglos-Programacion
Arreglos-Programacion
 
Programacion arreglos diapositivas
Programacion arreglos diapositivasProgramacion arreglos diapositivas
Programacion arreglos diapositivas
 
Pseint taller 1
Pseint taller 1Pseint taller 1
Pseint taller 1
 
Ordenacion
OrdenacionOrdenacion
Ordenacion
 
Arreglos
ArreglosArreglos
Arreglos
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicios
 
Metodo burbuja C++
Metodo burbuja C++Metodo burbuja C++
Metodo burbuja C++
 
Arreglos - Programación I
Arreglos - Programación IArreglos - Programación I
Arreglos - Programación I
 
Generalidades
GeneralidadesGeneralidades
Generalidades
 
Arreglos
ArreglosArreglos
Arreglos
 
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOSunidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
unidad 1 INTRODUCCION A LAS ESTUCTURAS DE DATOS
 
Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++Manejo de bits -operadores de bits C++
Manejo de bits -operadores de bits C++
 
Capitulo II
Capitulo IICapitulo II
Capitulo II
 
Estructura de datos c++
Estructura de datos c++ Estructura de datos c++
Estructura de datos c++
 
13 Instrucciones de manejo de bits
13  Instrucciones de manejo de bits13  Instrucciones de manejo de bits
13 Instrucciones de manejo de bits
 
Clase3
Clase3Clase3
Clase3
 
Clase 7
Clase 7Clase 7
Clase 7
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 

Similaire à 12 Arreglos

Arreglos
ArreglosArreglos
Arreglos
lichic
 
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_u
A J
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu generico
Ana Ocaña
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
diego MC
 
ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++
die_dex
 
jaisan
jaisanjaisan
jaisan
jai
 

Similaire à 12 Arreglos (20)

Estructuras
Estructuras Estructuras
Estructuras
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos
ArreglosArreglos
Arreglos
 
Estructura de Datos: Arreglos
Estructura de Datos: Arreglos Estructura de Datos: Arreglos
Estructura de Datos: Arreglos
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
ALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punterosALP Unidad 3: Tipos de datos estructurados y punteros
ALP Unidad 3: Tipos de datos estructurados y punteros
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Clasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptxClasificación de las estructuras de datos.pptx
Clasificación de las estructuras de datos.pptx
 
arrays
arraysarrays
arrays
 
Arreglos Java
Arreglos JavaArreglos Java
Arreglos Java
 
ED 02 2_tda_arra_u
ED 02 2_tda_arra_uED 02 2_tda_arra_u
ED 02 2_tda_arra_u
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Unidad5
Unidad5Unidad5
Unidad5
 
6. tda arrayu generico
6. tda arrayu generico6. tda arrayu generico
6. tda arrayu generico
 
Transparencias8
Transparencias8Transparencias8
Transparencias8
 
Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)Estructuras de Datos (Arreglos)
Estructuras de Datos (Arreglos)
 
7.arreglos en java
7.arreglos en  java7.arreglos en  java
7.arreglos en java
 
Clase 9- programacion
Clase 9- programacionClase 9- programacion
Clase 9- programacion
 
ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++ARRAYS (LISTAS Y TABLAS) EN C++
ARRAYS (LISTAS Y TABLAS) EN C++
 
jaisan
jaisanjaisan
jaisan
 

Dernier

2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
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
patriciaines1993
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Dernier (20)

Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
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
 
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
2024 KIT DE HABILIDADES SOCIOEMOCIONALES.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
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
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
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
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
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...
 

12 Arreglos

  • 2. Estructura de Datos • Se puede considerar un conjunto de datos, – Como una sola entidad… – Como un solo tipo de dato… De esta forma, se reduce la complejidad de un problema. • Un programa esta formado por: – Estructuras de control y llamadas a funciones (el algoritmo de nuestro programa). – Datos, con sus respectivos tipos, ya sean estos atómicos o complejos, juntos forman una jerarquía (la estructura de datos del programa). PROGRAMA = ALGORITMO + ESTRUCTURA DE DATOS
  • 3. ¿Qué es un Arreglo? Basándonos en los tipos de datos atómicos, podemos crear otros más complejos. • Un arreglo es una colección, o grupo de datos, donde: – Cada dato tiene su posición (primero, segundo, tercero…) – Y todos los datos del grupo son del mismo tipo, es decir, o todos son enteros, o todos son reales, etc. NO EXISTEN ARREGLOS “MEZCLADOS” Jamás olvidar que un arreglo mejor forma de visualizar un arreglo es: • La .. tiene un tipo – Como un grupo de cajas, una detrás de otra . – Donde cada caja representa un dato del arreglo o un elemento. • Podemos concluir que un arreglo tiene: – Tamaño: cuantas cajas va a tener, el número de datos. – Tipo: cuál es el tipo de todos los datos del arreglo. – Nombre: el único nombre bajo el cual vamos a dirigirnos al mismo.
  • 4. Declaración de Arreglos • Al declarar una variable cualquiera siempre indicamos: tipo y nombre. Por ejemplo: int a; • Para declarar un arreglo, se debe indicar – Tipo – Nombre y – Tamaño • Un arreglo de 10 elementos enteros, se declara: – int ArregloEnteros[10]; Jamás olvidar, – Y lo podemos visualizar: el tamaño de ArregloEnteros un arreglo es una constante 0 1 2 3 4 5 6 7 8 9 • Cada elemento del grupo va a estar identificado por un valor numérico, llamado índice. • En C el primer elemento de un arreglo tiene el índice 0. • Siempre, para indicar el tamaño de un arreglo, se utilizara una constante, jamás una variable.
  • 5. Manejo de Arreglos • Tenemos ahora 10 enteros bajo un mismo nombre • ¿Como accedemos a uno de esos datos? – Usamos el nombre del arreglo y el índice que identifica al elemento: nombre_arreglo[indice] – Si se desea asignar el valor de 2 al primer elemento del arreglo: arregloEntero[0] = 2; ArregloEnteros arregloEntero[1] = 9; 2 9 1 arregloEntero[4] = 1: 0 1 2 3 4 5 6 7 8 9 – Cada elemento es en efecto una variable del tipo declarado para el arreglo – Es muy importante recordar que: • El índice de un elemento, no es el valor (contenido) de dicho elemento. • El índice puede ser cualquier expresión que retorne un valor entero. – Para asignar a todos los elementos del arreglo, un mismo valor, lo mas práctico es usar un lazo for: for(i = 0; i < 10; i++) { arregloEntero[ i ] = 0; }
  • 6. Leer e Imprimir un Arreglo • Acabamos de ver un ejemplo para acceder a todos los elementos de una arreglo de una forma práctica. • Si tenemos 10 elementos en un arreglo, y queremos pedir que los ingresen por teclado, debemos repetir el ingreso 10 veces: for(i = 0; i < 10; i++) { scanf(“%d”,&a); arregloEnteros[i] = a; } • Así mismo, para imprimir todos los elementos de un arreglo, deberíamos repetir el proceso de imprimir, pero diez veces: for(i = 0; i < 10; i++) { printf(“Elemento %d:%dn”, i, ArregloEnteros[i]); }
  • 7. Ejercicio • Programa que permite el ingreso de las notas de un curso de 20 alumnos. Una vez ingresados, debe mostrarse el promedio de las mismas. #include <stdio.h> #define MAX 20 El usuario del programa no tiene porque saber void main(){ que los índices van double notas[MAX]; desde 0, se le pueden double total, promedio; mostrar desde 1 int i,a; total = 0; for(i = 0; i < MAX; i++){ printf("Ingrese Alumno %d:",i+1); scanf(“%d”,&a); notas[i]=a; } for(i = 0; i < MAX; i++) { total = total + notas[i]; } promedio = (double)total / (double)MAX; printf("Promedio: %.2f",promedio); getch(); }
  • 8. Arreglos Para Tabular • En lugar de almacenar valores en los elementos de un arreglo, algunas aplicaciones usan los arreglos para almacenar “índices”, que permiten llevar estadísticas, de un dato en particular. • Por ejemplo: Se pidió a 40 estudiantes que calificaran la calidad de la comida de la cafetería en una escala del 1 al 10 (1 es terrible y 10 excelente). Escriba un programa en C que pida las 40 respuestas y luego muestre un resumen del resultado.
  • 9. Inicialización de un Arreglo • Un arreglo en C también se puede inicializar de las siguientes formas: – Crear un arreglo de 3 elementos • Inicializando cada elemento: int A[]={11,2,8}; ó int A[3]={11,2,8}; • Inicializando todos los elementos con el mismo valor: int A[3]={0};
  • 10. Arreglos Multidimensionales • En C, los elementos de un arreglo pueden ser de cualquier tipo • Esto quiere decir que los elementos de un arreglo pueden ser a su vez, arreglos. • Arreglos de arreglos, se conocen como arreglos multidimensionales. • El mas común de estos, es el de dos dimensiones, conocido también como Matriz o Tabla. • Un ejemplo de una matriz, es un tablero de tres en raya. • Este es un arreglo de 3 elementos, donde cada elemento es un arreglo, de tres elementos también. int A[3][3]; A[0] (0,0) (0,1) (0,2) A[0][0] A[0]1] A[0][2] A[1] (1,0) (1,1) (1,2) A[1][0] A[1][1] A[1][2] A[2] (2,0) (2,1) (2,2) A[2][0] A[2][1] A[2][2]
  • 11. Inicialización • Un arreglo multidimensional también se puede inicializar static double MatrizIdentidad[3][3] = { {1,0,0}, {0,1,0} {0,0,1} }; • Así podemos inicializar todos los elementos de una matriz desde el inicio, sin necesidad de usar lazos anidados.
  • 12. Búsqueda en un Arreglo • Se refiere al proceso para encontrar un elemento particular en un arreglo. • Una de las estrategias mas comunes y simples para buscar un dato en un arreglo es: – Revisar uno por uno los elementos del mismo, este método se conoce como búsqueda lineal. • Escribir una función que determine si un valor dado se encuentra en un arreglo de elementos enteros, y si es así, indique su posición-
  • 13. Solución Dato a buscar: 58 A[0] 19 A[1] 12 A[2] 1 A[3] 2 A[4] 58 A[5]100 int EncontrarElemento(int valor, int arreglo[ ] ,int n) A[6] 3 { A[7] 4 for(i=0; i <10; i++) A[8] 45 { if (valor = = arreglo [ i ] ) A[9] 25 return(i); } return(-1); }
  • 14. Operador sizeof • Un char ocupa un byte. • ¿Cuantos bytes ocupa un entero? ¿un real? ¿una cadena? – Depende de cada máquina Podemos averiguarlo usando el operador sizeof. sizeof(int) devuelve el número de bytes que necesita un dato de tipo int. – CUIDADO: sizeof es un operador, no una función.
  • 15. ¿Cómo calcular el tamaño de un arreglo?1000 Arreglo[0] 1008 • Si inicializamos una Arreglo[1] arreglo sin indicar su 1016 ancho… Arreglo[2] 1024 Arreglo[3] ¿Cómo podemos saber el ancho, para futuros 1032 Arreglo[4] usos en el programa? sizeof(Arreglo) devuelve 32 sizeof(Arreglo[0]) devuelve el desfase: 8 sizeof(Arreglo)/sizeof(Arreglo[0]) devuelve 4, justo el número de elementos del arreglo.