Vamos a estar utilizando sistemas operativos *nix para llevar a cabo el curso. Esto es unix/linux/macOs
Los que utilicen Windows 10/11 deberan instalar WSL y una distribucion de linux (recomiendo Ubuntu)
Los que estan en mac/linux, van directo a la seccion de instalar compiladores
- Abrir powershell COMO ADMINISTRADOR y escribir:
wsl --install
-
Reiniciar la compu si nos pide
-
(Opcional, pero hace que ande mas rapido) En una terminal de powershell COMO ADMINISTRADOR (si este paso falla, no pasa nada, vamos al siguiente)
wsl --set-default-version 2
- C++ - Podemos elegir el compilador
clang++
og++
-
Ubuntu/Debian/Mint:
- Primero tenemos que cargar la base de datos del package manager
sudo apt update
-
Luego instalamos el compilador que queremos
- clang
sudo apt install -y clang
- g++
sudo apt install -y g++
- Lo que significa cada comando
sudo
nos da permisos de administrador ("Super User DO")apt install
apt es el package manager (como un app store) install es el comando para instalar un paquete-y
esto es opcional, le estamos diciendo que aceptamos todo, sino antes de instalar nos va a pregutnar si aceptamos y tenemos que poneryes
clang
og++
el paquete que queremos instalar
-
MacOS:
- Abren una terminal y escriben
clang++
og++
y dan enter - Esto va a hacer que salte un prompt preguntando si quieren instalar las "command line tools", le dan que si y queda instalado
- Abren una terminal y escriben
-
- Java
- Ubuntu:
sudo apt install -y openjdk-17-jdk
- MacOS: seguir instrucciones para instalar zulu-xx-jdk
- Ubuntu:
En ambos casos vamos a trabajar todo el codigo en unico archivo para simplificar. Esto va a significar codigo repetido, ya que vamos a tener que tener el TAD en el mismo archivo que nuestra solucion, pero a la hora de compilar les va a ser mas facil
Ambos compiladores funcionan igual, los ejemplos los vamos a escribir con clang++
, pero basta sustituirlo por g++
para utilizar el otro compilador
En la terminal estando parados sobre la misma carpeta que el archivo que queremos compilar
clang++ ./archivo.cpp -o ejecutable
Para ejecutar el programa, parados sorbe la misma carpeta que el archivo que queremos ejecutar
- Si queremos hacer el input a mano
./ejecutable
- Si queremos que el input lo tome de un .txt
./ejecutable < ./input.txt
- Si queremos que el output lo escriba en un archivo
./ejecutable > ./output.txt
- Si queremos que el input lo tome de un archivo y el output lo escriba en un archivo
./ejecutable < ./input.txt > ./output.txt
Para debuggear debemos instalar un debugger, si estan en mac ya deberian tener instalado lldb
, sino si lo escriben en una terminal y dan enter deberia instalarselo
Si estan en linux
- Si usan clang
sudo apt install -y lldb
- Si usan g++
sudo apt install -y gdb
Luego si hacemos F5 en vscode, deberia saltar un cartel que nos dice que no tenemos una configuracion y nos ofrece una automaticamente
Otra opcion es el viejo y querido
cout << "mi variable" << variable << endl;
En la terminal estando parados sobre la misma carpeta que el archivo que queremos compilar
javac ./ejemplo.java
Esto nos va a generar un archivo ejemplo.class
Para ejecutar el programa, parados sorbe la misma carpeta que el archivo que queremos ejecutar
- Si queremos hacer el input a mano
java ./ejemplo
- Si queremos que el input lo tome de un .txt
java ./ejemplo < ./input.txt
- Si queremos que el output lo escriba en un archivo
java ./ejemplo > ./output.txt
- Si queremos que el input lo tome de un archivo y el output lo escriba en un archivo
ejemplo ./ejemplo < ./input.txt > ./output.txt
Abrimos el archivo en visual studio code, presionamos F5
Otra opcion es el viejo y querido
System.out.println("mi variable: " + variable);
Comando | Descripcion |
---|---|
cd <directory> |
Change Directory: nos movemos a <directory> |
cd .. |
Nos movemos una carpeta para arriba |
ls |
List: lista los elementos de la carpeta que estamos parados |
cat <file1> <file2> ... <filen> |
Concatenate: imprime en la terminal los archivos que le pasamos |
echo "cualquier mensaje" |
Imprime el mensaje en la terminal |
<comando1> | <comando2> |
Toma el output del comando1 y lo ingresa como input al comando2 |
<comando> < <archivo> |
Ejecuta comando y le pasa el archivo como input (linea por linea, es decir, entre cada linea es como que presionemos enter) |
<comando> > <archivo> |
Ejecuta el comando y guarda el output en el archivo |