Ejercicios con vector, matriz y ordenamiento con lenguaje Java

Todo estudiante al iniciarse en la programación y sobre todo con el lenguaje java, nos encontramos con los temas de vectores, matrices y otros contenidos que permiten comprender el funcionamiento de los programas.

A continuación presento un ejercicio donde se hace uso de los arreglos mencionados, con la captura de datos en los arreglos, el proceso con el cálculo tomando como referencia los índices de ubicación de los datos, y al final se presenta los datos ordenados en forma descendente.

Enunciado:

“Una empresa de bebidas gaseosas ofrece 3 tipos (A,B,C) de productos, el programa debe permitir seleccionar al cliente el tipo de producto, además debe aplicar descuentos a por la compra a partir de 6 productos, al tipo A 12%, al tipo B 8% y al tipo C 4.5%. Por cada iteración se debe mostrar del cliente, el tipo de producto comprado, el nro. de productos, el monto del descuento y el monto de pago. Al finalizar el programa debe mostrar el monto general recibida por las ventas”.

public class Gaseosas {
	public static void main(String[] args) {
		Scanner Leer = new Scanner(System.in);
		System.out.println("Ingrese el nro. de ventas: ");
		int nro = Leer.nextInt();
		double acum=0;
		char tipo[] = new char[nro];
		double ventas[][] = new double[nro][4];
		//Estructura de repeticion
		for (int i = 0; i < nro; i++) {
			//Entrada de datos
			System.out.println("Seleccione el tipo de producto: A / B / C: ");
			tipo[i] = Leer.next().charAt(0);
			System.out.println("Ingrese la cantidad de productos: ");
			ventas[i][0] = Leer.nextDouble();
			System.out.println("Ingrese el precio del producto: ");
			ventas[i][1] = Leer.nextDouble();
			//Proceso
			//Evaluar la cantidad de productos comprados
			if(ventas[i][0] >= 6) {
				if(tipo[i]=='A') {
					ventas[i][2]=(ventas[i][0]*ventas[i][1])*0.12;
				}else if(tipo[i]=='B') {
					ventas[i][2]=(ventas[i][0]*ventas[i][1])*0.08;
				}else {
					ventas[i][2]=(ventas[i][0]*ventas[i][1])*0.045;
				}
			}else {
				ventas[i][2] = 0;
			}
			//Calcular el monto de pago
			ventas[i][3]=(ventas[i][0]*ventas[i][1])-ventas[i][2];
			//Reporte o salida
			System.out.println("***********************************");
			System.out.println("Tipo de producto: "+tipo[i]);
			System.out.println("Cantidad comprada: "+ventas[i][0]);
			System.out.println("Monto del descuento: "+ventas[i][2]);
			System.out.println("Monto de pago: "+ventas[i][3]);
			//Acumular todas las ventas
			acum += ventas[i][3];
		}
		//Ordenamiento de datos de los arreglos
		for (int i = 0; i < nro-1; i++) {
			for (int j = 0; j < ventas.length-1; j++) {
				//Ordenar con base a la columna 3 del arreglo mpago
				if(ventas[j][3] < ventas[j+1][3]) {
					//Ordena la columna mpago
					double aux0 = ventas[j+1][3];
					ventas[j+1][3] = ventas[j][3];
					ventas[j][3] = aux0;
					//Ordena el vector Tipo
					char aux1 = tipo[j+1];
					tipo[j+1] = tipo[j];
					tipo[j] = aux1;
					//Ordena la columna cantidad
					double aux2 = ventas[j+1][0];
					ventas[j+1][0] = ventas[j][0];
					ventas[j][0] = aux2;
					//Ordena la columna precio
					double aux3 = ventas[j+1][1];
					ventas[j+1][1] = ventas[j][1];
					ventas[j][1] = aux3;
					//Ordena la columna descuento
					double aux4 = ventas[j+1][2];
					ventas[j+1][2] = ventas[j][2];
					ventas[j][2] = aux4;
				}
			}
		}
		//Mostrar datos de los arreglos
		System.out.println("********************************************");
		System.out.println("Tipo \t Cant \t Prec \t Desc \t M.Pago");
		for (int i = 0; i < nro; i++) {
			System.out.println(tipo[i]+" \t "+ventas[i][0]+" \t "+ventas[i][1]+
					" \t "+ventas[i][2]+" \t "+ventas[i][3]);
		}
		//Mostrar monto acumulado por todas la ventas
		System.out.println("********************************************");
		System.out.println("Monto acumulado por las ventas: "+acum);
	}
}

