0% encontró este documento útil (0 votos)
79 vistas13 páginas

Ejercicio 2 PDF

El documento presenta cuatro ejercicios de programación de applets con interacción hombre-computadora. El primer ejercicio genera aleatoriamente elementos en un arreglo, cuenta la frecuencia de cada opción y muestra un resumen. El segundo simula lanzamientos de dados, encuentra una matriz de contingencia y cuenta la frecuencia de sumas. El tercero muestra un arreglo y versiones ordenadas de forma ascendente y descendente. El cuarto genera una matriz aleatoria, suma sus columnas y encuentra los menores elementos de cada columna.

Cargado por

bolin3001
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
79 vistas13 páginas

Ejercicio 2 PDF

El documento presenta cuatro ejercicios de programación de applets con interacción hombre-computadora. El primer ejercicio genera aleatoriamente elementos en un arreglo, cuenta la frecuencia de cada opción y muestra un resumen. El segundo simula lanzamientos de dados, encuentra una matriz de contingencia y cuenta la frecuencia de sumas. El tercero muestra un arreglo y versiones ordenadas de forma ascendente y descendente. El cuarto genera una matriz aleatoria, suma sus columnas y encuentra los menores elementos de cada columna.

Cargado por

bolin3001
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

UNIVERSIDAD AUTÓNOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS DE CIENCIAS EXACTAS Y TECNOLOGÍA


CARRERA DE INGENIERÍA INFORMÁTICA

INTERACCION HOMBRE COMPUTADOR

CONTENIDO:

APPLETS CON INTERACCIÓN

Grupo: 16

Días
Horas Horas
Integrantes Trabaj AutoEval.
Grupo Individual
.
ARIZACA CALLEJAS GUISELA LIBERTAD 1 1 2 100
CABRERA ALVAREZ JUAN DIEGO 1 1 2 100
LORA SARAVIA HUGO JHOJAN 1 1 2 100
QUISPE MAMANI JOSE LUIS 1 1 2 100
SANCHEZ HERBAS ALEXANDER 1 1 2 100

Días de Retraso: 0

Porcentaje: 100%

Fecha de Presentación: jueves, 23 de enero de 2020


Fecha Presentada: jueves, 23 de enero de 2020
APPLETS CON INTERACCION

COMENTARIOS:
En el laboratorio de hoy pudimos apreciar cómo funcionan los eventos y su aplicación al
momento de diseñar applets, también pudimos contemplar cómo es que la lógica del
código puede llegar a variar, en mayor o menor medida, cuando se utilizan eventos para
el manejo de los datos así como si no se los usara, que esto en muchos casos podría llegar
a simplificar código. También se pudo apreciar las distintas clases o estructuras que se
usan para el ingreso y muestra de datos para la interacción con el usuario.
Ejercicio 1:
Implementar una applet para generar aleatoriamente n-elementos iniciales que
contienen respuestas de 1 a 5. Encontrar la cantidad total de cada opción elegida y
mostrar el número de opción, cantidad y barra de frecuencias. Utilizar un arreglo
contador.

