Documente Academic
Documente Profesional
Documente Cultură
SEMESTRE: 3. SEMESTRE
1
Contenido
DIAGRAMA DE FLUJO.............................................................................................................................3
DIAGRAMA DE FLUJO
Declarar: INICI Introduce Quieres hacer FI nmeros para la suma realizar nueva suma? suma= n1+n2+n3+n4+n5; int n1,n2,n3,n4,n5,total; N Leer Mostrar total de suma nmeros O String Respuesta; int opcion=1; int op=1;
SEUDOCDIGO.
Inicio.
Docente: Lic. Miguel Fuentes Cortes Ramrez Vivar Alumno: Juan de Dios
Continuar: carcter. Nmeros: enteros. Suma: enteros. Realizar Pedir nmeros para la nueva suma. Leer nmeros. suma= n1+n2+n3+n4+n5; Mientras ((op==1));
PRUEBA DE ESCRITORIO Instruccin Leer numero Leer numero Leer numero Leer numero Leer numero Entrada 5 4 3 2 1 Suma Suma=5 Suma=5+4 Suma=9+3 Suma=12+2 Suma=14+1 Respuesta Si Si Si Si no Mostrar resultado Pantalla
Fig. 1.3 Visualizacin del programa mostrando resultado y preguntando si desea realizar una
nueva suma.
import javax.swing.JOptionPane; public class sumanumeros { /** * @param args */ public static void main(String[] args) { int n1,n2,n3,n4,n5,suma; String Respuesta; int opcion=1; int op=1; JOptionPane.showMessageDialog(null, "SISTEMA QUE SUMA NUMEROS ENTEROS"); op=1; do{ System.out.println("INTRODUCE EL NUMERO:"); n1=in.datoInt(); System.out.println("INTRODUCE EL NUMERO::"); n2=in.datoInt(); System.out.println("INTRODUCE EL NUMERO::"); n3=in.datoInt(); System.out.println("INTRODUCE EL NUMERO::"); n4=in.datoInt(); System.out.println("INTRODUCE EL NUMERO::"); n5=in.datoInt(); suma= n1+n2+n3+n4+n5; System.out.println("Total: $ " + suma); System.out.println("Presiona == 1 == PARA op= in.datoInt(); }while((op==1)); }
Este programa resuelve dos ecuaciones lineales bajo una condicin, si el valor de x es >= 0 realiza Y=X2+6 en caso contrario realizara Y=3x+6
DIAGRAMA DE FLUJO
LINEA DE CODIGO
import java.util.Scanner;; public class Principal3 { public static void main(String[]args) { Clase3 yo = new Clase3(); Scanner lector = new Scanner(System.in);
int x; System.out.println("Introduce el valor de la variable X"); x= lector.nextInt(); if (x>=0) { yo.Xmayor(x); System.out.println("El valor de: Y es igual a:"+yo.getresultado()); } else { yo.Xmenor(x); System.out.println("El valor de: Y es igual a:"+yo.getresultado1()); }
} }
public class Clase3 { int y; public Clase3() { y=0; } public void Xmayor(int x) { y=(x*x)+6; } public int getresultado() { return y; } public void Xmenor(int x) { y= (3*x)+6; } public int getresultado1() { return y; } }
LINEAS DE CODIGO
import java.util.*; public class factorialint { static int factorialint(int n){ int ac=1; if (n==0 || n==1) return 1; else {
n 5
i 1 2 3 4 5 6
I++ 2 3 4 5 6 NO
imprimir 120
for (int i=1; i<=n; i++) ac=ac*i; return ac;
PROGRAMA DE FIBONACCI PRUEBA DE ESCRITORIO PARA SACAR FIBONACCI DE 5 [ [ [ [ [ [ [ [ 13]Fibonacci_rec 12]Fibonacci_rec 9 ]Fibonacci_rec 5 ]Fibonacci_rec 4 ]Fibonacci_rec 3 ]Fibonacci_rec 2 ]Fibonacci_rec 1 ]Fibonacci_rec ( ( ( ( ( ( ( ( 1 2 1 1 2 3 4 5 ) ) ) ) ) ) ) ) + + + + + + + [15]Fibonacci_rec [14]Fibonacci_rec [10]Fibonacci_rec [ 6]Fibonacci_rec [7 ]Fibonacci_rec [ 8]Fibonacci_rec [11]Fibonacci_rec ( ( ( ( ( ( ( 0 1 0 0 1 2 3 ) ) ) ) ) ) )
PROGRAMA QUE SOLICITA CALIFICACIONES Y DA PROMEDIO E IMPRIME OBSERVACIONES SI ES APROBATORIA O NO ACREDITADA DIAGRAMA DE FLUJO
no promedio >=70 siNombre Mensaje + "NO ACREDITADA"; Mensaje "APROBATORIA"; FI Ingresar==TU PROMEDIO promedio=(cal1+cal2+cal3) Nombre;nombre; ES +promedio+ Ingresar cal 1: cal1; N "TU CALIFICACION ES: " Igresar + Mensaje cal2; cal 2; Ingresar cal 3; cal3; promedio ;
Mensaje= ;
import java.io.*; public class Cal3 { public static void main( String [] Args) { //declaracion de variables String Nombre; int cal1, cal2, cal3; int promedio; String Mensaje=""; System.out.println("SISTEMA DE CALIFICACIONES:" + "\n======================================================================"+"\n"); System.out.print("INTRODUCE TU NOMBRE: "); Nombre=Leer.datoString(); System.out.print("INTRODUCE CALIFICACION 1: "); cal1=Leer.datoInt(); System.out.print("INTRODUCE CALIFICACION 2: "); cal2=Leer.datoInt(); System.out.print("INTRODUCE CALIFICACION 3: "); cal3=Leer.datoInt(); promedio=(cal1+cal2+cal3)/3; if(1>= 70&& 2>=70 && 3 >=70) { Mensaje = "APROBATORIA"; } else if (1<=69&& 2<=69 && 3 <=69) { Mensaje = "(NA) NO ACREDITADA"; } System.out.println("\n"+ Nombre + ": TU PROMEDIO ES : "+ promedio + "\n"+"NOTA:CON UNA CALIFICACION REPROBADA TE VAS A REPITE."); System.out.println("TU CALIFICACION ES: " + Mensaje); } }
LINEA DE CODIGO
import java.io.*; public class Triangulos { public static void main( String [] Args) { //declaracion de variables int a, b, c; String Mensaje=""; ANGULO:" System.out.println("SISTEMA QUE MUESTRA TIPO DE TRIANGULO DE ACUERDO A SU
+ "\n======================================================================"+"\n"); System.out.print("INTRODUCE TIPO DE VALOR DEL ANGULO A:"); a=Leer.datoInt(); System.out.print("INTRODUCE TIPO DE VALOR DEL ANGULO B:"); b=Leer.datoInt(); System.out.print("INTRODUCE TIPO DE VALOR DEL ANGULO C:"); c=Leer.datoInt(); if(a==90 || b==90 ||c==90) { Mensaje = "Rectangulo"; } else if (a >= 91 && a <180 ||b >=91 && b<180 ||c>=91 && c <180 ) { Mensaje = "Obtusangulo";
LINEAS DE CODIGO
import java.util.Scanner; public class ImprimeMayorMenor { public static void main(String Args[]){ Scanner leer=new Scanner(System.in); ParesImpares Nums=new ParesImpares(); int numeros[]=new int[10]; for(int i=0;i<numeros.length;i++){ System.out.print("Introduce el numero: ");
Docente: Lic. Miguel Fuentes Cortes Ramrez Vivar Alumno: Juan de Dios
numeros[i]=leer.nextInt(); } Nums.NumMayor(numeros); System.out.println("El numero mayor es: "+Nums.Mayor()); System.out.println("El numero menor es: "+Nums.Menor()); }
PROGRAMA QUE LEE 10 NUMEROS EN UN ARREGLO E IMPRIME LA CANTIDAD DE NUMEROS QUE SON CERO, ABAJO CERO Y ARRIBA CERO
import java.util.*; public class Ejer8 { public static void main(String Args[]){ Scanner leer=new Scanner(System.in); int nums[]=new int[10]; int int int int abajoCero=0; arribaCero = 0; igualCero=0; i;
DIAGRAMA DE FLUJO
QU ES LA RECURSIVIDAD? La recursividad es un concepto fundamental en matemticas y en computacin. Es una alternativa diferente para implementar estructuras de repeticin (ciclos). Los mdulos se hacen llamadas recursivas. Se puede usar en toda situacin en la cual la solucin pueda ser expresada como una secuencia de movimientos, pasos o transformaciones gobernadas por un conjunto de reglas no ambiguas. Podemos entender por recursividad el hecho de que un sistema, este compuesto a su vez de objetos que tambin son sistemas. En general que un sistema sea subsistema de otro ms grande. Representa la jerarquizacin de todos los sistemas existentes es el concepto unificador de la realidad y de los objetos. El concepto de recursividad se aplica a sistemas dentro de sistemas mayores.
Funcin recursiva Las funciones recursivas se componen de: Caso base: una solucin simple para un caso particular (puede haber ms de un caso base). La secuenciacin, iteracin condicional y seleccin son estructuras vlidas de control que pueden ser consideradas como enunciados. NOTA: Regla recursiva Las estructuras de control que se pueden formar combinando de manera vlida la secuenciacin, iteracin condicional y seleccin tambin son vlidos. Caso recursivo: una solucin que involucra volver a utilizar la funcin original, con parmetros que se acercan ms al caso base. Los pasos que sigue el caso recursivo son los siguientes: 1. El procedimiento se llama a s mismo 2. El problema se resuelve, resolviendo el mismo problema pero de tamao menor 3. La manera en la cual el tamao del problema disminuye asegura que el caso base eventualmente se alcanzar
Por qu escribir programas recursivos? Son mas cercanos a la descripcin matemtica. Generalmente mas fciles de analizar Se adaptan mejor a las estructuras de datos recursivas. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples. Cmo escribir una funcin en forma recursiva? <tipo_de_regreso><nom_fnc> (<param>){ [declaracin de variables] [condicin de salida] [instrucciones] [llamada a <nom_fnc> (<param>)] return <resultado> }
Cundo usar recursividad? Para simplificar el cdigo. Cuando la estructura de datos es recursiva ejemplo : rboles. Cundo no usar recursividad? Cuando los mtodos usen arreglos largos. Cuando el mtodo cambia de manera impredecible de campos. Cuando las iteraciones sean la mejor opcin. Algunas Definiciones. Cuando un procedimiento incluye una llamada a s mismo se conoce como recursin directa. Cuando un procedimiento llama a otro procedimiento y ste causa que el procedimiento original sea invocado, se conoce como recursin indirecta.
Docente: Lic. Miguel Fuentes Cortes Ramrez Vivar Alumno: Juan de Dios
NOTA: Cuando un procedimiento recursivo se llama recursivamente a si mismo varias veces, para cada llamada se crean copias independientes de las variables declaradas en el procedimiento.
Ejemplos de recursividad: Inversin de una cadena esttica Cad invierte (Cad cadena, int limIzq, int limDer) si limDer = limIzq entonces regresa cadena sino regresa invierte (cadena, limDer, limIzq+1) + cadena [limIzq] fin Ejemplo: Las torres de Hanoi Mover n discos del poste 1 al poste 3 (utilizando el poste 2 como auxiliar):
void hanoi (int n, int inic, int tmp, int final) { if (n > 0) { // Mover n-1 discos de "inic" a "tmp". // El temporal es "final". hanoi (n-1, inic, final, tmp); // Mover el que queda en "inic" a "final" printf (Del poste %d al %d.\n, inic, final); // Mover n-1 discos de "tmp" a "final". // El temporal es "inic". hanoi (n-1, tmp, inic, final); } }
Entonces, por lo que hemos podido ver, el programa podra definirse de la siguiente manera: Si es un solo disco, lo movemos de A a C. En otro caso, suponiendo que n es la cantidad de aros que hay que mover Movemos los n-1 aros superiores - es decir, sin contar el ms grande- de A a B (utilizando a C como auxiliar). Movemos el ltimo aro (el ms grande) de A a C. Movemos los aros que quedaron en B a C (utilizando a A como auxiliar).
A manera de conclusin muchas veces es posible dividir un problema en subproblemas ms pequeos, generalmente del mismo tamao, resolver los subproblemas y entonces combinar sus soluciones para obtener la solucin del problema original. Dividir para vencer es una tcnica natural para las estructuras de datos, ya que por definicin estn compuestas por piezas. Cuando una estructura de tamao finito se divide, las ltimas piezas ya no podrn ser divididas.