En las líneas 12 hasta 17 se realizan la captura de los datos ingresados por teclado, en las líneas 20 hasta 30, se realizan los procesos de decisión donde se evalúa la cantidad de producto comprados y luego se evalúan la categoría a la que pertenecen, luego en la línea 32 se realiza el cálculo del monto de pago. En las líneas 43 hasta 69 se realiza el proceso de ordenamiento considerando como referencia la columna 3 del arreglo bidimensional ventas para después ser mostrados los resultados en consola.

Primer video donde se captura los datos, se procesan y se muestran los datos sin ordenamiento.

Segúndo video donde se muestra que a partir de los datos capturados y calculados, se ordenan en forma descendente y se muestran en consola.

Virtualización con KVM en Fedora 32

Una gran alternativa a muchos programas de virtualización es KVM, que es un módulo del Kernel de Linux y muy fácil de usar para poder ejecutar muchos sistemas operativos virtualizados.

Kvm: Tecnología open source que convierte el kernel de Linux en un hipervisor que se puede usar para la virtualización.
QEMU: Es un emulador de máquinas y virtualizador genérico open source.
Bridge: Este paquete que contiene las utilidades de red tipo puente, permite conectar dos o más computadores a Internet cuando ésta llega sólo a uno de ellos.
Libvirt: Es una API de código abierto, herramienta de para administrar la virtualización de la plataforma.

En los siguientes 2 videos se presenta el proceso de como instalar y configurar KVM con qemu, libvirt haciendo uso el adaptador de tipo puente (brigde), ademas también se importa un maquina virtual.

Instalación y configuración de KVM, qemu, libvirt con adaptador de tipo puente.
Importar máquina virtual para ejecutar en KVM.

Arreglo unidimensional y bidimensional en Java

El material presenta un ejercicio que permite resolver un problema haciendo uso de arreglos, una dimensional y otra bidimensional. Se ingresan los datos por teclado, se  procesan la información y se guardan en los arreglos, luego se muestran los datos haciendo uso de la estructura repetitiva for recorriendo cada elemento de los arreglos.

Charla sobre Fedora 31 y 16 años de Evolución

En día 23 de Octubre en el Instituto de Educación Superior Tecnológico Público Manuel Seoane Corrales ubicado en el distrito San Juan de Lurigancho de la Ciudad de Lima en Perú, se desarrolló la semana técnica donde se programaron un conjunto de actividades como charlas, talleres y exposición de proyectos desarrollados en la Institución.

Dentro de la programación estaba preparada mi charla titulada “Fedora 31 y 16 años de evolución”, donde se hizó mención y detalló el siguiente contenido: la licencia de software, las versiones desde su inicio en el año 2003, el patrocinio de RedHat, Fedora Workstation, Fedora Server, ediciones emergentes como CoreOS, SilverBlue, Fedora IoT, Fedora Spins, Fedora Labs, alternativas de descarga, fedora para procesadores ARM, la comunidad Fedora y las novedades que se aprecia en la versión Fedora 31 Beta.

Durante el proceso de la charla tuve la oportunidad de interactuar con los participantes e ir regalando algunos adhesivos que me quedaron de los eventos anteriores, hubo ingreso libre a las actividades, entre docentes y estudiantes hubo una asistencia aproximada de 35 personas. Al final de la charla se pudo responder algunas preguntas y posteriormente un breve compartir con los colegas en un reencuentro después de casi 2 años.

Conferencia Web “El Ecosistema Java” – UNE

El día Lunes 28 de Mayo en la Universidad Nacional de Educación, con el objetivo de acercar a los estudiantes al trabajo productivo en la programación y el desarrollo de aplicaciones informáticas, la Facultad de Tecnología através del Departamento de Electrónica y Telemática organizó una conferencia web titulada “El ecosistema Java”.

La conferencia estuvo a cargo del especialista Ing. Jose Luis Bugarin Peche quien con toda su experiencia compartió contenidos como la evolución histórica del lenguaje, el presente y el futuro de Java; la generación de nuevos lenguajes, los entornos de desarrollo, servidores de aplicaciones, Java en Inteligencia Artificial y Big Data, Open JKD, Internet de las cosas y otros.