public class Ejercicio1 extends Applet {

private String cadena;


private Label label;
private TextField textField;
private TextArea textArea;

private int f[] = {0, 0, 0, 0, 0, 0};

public void init() {


this.label = new Label("Ingresar cantidad elementos");
this.textField = new TextField(20);
this.textArea = new TextArea(10, 50);
this.add(label);
this.add(textField);
this.add(textArea);
}

public boolean action(Event e, Object o) {


if (e.target == this.textField) {
int vector[] = new
int[Integer.parseInt(this.textField.getText())];
this.generarElementos(vector);
this.encontrarFrec(vector);
this.textArea.append("Elementos generados:" +
toString(vector) + "\n");
this.textArea.append("Opcion\tCantida\tFrecuencia" +
"\n");
for (int i = 1; i < f.length; i++) {
textArea.append("" + (i) + "\t" + f[i] + "\t" +
this.cadena('x', f[i]) + "\n");
}
}
return true;
}

public void generarElementos(int vector[]) {


for (int i = 0; i < vector.length; i++) {
vector[i] = (int) ((Math.random() * 5) + 1);
}
}

public void encontrarFrec(int vector[]) {


for (int i = 0; i < vector.length; i++) {
this.f[vector[i]] = this.f[vector[i]] + 1;
}
}

public String cadena(char ch, int n) {


String S1 = "";
for (int i = 1; i <= n; i++) {
S1 = S1 + ch;
}
return S1;
}

public String toString(int[] vector) {


String cadena = "";
for (int i = 0; i < vector.length; i++) {
cadena = cadena + vector[i]+" ";
}
return cadena;
}
}
Ejercicio 2:
Implementar una applet para simular n-lanzamientos de un par de datos. a)
Encontrar una matriz de contingencia. Las filas representan a un dado y las
columnas al otro dado, es decir; la cantidad de veces de resultados similares en los
lanzamientos de dados. (Utilizar una matriz de contadores), b) encontrar la
frecuencia del total de la suma de ambos dados en los n-lanzamientos, mostrar
cantidades presentadas para cada suma.
public class Ejercicio2 extends Applet {

/**
* Initialization method that will be called after the applet is
loaded into
* the browser.
*/
private Label ls;
private TextField tf;
private TextArea ta;
private TextArea ta2;
int m[][] = {
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0}
};

LinkedList<Integer> dado1 = new LinkedList<>();


LinkedList<Integer> dado2 = new LinkedList<>();
int frec[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

public void init() {


// TODO start asynchronous download of heavy resources
ls = new Label("Nro tiros:");
tf = new TextField(20);
ta = new TextArea(15, 30);
ta2 = new TextArea(15,5);
this.add(ls);
this.add(tf);
this.add(ta);
this.add(ta2);
}
public boolean action(Event e, Object o) {
if (e.target == tf) {
ta.setText("");
ta2.setText("");
dado1 = GetRand(Integer.parseInt(tf.getText()));
dado2 = GetRand(Integer.parseInt(tf.getText()));
EncontrarFrecMatriz(m, frec, dado1, dado2);
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
ta.append("" + m[i][j] + "\t");
}
ta.append("\n");
}

for (int i = 0; i < frec.length; i++) {


ta2.append("" + (i+2) + ": " + frec[i] + "\n");
}
}
return true;
}

public void paint(Graphics g) {

// TODO overwrite start(), stop() and destroy() methods


private void EncontrarFrecMatriz(int[][] m, int[] frec1,
LinkedList<Integer> dado1, LinkedList<Integer> dado2) {
for (int i = 0; i < dado1.size() & i < dado2.size(); i++) {
m[dado1.get(i) - 1][dado2.get(i) - 1] = m[dado1.get(i) -
1][dado2.get(i) - 1] + 1;
frec1[(dado1.get(i) - 1) + (dado2.get(i) - 1)] =
frec1[(dado1.get(i) - 1) + (dado2.get(i) - 1)] + 1;
}
}

private String cadena(char c, int n) {


String s1 = "";
for (int i = 1; i <= n; i++) {
s1 = s1 + c;
}
return s1;
}
// TODO overwrite start(), stop() and destroy() methods

private void EncontrarFrec(int[] frec, int[][] m) {


for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
frec[i + j] = frec[i + j] + m[i][j];
}
}
}

private LinkedList<Integer> GetRand(int aux) {


LinkedList<Integer> L1 = new LinkedList<>();
for (int i = 0; i < aux; i++) {
L1.add((int) ((Math.random() * 6) + 1));
}
return L1;
}
// TODO overwrite start(), stop() and destroy() methods
}

Ejercicio 3:
Implementar una applet, para mostrar un arreglo de n-elementos y volver a
mostrar el mismo arreglo ordenado en forma ascendente y ordenado en forma
descendente.

