diff --git a/ tareas/ensayo.tex b/ tareas/ensayo.tex new file mode 100644 index 0000000..6416631 --- /dev/null +++ b/ tareas/ensayo.tex @@ -0,0 +1,105 @@ + +\documentclass[12pt]{article} + +% --- Página y tipografía --- +\usepackage[letterpaper,margin=2.5cm]{geometry} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} % si compilas con pdfLaTeX +\usepackage{lmodern} +\usepackage{microtype} + +% --- Imágenes y color --- +\usepackage{graphicx} +\usepackage{xcolor} + +% --- Control fino de espacios --- +\usepackage{setspace} +\setlength{\parindent}{0pt} + +\begin{document} +\thispagestyle{empty} + +% ===== Encabezado con logos + texto ===== +\begin{minipage}[c]{0.18\textwidth} + \centering + % Cambia por tu logo izquierdo + \includegraphics[width=0.95\linewidth]{logo_usac.jpeg} +\end{minipage} +\hfill +\begin{minipage}[c]{0.60\textwidth} + \small + Universidad de San Carlos de Guatemala\\ + Escuela de Ciencias Físicas y Matemáticas\\ + Nombre estudiante\\ + Carnet: \\ + Programación 1\\ +\end{minipage} +\hfill +\begin{minipage}[c]{0.18\textwidth} + \centering + % Cambia por tu logo derecho + \includegraphics[width=1.4\linewidth]{logo_ecfm.jpg} +\end{minipage} + +\vspace{0.5cm} + +% Línea horizontal superior (gruesa) +\noindent\rule{\textwidth}{1.2pt} + +\vspace{0.2cm} + +% ===== Título ===== +\begin{center} + {\Large\scshape Ensayo}\\[0.3em] +\end{center} + +\vspace{0.1cm} + +% Fecha +\begin{center} + \small\scshape viernes 06 de febrero de 2026 +\end{center} + +\vspace{0.2cm} + +% Línea horizontal inferior (gruesa) +\noindent\rule{\textwidth}{1.2pt} + +\vspace{0.6cm} + +% ===== Caja de resumen ===== +\noindent +\colorbox{gray!36}{% + \parbox{\textwidth}{% + \vspace{0.6em} + \textbf{Resumen}\\[0.4em] + \small +El presente ensayo se enfoca en dara respuesta a las siguientes preguntas: ¿cuál sería tú área de investigación en Física? y ¿explica por qué la programación te sería útil en dicho campo?, se realizá una descripción para cada pregunta, desde el punto de vista de un estudiante de física. + \vspace{0.8em} + }% +} + + +\section{Pregunta No. 1} +\subsection{¿Cuál sería tú área de investigación en Física?} + +Es un tema facinante, si fuera un investigador de física, el área de investigación sería la Física de Radiociones, ya que es un área que conbina las leyes naturales y la vida y poder contribuir a savar las mismas.\\ + Y en esta misma área el interés en la investigación sería en Radioterapia que es el uso de radiación ionizante para tratar tumores (física de partículas, dosis que se requiere a un paciente).\\ + De acuerdo al siguiente texto "La radiación ionizante es la liberación de electrones mediante la emisión de energía en forma de ondas y partículas que se producen de forma natural en los materiales que conocemos como radiactivos (suelo, agua y vegetación) y de forma artificial en isótopos creados por el hombre, tal como los equipos que producen Rayos-X" (ATSDR en Español, 2016).\\ +Por tanto comprender la liberación de los electrones puede alterar o modificar la estructura molecular de un ser vivo. + + +\section{Pregunta 2} +\subsection{¿Explica por qué la programación te sería útil en dicho campo?} + +En física médica, no siempre se puedes experimentar directamente con humanos por razones éticas y de seguridad.\\ + +¿Para qué sirve? Se usan algoritmos (como Geant4 o MCNP) para simular millones de trayectorias de partículas (fotones, electrones, protones) golpeando un tejido.\\ + +La programación te permite: Definir la geometría del paciente y calcular exactamente cuánta energía se deposita en cada milímetro cúbico. + + + +\end{document} + +\end{document} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 4380b40..ab457d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,4 @@ -# VS Code en navegador + utilidades (imagen mantenida con s6-overlay) -FROM ghcr.io/linuxserver/code-server:latest - -# Paquetes para C++ y utilidades de desarrollo -USER root -RUN apt-get update && apt-get install -y --no-install-recommends \ - build-essential g++ gdb cmake ninja-build make \ - clang clangd lldb \ - valgrind \ - git pkg-config \ - clang-format \ - && rm -rf /var/lib/apt/lists/* - -# Carpeta de trabajo (la imagen usa /config como HOME) -WORKDIR /config/workspace -RUN mkdir -p /config/workspace +FROM gcc:latest +WORKDIR /usr/src/app +COPY . . +CMD ["tail", "-f", "/dev/null"] diff --git a/TRABAJOS_ENTORNO/calcular_fuerza b/TRABAJOS_ENTORNO/calcular_fuerza new file mode 100755 index 0000000..d6d497e Binary files /dev/null and b/TRABAJOS_ENTORNO/calcular_fuerza differ diff --git a/TRABAJOS_ENTORNO/fisica.cpp b/TRABAJOS_ENTORNO/fisica.cpp new file mode 100644 index 0000000..c2161e1 --- /dev/null +++ b/TRABAJOS_ENTORNO/fisica.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +int main() { + double masa, aceleracion, fuerza; + cout << "Ingrese la masa (kg): "; + cin >> masa; + cout << "Ingrese la aceleracion (m/s^2): "; + cin >> aceleracion; + + fuerza = masa * aceleracion; + + cout << "La fuerza resultante es: " << fuerza << " Newtons" << endl; + return 0; +} diff --git a/TRABAJOS_ENTORNO/prueba.txt b/TRABAJOS_ENTORNO/prueba.txt new file mode 100644 index 0000000..a19abfe --- /dev/null +++ b/TRABAJOS_ENTORNO/prueba.txt @@ -0,0 +1 @@ +Hola diff --git a/autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp b/autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp new file mode 100644 index 0000000..56ba6bc --- /dev/null +++ b/autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp @@ -0,0 +1,53 @@ +#include +#include +#include // Para usar std::max y std::min + +int busqueda_dos_en_dos(const std::vector& lista, int n, int objetivo) { + int i = 0; + + // 1. Avanzar de 2 en 2 mientras el elemento sea menor al objetivo + while (i < n && lista[i] < objetivo) { + i = i + 2; + } + + // 2. Retroceder 1 posicion (el objetivo puede estar en i-1 o i) + i = i - 1; + + // 3. Revisar hasta 2 posiciones a partir de la nueva i + // Usamos max y min para no salirnos de los bordes del vector + int inicio = std::max(0, i); + int fin = std::min(i + 1, n - 1); + + for (int j = inicio; j <= fin; j++) { + if (lista[j] == objetivo) { + return j; // Retorna la primera ocurrencia + } + } + + return -1; // No encontrado +} + +int main() { + int n, objetivo; + + // Leer cantidad de elementos + if (!(std::cin >> n)) return 0; + + // Leer la lista ordenada + std::vector lista(n); + for (int i = 0; i < n; i++) { + std::cin >> lista[i]; + } + + // Leer el valor a buscar + std::cin >> objetivo; + + // Ejecutar búsqueda e imprimir resultado + std::cout << busqueda_dos_en_dos(lista, n, objetivo) << std::endl; + + return 0; +} + + + + diff --git a/autograder/Tareas_Entregadas/contar_vocales.cpp b/autograder/Tareas_Entregadas/contar_vocales.cpp new file mode 100644 index 0000000..670543b --- /dev/null +++ b/autograder/Tareas_Entregadas/contar_vocales.cpp @@ -0,0 +1,27 @@ +#include +#include +#include // Necesario para tolower() + +int main() { + std::string linea; + // Usamos getline para leer toda la frase, incluyendo espacios + if (!std::getline(std::cin, linea)) return 0; + + int contador = 0; + + // Recorremos la cadena carácter por carácter + for (char c : linea) { + // Convertimos a minúscula para comparar más fácil + char letra = std::tolower(c); + + // Verificamos si es una vocal + if (letra == 'a' || letra == 'e' || letra == 'i' || letra == 'o' || letra == 'u') { + contador++; + } + } + + // Imprimimos solo el número final + std::cout << contador << std::endl; + + return 0; +} diff --git a/autograder/Tareas_Entregadas/numero_primo.cpp b/autograder/Tareas_Entregadas/numero_primo.cpp new file mode 100644 index 0000000..e079095 --- /dev/null +++ b/autograder/Tareas_Entregadas/numero_primo.cpp @@ -0,0 +1,40 @@ +#include +#include + +int main() { + int n; + if (!(std::cin >> n)) return 0; + + // Casos especiales + if (n < 2) { + std::cout << "no primo"; + return 0; + } + if (n == 2) { + std::cout << "primo"; + return 0; + } + if (n % 2 == 0) { + std::cout << "no primo"; + return 0; + } + + // Algoritmo eficiente: revisar hasta la raíz de n + bool es_primo = true; + int limite = std::sqrt(n); + + for (int i = 3; i <= limite; i += 2) { + if (n % i == 0) { + es_primo = false; + break; + } + } + + if (es_primo) std::cout << "primo"; + else std::cout << "no primo"; + + return 0; +} + + + diff --git a/autograder/Tareas_Entregadas/suma_digitos.cpp b/autograder/Tareas_Entregadas/suma_digitos.cpp new file mode 100644 index 0000000..6064d10 --- /dev/null +++ b/autograder/Tareas_Entregadas/suma_digitos.cpp @@ -0,0 +1,20 @@ +#include + +int main() { + long long n; + // Leer el número entero positivo + if (!(std::cin >> n)) return 0; + + long long suma = 0; + + // Mientras n sea mayor a 0, seguimos extrayendo dígitos + while (n > 0) { + suma += (n % 10); // Sumamos el último dígito (el residuo de n/10) + n = n / 10; // Eliminamos el último dígito (división entera) + } + + // Imprimimos el resultado final + std::cout << suma << std::endl; + + return 0; +} diff --git a/autograder/autograder.sh b/autograder/autograder.sh index 3fbfcdf..244e834 100755 --- a/autograder/autograder.sh +++ b/autograder/autograder.sh @@ -51,18 +51,14 @@ run_test() { TOTAL=$((TOTAL + 1)) local actual - local t_start t_end elapsed_ms - t_start=$(date +%s%3N) actual=$(timeout "$TIMEOUT" bash -c "$cmd" < "$input" 2>/dev/null) || true - t_end=$(date +%s%3N) - elapsed_ms=$(( t_end - t_start )) if diff -q <(echo "$actual" | tr -s ' ' | sed 's/[[:space:]]*$//') \ <(cat "$expected" | tr -s ' ' | sed 's/[[:space:]]*$//') > /dev/null 2>&1; then - pass "$name (${elapsed_ms} ms)" + pass "$name" PASSED=$((PASSED + 1)) else - fail "$name (${elapsed_ms} ms)" + fail "$name" echo " Esperado:" cat "$expected" | sed 's/^/ /' echo " Obtenido:" diff --git a/autograder/tests/busqueda_dos_en_dos/caso1.in b/autograder/tests/busqueda_dos_en_dos/caso1.in index b4b38af..f599e28 100644 --- a/autograder/tests/busqueda_dos_en_dos/caso1.in +++ b/autograder/tests/busqueda_dos_en_dos/caso1.in @@ -1,3 +1 @@ -7 -2 5 8 11 14 17 20 -11 +10 diff --git a/autograder/tests/busqueda_dos_en_dos/caso1.out b/autograder/tests/busqueda_dos_en_dos/caso1.out index 00750ed..3a2e3f4 100644 --- a/autograder/tests/busqueda_dos_en_dos/caso1.out +++ b/autograder/tests/busqueda_dos_en_dos/caso1.out @@ -1 +1 @@ -3 +-1 diff --git a/autograder/tests/contar_vocales/caso1.in b/autograder/tests/contar_vocales/caso1.in index 22c0295..95e53aa 100644 --- a/autograder/tests/contar_vocales/caso1.in +++ b/autograder/tests/contar_vocales/caso1.in @@ -1 +1 @@ -Hola Mundo +murcielago diff --git a/autograder/tests/contar_vocales/caso1.out b/autograder/tests/contar_vocales/caso1.out index b8626c4..7ed6ff8 100644 --- a/autograder/tests/contar_vocales/caso1.out +++ b/autograder/tests/contar_vocales/caso1.out @@ -1 +1 @@ -4 +5 diff --git a/autograder/tests/numero_primo/caso3.in b/autograder/tests/numero_primo/caso3.in index 0cfbf08..b1bd38b 100644 --- a/autograder/tests/numero_primo/caso3.in +++ b/autograder/tests/numero_primo/caso3.in @@ -1 +1 @@ -2 +13 diff --git a/autograder/tests/ordenamiento/caso1.in b/autograder/tests/ordenamiento/caso1.in index cfad2df..0236378 100644 --- a/autograder/tests/ordenamiento/caso1.in +++ b/autograder/tests/ordenamiento/caso1.in @@ -1,3 +1,2 @@ -burbuja -7 -64 34 25 12 22 11 90 +5 +3 1 4 1 5 diff --git a/autograder/tests/ordenamiento/caso1.out b/autograder/tests/ordenamiento/caso1.out index 37c470d..b8a5a7e 100644 --- a/autograder/tests/ordenamiento/caso1.out +++ b/autograder/tests/ordenamiento/caso1.out @@ -1 +1 @@ -11 12 22 25 34 64 90 +1 1 3 4 5 diff --git a/autograder/tests/ordenamiento/caso2.in b/autograder/tests/ordenamiento/caso2.in index 7f749fb..86722ce 100644 --- a/autograder/tests/ordenamiento/caso2.in +++ b/autograder/tests/ordenamiento/caso2.in @@ -1,3 +1,2 @@ -burbuja -8 -3 1 4 1 5 9 2 6 +4 +9 2 7 3 diff --git a/autograder/tests/ordenamiento/caso2.out b/autograder/tests/ordenamiento/caso2.out index 3871e1a..58e611f 100644 --- a/autograder/tests/ordenamiento/caso2.out +++ b/autograder/tests/ordenamiento/caso2.out @@ -1 +1 @@ -1 1 2 3 4 5 6 9 +2 3 7 9 diff --git a/autograder/tests/ordenamiento/caso3.in b/autograder/tests/ordenamiento/caso3.in index bc639bf..192e9d9 100644 --- a/autograder/tests/ordenamiento/caso3.in +++ b/autograder/tests/ordenamiento/caso3.in @@ -1,3 +1,2 @@ -burbuja 1 42 diff --git a/autograder/tests/suma_digitos/caso2.in b/autograder/tests/suma_digitos/caso2.in index ec63514..ea90ee3 100644 --- a/autograder/tests/suma_digitos/caso2.in +++ b/autograder/tests/suma_digitos/caso2.in @@ -1 +1 @@ -9 +45 diff --git a/hola_mundo.cpp b/hola_mundo.cpp new file mode 100644 index 0000000..4631985 --- /dev/null +++ b/hola_mundo.cpp @@ -0,0 +1,6 @@ +#include + +int main() { + std::cout << "Hola Mundo desde Docker!" << std::endl; + return 0; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..2d3959e --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +

Docker Funciona

diff --git a/mi_app b/mi_app new file mode 100755 index 0000000..a5ee04c Binary files /dev/null and b/mi_app differ