miércoles, 12 de octubre de 2016

Algoritmos PseInt Vs Java

1.Algoritmo que sume dos números

Pseudocódigo:

Proceso suma
Escribir "Digite un numero"
Leer num1
Escribir "digite otro numero"
Leer num2
suma<-num1+num2
Escribir "El total de la suma es: ",suma
FinProceso


Java Netbeans:


import java.util.Scanner;

/**
 *
 * @author Libia
 */
public class Suma {

    public static void main(String[] args) {
    
        double suma, num1,num2;
        
        System.out.println("ingrese numero");
        Scanner captura= new Scanner(System.in);
        num1= captura.nextDouble();
        
         System.out.println("ingrese otro numero");
        Scanner captura1= new Scanner(System.in);
        num2= captura1.nextDouble();
        
        suma= num1+num2;
        
        System.out.println("El total de la suma es:"+suma);
    }
    
}



2. Algoritmo que calcula el área de un triángulo:

Pseudocódigo:

Proceso triangulo
escribir "digite la base"
leer base
Escribir "cual es la altura"
leer altura
area<-(base*altura)/2
escribir "el area del triangulo es: ", area
FinProceso



Java Netbeans:


import java.util.Scanner;

public class Triangulo {
   
    public static void main(String[] args) {
        
        double Area, base, altura;
        
        System.out.println("ingrese la altura");
        Scanner captura= new Scanner(System.in);
        altura= captura.nextDouble();
        
         System.out.println("ingrese la base");
        Scanner captura1= new Scanner(System.in);
        base= captura1.nextDouble();
        
        Area= (base*altura)/2;
        
        System.out.println("El area del triangulo es:"+Area);
    }
    
}



Actividad :

Realizar los algoritmos en PSeInt:

https://drive.google.com/file/d/0B_c0lGhuBi1AUWVFdnNITThGT3c/view

jueves, 31 de marzo de 2016

EJEMPLOS CON VECTORES

EJEMPLO 4   (PAG 342-347)

Desarrollar un algoritmo que permita crear dos vectores A y B de dimensiones N y P respectivamente, se desea construir un tercer vector C, el cual sea el resultado de intercalar los valores de A y B sin que queden valores repetidos en C. ( vector C ordenado ascendente).

import java.io.*;
public class array
{
public static void main (String args[]) throws IOException
{
try
{
InputStream in =System.in;
InputStreamReader manejador =new InputStreamReader(in);
BufferedReader entrada = new BufferedReader(manejador);

int A[],n,B[],C[],p,i,j,k,aux;
System.out.print("Ingrese el tamaño del vector A:");
n=Integer.parseInt(entrada.readLine());
System.out.print("Ingrese el tamaño del vector B:");
p=Integer.parseInt(entrada.readLine());
A = new int [n];B = new int[p]; C = new int[n+p];
for (i=0; i<n; i++){
System.out.print("Ingrese un valor en la posición"+(i+1)+":");
A[i]= Integer.parseInt(entrada.readLine());
}
for (i=0; i<p; i++){
System.out.print("Ingrese un valor en la posición"+(i+1)+":");
B[i]= Integer.parseInt(entrada.readLine());
}
for (i=0; i<n-1; i++){
for (j=i; j<n; j++){
if (A[i]>A[j]){
aux = A[i];
A[i] = A[j];
A[j] = aux;
}
  }
     }

for (i=0; i<p-1; i++){
for (j=i; j<p; j++){
if (B[i] > B[j]){
aux = B[i];
B[i] = B[j];
B[j] = aux;
}
    }
        }
i = 0; j = 0; k = 0;
while (i<n&&j<p){
k = k+1;
if(A[i] == B[j]){
C[k] = A[i];
i ++;
j++;
}
else{
if (A[i]<B[j]){
C[k] = A[i];
i++;
}
else{
C[k] = B[j];
i++;
}
}
}
if (i<n){
while (i<n){
k = k+1;
C[k] = A[i];
i++;
}
}
else{
while(j<p){
C[k] = B[j];
k++;
j++;

}
}
for(i=0; i<k; i++){
System.out.print(C[i]+" ");
}
}
catch(Exception e){
 System.out.print("Error en el programa principal");
}

}
}

Libro: Desarrollo del pensamiento analítico y sistémico. Politécnico JIC. Autor: Luis Norberto Zapata Puerta.

video metodo ordenamiento quicksort


https://www.youtube.com/watch?v=mRhy4wTlg0s



EJERCICIOS ARREGLOS UNIDIMENSIONALES: ALGORITMOS Y CODIGO FUENTE JAVA

1. Programa de los nombres de estudiantes.

Algoritmo


INICIO

//datos de entrada:
leer
     cantidad de estudiantes; n como entero (integer)
     nombre de estudiantes; nombres[ ] como caracter (texto) (string)

//proceso:
for i=0 hasta i<n incrementando en 1 hacer
Leer nombres[ ]
fin for

//salida:
for i=0 hasta i<n incrementando en 1 hacer
imprimir nombres[ ]
fin for

FIN

CODIGO FUENTE EN JAVA:

package nombresestudiantes;
import javax.swing.JOptionPane;
public class NombresEstudiantes {
     public static void main(String[] args) {
        //datos de entrada:
        int n,i;  // n,i : entero  //declaración de variables de tipo entero (integer)

      n =Integer.parseInt(JOptionPane.showInputDialog( "Ingrese la cantidad de estudiantes: "));
      String nombres[] = new String [n];  //Crea el arreglo tipo string
       //proceso:
      //Proceso: se insertan los datos en el arreglo desde i=0 hasta n-1 incrementando i en 1 y parará cuando llegue al límite de la cantidad de estudiantes (o sea el tamaño o dimension del arreglo) en este caso n.
    for (i=0; i < nombres.length; i++){
     nombres[i] = JOptionPane.showInputDialog( "Ingrese el nombre del estudiante " + (i+1) + ": ");
     }
   System.out.println("nombres de estudiantes:");

// salida: Despliega los nombres de estudiantes:
    for (i=0; i < nombres.length; i++){
       System.out.print(nombres[i]+" ");
               }
    System.out.println();
System.exit(0);
    }
}

**********

2. Escriba un programa que solicite los nombres de cada estudiante de cualquier grado y los muestre al final enumeradamente. Use un arreglo para almacenar el nombre de cada uno.

Análisis
Datos de entrada: n, nombres[]           //n es la cantidad de estudiantes, el cual es el tamaño del arreglo.
                                                         //nombres[ ] el arreglo será de tipo de dato string de tamaño n.
Datos de salida: la lista de esos nombres enumerados  // tipo de dato de salida es string que contendrá los nombres de los estudiantes en la lista enumerada.

Pseudocódigo:

INICIO

// entrada:
n,i : entero  //declaración de variables de tipo entero (integer)
lista= " ", nombres[] : texto  //tipo de dato string(texto)
leer n

//Proceso:  se insertan los datos en el arreglo desde i=0 hasta n-1 incrementando i en 1 y parará cuando llegue al límite de la cantidad de estudiantes (o sea el tamaño o dimensionn del arreglo) en este caso n.
desde i =0 mientras i<n  incrementado i en 1
        haga
        leer nombres[i]
fin desde

//salida:
desde i =0 mientras i<n  incrementado i en 1
        haga
        lista=lista+(i+1)+nombres[i]+"\n"
fin desde
imprimir  // esa salida

FIN

ahora CÓDIGO FUENTE en java queda así:

 */
//inicio
package estudiante;
import javax.swing.JOptionPane;

public class Estudiante {

    public static void main(String[] args) {
      //datos de entrada:
        int n,i;  // n,i : entero  //declaración de variables de tipo entero (integer)
      String lista="La lista de los nombres de estudiantes es: \n";  //lista= " ", nombres[] : texto  //tipo de dato //string(texto)
      n =Integer.parseInt(JOptionPane.showInputDialog( "Ingrese la cantidad de estudiantes: "));
      String nombres[] = new String [n];  //Crea el arreglo tipo string
 
  //proceso:
      // se insertan los datos en el arreglo desde i=0 hasta n-1 incrementando i en 1 y parará cuando
 //llegue al límite de la cantidad de estudiantes (o sea el tamaño o dimension del arreglo) en este caso n.

 for (i=0; i < nombres.length; i++){
     nombres[i] = JOptionPane.showInputDialog( "Ingrese el nombre del estudiante " + (i+1) + ": ");

    }

// salida: Despliega la lista de estudiantes: 
    for (i=0; i < nombres.length; i++){
        lista= lista+ (i+1) + ". " + nombres[i] + "\n";
                                  }
    JOptionPane.showMessageDialog(null, lista);

    }// fin método main

}// Fin clase

*********************************************************************************

3.    Programa que permita leer el nombre de 3 productos de la tienda del colegio y su precio. La aplicación debe decir cuántos de ellos cuestan más de $500 y mostrar su nombre, precio y posición en pantalla. Utilice arreglos para almacenar los precios y nombres de productos.

ANALISIS:

entradas: productos[ ], precio [ ]
Proceso:
               el ciclo for para ingresar datos, y
               el ciclo for para calcular los mayores de 500
salidas: producto, precio, posición.

pseudocódigo:

INICIO
crear producto[ ], salida: como texto
crear precio[ ], posicion: como entero
desde i=0 hasta i<3 incrementando i en 1
    hacer
        leer producto[i]
        leer precio[i]
fin desde
//salida:
desde i =0 hasta i<n  incrementando i en 1
        haga
             si precio[j ]>500 entonces
                  muestre
                          salida=producto[j] : precio[j]
             fin si

        imprimir  salida
fin desde
FIN

CODIGO FUENTE JAVA:

package tienda;
 import javax.swing.JOptionPane;

public class Tienda {
    public static void main(String[] args) {
String producto[] = new String[3], salida; //CREAR  VECTOR 1
int precio[] = new int[3], posicion; // CREAR VECTOR 2

 //IngresarProductos: 
for (int i=0 ; i<3; i++){
    producto[i] = JOptionPane.showInputDialog("Ingrese el articulo "+i); //leer arreglo producto[i]
    precio[i]=Integer.parseInt(JOptionPane.showInputDialog ("Ingrese precio"+i)); //leer arreglo precio[i]
                               }
//CalcularMayores:
salida="Los siguientes artículos cuestan mas de $500 \n";
for (int j=0 ; j<3 ; j++){
    if (precio[j] >500){
    salida += producto[j] + " : "+precio[j]+ "\n";  //va a imprimir solo los > de $500
                               }
// MostrarDatos:
JOptionPane.showMessageDialog(null,salida);

                                 }
       }
}



ACTIVIDAD 
en clase
(parejas)


Realiza en el cuaderno el algoritmo. Luego programa en Java.

1. Escriba un programa que solicite asignaturas que un estudiante ve y los muestre enumerados al final. Use un arreglo para almacenar la asignatura de cada uno. 

2.  Programa que permita leer el nombre de 7 estudiantes  y su edad. La aplicación debe decir cuántos de ellos tiene menos de 18 años y mostrar su nombre, edad y posición en pantalla. Utilice arreglos para almacenar los nombres de los estudiantes y su respectiva edad.

3. Programa que lea una lista de números enteros, calcule el promedio de los datos ingresados, el mayor y el menor de ellos.

4. En una competencia de carros (rápidos y furiosos) se desea implementar una aplicación para almacenar el tiempo por cada competidor y además determinar con base en todos los tiempos de los competidores cual es el ganador. El usuario debe especificar cuantos tiempos (competidores) desea ingresar. Desarrolle un programa que recorra un arreglo de enteros, evalúe si sus datos son múltiplos de 3 y los muestre en pantalla.

5. Programa que permita leer el nombre del estudiante, asignatura y su nota. La aplicación debe decir cuántos de ellos tiene igual o mayor de 3.0 y mostrar nombre de estudiante, asignatura, nota (tipo de dato real _double) y posición en pantalla. Utilice arreglos para almacenar los nombres de los estudiantes y su respectiva asignatura y nota.




ARREGLOS _ VIDEOS





VIDEO 1: REPRESENTACIÓN GRAFICA DE ARREGLOS (ARRAYS) _ Explicación teórica 1.
DOWNLOAD


Nota: los índices de los arreglos en cualquier lenguaje de programación empieza desde 0 y termina n-1 (longitud de dimensión desde 0 hasta variable.length-1), pero en  PseInt empiezan desde 1 y termina en n.


VIDEO2: EXPLICACIÓN LARGA Y CON ALGORITMO _ Representación gráfica.
https://drive.google.com/file/d/0B_c0lGhuBi1AU1pUOHBQWVUzRFk/edit?usp=sharing



VIDEO 3:   ARREGLOS1_PSEINT_DownLoad




VIDEO 3.1  CREAR VECTOR, LECTURA Y ESCRITURA DE VECTOR Download



VIDEO 4: PSEINT_ ORDENAMIENTO SIMPLE DE VECTORES. DOWNLOAD




VIDEO 5: ARREGLOS EN JAVA_UNIDIMENSIONALES. DOWNLOAD



Sugerencia: Para q mas adelante no se enreden ni se confundan no cambien las  i, j, ya que como les expliqué indica índices, aux es la variable auxiliar para java.  En Pseint aux si la pueden cambiar por cualquier letra, pero recuerde que es una variable auxiliar, se lo hice asi para que no se pierdan.


CLASE DE UN ARREGLO DISEÑADO EN STARUML
Arreglo unidimensional  de 15 posiciones, arreglo de 15 variables numéricas. Sumatoria de  los 15 números enteros.


MODELAR ARREGLO EN UNA CLASE USANDO UML EN NETBEANS

VIDEO 6: Instalar el plugin (complemento) de UML en Netbeans. El link de éste plugin is:  http://deadlock.netbeans.org/hudson/job/uml/lastSuccessfulBuild/artifact/build/updates/updates.xml




VIDEO 6.1. Arreglo Vector en UML Netbeans Pseint (sumar) Download






Pseint EJERCICIOS ARREGLOS UNIDIMENSIONALES: ALGORITMOS Y CODIGO FUENTE JAVA

1.

Proceso arreglolistaEstudiantes
Dimension estudiantes[100];
Escribir "cuál es la cantidad de estudiantes";
Leer n;
Escribir "";
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "Ingrese el nombre de estudiante";
Leer estudiantes[i];
FinPara
Escribir "";
Para i<-1 Hasta n Con Paso 1 Hacer
Escribir "",i,".",estudiantes[i];
FinPara
FinProceso