public class Laboratorio2 extends Applet {

private String cadena;


private Label label;
private TextField textField;
private TextArea textArea;

public void init() {


this.label = new Label("Ingresar cantidad elementos");
this.textField = new TextField(20);
this.textArea = new TextArea(10, 50);
this.add(label);
this.add(textField);
this.add(textArea);

}
public boolean action(Event e, Object o) {
if (e.target == this.textField) {
int vector[] = new
int[Integer.parseInt(this.textField.getText())];
this.generarElementos(vector);
this.textArea.append("Elementos generados:" + "\t" +
toString(vector) + "\n");
this.ordenamientoAsc(vector);
this.textArea.append("Ordenado Ascendente:" + "\t" +
toString(vector) + "\n");
String cadena = "Ordenado Descendente" + "\t";
for (int i = 0; i < vector.length; i++) {
cadena = cadena + vector[vector.length - (i + 1)];
}
this.textArea.append(cadena);
}
return true;
}

public void ordenamientoAsc(int vector[]) {


for (int i = 0; i < vector.length - 1; i++) {
int min = i;
for (int j = i + 1; j < vector.length; j++) {
if (vector[j] < vector[min]) {
min = j;
}
}
if (i != min) {
int aux = vector[i];
vector[i] = vector[min];
vector[min] = aux;
}
}
}

public void generarElementos(int vector[]) {


for (int i = 0; i < vector.length; i++) {
vector[i] = (int) ((Math.random() * 5) + 1);
}
}

public String toString(int []vector){


String cadena="";
for(int i=0;i<vector.length;i++){
cadena=cadena+vector[i];
}
return cadena;
}
}
Ejercicio 4:
Implementar una applet para mostrar una matriz rectangular de n x m (Generar
aleatoriamente los elementos), y mostrar la suma de los elementos de las columnas
y los elementos menores de cada columna.

public class ej4 extends Applet {

private int m[][];


private LinkedList<Integer> menor;
private LinkedList<Integer> suma;
private Label lb1, lb2;
private TextArea ta, ta1;
private TextField tf1, tf2;

public void init() {


// TODO start asynchronous download of heavy resources
lb1 = new Label("Ingrese m:");
lb2 = new Label("Ingrese n:");
tf1 = new TextField(20);
tf2 = new TextField(20);
ta = new TextArea(10, 20);
ta1 = new TextArea(10,20);
this.add(lb1);
this.add(tf1);
this.add(lb2);
this.add(tf2);
this.add(ta1);
this.add(ta);
}

public void IniciarMatriz(int x, int y) {


m = new int[x][y];
suma = new LinkedList<>();
menor = new LinkedList<>();
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {

int n = (int) (Math.random() * 10);


m[i][j] = n;
}
}
for (int i = 0; i < x; i++) {
suma.add(0);
}
for (int i = 0; i < x; i++) {
menor.add(Integer.MAX_VALUE);
}
}

@Override
public boolean action(Event e, Object o) {
if (e.target == tf2) {
IniciarMatriz(Integer.parseInt(tf1.getText()),
Integer.parseInt(tf2.getText()));
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {

ta1.append(m[i][j]+" ");
}
ta1.append("\n");
}
Suma();
Menor();
ta.append("Suma: " + "\n");
for (int i = 0; i < suma.size(); i++) {
ta.append( suma.get(i) + " ");
}
ta.append("\n Menor: " + "\n");
for (int i = 0; i < menor.size(); i++) {
ta.append( menor.get(i) + " ");
}
}
return true;
}

public void Suma() {


for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
int n = suma.get(i);
suma.set(i, n + m[i][j]);
System.out.println("" + n);
}
}
}

public void Menor() {


for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m[i].length; j++) {
if (menor.get(i) > m[i][j]) {
menor.set(i, m[i][j]);
}
}
}
}
// TODO overwrite start(), stop() and destroy() methods
}

Ejercicio 5:
Implementar una applet, para mostrar todas las subcadenas de una cadena de
entrada. Es decir; mostrar todas las subcadenas de la cadena leida.

public class Cadena extends Applet {

/**
* Initialization method that will be called after the applet is
loaded into
* the browser.
*/

private String s1;


private Label ls;
private TextField tf;
private TextArea ta;

public void init() {


// TODO start asynchronous download of heavy resources
ls = new Label("Ingresar cadena");
tf = new TextField(20);
ta = new TextArea(10,20);
this.add(ls);
this.add(tf);
this.add(ta);
}

public boolean action(Event e,Object o){


if(e.target == tf){
s1 = tf.getText();
for (int i = 0; i < s1.length(); i++) {
for (int j = i+1; j <= s1.length(); j++) {
ta.append(s1.substring(i,j) + "\n");
}
}
}
return true;
}

// TODO overwrite start(), stop() and destroy() methods


}