El evento fué de ingreso libre donde asistieron estudiantes de las carrera profesionales Electrónica Informática, Telecomunicaciones e Informática y otros, asi como también participaron Docentes de la Facultad comprometidos con las asignaturas asociadas a la programación.

En la parte final de la conferencia el Ing. José respondió una serie de interrogantes que se generaron a partir de los temas tratados, además brindó sugerencias a los estudiantes interesados a desarrollarse en el mundo de la programación.

A sugerencia de los estudiantes, se está preparando un plan de actividades que involucren conferencistas de renombre con presencia nacional e internacional que permitan aportar al conocimiento en educación pública.

Compartimos el enlace de la presentación proporcionado por el ponente.

goo.gl/6uNTcj

 

 

Tilix en Fedora 28

Si eres un usuario que te gusta el terminal, Tilix es ideal pasa sacarle el máximo provecho a su pc. Los más atractivo de esta aplicación es que puede dividir tu ventana en el nro. que deseas e ir ingresando órdenes también haciendo el seguimiento respectivo.

Presentamos algunas imágenes de la instalación y puesta a prueba de esta gran aplicación de seguró quedarás prendado para administrar tu computador.

10

1. Buscar la aplicación en los repositorios de Fedora.

0

2. Instalación, esta aplicación se encuentra en los repositorios de Fedora.

1

3. Ingresar a aplicación Tilix.

3

4. Es posible agregar las divisiones que se desean para ingresar y controlar de manera más efectiva las órdenes ingresadas.

6

5. En las opciones de configuración, ingresar a apariencia y se desea cambiar al tema light o dark como se observa en la imagen.

7

6. En la opción Default y ficha Colors configurar los colores que se desea como fondo y los colores de la fuente. Además deslizar el controlador de apariencia de acuerdo a su preferencia.

8

7. Finalmente ingresar las órdenes que se desean de acuerdo a tus necesidades.

9

Fedora en Semana Técnica del Instituto Argentina en Lima Perú

Después de un largo tiempo regresamos al escenario representando a Fedora;  el Instituto de Educación Superior Tecnológico Argentina ubicado en el centro de Lima cursó a una invitación a la semana técnica de la Carrera Profesional Computación e Informática, así que propuse una charla sobre Fedora 27 y las novedades que incluye.
En un tiempo de 45 minutos expuse sobre el Sistema Operativo, la comunidad, Software Libre, Open Source, ediciones de Fedora (WorkStation, Server y Atomic), Fedora Spins, Fedora Labs, Fedora ARM y Otros.

La parte central de la charla fue hablar de las novedades que incluye Fedora 27 como Firefox Quatum, LibreOffice 5.4, Gnome 3.26, PipeWire, Fedora Media Writer, el Kernel 4.13.15, Wayland y otros…
Al finalizar la charla como es de siempre aún me quedaban algunos productos del merchandising que se manejaba años anteriores, así sorteamos un par de polos, y la donación adhesivos a los participantes.

Felicitar a los organizadores del evento en el Instituto Argentina, esperamos en adelante plasmas la organización de los talleres que nos permitan aportar desde nuestra parte a la comunidad educativa y sobre todo en educación superior tecnológica.

 

Cliente Heroku en Fedora 26, con git subir un proyecto java a la nube

¿Qué es Heroku?

Heroku es una plataforma en la nube como servicio. Incialmente fue hecho solo para soportar el lenguaje de programación Ruby, pero posteriormente se ha extendido el soporte a Java, Node.js, Scala, Clojure y Python y PHP.

10

En la pagina oficial no encontramos un cliente basado en rpm para la familia fedora, pero si encontramos un modo de instalación mediante npm (Node Package Manager) que es un gestor de paquetes, así que mediante npm instalaremos un cliente heroku, luego usando git subiremos una app a un repositorio free de heroku en la nube.

1. Instalar npm

#dnf install npm

2. Instalar cliente heroku con npm

#npm install -g heroku-cli

3. Actualizar version de nodejs, ya que el cliente heroku post instalación solicitará nodejs version 8.x en adelante, se sugiere desinstalar la versión anterior que viene con npm.

#curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
#dnf install nodejs

4. Después de haber instalado el cliente, ver las versión y acceder a heroku

1

#heroku -v
#heroku login

5. Ahora usar Git, en el directorio del proyecto iniciar git.

#git init

2
6. Subir a un espacio temporal antes de subir a la nube

#git add .
#git status 
#git

7. Crear el primer punto de referencia en git

4

#git commit -m "Proyecto inicial"

8. Crear repositorio en la nube de heroku

5

#heroku apps:create apps-micro-prueba

Ingresar a su cuenta free de heroku y revisar el repositorio creado para la aplicación.

6

9. Enviar el proyecto al repositorio creado con la siguiente orden, luego probar el funcionamiento de la aplicación.

#git push heroku master

7

10

Visita de docentes del IESTP Seoane al CETAM PUCP

En el IESTP Manuel Seoane Corrales en San Juan de Lurigancho se va realizando un curso taller de capacitación sobre investigación y elaboración de proyectos de innovación tecnológica dirigido a todos los docentes de las diversas carreras profesionales.

6
El curso taller está dirigido por FRANCISCO FABIAN CUELLAR CORDOVA Director de Centro de Tecnologías Avanzadas de Manufactura (CETAM), y Profesor Asociado de la Escuela de Ingeniería de la Pontificia Universidad Católica del Perú (PUCP).
Como parte de la programación del taller se realizó una visita guiada al Centro de Tecnologías Avanzadas de Manufactura – CETAM, para lo cual se hace la descripción en las siguientes líneas las actividades más relevantes.


1. Descripción de las características de la sala de manufactura y su vinculación con proyectos para medianas y grandes empresas en áreas de la automatización y la ingeniería.


Podemos resaltar las áreas más importantes como el sistema de transporte conformado por una faja transportadora de 18 metros controlados por plcs; la estación 2 de celda de manufactura conformado por una máquina CNC (Computer Numerical Control) que es alimentado por un robot sobre un transportador lineal.
2. El licenciado Harold La Chira Marquez explico los procesos básicos del funcionamiento de la máquina CNC, la importancia del equipamiento en la industria peruana, sobre el mantenimiento y la reparación, un detalle que mencionar es la carencia de profesionales para realizar servicios de mantenimiento y reparación.

3. El licenciado Harold La Chira Marquez describió el funcionamiento de la Maquina de Medición por Coordenadas – CMM, como obtener replicas de productos (envases) a traves de las diversas coordenas del recorrido que realiza la máquina sobre el producto, también resaltó la importancia del equipamiento en el control de calidad.

4. El Ing. Francisco Cuellar Cordova describió el funcionamiento del robot Baxter que consiste en un par de brazos mecánicos que pueden realizar diversas tareas, compuestos por varios sensores que permite veficar los objetos a manipular, resaltó el reconocimiento que realiza a los objetos haciendo uso la vision por computadora a través de camaras que llevan en los brazos, en seguida el Ing. Michel Sigüenza Astoquillca mostró un robot elaborado en el año 2014 que permitía recoger diversos objetos (basura) en la playa que podía ser contralado hasta una distancia de 650 metros, el robot participó en concursos nacionales que tuvieron reconocimientos.

5. Los Ingenieros Francisco Cuellar y Michel Siguenza Astoquillca describieron los robots humanoides que construyeron orientados a vigilancia, seguridad y fines sociales a partir del financiamiento para estas de las empresas privadas que apostan por la innovación.

6. La Ing. Mónica Abarca Abarca realizó una charla sobre los trabajos que están desarrollando como investigación a través de financientos de la empresa privada, describió la funciones que realizará el dron en construcción cuyo propósito principal del dron es medir concentraciones de gases contaminantes en áreas de producción minera, que volará a más de 5000 msnm por un tiempo de 25 minutos aprox.; prosiguió con la descripción de un avión y un multicoptero en proceso de construcción que permitirá realizar otras actividades de recolección de información con fines de conservación del medio ambiente.

7. Con la guía del Ing. Francisco Cuellar visitamos otros ambientes se mostraron diversos proyectos como un robot submarino, para capturar información de las profundidades del mar, un robot de exploración minera hecho para acceder a tuberias donde el ingreso del hombre es de muy alto riesgo, también mostraron una silla adaptada con mecanismos robóticos para apoyo a personas con discapacidad finalmente visitamos el centro de impresión 3D equipados con una variedad de equipos de última generación donde explicaron brevemente los trabajos que realizan en el laboratorio, el funcionamiento de los equipos y un gran número de muestras hechas en el laboratorio.

Para más información dejamos los siguientes enlaces:
Cetam Pucp: http://cetam.pucp.edu.pe/
Empresa qaira de la Pucp: http://www.qairadrones.com