Arreglos II: Arreglos unidimensionales - PowerPoint PPT Presentation

1 / 17
About This Presentation
Title:

Arreglos II: Arreglos unidimensionales

Description:

El tama o del arreglo se declara en tiempo de programaci n ... 3. El promedio, PROM es SUMA dividido por N. Mostrar los resultados: PROM, MIN y MAX ... – PowerPoint PPT presentation

Number of Views:780
Avg rating:3.0/5.0
Slides: 18
Provided by: FelipeC2
Category:

less

Transcript and Presenter's Notes

Title: Arreglos II: Arreglos unidimensionales


1
Arreglos (II)Arreglos unidimensionales
  • Clase 13
  • Introducción a la Programación
  • Marcos Sepúlveda(marcos_at_ing.puc.cl)

2
Resumen de la clase anterior
  • Un arreglo permite almacenar un conjunto de
    valores
  • Los arreglos almacenan un tipo base
  • El tamaño del arreglo se declara en tiempo de
    programación
  • La información almacenada en cada posición del
    arreglo puede accesarse a través de su índice
  • Ejemplos
  • Declaración int A100
  • Asignación A57

3
Ejercicios
  • Hacer un programa que pregunta 5 números y luego
    los imprime en orden inverso.
  • Hacer un programa que pregunta los ponderadores
    de un polinomio de grado 5(a0 a1x a2x2
    a3x3 a4x4 a5x5)y luego evalúa el polinomio
    desde x-10 a x10.

4
Ejemplo Cálculo de notas
  • Se desea calcular el promedio, mínimo y máximo de
    una lista de notas correspondientes a un curso.
    Se recibirá el número de alumnos y la nota
    correspondiente a cada uno, y se entregan los
    resultados en la pantalla.

5
Ejemplo Cálculo de notas
  • 1. Definición del problema
  • Conceptualización problema consiste en calcular
    el promedio, mínimo y máximo de una lista de
    notas de un curso. Cada alumno tiene una nota en
    el curso. Se supone que el usuario conoce a
    priori la cantidad de alumnos del curso y que
    entregará los datos en forma correcta.
  • Objetivo El objetivo es obtener el promedio, el
    máximo, y el mínimo de las notas del curso.
  • Elementos involucrados Los únicos elementos
    involucrados son las notas, la cantidad de
    alumnos, el promedio, el mínimo y el máximo.

6
Ejemplo Cálculo de notas
  • 2. Conceptualización de la solución
  • Obtener las notas
  • 1. Obtener la cantidad de alumnos N
  • 2. Iterar para cada uno de los N alumnos
  • 2.1 Obtener la nota del alumno
  • Calcular el promedio, mínimo y máximo
  • 1. Inicialmente la suma de notas, SUMA, es 0, el
    máximo, MAX, es 1, y el mínimo, MIN, es 7
  • 2. Iterar para cada para cada uno de los N
    alumnos
  • 2.1 Agregar a SUMA la nota del alumno
  • 2.2 Si la nota del alumno es mayor que MAX
  • 2.2.1 MAX es ahora la nota del alumno
  • 2.3 Si la nota del alumno es menor que MIN
  • 2.3.1 MIN es ahora la nota del alumno

7
Ejemplo Cálculo de notas
  • 2. Conceptualización de la solución
  • Variables
  • N Cantidad de alumnos
  • Notas Arreglo de notas de los alumnos del curso
  • SUMA Almacena la suma de las notas
  • PROM Promedio de notas
  • MIN Mínimo de las notas
  • MAX Máximo de las notas

8
Ejemplo Cálculo de notas
  • 3. Especificación del Algoritmo
  • Algoritmo
  • 1. Obtener las notas
  • 2. Calcular el promedio, mínimo y máximo
  • 3. Mostrar los resultados

9
Ejemplo Cálculo de notas
  • 4. Validación
  • Es importante analizar casos extremos en los que
    el usuario pueda ingresar valores poco usuales.
    Por ejemplo, si la cantidad de alumnos es cero o
    si es muy grande. Esto es particularmente
    importante para validar el programa en C. Por lo
    tanto, deben definirse dominios de validación que
    representan estas situaciones.
  • Además, deben considerarse dominios que incluyan
    distintos valores para las notas. Por ejemplo,
    varias notas distintas y repetidas, todas las
    notas iguales, etc. También debe definirse un
    dominio en el que el número de estudiantes es
    uno, pues podría presentar algún problema.

10
Ejemplo Cálculo de notas
  • 5. Limitaciones
  • Las limitaciones de este algoritmo se presentan
    principalmente en su implementación en el
    lenguaje de programación C. Dado que se va a
    utilizar un arreglo para almacenar las distintas
    notas, el máximo número de notas que podrán
    ingresarse estará limitado por la dimensión que
    se defina para el arreglo.
  • Por otra parte, no se planean controles de
    validez sobre los números que ingresa el usuario,
    de modo que se supone que se ingresarán valores
    correctos, en el rango de 1 a 7. De no ser así,
    el comportamiento del programa no está definido
    (es decir, puede pasar cualquier cosa).
  • También se supone que el número de alumnos es
    mayor que cero, o el comportamiento del programa
    no está definido. Por ejemplo, si se ingresa como
    número de alumnos un cero, esto producirá una
    división por cero al calcular el promedio.

