Por Ariel Parra
está es la plataforma que estaremos usando para el curso, por lo que ocupamos crear una cuenta a través de https://codeforces.com/register. La razón por la cual usamos está plataforma es que tiene múltiples problemas de distintas categorías y dificultades, donde al subir cada problema se evaluara con un juez virtual (virtual judge) que juzgara si nuestro código soluciona el problema o en que caso/s no lo cumple.
Para el acompañamiento del curso, se puede recurrir al Junior Training Sheet V7.0, donde hay múltiples problemas ordenados por dificultad con links directos a codeforces.
Un IDE (Integrated Development Environment) es una aplicación que combina múltiples herramientas para el desarrollo de software en una sola interfaz. Generalmente, un IDE cuenta con las siguientes características:
Editor de código: editor de texto que ayuda a escribir el código de software con funciones como el resaltado de la sintaxis con indicaciones visuales, el relleno automático específico para el lenguaje y la comprobación de errores a medida que se escribe el código.
Automatización de compilaciones: herramientas que automatizan las tareas sencillas y repetitivas como parte de la creación de una compilación local del software para que use el desarrollador, como la compilación del código fuente de la computadora en código binario, el empaquetado de ese código y la ejecución de pruebas automatizadas.
Depurador (Debuger): programa que sirve para probar otros programas y mostrar la ubicación de un error en el código original de forma gráfica.
Este es el IDE favorito de los profesores. El principal problema es que la versión original incluye una versión antigua de GCC (4.9.2) aparte solo estar disponible en Windows.
Si se quiere usar este IDE, mi recomendación es usar el DEV-C++ "Rojo" (embarcadero) ya que este incluye un compilador más moderno (TDM-GCC 9.2.0), pero aun así solo sigue estando disponible en Windows.
Este es uno de los IDEs más populares entre las competencias de programación, debido a que es de código abierto, no pesa mucho, incluye compilador para Windows y ser compatible con Linux y MacOS.
Si lo descargas para Windows, descarga la versión que diga 'mingw' para que incluya el compilador
Este es el IDE de C++ por excelencia en la industria, aunque sea propietario es usado por múltiples empresas como Google, Nasa, BMW, etc.
Este IDE es expansible a través de plugins, todas las herramientas necesarias para desarrollar en C++ y aparte es multiplataforma siendo compatible en Windows, MacOS y Linux.
Las desventajas serian su amplio uso de recursos y su elevado costo anual de más de $100 USD.
Pero este es gratis mientras seas un estudiante y al egresar tendrás un 40% de descuento!
No confundir con Visual Studio . VScode es el editor por excelencia del Club, esto debido a ser de código abierto, multiplataforma al estar desarrollado con Electron (básicamente es una app web), tener editor en línea, su implementación con git, y principalmente por su amplio catalogo de extensiones con los cuales podemos desarrollar en cualquier lenguaje y de múltiples maneras. La única desventaja es que no incluye el compilador de C++, por lo que tendremos que instalarlo manualmente. Para instalarlo podemos hacerlo desde su página web o usando el gestor de paquetes integrado en Windows winget a través de una terminal (Powershell ), con el comando:
winget
winget install -e --id Microsoft.VisualStudioCode --override '/SILENT /mergetasks="!runcode,addcontextmenufiles,addcontextmenufolders"'
shift + alt + F
Material Icon Theme, nord, catppuccin, GruvBox, Monokai Pro o dracula
Para otros sistemas o dispositivos, visite el blog: https://cpc-gallos.github.io/blog/Entorno_Desarrollo/
msys2
winget install -e --id MSYS2.MSYS2
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
Acepta presionando Enter 2 veces.
Enter
path
C:\msys64\ucrt64\bin
settings.json
"C_Cpp.default.compilerPath": "C:/msys64/ucrt64/bin", "C_Cpp.clang_format_path": "C:/msys64/ucrt64/bin", "code-runner.executorMap": { "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -g && $dir$fileNameWithoutExt" }
ctrl + alt + N
Primero en VScode tenemos que tener la extensión Competitive Programming Helper (CPH)
Después cambiaremos el lenguaje por defecto a C++ y agregaremos la ruta (ubicación) de la plantilla del club a la configuración de la extensión Competitive Programming Helper (CPH) en VScode
Para firefox: Agrega las extensiones: competitive companion y CPH Submit
Para navegadores basados en chromium ( Google Chrome, Microsft Edge, Opera, Brave, etc.): Agrega las extensiones: competitive companion y CPH Submit
Para usarlas, ten tu sesión de codeforces activa y también ten abierto VScode, cuando abras un problema en codeforces haz click en , después cámbiate a VScode donde veras unas opciones donde eligieras cpp, y listo podrás probar y publicar tu código desde vscode.
Git (git-scm) es una herramienta de código abierto para el control de versión distribuido mientras que GitHub es una plataforma y servicio basado en la nube, propiedad de Microsoft, para el desarrollo de software y el control de versiones utilizando Git, básicamente un servidor donde almacenas tus proyectos y los controlas con Git.
En el club recomendamos usar git para guardar tus códigos en GitHub, esto es útil no solo para las actividades del club, sino que podrás usar estas habilidades para tus próximos proyectos escolares o profesionales.
winget install -e --id Git.Git
git config --global user.name "Usuario" git config --global user.email "correo@ejemplo.com"
git config --list
ssh-keygen -t ed25519 -C "correo@ejemplo.com"
C:\Users\%USERNAME%\.ssh\id_ed25519.pub
Mucho ojo en Windows, estas carpetas suelen estar bajo 'C:\Users\%USERNAME%\One Drive\'
git clone git@github.com:"Usuario de GitHub"/"Proyecto".git
git commit -m "mensaje del commit" # cambios locales a "pushear" git push # pusheas los cambios junto con el commit hacia GitHub git pull # descargas los cambios actuales desde GitHub
char
string
SCM: Source code management