elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Necesito entregar una práctica urgente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito entregar una práctica urgente  (Leído 5,710 veces)
dj13

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Necesito entregar una práctica urgente
« en: 9 Junio 2021, 18:38 pm »

Es una practica que cuenta de 2 subprácticas , la primera ya la he realizado, que se hace mediante monitores, pero la segunda no tengo idea de como hacerla, se realiza mediante el envio de mensajes sincronos en java o jcsp.Al no disponer de mucho tiempo, escribo esto por aquí por si alguien me puede solucionar esto.Si alguien puede que me contacte por discord  xxxxxx

Editado: No poner datos de contacto, leer las normas del foro antes de postear.




« Última modificación: 9 Junio 2021, 18:47 pm por WHK » En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Necesito entregar una práctica urgente
« Respuesta #1 en: 9 Junio 2021, 18:50 pm »

Tienes algo hecho? tienes alguna duda sobre que hacer?, para que te podamos orientar sobre como debes construir tu código, pero acá no se hacen tareas ni nadie te va a dar el programa hecho, imagina que despues salgas de tus estudios y te pongas a trabajar y te pidan programar algo, no vas a poder decir "espereme que voy a preguntar en elhacker.net aver si alguien me lo hace", la idea es que aprendas por ti mismo a hacerlo, esta es una comunidad donde el conocimiento es totalmente libre y nos apoyamos entre todos para "aprender", no para hacerle la tarea o el trabajo a otros.

saludos.


En línea

dj13

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Necesito entregar una práctica urgente
« Respuesta #2 en: 9 Junio 2021, 19:01 pm »

Realmente solo pedía ayuda porque no me da tiempo a hacerla, pero gracias de todas maneras.Había hecho la primera parte, pero la segunda parte ni idea, es para el dia 11, pero bueno, gracias por la aclaración.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Necesito entregar una práctica urgente
« Respuesta #3 en: 9 Junio 2021, 19:07 pm »

En que parte has quedado de la segunda?, comentanos cual es el flujo de la aplicación que debes hacer y en base a eso te vamos comentando que funciones y de que manera las puedes ir haciendo, talves incluso lo puedas tener hecho hoy mismo.

Podrías hacer un repositorio en guthub y subir lo que tienes hecho para que te podamos ayudar en decirte que deberias modificar o agregar.

saludos.
En línea

dj13

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Necesito entregar una práctica urgente
« Respuesta #4 en: 9 Junio 2021, 19:39 pm »