Ejercicio 6:
Proponer e implementar 5 ejercicios cualesquiera sobre Applet, con ingreso y
salida de valores a través de la interfaz gráfica de su applet.

/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dia2;

import java.applet.Applet;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

/**
*
* @author juand
*/
public class cadena extends Applet {

public String s1;


private Label ls;
private TextField tf;
private TextArea ta;
private String text;
private String textcompleto;

//1.Mostrar las letras que se escriben en tiempo real


//2.No mostrar la letra "a" si el usuario la escribe en el
textfield
//3.Mostrar las letras en vice versa
//4.
public void init() {
text = "";
textcompleto = "";
ls = new Label("Ingrese numero");
tf = new TextField(20);
ta = new TextArea(10, 20);
this.add(ls);
this.add(tf);
this.add(ta);

KeyListener keyListener = new KeyListener() {


public void keyPressed(KeyEvent keyEvent) {
mostrarTodos(keyEvent);

public void keyReleased(KeyEvent keyEvent) {

public void keyTyped(KeyEvent keyEvent) {

};
tf.addKeyListener(keyListener);

////2.No mostrar la letra 'A' si el usuario la escribe en el


textfield
public void noMostrarA(KeyEvent keyEvent) {

if (keyEvent.getKeyChar() != 'a') {
if (keyEvent.getKeyCode() == 8) {
if (text.length() > 0) {
//System.out.println(tf.getText());
if (textcompleto.charAt(textcompleto.length() - 1)
== 'a') {
textcompleto = textcompleto.substring(0,
textcompleto.length() - 1);
} else {
text = text.substring(0, text.length() - 1);
ta.append(text + "\n");
}

}
} else {
text = text + keyEvent.getKeyChar();
textcompleto = text + keyEvent.getKeyChar();
System.out.println(text);
ta.append(text + "\n");
//System.out.println(keyEvent.getKeyChar());
}
} else {
textcompleto = textcompleto + keyEvent.getKeyChar();
System.out.println(textcompleto);
}
}
//1. Mostrar las letras que se escriben en tiempo real

public void mostrarTodos(KeyEvent keyEvent) {


if (keyEvent.getKeyCode() == 8) {
if (text.length() > 0) {
text = text.substring(0, text.length() - 1);
ta.append(text + "\n");
}
} else {
text = text + keyEvent.getKeyChar();
System.out.println(text);
ta.append(text + "\n");
System.out.println(keyEvent.getKeyChar());
}
}
//3.Mostrar las letras en vice versa
public void viceVersa(KeyEvent keyEvent){
if (keyEvent.getKeyCode() == 8) {
if (text.length() > 0) {
text = text.substring(0, text.length() - 1);
ta.append(text + "\n");
}
} else {

text = keyEvent.getKeyChar()+text;
System.out.println(text);
ta.append(text + "\n");
System.out.println(keyEvent.getKeyChar());
}
}

public boolean action(Event e, Object o) {

if (e.target == tf) {
s1 = tf.getText();
for (int i = 0; i < s1.length(); i++) {
for (int j = i + 1; j <= s1.length(); j++) {
ta.append(s1.substring(i, j) + "\n");
}
}
}
return true;
}

import java.applet.Applet;
import java.awt.Event;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;

/**
*
* @author windows8.1
*/
public class Iteraccion extends Applet {

private String S1;


private Label ls;
private TextField tf;
private TextArea ta;
public void init() {
ls= new Label("Ingresar Cadena");
tf = new TextField(20);
ta= new TextArea(10,20);
this.add(ls);
this.add(tf);
this.add(ta);

}
@Override
//4.- Repite la cadena N-1 veces espaciado
public boolean action(Event e, Object o){
if(e.target==tf){
int i=0, g=4;
S1=tf.getText();
for (int j = i+1; j < g; j++) {
for (int k = 0; k < S1.length(); k++) {
ta.append(S1.substring(i,k) + "\n");
}
}

}
return true;
}

También podría gustarte