lunes, 31 de marzo de 2008

Segunda lista de ejercicios

PROGRAMACIÓN NIVEL II
---------------------

1. LEER Y SUMAR LOS ELEMENTOS DE 2 VECTORES DE TAMAÑO 10.
2. SUPONGA DOS VECTORES DE TAMAÑO 10 (A Y B), ESCRIBA UN PROGRAMA QUE SUME LAS POSICIONES.
PARES DEL VECTOR A CON LAS IMPARES DEL VECTOR B Y MUESTRE EL RESULTADO EN PANTALLA.
3. INVERTIR LOS ELEMENTOS DE UN VETOR DE 20 ELEMENTOS Y ALMACENARLOS EN OTRO VECTOR.
4. DADO UN VECTOR DE 30 CALIFICACIONES, CALCULE Y MUESTRE EL PROMEDIO DE LAS CALIFICACIONES
APROBATORIAS.
5. PARA EL EJERCICIO 4, CALCULE LA MEDIANA DE TODAS LAS CALIFICACIONES.
6. MUESTRE LOS NUMEROS PRIMOS QUE SE ENCUENTREN ENTRE 1 Y 100.
7. DADO UN MONTO A GASTAR POR UN CLIENTE Y UN CARRITO LLENO DE MERCANCIAS, SUPONGA QUE USTED
TOMARÁ TODOS LOS ARTÍCULOS DEL CARRITO UNO A UNO HASTA AGOTAR EL MONTO A GASTAR. DIGA
CUANTOS PRODUCTOS COMPRA EL CLIENTE.
8. LEER UNA LISTA DE NÚMEROS DADA POR EL USUARIO Y OBTENER EL PROMEDIO DE LOS NUMEROS ENTEROS
SE DETENDRA CUANDO EL USUARIO INTRODUZCA UN CERO.
9. SUPONGA QUE LE DARÁN UNA LISTA CON EL NOMBRE Y PRECIO DE 10 ARTÍCULOS DE OFICINA, SEPARE
EN DOS VECTORES DIFERENTES LOS PRODUCTOS CON UN PRECIO MAYOR A 50 Y MENOR O IGUAL A 50
RESPECTIVAMENTE.
10.ESCRIBA UN PROGRAMA QUE ENCUENTRE UN NOMBRE ENTRE UNA LISTA DE 100.
11.ESCRIBA UN PROGRAMA QUE INVIERTA LOS VALORES DE UN VECTOR.
12.ESCRIBA UN PROGRAMA QUE SUME DOS MATRICES.
13.ESCRIBA UN PROGRAMA QUE OBTENGA LA TRANSPUESTA DE UNA MATRIZ.
14.ESCRIBA UN PROGRAMA QUE MULTIPLIQUE DOS MATRICES.
15.PROGRAMA EL MÉTODO DE GAUSS PARA LA SOLUCIÓN DE SISTEMAS DE ECS. LINEALES.
16.OBTENGA LA MATRIZ INVERSA DE UNA MATRIZ DADA.
17.SUPONGA QUE TIENE UNA MATRIZ DE 10 RENGLONES POR CUATRO COLUMNAS, DONDE CADA RENGLON
REPRESENTA LAS CALIFICACIONES DE UN ALUMNO Y LAS PRIMERAS DOS COLUMNAS, SON LAS
CALIFICACIONES DE LOS DOS PARCIALES Y LA TERCERA COLUNA ES LA CALIFICACIÓN DEL
EXAMEN ORDINARIO. CALCULE EN LA CUARTA COLUMA LA CALIFICACIÓN FINAL, SI EL PROMEDIO
DE LOS PARCIALES REPRESENTA EL 50% DE LA CALIFICACIÓN Y EL EXAMEN ORDINARIO EL OTRO
50%. MUESTRE LOS RESULTADOS.
18.PARA EL EJERCICIO ANTERIOR, CALCULE EL PROMEDIO DE CADA PARCIAL, EL PROMEDIO FINAL
DEL GRUPO, Y CUAL FUE EL PARCIAL MAS REPROBADO.
19.SUPONGA QUE TUENE DOS VECTORES DE 5 ELEMENTOS CADA UNO (H Y M), CADA VECTOR CONTIENE
LOS NOMBRES DE 5 PERROS MACHOS Y HEMBRAS RESPECTIVAMENTE, SUPONGA ADEMAS QUE TIENE
UNA MATRIZ DE 5*5 DONDE CADA RENGLON REPRESENTA UNA HEMBRA Y CADA COLUMNA UN MACHO
Y LOS DATOS DE LA MATRIZ INDICAN LA CANTIDAD DE CACHORROS QUE HAN PROCREADO CADA
PAREJA. ESCRIBA UN PROGRAMA QUE LEA LOS DATOS DESDE 3 ARCHIVOS DE TEXTO, UNO PARA
LOS NOMBRES DE LOS MACHOS UNO PARA LOS DE LAS HEMBRAS Y UNO PARA LOS DATOS DE LA
MATRIZ. MUESTRE ADEMAS LAS PAREJAS QUE NO HAN PROCREADO, LA PAREJA MAS PROLIFICA
EL MACHO MAS PROLIFICO Y LA HEMBRA MAS PROLIFICA.
20.ESCRIBA UN PROGRAMA QUE CUENTE LAS PALABRAS DE UN ARCHIVO DE TEXTO.
21.ESCRIBA UN PROGRAMA QUE CODIFIQUE Y DECODIFIQUE UN ARCHIVO DE TEXTO.
22.ESCRIBA UN PROGRAMA QUE COMPRIMA UN ARCHIVO DE TEXTO SUSTITUYENDO LA SILABAS "BLE"
POR "*" Y "CION" POR "+"; EJEMPLO:

LA ATENCION PRESUMIBLE PRESTADA A LA CANCION DE LA DISTINGUIBLE ASUNCION
QUEDARIA:
LA ATEN+ PRESUMI* PRESTADA A LA CAN+ DE LA DISTINGUI* ASUN+

23.ESCRIBA UN PROGRAMA QUE DESCOMPRIMA EL ARCHIVO DEL EJERCICIO ANTERIOR.
24.ESCRIBA UN PROGRAMA QUE CUENTE LOS DIPTONGOS "PUROS" DE UN ARCHIVO DE TEXTO.
25.ESCRIBA UN PROGRAMA QUE ME INDIQUE CUAL ES LA FRECUENCIA DE USO DE LAS LETRAS DEL
ALFABETO EN UN DOCUMENTO EN IDIOMA ESPAÑOL, (IGNORE LOS ACENTOS).
26.ESCRIBA UN PROGRAMA QUE CONVIERTA EL CONTENIDO DE UN ARCHIVO DE TEXTO CON
MAYUSCULAS A MINUSCULAS, DEJANDO SOLO MAYUSCULAS AL INICIO DE CADA PARRAFO O
DESPUES DE UN "PUNTO Y SEGUIDO".
27.ESCRIBA UN PROGRAMA QUE GENERE EL ÍNDICE ALFABÉTICO DE UN DOCUMENTO (CHECAR EN CLASE).
28.DISEÑE UNA ESTRUCTURA QUE SOPORTE 200 DATOS DE ALUMNOS EN MEMORIA Y PERMITA LAS
OPERACIONES DE: ALTAS, BAJAS, LISTAR, BUSCAR, BORRAR, RESPALDO; ESTA ÚLTIMA OPCIÓN
PERMITIRÁ ALMACENAR EL CONTENIDO DEL VECTOR EN UN ARCHIVO DE TEXTO.
29.REPITA EL EJERCICIO No. 28 PARA UN ARCHIVO BINARIO.
30.SUPONGA QUE EN UN ARCHIVO DE TEXTO TIENE LA SIGUIENTE INFORMACIÓN:

NOMBRE,SEXO,CALIFICACION1,CALIFICACION2
NOMBRE,SEXO,...
...

GENERE DOS ARCHIOVOS BINARIOS CON LA INFORMACIÓN DE HOMRES Y MUJERES RESPECTIVAMENTE
CALCULANDO EL PROMEDIO Y ALMACENANDOLO PARA CADA ALUMNO.
31.DIBUJE UN HISTOGRAMA SOBRE LA CALIFICACIÓN DE CADA PARCIAL Y LA FINAL, PARA EL
EJERCICIO 30.
32.ESCRIBA UN PROGRAMA QUE DADA UNA MATRIZ DE 3*3 EN DONDE SE JUGO "GATO", EXISTE UN
GANADOR (PARA LOS JUGADORES 0 ,1), DIGA CUAL ES Y SI LA LÍNEA ES EN DIAGONAL, EN
RENGLON O EN COLUMNA.

