Está en la página 1de 21

Facultad de Ingeniería

Escuela Profesional de Ingeniería de


Computación y Sistemas
Curso: ICSI-506 ALGORITMIA Y PROGRAMACIÓN
SESIÓN 12: MÉTODOS Y ARREGLOS
DOCENTE : WALTER AURELIO LAZO AGUIRRE
Agenda
1. Métodos y arreglos. Paso de parámetros.
2. Ejemplos de algoritmos con métodos y arreglos
Aprendizajes esperados

1.Explica el uso de métodos con arreglos.


2.Explica el paso de parámetros.
3.Diseña Algoritmos utilizando diagramas N-S con métodos y
arreglos.
Método Conjunto de instrucciones, que se agrupa e identifica con un
nombre, y que realiza un cálculo o una tarea específica.

Variables en
Nombre del las recibe los
Partes de un método método datos que le
envían

Tipo de dato
Variables que
que devuelve
se declaran
el método
dentro del
método

Instrucciones
Indica Fin del que realizan
método y la tarea del
regresar a método
donde fue
invocado

Los corchetes [ ] indican que lo que va dentro es opcional.


Se puede utilizar o no
Un arreglo es un conjunto de variables del mismo tipo, que se agrupan bajo un mismo nombre y que se
almacenan en posiciones consecutivas de memoria.
Todos los elementos de un arreglo tienen el mismo nombre, pero se diferencian por la posición que ocupan en él.

1.- Arreglo unidimensional o vector 2.- Arreglo Bidimensional o Matriz


índice i
j

Para acceder a cada elemento de este arreglo hay


que indicar con dos índices la fila y la columna en
que se encuentra dicho elemento: m[ i ][ j ]

El primer índice indica la fila y el segundo


Para acceder a cada elemento de un arreglo índice indica la columna del elemento.
unidimensional hay que indicar la posición o
índice, del elemento dentro del arreglo; num[ i ]
PASO DE PARÁMETROS A UN MÉTODO

a) Por valor
Cuando a un método, se le pasa un parámetro por valor, solo se le envía una copia del valor que tiene la
variable enviada.
De esta forma la función que es llamada, no puede modificar el valor de la variable que se pasa como
parámetro.

b) Por referencia
En este caso se envía a la función invocada, la referencia (dirección de memoria) de la variable que se pasa
como parámetro.
De esta forma, la función que es llamada, puede modificar el valor real de la variable enviada como
parámetro.
USO DE MÉTODOS Y ARREGLOS

1.- Es posible enviar un arreglo como argumento de una función.


2.-Cuando se pasa un arreglo, como argumento, a un método o función, java lo hace enviando una referencia.
Entonces la función llamada puede modificar los valores de los elementos originales del arreglo.
En la práctica, cuando se envía un arreglo, como argumento, a un método, se escribe solamente el nombre del
arreglo (sin corchetes [ ]).

El nombre del arreglo es la dirección (de memoria) del primer elemento.


El método o función invocada lo que hace es modificar el contenido de las localidades de memoria que
corresponden al arreglo.

3.- Al pasar como argumento, un arreglo, a un método o función, generalmente también se pasa su cantidad de
datos, para que el método sepa cuantos datos debe procesar.

4.-El método que recibirá los argumentos de tipo arreglo, debe estar preparado para recepcionarlos en sus
parámetros formales, los cuales deben ser del mismo tipo que los argumentos enviados (de tipo arreglos).

5.- Es importante tener en cuenta que los arreglos no se retornan.


Ejemplo: 1.- Escribir un programa que lea las notas de N alumnos y reporte:
a) Todos los datos ingresados
b) La lista de las notas aprobatorias, indicando cuantas son. ( apr)
c) La lista de las notas desaprobatorias, indicando cuantas son. ( des)
d) La nota promedio. ( pro)

} Aprobados } Promedio

} LeerN

} Ingresar
} Desaprobados

} ReportarTodo
Solución con métodos
2.-Ingresar N números enteros positivos en un arreglo Num. Reportar todos los datos y determinar y
reportar el número mayor.
3.-Escribir un programa utilizando métodos y arreglos, que permita:
a.-Ingresar N números enteros positivos en un arreglo A
b.-Reportar el arreglo A
c.-En un arreglo B, en cada posición B[i], almacenar el factorial de A[i]. Reportar B.
Se debe utilizar un solo método reportar
4.-Escribir un programa utilizando métodos y arreglos, que permita:
a.-Ingresar N números enteros positivos en un arreglo A
b.-Reportar el arreglo A
c.-En un arreglo B, en cada posición B[i], almacenar el factorial de A[i]. Reportar B.
Se debe utilizar un solo método reportar. El programa se debe repetir mientras se desee continuar.

import java.io.*;
public class ArreglosMetodos3
{ static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
/////////////////////////////////////////////////////////
public static void main(String[] args) throws IOException
{ int A[ ]= new int[100];
int B[ ]= new int[100];
int N;
char resp;
do { N=LeerN();
Ingresar(A,N);
Reportar(A,N,'A');
CalcularFactorial(A,N,B);
Reportar(B,N,'B');
resp=Continuar();
}
while(resp=='S');
}
static int LeerN( )throws IOException
{ int N;
do { System.out.print("Ingrese N : ");
N=Integer.parseInt(br.readLine());
}
while(N<=0 || N>100);
return N;
}

static void Ingresar(int A[ ], int N)throws IOException


{ int i;
System.out.println("Ingreso de datos");
for(i=0; i<N; i=i+1)
{ do { System.out.print("Ingrese A["+i+"] : ");
A[i]=Integer.parseInt(br.readLine());
}
while(A[i]<=0);
}
return;
}
static void Reportar(int W[ ] , int N, char letra) throws IOException
{ int i;
System.out.println("Reporte de datos de " + letra);
for(i=0; i<N; i=i+1)
{ System.out.println(letra+"["+i+"]="+ W[i]);
}
return;
}

static char Continuar( )throws IOException


{ char resp;
do{ System.out.print("Desea Continuar S/N ??");
resp=br.readLine().toUpperCase().charAt(0);
}
while(resp!='S'&& resp!='N');
return resp;
}
static void CalcularFactorial( int A[ ],int N, int B [ ] )throws IOException
{ int i;
for(i=0; i<N; i=i+1)
{ B[i]= Factorial(A[i]);
}
return;
}

static int Factorial ( int N ) throws IOException


{int c, fac=1;
for(c=1; c<=N; c=c+1)
{ fac = fac*c;
}
return fac;
}

} // Llave final de la clase


5.-Ingresar números enteros positivos a una matriz M de fil filas y col columnas, y:
a.-Reportar la matriz M, como matriz
b.-En una matriz F, en cada posición F[i][j], almacenar el factorial de cada elemento M[i][j]. Reportar F.
Debe utilizar un solo método LeerN y un solo método Reportar.
5.-Ingresar números enteros positivos a una matriz M de fil filas y col columnas, y:
a.-Reportar la matriz M, como matriz
b.-En una matriz F, en cada posición F[i][j], almacenar el factorial de cada elemento M[i][j]. Reportar F.
Debe utilizar un solo método LeerN y un solo método Reportar.
import java.io.*;
public class Main
{ static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

public static void main(String[] args) throws IOException


{ int M[ ][ ]= new int[10][10];
int F[ ][ ]= new int[10][10];
int fil, col;
fil=LeerN("Filas");
col=LeerN("Columnas");
IngresarMat(M, fil, col, 'M');
ReportarMat(M, fil, col, 'M');
CalcularMatFactorial(M, fil, col, F);
ReportarMat(F, fil, col, 'F');

}
static int LeerN( String mensaje ) throws IOException
{ int N;
do{ System.out.print("Ingrese N de "+ mensaje+ ": ");
N=Integer.parseInt(br.readLine());
}
while(N<=0 || N>10);
return N;
}

static void IngresarMat( int M[ ][ ], int f, int c, char letra )throws IOException
{ int i,j;
System.out.println("Ingreso de datos de la matriz "+ letra+ " : ");
for(i=0; i<f; i=i+1)
{ for(j=0; j<c; j=j+1)
{ do{ System.out.print(letra+"["+i+"]["+j+"] : ");
M[i][j]=Integer.parseInt(br.readLine());
}
while(M[i][j]<=0);
}
}
return;
}
static void ReportarMat( int W[ ][ ], int f, int c, char letra )throws IOException
{ int i, j;
System.out.println("Reporte de datos de matriz " + letra);
for(i=0; i<f; i=i+1)
{ for(j=0; j<c; j=j+1)
{ System.out.print( W[i][j] + "\t");
}
System.out.println();
}
return;
}
static void CalcularMatFactorial(int M[ ][ ],int fil, int col,int F[ ][ ])throws IOException
{ int i, j;
for(i=0; i<fil; i=i+1)
{ for(j=0; j<col; j=j+1)
{ F[i][j] = Factorial( M[i][j] );
}
}

return;
}

static int Factorial ( int N ) throws IOException


{int c, fac=1;
for(c=1; c<=N; c=c+1)
{ fac = fac*c;
}
return fac;
}

} // Llave final de la clase


Herramientas para programar en java
• JDK (Java Development Kit) : Java
• Jcreator (entorno de programación- Se descarga y se instala)
• www.Repl.it (Plataforma para programar en línea)

También podría gustarte