• No se han encontrado resultados

8.1 Arreglos y Modularidad

N/A
N/A
Protected

Academic year: 2021

Share "8.1 Arreglos y Modularidad"

Copied!
29
0
0

Texto completo

(1)

8.1 Arreglos y Modularidad

Mtra. Irma Ardón

(2)

Colección de valores todos ellos del mismo tipo, que se almacenan en localidades consecutivas (celdas)

en la memoria de la computadora, bajo un mismo NOMBRE de variable:

 tipo NOMBRE[max_elem];

max_elem es la cantidad máxima de elementos del arreglo

 

Arreglo o Vector

(3)

Para localizar un valor en un arreglo o vector, se utiliza un indicador de posición también llamado

índice

X[0] = 1.8 lee (X[1]) muestra(X[i])  

Para recorrer todos los elementos de un vector (en C/C++)

i va de cero a max_elem –1

Localización de cada valor

(4)

El programador es responsable de:

No exceder los límites del vector

Solo recuperar el contenido de celdas con valor previamente definido

En C/C++

(5)

Propiedades de los Arreglos

 

Los arreglos tienen tres propiedades:

un nombre

un conjunto de valores todos ellos del mismo tipo

índice o indicador de posición de 0 a MaxElem –1

(6)

#include<iostream>

#define N 10

using namespace std;

int main() {

int datos[N],indice;

float prom, suma =0.0;

for ( indice = 0; indice < N; indice++ ) { cout<<”\n NUMERO?:”;

cin>>datos[indice];

suma = suma + datos[indice];

}

prom = suma / N ;

cout<<”\nEl promedio es:”<<prom;

}

Promedio

de diez

números

(7)

Promedio, menor y mayores a

prom

#include <iostream>

#include <conio.h>

#define n 4

using namespace std;

int main (){

int i,datos[n], menor, cont_may;

float prom,total;

cont_may=i=0;

cout<<"\nINGRESE EL DATO "<<i+1<<" ";

cin>>datos[i];

total= menor=datos[i];

for(i=1;i<n; i++){

cout<<"\nINGRESE EL DATO "<<i+1<<" ";

cin>>datos[i];

if (datos[i] < menor) menor=datos[i];

total=total+datos[i];

}

prom=total/n; //…

(8)

//…

cout<<"\nPROMEDIO = "<<prom

<<"\nMENOR = “ <<menor;

for(i=0;i<n;i++){

if (datos[i] > prom) cont_may++;

}

cout<<"\nMAYORES AL PROMEDIO = “ <<cont_may;

getch();

}

(9)

1.

Dados dos arreglos producto de los i-esimos elementos, almacenando en un tercer

arreglo (i-esima posición) el resultado

2.

Leer y mostrar con sus posiciones los elementos de un vector

3.

Dado el vector L, acomodar sus elementos en L1, L2 y L3 por intervalos de 0-50, 51-100 y 101-150

4.

Reemplazar todas las apariciones de un valor

por un nuevo valor

(10)

Puede estar compuesto de elementos de tipo

cadena, otro puede tener todos sus elementos de tipo entero

a) Arreglo b) Contador c) Ciclo

¿Cuál es una de las ventajas más importantes de usar un vector? Almacenar:

b)tipos de datos

c) variables

d)un conjunto de datos

e)constantes

(11)

EJERCICIO

 

Pedir y leer N igual a tres números,

determinar y mostrar: la suma, la cantidad

de números positivos y avisar con una

bandera si al menos un valor fue negativo  

(12)

Modularidad

Dividir el trabajo

Reutilizar código

Fácil comprensión

Fácil mantenimiento

(13)

#include <iostream>

using namespace std;

//se escriben los encabezados de los módulos a implementar void altas();

void bajas();

void cambios();

void consultas();

Base de

Datos…

(14)

//luego se escribe el encabezado del main y se implementa:

int main (){

int opc;

do {

cout<<endl<<"\nmain: MENU PRINCIPAL ";

cout<<endl<<"\n1. Altas\n2. Bajas\n3. Cambios\n4.

Consultas\n5. Salir ";

cout<<endl<<"\nOpcion: ";

cin>>opc;

switch (opc){

case 1: altas(); break;

case 2: bajas(); break;

case 3: cambios(); break;

case 4: consultas();

}

}while (opc != 5);

}

…Base de

Datos…

(15)

//Después del main se implementan los módulos:

void altas(){

cout<<endl<<" MODULO DE ALTAS ";

}

void bajas(){

cout<<endl<<" MODULO DE BAJAS ";

}

void cambios(){

cout<<"\n MODULO DE CAMBIOS ";

}

void consultas(){

cout<<"\nMODULO DE CONSULTAS ";

}

//o el main al final, sin encabezados del principio

…Base de

Datos

(16)

Otro Ejemplo

Cálculo de área y perímetro de un

triángulo

(17)

Declaración de Módulos

1. void Calcula_Area(float base, float altura, float * area) {

2. *area = base*altura/2;

3. }

4. float Calcula_Perimetro(float base, float altura){

5. float perimetro;

6. perimetro=base*altura;

7. return (perimetro);

8. }

(18)

1. void main(void){

2. float base,a,perimetro,area;

3. int opc;

4. do {

5. do {

6. cout<<"\n1. AREA\n2. PERIMETRO\n3. SALIR\nOPCION? ";

7. cin>>opc;

8. }while(opc < 1 || opc > 3);

9. if (opc != 3) {

10. cout<<"\nINGRESE BASE Y ALTURA ";

11. cin>>base>>a;

12. switch (opc) {

13. case 1:Calcula_Area(base,a,&area);

14. cout<<"AREA = " <<area; break;

15. case 2:perimetro=Calcula_Perimetro(base,a);

16. cout<<" PERIMETRO = "<<perimetro;

17. }

18. }

19. }while (opc != 3);

20. }

Llamado

(19)

Comunicación entre módulos…

Parámetros de Permiten al módulo invocado Entrada Llevar a cabo su misión

Salida Comunicar resultados obtenidos

(20)

…comunicación

1. void Calcula_Area(float base, float altura, float * area) {

2. *area = base*altura/2;

3. }

4. float Calcula_Perimetro(float base, float altura){

5. float perimetro;

6. perimetro=base*altura;

7. return (perimetro);

8. }

Parámetros de Entrada Parámetro de Salida

(21)

Tipos de Parámetros

Formales.- Se declaran en el encabezado de un módulo

Actuales.- Se escriben en el llamado a un

módulo

(22)

Parámetros Formales

1. void Calcula_Area(float base, float altura,float * area) {

2. *area = base*altura/2;

3. }

4. float Calcula_Perimetro(float base, float altura){

5. float perimetro;

6. perimetro=base*altura;

7. return (perimetro);

8. }

(23)

1. void main(void){

2. float base,a,perimetro,area;

3. int opc;

4. do {

5. do {

6. cout<<"\n1. AREA\n2. PERIMETRO”<<"\n3. SALIR\nOPCION? ";

7. cin>>opc;

8. }while(opc < 1 || opc > 3);

9. if (opc != 3) {

10. cout<<"\nINGRESE BASE Y ALTURA ";

11. cin>>base>>a;

12. switch (opc) {

13. case 1:Calcula_Area(base,a,&area);

14. cout<<"AREA = " <<area; break;

15. case 2:perimetro=Calcula_Perimetro(base,a);

16. cout<<" PERIMETRO = "<<perimetro;

17. }

18. }

19. }while (opc != 3);

20. }

Parámetros Actuales

(24)

Comunicación de Parámetros…

Al invocar a un módulo, se le envían los parámetros actuales para que inicie su trabajo

Los parámetros enviados al módulo, son recibidos por los parámetros formales

Se ejecuta el módulo invocado con los

parámetros formales y sus variables

locales

(25)

…Los Parámetros, Actuales y

Formales

Deben coincidir en cantidad, tipo y

secuencia

(26)

Ejecución del Programa…

1.

Siempre inicia en main()

2.

Cuando se invoca a un módulo, la ejecución del main() se suspende

3.

Se ejecuta el módulo invocado

4.

Al terminar el módulo invocado, se regresa a main()

5.

Siempre termina en main()

(27)

…Ejecución del Programa…

Un módulo puede invocar a otro módulo y así sucesivamente,

iniciando y terminando la

aplicacion siempre en main()

(28)

Paso de Parámetros…

Por:

Valor. Entradas que no cambian

Referencia a su dirección de memoria.

Salidas que sí cambian

(29)

1. void Calcula_Area(float base, float altura, float * area) {

2. *area = base*altura/2;

3. }

4. float Calcula_Perimetro(float base, float altura) {

5. float perimetro;

6. perimetro=base*altura;

7. return (perimetro);

8. }

Referencias

Documento similar

Por una parte, la cadena de valor es un conjunto de actividades interrelacionadas que tiene como principal objetivo el obtener una ventaja competitiva.. Por lo tanto, esta se

• Suele representar un 15% del valor total económico del proyecto, pero una mala gestión de la misma puede disparar esta cifra hasta hacer disminuir muy significativamente

ELABORACIÓN DE LOS MAPAS DE PELIGROSIDAD Y RIESGO REQUERIDOS POR EL R.D...

La invalidez en el MMPI por no respuestas no se considera criterio positivo (sólo se puede considerar tal posibilidad en caso de daño neurológico que justifique tal estilo

saginata, se considera común en Europa del este (15), con una prevalencia mucho más baja en Europa occidental (del orden de 0.01%) (16).. Las infecciones humanas son endémicas

Además, es muy importante la valoración completa de la paciente con atención en el origen de la fístula, tiempo de recidiva, ausencia de infección, estado de los tejidos y

{ En el servicio ADSL, el envío y recepción de datos se establece desde el ordenador del usuario a través de un módem ADSL Estos desde el ordenador del usuario a través de un

 Sistema Operativo (SO): conjunto de programas que gestiona todos los recursos físicos de la máquina (hardware) y sirve como soporte a las capas superiores de software