jueves, 13 de marzo de 2008

Ejemplo de archivo de e/s en Java

//Ejemplo de lectura escritura de archivo aleatorio
import java.io.*;
class persona{
String rfc;
String nombre;
int edad;
public persona(String r,String n, int e){
rfc=r; nombre=n; edad=e;
}
public void setRfc(String s){rfc=s;}
public void setNombre(String s){nombre=s;}
public void setEdad(int s){edad=s;}
public String getRfc(){return rfc;}
public String getNombre(){return nombre;}
public int getEdad(){return edad;}
}
class listaPersonas{
persona[] lp=new persona[10];
int np=0;
private RandomAccessFile fes;
private int tamReg=60;
public listaPersonas(){
lp[np++]=new persona("rfa","Ana",18);
lp[np++]=new persona("rfy","Yunuen",19);
lp[np++]=new persona("rfr","Ricio",20);
}
public void muestra(){
int i;
for(i=0;i<np;i++){
System.out.println(lp[i].getRfc()+","+lp[i].getNombre());
}
}
public void guardar()throws IOException{
int i,nregs;
File fp=new File("prueba.dat");
if(fp.exists() && !fp.isFile()) throw new IOException(fp.getName()+"Existe y No es archivo");
fes=new RandomAccessFile(fp,"rw");
//redondeamos por arriba por si el ultimo registro noes del tamaño exacto
nregs=(int)Math.ceil((double)fes.length()/(double)tamReg);
for(i=0;i<np;i++){
fes.seek(i*tamReg);
//en el tamaño del registro tome en cuenta que las cadenas que escribe writeUTF
//agrega dos byte que almacenan el tamaño de la cadena
//para garantizar el tamaño de la cadena use:
//lp[i].getRfc().substring(0,20); para una cadena de 20 p ej.
fes.writeUTF(lp[i].getRfc());
fes.writeUTF(lp[i].getNombre());
fes.writeLong(lp[i].getEdad());
}
fes.close();
}
public void leerArchivo()throws IOException{
int i,nregs;
File fp=new File("prueba.dat");
if(fp.exists() && !fp.isFile()) throw new IOException(fp.getName()+"Bo es archivo");
fes=new RandomAccessFile(fp,"rw");
nregs=(int)Math.ceil((double)fes.length()/(double)tamReg);
for(i=0;i<np;i++){
fes.seek(i*tamReg);
System.out.println(fes.readUTF());
System.out.println(fes.readUTF());
System.out.println(fes.readLong());
}
fes.close();
}
}
public class archivo{
public static void main(String args[]){
listaPersonas lp=new listaPersonas();
lp.muestra();
/*
try{
lp.guardar();
}catch(IOException e){
System.out.println("Error de escritura de archivo");
}*/
try{
lp.leerArchivo();
}catch(IOException e){
System.out.println("Error de escritura de archivo");
}

}
}

lunes, 3 de marzo de 2008

Lab de programación Ejercicios para entregar

PROGRAMACIÓN NIVEL I
--------------------

