Guia per a alumnes


Hola! Aquesta guia explica com començar a fer servir el JOEL si ets alumne o simplement vols aprendre a programar. Si ja has fet servir altres jutges online (Codeforces, Acepta el Reto...) gairebé tot et sonarà; si no, ara ho veuràs pas a pas.

1. Trobar un problema

El primer lloc on has d'anar és a Problemes.

Llista de problemes

  • La primera columna et diu com ho portes: verd si l'has resolt, groc si l'has intentat però encara no, i vermell si no l'has tocat.
  • A dalt tens quatre pestanyes: Problemes de Programació, Problemes de Bases de Dades (SQL i MongoDB), Tasques de Programació i Tasques de Bases de Dades.
  • A la dreta tens el cercador: pots filtrar per categoria, per tipus (per exemple Arrays/Llistes o Bucles simples), per punts, o amagar els que ja tens resolts.
  • Si acabes de començar, tria la categoria Primers Passos i després Introducció. Els problemes amb el birret tenen una guia pròpia (ho expliquem més avall).
  • Com més punts, més difícil. Les columnes AC % (percentatge d'enviaments correctes) i Usuaris (quanta gent l'ha resolt) també t'ajuden: valors alts volen dir problemes més assequibles.

2. Llegir l'enunciat

Tots els problemes tenen la mateixa estructura: l'enunciat, com és l'entrada, com ha de ser la sortida i un o més exemples.

Pàgina d'un problema

Si copies l'exemple d'entrada tal qual al teu programa, la sortida ha de ser exactament la de l'exemple de sortida (cada espai i cada salt de línia compten). Els blocs d'exemple tenen un botó Copia per provar-ho fàcilment.

A la dreta hi ha els punts, el límit de temps i de memòria, els llenguatges permesos i el botó Enviar solució. També hi ha Veure com a PDF si el vols imprimir.

3. Enviar una solució

Comencem pel més fàcil: Hola Mon!. Escriu el programa a l'editor, tria el llenguatge correcte al desplegable i prem Envia!

Enviar una solució

En Python:

print("Hello World")

En Java:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

En pocs segons tindràs el resultat. Si tot va bé, veuràs AC (Accepted):

Enviament acceptat

El primer problema nou que resols cada dia et dona +5 GachaPoints de regal (ho veuràs a la franja taronja).

4. Quan alguna cosa falla: pistes

Provem amb Aire Acondicionat. Aquesta solució sembla bona...

n = int(input())
while n > 0:
    n -= 1
    a = int(input())
    if a == 180 or a == 360 or a == 0:
        print("OK")
    else:
        print("BRONCA")

...però el jutge diu WA (Wrong Answer) en un dels casos de prova. Tens la llista de tots els codis a Respostes del jutge.

Fixa't que el JOEL dona nota parcial: encara que no ho tinguis tot bé, et puntua els casos que sí que superes.

Clica a sobre del cas que falla per desplegar-lo i prem Ajuda!. És una pista: et mostra l'entrada exacta on falles i què ha respost el teu programa. A dalt de tot veus quantes pistes has fet servir i quantes en tens (normalment 1 per problema).

Pista

Aquí falla amb -180: clar, en un cercle -180º és el mateix que 180º.

5. Superpistes (pistes de la IA)

Si després de veure la pista encara no saps per què falla, a sota hi apareix el botó Superpista!. La superpista l'escriu la IA del JOEL: no et dona la solució, et fa pensar en la direcció correcta. Triga uns segons a arribar.

Superpista

  • Només surt en un cas on ja has vist la pista normal.
  • N'hi ha un nombre limitat per problema (normalment la meitat de les pistes, arrodonida cap amunt). El comptador Superpistes usades/permeses et diu quantes et queden.
  • Si demanes més superpistes al mateix problema, cada una va un pas més enllà de l'anterior.
  • Si el servidor de la IA no està disponible, ho pots comprovar a Status.

6. Guies dels problemes d'introducció

Els problemes amb l'etiqueta Introducció tenen un botó gran Llegeix la guia a la dreta.

Problema amb guia

La guia explica com abordar el problema i els paranys habituals, i pot ensenyar-te una pista de codi en el teu llenguatge (Python, Java...). Pots canviar de llenguatge amb els botons de dalt. No és la solució, és una ajuda per arrencar.

Guia d'un problema

7. Tasques

Les Tasques són llistes ordenades de problemes que prepara el professorat, per exemple tots els d'un tema. Les trobaràs a la pestanya Tasques de Programació (o Tasques de Bases de Dades), i les pots filtrar pel teu institut o equip.

Llista de tasques

Dins de cada tasca veus quins problemes ja tens resolts:

Una tasca

8. Problemes de bases de dades

A la pestanya Problemes de Bases de Dades hi ha problemes de SQL (MySQL i PostgreSQL) i de MongoDB. Cada problema té diverses preguntes sobre una mateixa base de dades, i a la pàgina d'enviament hi ha un quadre per a cada pregunta.

Problema de SQL

El botó Mostra l'esquema de la base de dades et mostra les taules, les columnes i un diagrama entitat-relació:

Esquema de la base de dades

Els punts de bases de dades van a un rànquing propi, separat del de programació. I no ho intentis: les consultes que intenten esborrar o trencar la base de dades (DROP, DELETE on no toca...) es bloquegen i surten com a SEC (violació de seguretat).

9. El teu perfil, el gacha i la personalització

A Editar perfil pots triar el teu llenguatge per defecte (el que surt seleccionat en enviar), la zona horària, el tema de l'editor i els equips on ets.

Editar perfil

Amb els punts que guanyes resolent problemes (de programació i de bases de dades) pots jugar al Gacha: cada tirada costa 5 GachaPoints i et pot tocar un sticker, una icona, un color per al teu nom o un tema visual per a tota la web. Després els tries a Editar perfil.

Gacha

10. Comentaris i errors

Cada problema té comentaris on pots preguntar dubtes o ajudar altres usuaris. Abans d'escriure-hi, llegeix les normes de participació (resum: respecte, i res de penjar solucions). Si creus que un problema té un error, fes servir Notifica un problema a la pàgina del problema.

Més consells: Consells · Categories · Respostes del jutge