11
Ejemplo Cálculo de notas
  • include ltstdio.hgt
  • include ltstdlib.hgt
  • define MAX_NUM_ALUMNOS 100
  • define MAX_NOTA 7.0
  • define MIN_NOTA 1.0
  • int main()
  • int numAlumnos,i
  • float notasMAX_NUM_ALUMNOS,
  • suma 0.0,
  • min MAX_NOTA,
  • max MIN_NOTA,
  • prom
  • printf("Ingrese el numero de alumnos en la
    seccion ")
  • scanf("d", numAlumnos)

12
Ejemplo Cálculo de notas
  • for (i0 iltnumAlumnos i)
  • suma notasi
  • if (notasi lt min) min notasi
  • if (notasi gt max) max notasi
  • prom suma/numAlumnos
  • printf("\tPromedio 1.1f\n", prom)
  • printf("\tMinimo 1.1f\n", min)
  • printf("\tMaximo 1.1f\n", max)

13
Funciones para representar conjuntos
  • inicializa_conjunto(int a)
  • carga_conjunto(int a)
  • longitud_conjunto(int a)
  • es_elemento(int a, int b)
  • ingresa_elemento(int a, int b)
  • imprime_conjunto(int a)
  • union_conjuntos(int a, int b, int c)
  • interseccion_conjuntos(int a, int b, int c)

14
Implementación de funciones de conjuntos
include ltstdio.hgt include ltstdlib.hgt define
TAMANO 20 / Se considera que toda posicion
del arreglo que tiene un 0, no es un elemento
del conjunto entonces un arreglo de TAMANO
posiciones con valores 0, es un conjunto
vacio / void inicializa_conjunto(int a)
int recorrido for (recorrido0recorridoltTAMAN
Orecorrido) arecorrido 0 void
carga_conjunto(int a) int elemento, i
0 do printf("Ingrese el elemento d del
conjunto ",i1) printf("lt 0 para terminar
gt ") scanf("d",elemento) ai
elemento i while(elemento i lt
TAMANO)
15
int longitud_conjunto(int a) int
recorrido, longitud0 for
(recorrido0arecorrido!0
recorridoltTAMANOrecorrido) longitud
return(longitud) int es_elemento(int a, int
b) int recorrido for
(recorrido0recorridoltlongitud_conjunto(b)recor
rido) if (a brecorrido) return(1)
return(0) void ingresa_elemento(int a,
int b) int posicion posicion
longitud_conjunto(b) if (!es_elemento(a,b)
posicion lt TAMANO) bposicion a void
imprime_conjunto(int a) int recorrido,
longitud longitud longitud_conjunto(a)
printf("El conjunto tiene d elementos y son
",longitud) for (recorrido0recorridoltlongi
tudrecorrido) if (arecorrido) printf("
d ",arecorrido) printf("\n")
16
void union_conjuntos(int a, int b, int c)
int recorrido int tam0
inicializa_conjunto(a) for(recorrido 0
recorrido lt longitud_conjunto(b) recorrido)
if (!es_elemento(brecorrido,a))
if (tam lt TAMANO) atam brecorrido
tam for(recorrido 0 recorrido lt
longitud_conjunto(c) recorrido) if
(!es_elemento(crecorrido,a)) if
(tam lt TAMANO) atam crecorrido tam
void interseccion_conjuntos(int a,
int b, int c) int recorrido, tam
0 inicializa_conjunto(a) for (recorrido
0 recorrido lt longitud_conjunto(b)
recorrido) if (es_elemento(brecorrido,c))
if (tam lt TAMANO) atam
brecorrido tam
17
int main() int conjunto0TAMANO,
conjunto1TAMANO, conjunto2TAMANO,
conjunto32TAMANO inicializa_conjunto(conjun
to0) ingresa_elemento(2,conjunto0)
ingresa_elemento(3,conjunto0)
ingresa_elemento(4,conjunto0)
imprime_conjunto(conjunto0) printf("5 es
elemento del conjunto 0? (0falso,1verdadero)
d\n", es_elemento(5,conjunto0))
printf("Se ingresa 5 al conjunto 0\n")
ingresa_elemento(5,conjunto0) printf("5 es
elemento del conjunto 0? (0falso,1verdadero)
d\n", es_elemento(5,conjunto0))
imprime_conjunto(conjunto0) printf("----\n")
inicializa_conjunto(conjunto1)
inicializa_conjunto(conjunto2)
printf("Ingrese elementos del conjunto 1\n")
carga_conjunto(conjunto1) printf("----\n")
printf("Ingrese elementos del conjunto 2\n")
carga_conjunto(conjunto2) printf("----\n")
printf("Conjunto 1 ") imprime_conjunto(conjun
to1) printf("Conjunto 2 ")
imprime_conjunto(conjunto2) printf("Conjunto1
Conjunto2 que consta de ")
union_conjuntos(conjunto3,conjunto1,conjunto2)
printf("d elementos es\n",longitud_conjunto(conj
unto3)) imprime_conjunto(conjunto3)
printf("\n") printf("Conjunto1 Conjunto2
que consta de ") interseccion_conjuntos(conjunt
o3,conjunto1,conjunto2) printf("d elementos
es\n",longitud_conjunto(conjunto3))
imprime_conjunto(conjunto3) printf("\n")
Write a Comment
User Comments (0)
About PowerShow.com