Código
  1. [/// BancoCSP_skel.java
  2. // Lars feat. Julio -- 2021
  3. // esqueleto de código para JCSP
  4. // (peticiones aplazadas)
  5.  
  6. package cc.banco;
  7.  
  8. import org.jcsp.lang.Alternative;
  9. import org.jcsp.lang.AltingChannelInput;
  10. import org.jcsp.lang.Any2OneChannel;
  11. import org.jcsp.lang.CSProcess;
  12. import org.jcsp.lang.Channel;
  13. import org.jcsp.lang.Guard;
  14. import org.jcsp.lang.One2OneChannel;
  15. import org.jcsp.lang.ProcessManager;
  16.  
  17. // otras librerías: estructuras de datos, etc.
  18. //
  19. //
  20. //
  21. // COMPLETAD
  22. //
  23. //
  24. //
  25. //
  26.  
  27.  
  28. public class BancoCSP implements Banco, CSProcess {
  29.  
  30.    // canales: uno por operación
  31.    // serán peticiones aplazadas
  32.    private Any2OneChannel chIngresar;
  33.    private Any2OneChannel chDisponible;
  34.    private Any2OneChannel chTransferir;
  35.    private Any2OneChannel chAlertar;
  36.  
  37.    // clases para peticiones
  38.    // regalamos una como ejemplo
  39.    public class TransferirReq {
  40. // atributos (pueden ser públicos)
  41. String from;
  42. String to;
  43. int value;
  44. One2OneChannel resp;
  45.  
  46. // constructor
  47. public TransferirReq(String from, String to, int value) {
  48.    this.from = from; this.to = to; this.value = value; this.resp = Channel.one2one();
  49. }
  50.    }
  51.  
  52.    public class AlertarReq {
  53. // atributos (pueden ser públicos)
  54. //
  55. // COMPLETAD
  56. //
  57.  
  58. // constructor
  59. //
  60. // COMPLETAD
  61. //
  62.    }
  63.  
  64.    public class IngresarReq {
  65. // atributos (pueden ser públicos)
  66. //
  67. // COMPLETAD
  68. //
  69.  
  70. // constructor
  71. //
  72. // COMPLETAD
  73. //
  74.    }
  75.  
  76.    public class DisponibleReq {
  77. // atributos (pueden ser públicos)
  78. //
  79. // COMPLETAD
  80.  
  81. // constructor
  82. //
  83. // COMPLETAD
  84. //
  85.    }
  86.  
  87.    // constructor de BancoCSP
  88.    public BancoCSP() {
  89. this.chIngresar = Channel.any2one();
  90. this.chAlertar = Channel.any2one();
  91. this.chDisponible = Channel.any2one();
  92. this.chTransferir = Channel.any2one();
  93. new ProcessManager(this).start();
  94.    }
  95.  
  96.    // interfaz Banco
  97.    /**
  98.      * Un cajero pide que se ingrese una determinado valor v a una
  99.      * cuenta c. Si la cuenta no existe, se crea.
  100.      * @param c número de cuenta
  101.      * @param v valor a ingresar
  102.      */
  103.    public void ingresar(String c, int v) {
  104. // comprobar PRE
  105. // COMPLETAD
  106. // crear petición
  107. // COMPLETAD
  108. // enviar petición
  109. // COMPLETAD
  110.    }
  111.  
  112.    /**
  113.      * Un ordenante pide que se transfiera un determinado valor v desde
  114.      * una cuenta o a otra cuenta d.
  115.      * @param o número de cuenta origen
  116.      * @param d número de cuenta destino
  117.      * @param v valor a transferir
  118.      * @throws IllegalArgumentException si o y d son las mismas cuentas
  119.      *
  120.      */
  121.    public void transferir(String o, String d, int v) {
  122. // comprobar PRE
  123. // COMPLETAD
  124. // crear petición
  125. // COMPLETAD
  126. // enviar petición
  127. // COMPLETAD
  128. // esperar confirmación
  129. // COMPLETAD
  130.    }
  131.  
  132.    /**
  133.      * Un consultor pide el saldo disponible de una cuenta c.
  134.      * @param c número de la cuenta
  135.      * @return saldo disponible en la cuenta id
  136.      * @throws IllegalArgumentException si la cuenta c no existe
  137.      */
  138.    public int disponible(String c) {
  139. // crear petición
  140. // COMPLETAD
  141. // enviar petición
  142. // COMPLETAD
  143. // recibir respuesta del servidor
  144. // COMPLETAD
  145. // tratar resultado
  146. //
  147. // COMPLETAD
  148. //
  149. //
  150.    }
  151.  
  152.    /**
  153.      * Un avisador establece una alerta para la cuenta c. La operación
  154.      * termina cuando el saldo de la cuenta c baja por debajo de m.
  155.      * @param c número de la cuenta
  156.      * @param m saldo mínimo
  157.      * @throws IllegalArgumentException si la cuenta c no existe
  158.      */
  159.    public void alertar(String c, int v) {
  160. // crear petición
  161. // COMPLETAD
  162. // enviar petición
  163. // COMPLETAD
  164. // tratar respuesta del servidor
  165. //
  166. // COMPLETAD
  167.    }
  168.  
  169.    // Código del servidor
  170.    public void run() {
  171. // nombres simbólicos para las entradas
  172. final int INGRESAR   = 0;
  173. final int DISPONIBLE = 1;
  174. final int TRANSFERIR = 2;
  175. final int ALERTAR    = 3;
  176.  
  177. // construimos la estructura para recepción alternativa
  178. final Guard[] guards = new AltingChannelInput[4];
  179. guards[INGRESAR]   = chIngresar.in();
  180. guards[DISPONIBLE] = chDisponible.in();
  181. guards[TRANSFERIR] = chTransferir.in();
  182. guards[ALERTAR]    = chAlertar.in();
  183. Alternative servicios = new Alternative(guards);
  184.  
  185. // El estado del recurso debe ir en el servidor (aquí)
  186. // Reutilizar de la práctica de monitores
  187. // COMPLETAD
  188.  
  189. // colecciones para peticiones aplazadas
  190. // reutilizar de monitores si es posible
  191. //
  192. // COMPLETAD
  193. //
  194. //
  195.  
  196. // Bucle principal del servicio
  197. while(true) {
  198.    int servicio = servicios.fairSelect();
  199.  
  200.    switch (servicio) {
  201.    case INGRESAR: {
  202. // recibir petición
  203. // COMPLETAR
  204. // realizar ingreso
  205. //
  206. //
  207. //
  208. break;
  209.    }
  210.    case DISPONIBLE: {
  211. // recibir petición
  212. // COMPLETAD
  213. // responder
  214. // COMPLETAD
  215. //
  216. break;
  217.    }
  218.    case TRANSFERIR: {
  219. // recibir petición
  220. // COMPLETAD
  221. // encolar petición
  222. // (alternativamente, se puede comprobar CPRE y
  223. //  solo encolar si estrictamente necesario)
  224. //
  225. //
  226. //  COMPLETAD
  227. //
  228. //
  229. break;
  230.    }
  231.    case ALERTAR: {
  232. // recibir petición
  233. // COMPLETAD
  234. // encolar petición
  235. // (alternativamente, se puede comprobar CPRE y
  236. //  solo encolar si estrictamente necesario)
  237. //
  238. //
  239. // COMPLETAD
  240. //
  241. //
  242. break;
  243.    }
  244.    }// END SWITCH
  245.  
  246.    // tratamiento de peticiones aplazadas
  247.    // en parte, reutilizar de monitores
  248.    //
  249.    //
  250.    //
  251.    //
  252.    //
  253.    //
  254.    //
  255.    //
  256.    //
  257.    //
  258.    //
  259.    //
  260.    //
  261.    //
  262.    //
  263.    //
  264.    //
  265.    // COMPLETAD
  266.    //
  267.    //
  268.    //
  269.    //
  270.    //
  271.    //
  272.    //
  273.    //
  274.    //
  275.    //
  276.    //
  277.    //
  278.    //
  279.    //
  280.    //
  281.    //
  282.    //
  283.    //
  284.    //
  285.    //
  286.    //
  287.    //
  288.    //
  289.    //
  290.  
  291.    // no debemos volver al inicio del bucle
  292.    // de servicio mientras haya alguna
  293.    // petición pendiente que se pueda atender !!
  294. }// END BUCLE SERVICIO
  295.    }// END run SERVIDOR
  296.  
  297.    // cualquier otro código auxiliar que necesitéis...
  298.  
  299. }
  300.  
  301. ]
  302. Este es el esqueleto que me ayudo a hacer mi profesor
