Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Langosta Sexual

#1
Voy a ser breve, yo veo clases con un profesor que explica bien y sabe lo que hace, pero su unico problema es que va al par con el alumno mas lento en lugar de ir avanzando acorde al conocimiento de la mayoria, ya estoy algo cansado de ir a clases de programacion a hacer programitas de "calcule la suma de dos numeros" o "calcule el producto de 2 arreglos". El dia de ayer descargue un libro llamado "Murach's java programing" para aprender por mi cuenta, libro bastante bueno pero con pocos ejercicios en el, asi que empeze a buscar por internet y encontra algunos algoritmos "faciles" y decidi empezar a hacerlos para aprender mas, les escribire el problema.

Problema:

Un negociante ocupado tiene varias tareas de igual importancia que debe completar. Para decidir cual de las varias tareas va a resolver primero el negociante elabora la siguiente operación.
El escribe en una hoja todas las tareas que debe realizar de forma circular, de forma que la primera tarea que escribió es adyacente a la ultima que escribió . El luego piensa en un numero positivo y par. Este numero es un valor cualquiera sacado de su mente que el llama "n". comenzando desde la primera tarea, el va de tarea en tarea moviéndose en sentido de las agujas de un reloj (desde el elemento 1 de la lista, al elemento 2, al elemento 3 ... etc) contando desde 1 hasta "n". Cuando cuenta hasta "n", el elimina esta tarea de la lista y comienza a contar desde la siguiente tarea disponible. El repite este procedimiento hasta que solo 1 tarea quede en la lista. La tarea que queda al final del procedimiento es la tarea que el va a ejecutar primero.

Ejemplo:
1)   
      Tareas{"a","b","c","d"}
N=2

Returns: "a"

Empezamos contando desde a. asi a es 1, b es 2. Eliminamos b, entonces en la lista quedan las tareas {a,c,d}. continuamos desde c. Asi que c es 1, d es 2. Eliminamos d, la lista contiene ahora {a,c}.. Continuamos desde a. Así que a es 1, c es 2. Eliminamos c, y la tarea que quedo en la lista es la tarea que va a ejecutar el negociante, a.

Este es el codigo que ya tengo escrito.

Código (java) [Seleccionar]
package tareasdenegocio;
import java.util.*;
public class TareasDeNegocio {

   public static void main(String[] args)
   {
       Scanner ec = new Scanner (System.in);
       int CantidadTareas=0,Numero;
       System.out.println("Introduzca la cantidad de tareas que desea calcular\n");
       CantidadTareas = ec.nextInt();
       String Tareas []= new String [CantidadTareas];
       
       for (int x=0;x<CantidadTareas;x++)
       {
       System.out.println("Introduzca la tarea numero "+x+"\n");
       Tareas[x]=ec.nextLine();
           if (x==CantidadTareas)
           {
           System.out.println("Introduzca un numero positivo\n");
           Numero=ec.nextInt();
           }
       }
   }  
}


Si es muy poco, mis disculpas, no tengo amplios conocimientos en java, solo quiero aprender.
Por si alguien necesita la fuente de donde yo habia sacado el algoritmos, aqui esta (en ingles): http://community.topcoder.com/stat?c=problem_statement&pm=1585&rd=6535

Mod: no hagas doble post
#2
Voy al grano, debo hacer un programa en java que permita a el usuario ingresar el tamaño de un arreglo bidimensional, que el usuario pueda ingresar los valores que van a contener las finas y columnas de el arreglo, ejemplo, arreglo [1][1]=5; y que calcule que valores de la diagonal principal son multiplos de 5, osea, si el arreglo es cuadrado de [3][3], que permita calcular si el valor contenido en
  • ,[1][1],[2][2] son multiplos de 5.

    Ya pude hacer el 95% de el programa, pero lo que no se es como modular el valor a 5 de cada una de las partes que me piden, les escribo lo que ya tengo listo.

    Código (java) [Seleccionar]
    package arreglos;
    import java.util.*;

    public class Arreglos
    {
        public static void main(String[] args)
        {
            Scanner ec= new Scanner(System.in);
            int LongitudArreglo,Incremento=0;
            double ValorArreglo;
           
            System.out.println("Introduzca la longitud de el arreglo");
            LongitudArreglo = ec.nextInt();
           
            double [][] arreglo  = new double [LongitudArreglo][LongitudArreglo];
           
            String decision = "Si";
            while (decision.equalsIgnoreCase ("si"))
            {
                for (int Columna=0;Columna<LongitudArreglo;Columna++)
                {
                    for (int Fila=0;Fila<LongitudArreglo;Fila++)
                    {
                        System.out.println("Introduzca el valor que tendra la posicion ["+Columna+"]["+Fila+"]\n");
                        ValorArreglo=ec.nextDouble();
                        if (arreglo[Incremento][Incremento]%5==0)  //<- Este es el problemita que tengo
                        {
                            System.out.println("El valor contenido en["+Incremento+"]["+Incremento+"]Es multiplo de 5");
                        }
                    } 
                    Incremento++;
                }
               
                System.out.print("¿Desea continuar? Si/No\n");
                decision = ec.next();
            }
        }   
    }
#3
 Es una duda que cualquiera con 1 semana de experiencia podria resolver (imagino), soy bastante nuevo programando en c, mi profesor de programacion nos mando a realizar este programa:

En una farmacia se venden medicamentos genericos y no genericos, los medicamentos genericos tienen un descuento de 15%, los medicamentos no genericos tienen un impuesto de 12%, realizar un programa que permita calcular el monto a pagar de ambos medicamentos y tambien si hay vuelto (cambio) o no.

Yo lo estoy haciendo asi


#include <stdio.h>
#include <conio.h>

main ()
{
    double mg, ng, d=0.15, iva=1.12, p, p1, mpg, mpng;
   
    printf("Ingrese el precio de el medicamento generico:");
    scanf("%lf", &mg);
    if (mg<=0)
    { printf("No puede introducir un precio negativo o igual a cero");
    return mg;       
}
getch();
return 0;
}


Cuando introdusco un valor mayor a 0 el programa me va bien, pero cuando introdusco uno menor o igual a cero el programa se cierra sin montrar el segundo print ni retornando a la variable mg, ¿Que tengo malo?.