- Instalacion
- WSL
- Instalar Compiladores
- Compilar, Ejecutar, y Debuggear
- Comandos basicos de la terminal
Vamos a estar utilizando sistemas operativos *nix para llevar a cabo el curso. Esto es unix/linux/macOs
Los que utilicen Windows 10 deberan instalar WSL y una distribucion de linux (recomiendo Ubuntu)
En ambos casos vamos a tener que instalar los compiladores para los lenguajes que tengamos ganas
- Abrir powershell COMO ADMINISTRADOR y escribir
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- De aca podemos salta al paso 6 ), pero es recomendable hacer los pasos en el medio ya que va a andar mejor
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- Reiniciar la compu
-
- Descargar actualizacion, es chiquita, deberia ser muy rapido
- Instalar la actualizacion
- En una terminal de powershell
wsl --set-default-version 2
- Descargar distribucion de linux.
- Vamos a la Microsoft Store
- Buscamos la distribucion que tengamos ganas
- En principio utilicen Ubuntu que es de las mas comunes
- De todas formas la unica diferencia es que capaz alguna viene con mas programas instalados, y utilizan un package manager distinto (en vez de
apt
)
- De todas formas la unica diferencia es que capaz alguna viene con mas programas instalados, y utilizan un package manager distinto (en vez de
- C++ - Podemos elegir el compilador
clang++
og++
- Ubuntu: primero tenemos que cargar la base de datos del package manager,
sudo apt update
, luego instalamos el compilador que queremossudo apt install -y clang
osudo 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
- Lo que significa cada comando
- 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
- Ubuntu: primero tenemos que cargar la base de datos del package manager,
- Java
- Ubuntu:
sudo apt install -y openjdk-16-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
Siempre tenemos 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
Tenemos tambien 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 los archivos que le pasamos en la terminal |
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 |