En línea

dj13

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Necesito entregar una práctica urgente
« Respuesta #5 en: 9 Junio 2021, 19:41 pm »

Me gustaría poder mandar el guión de la práctica tambien, pero no veo que haya ninguna forma de enviar un archivo
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Necesito entregar una práctica urgente
« Respuesta #6 en: 10 Junio 2021, 00:07 am »

Me gustaría poder mandar el guión de la práctica tambien, pero no veo que haya ninguna forma de enviar un archivo


Hola, aquí en el foro no disponemos de poder subir archivos adjuntos al mismo, pero podes subir el archivo a algún sitio web que brinde ese servicio y nosotros descargamos tal archivo.


Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Urgente necesito realizar programa para entregar esta noche
Ejercicios
ce17buloz 7 6,683 Último mensaje 9 Julio 2009, 16:58 pm
por DarkItachi
necesito un autoclick urgente
Juegos y Consolas
brunorp 7 4,936 Último mensaje 22 Agosto 2010, 17:12 pm
por brunorp
necesito un autoclick urgente
Programación Visual Basic
brunorp 8 4,428 Último mensaje 22 Agosto 2010, 17:24 pm
por xkiz ™
Necesito ayuda con una practica!
Programación C/C++
jota69 2 1,710 Último mensaje 1 Diciembre 2015, 14:14 pm
por daryo
Necesito ayuda en una práctica y no sé lo que me falla
Java
MiguelD 1 2,539 Último mensaje 11 Diciembre 2022, 15:38 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines