SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Was ist angesagt?

Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Ejercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesEjercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesRenzo Bernabe Aguilar
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoLutzo Guzmán
 
1.7. técnicas de agrupación
1.7.  técnicas de agrupación1.7.  técnicas de agrupación
1.7. técnicas de agrupaciónITCM
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do WhileJoshe Varillas
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamientolichic
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en PseintMonjeOneble
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaJosé Antonio Sandoval Acosta
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisionesemiru48
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansDaniel Gómez
 

Was ist angesagt? (20)

Punteros y Arreglos
Punteros y ArreglosPunteros y Arreglos
Punteros y Arreglos
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Arreglos C++
Arreglos C++Arreglos C++
Arreglos C++
 
Ejercicio de estructuras_condicionales
Ejercicio de estructuras_condicionalesEjercicio de estructuras_condicionales
Ejercicio de estructuras_condicionales
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Algebra Boole.ppt
Algebra Boole.pptAlgebra Boole.ppt
Algebra Boole.ppt
 
Cuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamientoCuadro comparativo algoritmos de ordenamiento
Cuadro comparativo algoritmos de ordenamiento
 
1.7. técnicas de agrupación
1.7.  técnicas de agrupación1.7.  técnicas de agrupación
1.7. técnicas de agrupación
 
Programación 3: listas enlazadas
Programación 3: listas enlazadasProgramación 3: listas enlazadas
Programación 3: listas enlazadas
 
Arreglos
ArreglosArreglos
Arreglos
 
Ejercicios Whule y Do While
Ejercicios Whule y Do WhileEjercicios Whule y Do While
Ejercicios Whule y Do While
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 
Metodos De Ordenamiento
Metodos De OrdenamientoMetodos De Ordenamiento
Metodos De Ordenamiento
 
Arreglos en Pseint
Arreglos en PseintArreglos en Pseint
Arreglos en Pseint
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Estructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de BúsquedaEstructura de Datos - Unidad VI: Métodos de Búsqueda
Estructura de Datos - Unidad VI: Métodos de Búsqueda
 
hashing y colisiones
hashing y colisioneshashing y colisiones
hashing y colisiones
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeans
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie Fundamentos Arreglos

Ähnlich wie Fundamentos Arreglos (20)

Estructuras
Estructuras Estructuras
Estructuras
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos en C
Arreglos en CArreglos en C
Arreglos en C
 
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++
 

Kürzlich hochgeladen

Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEJosé Hecht
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraJose Sanchez
 
tema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVtema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVChema R.
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxMartaChaparro1
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...Martin M Flynn
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptx
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptxLa-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptx
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptxMAURICIO329243
 
Catálogo general de libros de la Editorial Albatros
Catálogo general de libros de la Editorial AlbatrosCatálogo general de libros de la Editorial Albatros
Catálogo general de libros de la Editorial AlbatrosGustavoCanevaro
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoJosé Luis Palma
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJOLeninCariMogrovejo
 
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)LizNava123
 
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptxfotofamilia008
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaMarco Camacho
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................ScarletMedina4
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Carol Andrea Eraso Guerrero
 
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdfMagalyDacostaPea
 
Explicación del Modelo de Stephen Toulmin para elaborar argumentos
Explicación del  Modelo de Stephen Toulmin para elaborar argumentosExplicación del  Modelo de Stephen Toulmin para elaborar argumentos
Explicación del Modelo de Stephen Toulmin para elaborar argumentosINESDVERA
 

Kürzlich hochgeladen (20)

Presentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUEPresentación MF 1445 EVALUACION COMO Y QUE
Presentación MF 1445 EVALUACION COMO Y QUE
 
Descripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldaduraDescripción del Proceso de corte y soldadura
Descripción del Proceso de corte y soldadura
 
tema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XVtema5 2eso 2024 Europa entre los siglos XII y XV
tema5 2eso 2024 Europa entre los siglos XII y XV
 
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptxTALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
TALLER_DE_ORALIDAD_LECTURA_ESCRITURA_Y.pptx
 
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
DIGNITAS INFINITA - DIGNIDAD HUMANA; Declaración del dicasterio para la doctr...
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptx
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptxLa-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptx
La-cosmovision-del-curriculo-educativo-en-Venezuela (1).pptx
 
Catálogo general de libros de la Editorial Albatros
Catálogo general de libros de la Editorial AlbatrosCatálogo general de libros de la Editorial Albatros
Catálogo general de libros de la Editorial Albatros
 
Biografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro DelgadoBiografía del General Eloy Alfaro Delgado
Biografía del General Eloy Alfaro Delgado
 
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJODIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
DIDÁCTICA DE LA EDUCACIÓN SUPERIOR- DR LENIN CARI MOGROVEJO
 
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)
NIVELES TRÓFICOS DE UN ECOSISTEMA (ecologia)
 
Unidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIUUnidad 2 | Teorías de la Comunicación | MCDIU
Unidad 2 | Teorías de la Comunicación | MCDIU
 
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
4° SEM23 ANEXOS DEL DOCENTE 2023-2024.pptx
 
Buenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria FarmaceuticaBuenas Practicas de Manufactura para Industria Farmaceutica
Buenas Practicas de Manufactura para Industria Farmaceutica
 
BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................BOCA Y NARIZ (2).pdf....................
BOCA Y NARIZ (2).pdf....................
 
Acuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptxAcuerdo segundo periodo - Grado Noveno.pptx
Acuerdo segundo periodo - Grado Noveno.pptx
 
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
Desarrollo de habilidades del siglo XXI - Práctica Educativa en una Unidad-Ca...
 
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf
4to-Primaria-prueba-Comunicación-Cuadernillo 2.pdf
 
Acuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptxAcuerdo segundo periodo - Grado Sexto.pptx
Acuerdo segundo periodo - Grado Sexto.pptx
 
Explicación del Modelo de Stephen Toulmin para elaborar argumentos
Explicación del  Modelo de Stephen Toulmin para elaborar argumentosExplicación del  Modelo de Stephen Toulmin para elaborar argumentos
Explicación del Modelo de Stephen Toulmin para elaborar argumentos
 

Fundamentos 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.