1. SUPONGA UNA HABITACIÓN CUADRADA, SI UN LITRO DE PINTURA CUBRE 2.5 MTS CUADRADOS,
DADO EL ALTO DEL CUARTO Y EL ANCHO DE LAS PAREDES, ESCRIBA UN PROGRAMA QUE CALCULE LA
CANTIDAD DE LITROS NECESARIOS PARA PINTAR LOS MUROS.
2. DADO EL PRECIO DE LOS ARTÍCULOS Y una CANTIDAD DE ARTÍCULOS COMPRADOS, todos del mismo
precio, escriba un PROGRAMA QUE CALCULE EL TOTAL DE LA COMPRA, EL IVA Y EL TOTAL A PAGAR.
3. SI LA FORMULA DE INTEREs SIMPLE es: DADA UNA TASA t, UN PERÍODO DE TIEMPO n Y UN MOMTO p,
EL INTERES GANADO POR ESE MONTO p A ESA TASA t EN EL PERÍODO DE TIEMPO n ES:
I=P*T*N
ESCRIBA UN ALGORITMO PARA CALCULO DEL INTERES.
4. DADA UN POBLACIÓN P Y UNA CANTIDAD M DE HABITANTES DE SEXO FEMENINO, ESCRIBA UN ALGORITMO
QUE CALCULE EL PORCENTAJE DE LA POBLACIÓN DE SEXO MASCULINO.
5. DADO EL SALARIO BASE Y LOS DIAS TRABAJADOS POR UN EMPLEADO, CALCULE SU SALARIO.
6. SI UN EXAMEN VALE 70 PTS., PARA UNA CALIFICACIÓN DADA POR EL USUARIO, CALCULE EL VALOR REAL.
7. ESCRIBA UN PROGRAMA QUE CONVIERTA DE GRADOS A RADIANES.
8. DADA LA DISTANCIA, LA VELOCIDAD PROMEDIO Y LA HORA DE SALIDA, CALCULE LA HORA DE ARRIBO
DE UN AVION.
9. SI UN PROYECTIL TIENE UNA PROBABILIDAD P DE DAR EN EL BLANCO, CUANTOS PROYECTILES DEBO
DISPARAR PARA TENER LA CERTEZA DEL 100% DE DERRIBAR UN BOMBARDERO, LEA P Y MUESTRE EL
NÉMERO DE PROYECTILES NECESARIOS.
10.SI UN VENDEDOR VENDE MAS DE 1000 (MIL PESOS) SE LE PAGARÁ SU SALARIO BASE (800 PESOS)
MAS UNA COMISIÓN DEL 5% SOBRE SUS VENTAS, SI NO VENDE MAS DE MIL PESOS, SE LE PAGA
SOLO SU SALARIO BASE. ESCRIBA UN PROGRAMA QUE DADO EL MONTO DE VENTAS, MUESTRE EL
SALARIO DEL VENDEDOR.
11.ESCRIBA UN PROGRAMA QUE DADA UNA HORA EN EL FORMATO DE 0 A 24 HRS, LA CONVIERTA AL
FORMATO DE 0 A 12 AM/PM.
12.SUPONGA QUE TIENE 10 COMPUTADORAS QUE TRABAJAN DE 7 AM A 7 PM, para un
NÚMERO DE ALUMNOS X, CALCULE CUANTAS HORAS DE MÁQUINA LE TOCAN A CADA ALUMNO
POR SEMANA(5 DIAS).
13.LEER DOS NÚMERO A,B, SI EL VALOR ABSOLUTO DE A ES MAYOR QUE EL VALOR ABSOLUTO DE B,
ESCRIBA A+B, EN CASO CONTRARIO, ESCRIBA A-B.
14. LEER UN VECTOR V DE 10 ELEMENTOS Y UN ESCALAR k, CALCULAR k*V.
15. LEER UN VECTOR DE 10 ELEMENTOS Y ESCRIBIR CUANTAS VECES APARECE EL NUMERO 0.
16. LEER UN VECOR DE 10 ELEMENTOS Y ESCRIBIR CUAL ES EL ELEMENTO MAS PEQUEÑO.
17. LEER UN VECTOR DE 10 ELEMENTOS Y UBICAR EL MAS PEQUEÑO EN LA PRIMERA POSICIÓN.
18.MOSTRAR TODOS LOS NÚMEROS PRIMOS ENTRE EL 1 Y EL 100.
19.ESCRIBA UN PROGRAMA QUE: DADO UN NÚMERO ENTERO DE 3 DÍGITOS, ESCRIBA EL NÚMERO
CON PALABRAS. EJEMPLO 234 ES DOCIENTOS TREINTA Y CUATRO.
20.ESCRIBA UN PROGRAMA QUE CONVIERTA UN NÚMERO ARABIGO(DE 0 A 1000) A ROMANO.
21.EL PRODUCTO ESCALAR DE DOS VECTORES SE DEFINE COMO SUMATORIA(A[i]*B[i]) PARA
i=1..n, SI EL PRODUCTO ESCALAR DE DOS VECTORES ES 0, SE DICE QUE SON ORTOGONALES.
ESCRIBA UN PROGRAMA QUE LEA DOS VECTORES E INDIQUE SI SON O NO ORTOGONALES.
22.SI e^x = SUMATORIA( (x^i)/i! )= 1+x+(x^2)/2!+(x^3)/3!..., PARA i=1..INFINITO.
ESCRIBA UN PROGRAMA QUE APROXIME EL VALOR DE (e^x) PARA UN VALOR N DADO.
23.EN UN VECTOR DE 20 ELEMENTOS ENTEROS QUE CONTIENE CADA ELEMENTO UN DIGITO ENTRE
0 Y 9, CUENTE CUANTAS VECES APARACE CADA DIGITO EN EL VECTOR.
24.HALLAR EL VALOR QUE MAS SE APROXIME A UN NÚMERO DADO, DENTRO DE UN VECTOR DE
N ELEMENTOS.
25.SI TIENE LOS VECTORES NOMBRE( DE TIPO CADENA) Y SALARIO (DE TIPO REAL)POR DIA.
AMBOS VECTORES TIENEN UNA LONGITUD DE 100.
NOMBRE SALARIO
------- -----
1 JUAN 23
2 ANA 25
3 PACO 23
4 PEDRO 34
5 ROSA 42

CALCULE EL ISPT DE CADA EMPLEADO DE ACUERDO A LA SIGUIENTE TABLA DE SALARIOS
POR QUINCENA.
LI LS PORCENTAJE
--- --- ----------
0 1000 2
1001 3000 5
3001 10000 10
10000 50000 20

DONDE LI, LS, PORCENTAJE, SON VECTORES DE 4 DE LONGITUD. ESCRIBA UN PROGRAMA QUE
LEA LOS VALORES DE LI, LS Y PORCENTAJE DESDE UN ARCHIVO DE TEXTO, LOS DATOS DE
NOMBRE Y SALARIO DESDE OTRO ARCHIVO DE TEXTO Y MUESTRE EN LA PANTALLA, UN REPORTE
CON EL NOMBRE, SALRIO, DESCUENTO Y SALARIO NETO DE CADA EMPLEADO.
26.SUPONGA QUE LE DAN DOS HORAS CON SUS RESPECTIVOS DIAS DEL AÑO 2002, CALCULE CUANTAS
HORAS HAY ENTRE LA PRIMERA Y LA SEGUNDA.
27.ESCRIBA UN PROCEDIMIENTO QUE CALCULE X^Y (X A LA Y) USANDO MULTIPLICACIONES, PARA UN
VALOR DE X y Y DADOS.
28.ESCRIBA UN PROGRAMA QUE MUESTRE LA SIGUIENTE SALIDA:
*
***
*****
*******
*********
*
*
29.ESCRIBA UN PRGRAMA QUE DADO los valores de A,B,C; ENCUENTRE LAS RAICES DEL SISTEMA:
AX^2+BX+C=0
30.ESCRIBA UN PROGRAMA QUE LEA: NOMBRE, FECHA DE NACIMIENTO Y CALCULE EL RFC DE UNA
PERSONA.
31.ESCRIBA UN PROGRAMA QUE CUENTE LAS LETRAS DE UNA PALABRA.
32.ESCRIBA UN PROGRAMA QUE CUENTE LAS VOCALES DE UNA PALABRA.
33.ESCRIBA UN PROGRAMA QUE CODIFIQUE Y DECODIFIQUE UNA PALABRA.
34.ESCRIBA UN PROGRAMA QUE IDENTIFIQUE PALINDOROMES, ejemplo:
anita lava la tina, oso, dabale arroz a la zorra el abad, ana
35.ESCRIBA UN PROGRAMA QUE REaLICE LA SUMA DE DOS POLINOMIOS DE GRADO N Y M RESPECTIVAMENTE.
36.ESCRIBA UN PROGRAMA QUE REALICE LO MISMO QUE EL EJERCICIO 29 PERO CON NÚMERO RACIONALES
Y ESCRIBA EL RESULTADO EN RACIONALES.
37.ESCRIBA UN PROGRAMA QUE CALCULE LAS COMBINACIONES DE UN CONJUNTO DE N ELEMENTOS, TOMANDO
R A LA VEZ.
38.ESCRIBA UN PROGRAMA QUE CALCULE LAS PERMUTACIONES DE UN CONJUNTO DE N ELEMENTOS, TOMANDO
R A LA VEZ.