From 31764419a0da4079e55bec0f2f5bb25f87d19467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Fri, 6 Feb 2026 03:28:13 -0600 Subject: [PATCH 1/9] =?UTF-8?q?Agregando=20ensayo=20de=20investigaci=C3=B3?= =?UTF-8?q?n=20en=20LaTex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tareas/ensayo.tex | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tareas/ensayo.tex diff --git a/tareas/ensayo.tex b/tareas/ensayo.tex new file mode 100644 index 0000000..e69de29 From 49f9cebf599c2780de935be3637a4dd9b7398315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Fri, 6 Feb 2026 03:39:34 -0600 Subject: [PATCH 2/9] =?UTF-8?q?Ahora=20s=C3=AD=20con=20contenido=20real?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tareas/ensayo.tex | 105 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) diff --git a/tareas/ensayo.tex b/tareas/ensayo.tex index e69de29..6416631 100644 --- a/tareas/ensayo.tex +++ 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 From 0a98ebdf64ceff034924a34b1119ce96f1680c4c Mon Sep 17 00:00:00 2001 From: Alicia Tomas Date: Sat, 14 Mar 2026 01:19:25 -0600 Subject: [PATCH 3/9] Guardando cambios antes de sincronizar --- Dockerfile | 4 + autograder/README.md | 119 +++++++++++++++ autograder/autograder.bat | 87 +++++++++++ autograder/autograder.sh | 138 ++++++++++++++++++ .../tareas/contar_hasta_10/enunciado.md | 33 +++++ .../tareas/contar_hasta_10/solucion.cpp | 9 ++ autograder/tests/contar_hasta_10/caso1.in | 1 + autograder/tests/contar_hasta_10/caso1.out | 10 ++ autograder/tests/ordenamiento/caso1.in | 2 + autograder/tests/ordenamiento/caso1.out | 1 + autograder/tests/ordenamiento/caso2.in | 2 + autograder/tests/ordenamiento/caso2.out | 1 + autograder/tests/ordenamiento/caso3.in | 2 + autograder/tests/ordenamiento/caso3.out | 1 + hola_mundo.cpp | 6 + 15 files changed, 416 insertions(+) create mode 100644 Dockerfile create mode 100644 autograder/README.md create mode 100644 autograder/autograder.bat create mode 100755 autograder/autograder.sh create mode 100644 autograder/tareas/contar_hasta_10/enunciado.md create mode 100644 autograder/tareas/contar_hasta_10/solucion.cpp create mode 100644 autograder/tests/contar_hasta_10/caso1.in create mode 100644 autograder/tests/contar_hasta_10/caso1.out create mode 100644 autograder/tests/ordenamiento/caso1.in create mode 100644 autograder/tests/ordenamiento/caso1.out create mode 100644 autograder/tests/ordenamiento/caso2.in create mode 100644 autograder/tests/ordenamiento/caso2.out create mode 100644 autograder/tests/ordenamiento/caso3.in create mode 100644 autograder/tests/ordenamiento/caso3.out create mode 100644 hola_mundo.cpp diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab457d5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM gcc:latest +WORKDIR /usr/src/app +COPY . . +CMD ["tail", "-f", "/dev/null"] diff --git a/autograder/README.md b/autograder/README.md new file mode 100644 index 0000000..a28b4e8 --- /dev/null +++ b/autograder/README.md @@ -0,0 +1,119 @@ +# Autograder — Programacion 1, ECFM + +Herramienta para evaluar tareas de C++ contra casos de prueba automaticamente. +Compatible con **Windows, Linux y macOS** — solo requiere tener `g++` instalado. + +--- + +## Estructura de directorios + +``` +autograder/ +├── autograder.bat # Windows +├── autograder.sh # Linux / macOS +├── tests/ +│ └── / +│ ├── caso1.in # Entrada del caso de prueba +│ ├── caso1.out # Salida esperada +│ ├── caso2.in +│ └── caso2.out +└── tareas/ + └── / + └── enunciado.md +``` + +--- + +## Uso + +### Windows + +```bat +autograder.bat +``` + +### Linux / macOS + +```bash +chmod +x autograder.sh # solo la primera vez +./autograder.sh +``` + +--- + +## Ejemplo: "Contar hasta 10" + +### 1. Lee el enunciado + +``` +tareas/contar_hasta_10/enunciado.md +``` + +### 2. Escribe tu solucion en C++ + +Guarda el archivo como `solucion.cpp`: + +```cpp +#include +using namespace std; + +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} +``` + +### 3. Ejecuta el autograder + +```bat +:: Windows +autograder.bat contar_hasta_10 solucion.cpp +``` + +```bash +# Linux / macOS +./autograder.sh contar_hasta_10 solucion.cpp +``` + +### 4. Lee el resultado + +``` + .:#@@@@+. _____ ____ _____ __ __ + :%@@@@@@%: | ____/ ___| ___| \/ | + *@@@@@@@@* | _|| | | |_ | |\/| | + :%@@@@@@%: | |__| |___| _| | | | | + '-#@@@@-' |_____\____|_| |_| |_| + Autograder — Programacion 1 F12 + +════════════════════════════════════════ + Tarea : contar_hasta_10 + Archivo: solucion.cpp +════════════════════════════════════════ + [INFO] Compilacion exitosa + [PASS] caso1 + + Resultado: 1 / 1 casos pasados +════════════════════════════════════════ +``` + +--- + +## Como agregar una nueva tarea + +1. Crea la carpeta `tests//` +2. Por cada caso agrega: + - `casoN.in` — texto de entrada (puede estar vacio) + - `casoN.out` — salida esperada exacta +3. Opcionalmente crea `tareas//enunciado.md` + +--- + +## Requisitos + +| Sistema | Instalacion de g++ | +|---------|--------------------| +| Linux | `sudo apt install build-essential` | +| macOS | `xcode-select --install` | +| Windows | [MinGW-w64](https://www.mingw-w64.org/) — asegurarse de agregar `bin/` al PATH | diff --git a/autograder/autograder.bat b/autograder/autograder.bat new file mode 100644 index 0000000..43794d1 --- /dev/null +++ b/autograder/autograder.bat @@ -0,0 +1,87 @@ +@echo off +setlocal enabledelayedexpansion + +:: ── Banner ─────────────────────────────────────────────────────────────────── +echo .:#@@@@+. _____ ____ _____ __ __ +echo :%%@@@@@@%%: ^| ____/ ___^| ___^| \/ ^| +echo *@@@@@@@@* ^| _^|^| ^| ^| ^|_ ^| ^|\/^| ^| +echo :%%@@@@@@%%: ^| ^|__^| ^|___^| _^| ^| ^| ^| ^| +echo '-#@@@@-' ^|_____\____^|_^| ^|_^| ^|_^| +echo Autograder -- Programacion 1 F12 +echo. + +:: ── Argumentos ─────────────────────────────────────────────────────────────── +if "%~2"=="" ( + echo Uso: autograder.bat ^ ^ + echo. + echo Ejemplo: + echo autograder.bat contar_hasta_10 solucion.cpp + echo autograder.bat ordenamiento solucion.cpp + exit /b 1 +) + +set TAREA=%~1 +set ARCHIVO=%~2 + +:: Verificar extension +if /i not "%ARCHIVO:~-4%"==".cpp" ( + echo [FAIL] Solo se aceptan archivos .cpp + exit /b 1 +) + +set BINARIO=%TEMP%\programa_ecfm.exe +set SALIDA_TMP=%TEMP%\salida_ecfm.txt +set TOTAL=0 +set PASADOS=0 + +echo ════════════════════════════════════════════════════════ +echo Tarea : %TAREA% +echo Archivo: %ARCHIVO% +echo ════════════════════════════════════════════════════════ + +:: ── Compilar ───────────────────────────────────────────────────────────────── +g++ -std=c++17 -O2 -Wall -o "%BINARIO%" "%ARCHIVO%" 2>"%TEMP%\ecfm_compile_err.txt" +if errorlevel 1 ( + echo [FAIL] Error de compilacion: + type "%TEMP%\ecfm_compile_err.txt" + exit /b 1 +) +echo [INFO] Compilacion exitosa + +:: ── Correr casos de prueba ──────────────────────────────────────────────────── +set TEST_DIR=%~dp0tests\%TAREA% + +if not exist "%TEST_DIR%" ( + echo [FAIL] No se encontro la carpeta de tests: %TEST_DIR% + exit /b 1 +) + +for %%F in ("%TEST_DIR%\*.in") do ( + set /a TOTAL+=1 + set CASO=%%~nF + set EXPECTED=%%~dpnF.out + + if exist "!EXPECTED!" ( + "%BINARIO%" < "%%F" > "%SALIDA_TMP%" 2>nul + + fc /w "%SALIDA_TMP%" "!EXPECTED!" >nul 2>&1 + if not errorlevel 1 ( + echo [PASS] !CASO! + set /a PASADOS+=1 + ) else ( + echo [FAIL] !CASO! + echo Esperado: + for /f "usebackq tokens=*" %%L in ("!EXPECTED!") do echo %%L + echo Obtenido: + for /f "usebackq tokens=*" %%L in ("%SALIDA_TMP%") do echo %%L + ) + ) else ( + echo [INFO] Sin .out para !CASO! - omitido + ) +) + +echo. +echo Resultado: %PASADOS% / %TOTAL% casos pasados +echo ════════════════════════════════════════════════════════ + +endlocal diff --git a/autograder/autograder.sh b/autograder/autograder.sh new file mode 100755 index 0000000..244e834 --- /dev/null +++ b/autograder/autograder.sh @@ -0,0 +1,138 @@ +#!/bin/bash +# Autograder — Programacion 1, ECFM +# Evalua tareas de C++ y Python contra casos de prueba + +set -euo pipefail + +# ── Banner ──────────────────────────────────────────────────────────────────── +banner() { + echo " .:#@@@@+. _____ ____ _____ __ __ " + echo " :%@@@@@@%: | ____/ ___| ___| \\/ |" + echo " *@@@@@@@@* | _|| | | |_ | |\\/| |" + echo " :%@@@@@@%: | |__| |___| _| | | | |" + echo " '-#@@@@-' |_____\\____|_| |_| |_|" + echo " Autograder — Programacion 1 F12" + echo "" +} + +# ── Colores ─────────────────────────────────────────────────────────────────── +GREEN='\033[0;32m'; RED='\033[0;31m'; YELLOW='\033[1;33m'; RESET='\033[0m' +pass() { echo -e " ${GREEN}[PASS]${RESET} $1"; } +fail() { echo -e " ${RED}[FAIL]${RESET} $1"; } +info() { echo -e " ${YELLOW}[INFO]${RESET} $1"; } + +# ── Configuracion ───────────────────────────────────────────────────────────── +TIMEOUT=5 # segundos maximos por caso de prueba +TEMP_DIR=$(mktemp -d) +trap "rm -rf $TEMP_DIR" EXIT + +TOTAL=0; PASSED=0 + +# ── Compilar C++ ────────────────────────────────────────────────────────────── +compile_cpp() { + local src="$1" + local bin="$TEMP_DIR/programa" + if g++ -std=c++17 -O2 -Wall -o "$bin" "$src" 2>"$TEMP_DIR/compile_err"; then + echo "$bin" + else + echo "" + cat "$TEMP_DIR/compile_err" >&2 + fi +} + +# ── Ejecutar un caso de prueba ──────────────────────────────────────────────── +# run_test +run_test() { + local cmd="$1" + local input="$2" + local expected="$3" + local name="$4" + + TOTAL=$((TOTAL + 1)) + + local actual + actual=$(timeout "$TIMEOUT" bash -c "$cmd" < "$input" 2>/dev/null) || true + + if diff -q <(echo "$actual" | tr -s ' ' | sed 's/[[:space:]]*$//') \ + <(cat "$expected" | tr -s ' ' | sed 's/[[:space:]]*$//') > /dev/null 2>&1; then + pass "$name" + PASSED=$((PASSED + 1)) + else + fail "$name" + echo " Esperado:" + cat "$expected" | sed 's/^/ /' + echo " Obtenido:" + echo "$actual" | sed 's/^/ /' + fi +} + +# ── Evaluar tarea ───────────────────────────────────────────────────────────── +grade() { + local tarea="$1" # ej: tareas/tarea1 + local archivo="$2" # archivo del estudiante (.cpp o .py) + + local ext="${archivo##*.}" + local cmd="" + + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo " Tarea : $(basename $tarea)" + echo " Archivo: $archivo" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + + if [[ "$ext" != "cpp" ]]; then + fail "Solo se aceptan archivos .cpp (recibido: .$ext)" + return + fi + + local bin + bin=$(compile_cpp "$archivo") + if [[ -z "$bin" ]]; then + fail "Error de compilacion" + return + fi + cmd="$bin" + info "Compilacion exitosa" + + # Correr cada caso de prueba definido en tests// + local test_dir="tests/$(basename $tarea)" + if [[ ! -d "$test_dir" ]]; then + fail "No se encontraron tests en $test_dir" + return + fi + + for input_file in "$test_dir"/*.in; do + [[ -f "$input_file" ]] || continue + local base="${input_file%.in}" + local expected_file="${base}.out" + local case_name=$(basename "$base") + + if [[ ! -f "$expected_file" ]]; then + info "Sin archivo .out para $case_name — omitido" + continue + fi + + run_test "$cmd" "$input_file" "$expected_file" "$case_name" + done + + echo "" + echo " Resultado: $PASSED / $TOTAL casos pasados" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +} + +# ── Main ────────────────────────────────────────────────────────────────────── +banner + +if [[ $# -lt 2 ]]; then + echo "Uso: $0 " + echo "" + echo "Ejemplo:" + echo " $0 tareas/ordenamiento solucion.cpp" + echo " $0 tareas/busqueda solucion.py" + exit 1 +fi + +TAREA="$1" +ARCHIVO="$(realpath "$2")" # convertir a path absoluto antes del cd +cd "$(dirname "$0")" # siempre ejecutar desde autograder/ +grade "$TAREA" "$ARCHIVO" diff --git a/autograder/tareas/contar_hasta_10/enunciado.md b/autograder/tareas/contar_hasta_10/enunciado.md new file mode 100644 index 0000000..fe523f2 --- /dev/null +++ b/autograder/tareas/contar_hasta_10/enunciado.md @@ -0,0 +1,33 @@ +# Tarea: Contar hasta 10 + +Escribe un programa que imprima los números del 1 al 10, uno por línea, usando un ciclo `for`. + +## Entrada +Ninguna. + +## Salida +``` +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +``` + +## Ejemplo de solución en C++ +```cpp +#include +using namespace std; +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} +``` + diff --git a/autograder/tareas/contar_hasta_10/solucion.cpp b/autograder/tareas/contar_hasta_10/solucion.cpp new file mode 100644 index 0000000..bb8250c --- /dev/null +++ b/autograder/tareas/contar_hasta_10/solucion.cpp @@ -0,0 +1,9 @@ +#include +using namespace std; + +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} \ No newline at end of file diff --git a/autograder/tests/contar_hasta_10/caso1.in b/autograder/tests/contar_hasta_10/caso1.in new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/autograder/tests/contar_hasta_10/caso1.in @@ -0,0 +1 @@ + diff --git a/autograder/tests/contar_hasta_10/caso1.out b/autograder/tests/contar_hasta_10/caso1.out new file mode 100644 index 0000000..f00c965 --- /dev/null +++ b/autograder/tests/contar_hasta_10/caso1.out @@ -0,0 +1,10 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 diff --git a/autograder/tests/ordenamiento/caso1.in b/autograder/tests/ordenamiento/caso1.in new file mode 100644 index 0000000..0236378 --- /dev/null +++ b/autograder/tests/ordenamiento/caso1.in @@ -0,0 +1,2 @@ +5 +3 1 4 1 5 diff --git a/autograder/tests/ordenamiento/caso1.out b/autograder/tests/ordenamiento/caso1.out new file mode 100644 index 0000000..b8a5a7e --- /dev/null +++ b/autograder/tests/ordenamiento/caso1.out @@ -0,0 +1 @@ +1 1 3 4 5 diff --git a/autograder/tests/ordenamiento/caso2.in b/autograder/tests/ordenamiento/caso2.in new file mode 100644 index 0000000..86722ce --- /dev/null +++ b/autograder/tests/ordenamiento/caso2.in @@ -0,0 +1,2 @@ +4 +9 2 7 3 diff --git a/autograder/tests/ordenamiento/caso2.out b/autograder/tests/ordenamiento/caso2.out new file mode 100644 index 0000000..58e611f --- /dev/null +++ b/autograder/tests/ordenamiento/caso2.out @@ -0,0 +1 @@ +2 3 7 9 diff --git a/autograder/tests/ordenamiento/caso3.in b/autograder/tests/ordenamiento/caso3.in new file mode 100644 index 0000000..192e9d9 --- /dev/null +++ b/autograder/tests/ordenamiento/caso3.in @@ -0,0 +1,2 @@ +1 +42 diff --git a/autograder/tests/ordenamiento/caso3.out b/autograder/tests/ordenamiento/caso3.out new file mode 100644 index 0000000..d81cc07 --- /dev/null +++ b/autograder/tests/ordenamiento/caso3.out @@ -0,0 +1 @@ +42 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; +} From 42e2dfb84754f74d5d95ed2b84c39bf9a9b46617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Fri, 20 Mar 2026 11:21:00 -0600 Subject: [PATCH 4/9] Guardando autograder y archivos de fisica en tarea1 --- tareas/ensayo.tex | 105 ---------------------------------------------- 1 file changed, 105 deletions(-) delete mode 100644 tareas/ensayo.tex diff --git a/tareas/ensayo.tex b/tareas/ensayo.tex deleted file mode 100644 index 6416631..0000000 --- a/tareas/ensayo.tex +++ /dev/null @@ -1,105 +0,0 @@ - -\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 From 412381e5fb10e249df698d8f4d27c44cd27bf9c2 Mon Sep 17 00:00:00 2001 From: Alicia Tomas Date: Sat, 14 Mar 2026 01:19:25 -0600 Subject: [PATCH 5/9] Guardando cambios antes de sincronizar --- Dockerfile | 4 + autograder/README.md | 119 +++++++++++++++ autograder/autograder.bat | 87 +++++++++++ autograder/autograder.sh | 138 ++++++++++++++++++ .../tareas/contar_hasta_10/enunciado.md | 33 +++++ .../tareas/contar_hasta_10/solucion.cpp | 9 ++ autograder/tests/contar_hasta_10/caso1.in | 1 + autograder/tests/contar_hasta_10/caso1.out | 10 ++ autograder/tests/ordenamiento/caso1.in | 2 + autograder/tests/ordenamiento/caso1.out | 1 + autograder/tests/ordenamiento/caso2.in | 2 + autograder/tests/ordenamiento/caso2.out | 1 + autograder/tests/ordenamiento/caso3.in | 2 + autograder/tests/ordenamiento/caso3.out | 1 + hola_mundo.cpp | 6 + 15 files changed, 416 insertions(+) create mode 100644 Dockerfile create mode 100644 autograder/README.md create mode 100644 autograder/autograder.bat create mode 100755 autograder/autograder.sh create mode 100644 autograder/tareas/contar_hasta_10/enunciado.md create mode 100644 autograder/tareas/contar_hasta_10/solucion.cpp create mode 100644 autograder/tests/contar_hasta_10/caso1.in create mode 100644 autograder/tests/contar_hasta_10/caso1.out create mode 100644 autograder/tests/ordenamiento/caso1.in create mode 100644 autograder/tests/ordenamiento/caso1.out create mode 100644 autograder/tests/ordenamiento/caso2.in create mode 100644 autograder/tests/ordenamiento/caso2.out create mode 100644 autograder/tests/ordenamiento/caso3.in create mode 100644 autograder/tests/ordenamiento/caso3.out create mode 100644 hola_mundo.cpp diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ab457d5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM gcc:latest +WORKDIR /usr/src/app +COPY . . +CMD ["tail", "-f", "/dev/null"] diff --git a/autograder/README.md b/autograder/README.md new file mode 100644 index 0000000..a28b4e8 --- /dev/null +++ b/autograder/README.md @@ -0,0 +1,119 @@ +# Autograder — Programacion 1, ECFM + +Herramienta para evaluar tareas de C++ contra casos de prueba automaticamente. +Compatible con **Windows, Linux y macOS** — solo requiere tener `g++` instalado. + +--- + +## Estructura de directorios + +``` +autograder/ +├── autograder.bat # Windows +├── autograder.sh # Linux / macOS +├── tests/ +│ └── / +│ ├── caso1.in # Entrada del caso de prueba +│ ├── caso1.out # Salida esperada +│ ├── caso2.in +│ └── caso2.out +└── tareas/ + └── / + └── enunciado.md +``` + +--- + +## Uso + +### Windows + +```bat +autograder.bat +``` + +### Linux / macOS + +```bash +chmod +x autograder.sh # solo la primera vez +./autograder.sh +``` + +--- + +## Ejemplo: "Contar hasta 10" + +### 1. Lee el enunciado + +``` +tareas/contar_hasta_10/enunciado.md +``` + +### 2. Escribe tu solucion en C++ + +Guarda el archivo como `solucion.cpp`: + +```cpp +#include +using namespace std; + +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} +``` + +### 3. Ejecuta el autograder + +```bat +:: Windows +autograder.bat contar_hasta_10 solucion.cpp +``` + +```bash +# Linux / macOS +./autograder.sh contar_hasta_10 solucion.cpp +``` + +### 4. Lee el resultado + +``` + .:#@@@@+. _____ ____ _____ __ __ + :%@@@@@@%: | ____/ ___| ___| \/ | + *@@@@@@@@* | _|| | | |_ | |\/| | + :%@@@@@@%: | |__| |___| _| | | | | + '-#@@@@-' |_____\____|_| |_| |_| + Autograder — Programacion 1 F12 + +════════════════════════════════════════ + Tarea : contar_hasta_10 + Archivo: solucion.cpp +════════════════════════════════════════ + [INFO] Compilacion exitosa + [PASS] caso1 + + Resultado: 1 / 1 casos pasados +════════════════════════════════════════ +``` + +--- + +## Como agregar una nueva tarea + +1. Crea la carpeta `tests//` +2. Por cada caso agrega: + - `casoN.in` — texto de entrada (puede estar vacio) + - `casoN.out` — salida esperada exacta +3. Opcionalmente crea `tareas//enunciado.md` + +--- + +## Requisitos + +| Sistema | Instalacion de g++ | +|---------|--------------------| +| Linux | `sudo apt install build-essential` | +| macOS | `xcode-select --install` | +| Windows | [MinGW-w64](https://www.mingw-w64.org/) — asegurarse de agregar `bin/` al PATH | diff --git a/autograder/autograder.bat b/autograder/autograder.bat new file mode 100644 index 0000000..43794d1 --- /dev/null +++ b/autograder/autograder.bat @@ -0,0 +1,87 @@ +@echo off +setlocal enabledelayedexpansion + +:: ── Banner ─────────────────────────────────────────────────────────────────── +echo .:#@@@@+. _____ ____ _____ __ __ +echo :%%@@@@@@%%: ^| ____/ ___^| ___^| \/ ^| +echo *@@@@@@@@* ^| _^|^| ^| ^| ^|_ ^| ^|\/^| ^| +echo :%%@@@@@@%%: ^| ^|__^| ^|___^| _^| ^| ^| ^| ^| +echo '-#@@@@-' ^|_____\____^|_^| ^|_^| ^|_^| +echo Autograder -- Programacion 1 F12 +echo. + +:: ── Argumentos ─────────────────────────────────────────────────────────────── +if "%~2"=="" ( + echo Uso: autograder.bat ^ ^ + echo. + echo Ejemplo: + echo autograder.bat contar_hasta_10 solucion.cpp + echo autograder.bat ordenamiento solucion.cpp + exit /b 1 +) + +set TAREA=%~1 +set ARCHIVO=%~2 + +:: Verificar extension +if /i not "%ARCHIVO:~-4%"==".cpp" ( + echo [FAIL] Solo se aceptan archivos .cpp + exit /b 1 +) + +set BINARIO=%TEMP%\programa_ecfm.exe +set SALIDA_TMP=%TEMP%\salida_ecfm.txt +set TOTAL=0 +set PASADOS=0 + +echo ════════════════════════════════════════════════════════ +echo Tarea : %TAREA% +echo Archivo: %ARCHIVO% +echo ════════════════════════════════════════════════════════ + +:: ── Compilar ───────────────────────────────────────────────────────────────── +g++ -std=c++17 -O2 -Wall -o "%BINARIO%" "%ARCHIVO%" 2>"%TEMP%\ecfm_compile_err.txt" +if errorlevel 1 ( + echo [FAIL] Error de compilacion: + type "%TEMP%\ecfm_compile_err.txt" + exit /b 1 +) +echo [INFO] Compilacion exitosa + +:: ── Correr casos de prueba ──────────────────────────────────────────────────── +set TEST_DIR=%~dp0tests\%TAREA% + +if not exist "%TEST_DIR%" ( + echo [FAIL] No se encontro la carpeta de tests: %TEST_DIR% + exit /b 1 +) + +for %%F in ("%TEST_DIR%\*.in") do ( + set /a TOTAL+=1 + set CASO=%%~nF + set EXPECTED=%%~dpnF.out + + if exist "!EXPECTED!" ( + "%BINARIO%" < "%%F" > "%SALIDA_TMP%" 2>nul + + fc /w "%SALIDA_TMP%" "!EXPECTED!" >nul 2>&1 + if not errorlevel 1 ( + echo [PASS] !CASO! + set /a PASADOS+=1 + ) else ( + echo [FAIL] !CASO! + echo Esperado: + for /f "usebackq tokens=*" %%L in ("!EXPECTED!") do echo %%L + echo Obtenido: + for /f "usebackq tokens=*" %%L in ("%SALIDA_TMP%") do echo %%L + ) + ) else ( + echo [INFO] Sin .out para !CASO! - omitido + ) +) + +echo. +echo Resultado: %PASADOS% / %TOTAL% casos pasados +echo ════════════════════════════════════════════════════════ + +endlocal diff --git a/autograder/autograder.sh b/autograder/autograder.sh new file mode 100755 index 0000000..244e834 --- /dev/null +++ b/autograder/autograder.sh @@ -0,0 +1,138 @@ +#!/bin/bash +# Autograder — Programacion 1, ECFM +# Evalua tareas de C++ y Python contra casos de prueba + +set -euo pipefail + +# ── Banner ──────────────────────────────────────────────────────────────────── +banner() { + echo " .:#@@@@+. _____ ____ _____ __ __ " + echo " :%@@@@@@%: | ____/ ___| ___| \\/ |" + echo " *@@@@@@@@* | _|| | | |_ | |\\/| |" + echo " :%@@@@@@%: | |__| |___| _| | | | |" + echo " '-#@@@@-' |_____\\____|_| |_| |_|" + echo " Autograder — Programacion 1 F12" + echo "" +} + +# ── Colores ─────────────────────────────────────────────────────────────────── +GREEN='\033[0;32m'; RED='\033[0;31m'; YELLOW='\033[1;33m'; RESET='\033[0m' +pass() { echo -e " ${GREEN}[PASS]${RESET} $1"; } +fail() { echo -e " ${RED}[FAIL]${RESET} $1"; } +info() { echo -e " ${YELLOW}[INFO]${RESET} $1"; } + +# ── Configuracion ───────────────────────────────────────────────────────────── +TIMEOUT=5 # segundos maximos por caso de prueba +TEMP_DIR=$(mktemp -d) +trap "rm -rf $TEMP_DIR" EXIT + +TOTAL=0; PASSED=0 + +# ── Compilar C++ ────────────────────────────────────────────────────────────── +compile_cpp() { + local src="$1" + local bin="$TEMP_DIR/programa" + if g++ -std=c++17 -O2 -Wall -o "$bin" "$src" 2>"$TEMP_DIR/compile_err"; then + echo "$bin" + else + echo "" + cat "$TEMP_DIR/compile_err" >&2 + fi +} + +# ── Ejecutar un caso de prueba ──────────────────────────────────────────────── +# run_test +run_test() { + local cmd="$1" + local input="$2" + local expected="$3" + local name="$4" + + TOTAL=$((TOTAL + 1)) + + local actual + actual=$(timeout "$TIMEOUT" bash -c "$cmd" < "$input" 2>/dev/null) || true + + if diff -q <(echo "$actual" | tr -s ' ' | sed 's/[[:space:]]*$//') \ + <(cat "$expected" | tr -s ' ' | sed 's/[[:space:]]*$//') > /dev/null 2>&1; then + pass "$name" + PASSED=$((PASSED + 1)) + else + fail "$name" + echo " Esperado:" + cat "$expected" | sed 's/^/ /' + echo " Obtenido:" + echo "$actual" | sed 's/^/ /' + fi +} + +# ── Evaluar tarea ───────────────────────────────────────────────────────────── +grade() { + local tarea="$1" # ej: tareas/tarea1 + local archivo="$2" # archivo del estudiante (.cpp o .py) + + local ext="${archivo##*.}" + local cmd="" + + echo "" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + echo " Tarea : $(basename $tarea)" + echo " Archivo: $archivo" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" + + if [[ "$ext" != "cpp" ]]; then + fail "Solo se aceptan archivos .cpp (recibido: .$ext)" + return + fi + + local bin + bin=$(compile_cpp "$archivo") + if [[ -z "$bin" ]]; then + fail "Error de compilacion" + return + fi + cmd="$bin" + info "Compilacion exitosa" + + # Correr cada caso de prueba definido en tests// + local test_dir="tests/$(basename $tarea)" + if [[ ! -d "$test_dir" ]]; then + fail "No se encontraron tests en $test_dir" + return + fi + + for input_file in "$test_dir"/*.in; do + [[ -f "$input_file" ]] || continue + local base="${input_file%.in}" + local expected_file="${base}.out" + local case_name=$(basename "$base") + + if [[ ! -f "$expected_file" ]]; then + info "Sin archivo .out para $case_name — omitido" + continue + fi + + run_test "$cmd" "$input_file" "$expected_file" "$case_name" + done + + echo "" + echo " Resultado: $PASSED / $TOTAL casos pasados" + echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" +} + +# ── Main ────────────────────────────────────────────────────────────────────── +banner + +if [[ $# -lt 2 ]]; then + echo "Uso: $0 " + echo "" + echo "Ejemplo:" + echo " $0 tareas/ordenamiento solucion.cpp" + echo " $0 tareas/busqueda solucion.py" + exit 1 +fi + +TAREA="$1" +ARCHIVO="$(realpath "$2")" # convertir a path absoluto antes del cd +cd "$(dirname "$0")" # siempre ejecutar desde autograder/ +grade "$TAREA" "$ARCHIVO" diff --git a/autograder/tareas/contar_hasta_10/enunciado.md b/autograder/tareas/contar_hasta_10/enunciado.md new file mode 100644 index 0000000..fe523f2 --- /dev/null +++ b/autograder/tareas/contar_hasta_10/enunciado.md @@ -0,0 +1,33 @@ +# Tarea: Contar hasta 10 + +Escribe un programa que imprima los números del 1 al 10, uno por línea, usando un ciclo `for`. + +## Entrada +Ninguna. + +## Salida +``` +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +``` + +## Ejemplo de solución en C++ +```cpp +#include +using namespace std; +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} +``` + diff --git a/autograder/tareas/contar_hasta_10/solucion.cpp b/autograder/tareas/contar_hasta_10/solucion.cpp new file mode 100644 index 0000000..bb8250c --- /dev/null +++ b/autograder/tareas/contar_hasta_10/solucion.cpp @@ -0,0 +1,9 @@ +#include +using namespace std; + +int main() { + for (int i = 1; i <= 10; i++) { + cout << i << "\n"; + } + return 0; +} \ No newline at end of file diff --git a/autograder/tests/contar_hasta_10/caso1.in b/autograder/tests/contar_hasta_10/caso1.in new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/autograder/tests/contar_hasta_10/caso1.in @@ -0,0 +1 @@ + diff --git a/autograder/tests/contar_hasta_10/caso1.out b/autograder/tests/contar_hasta_10/caso1.out new file mode 100644 index 0000000..f00c965 --- /dev/null +++ b/autograder/tests/contar_hasta_10/caso1.out @@ -0,0 +1,10 @@ +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 diff --git a/autograder/tests/ordenamiento/caso1.in b/autograder/tests/ordenamiento/caso1.in new file mode 100644 index 0000000..0236378 --- /dev/null +++ b/autograder/tests/ordenamiento/caso1.in @@ -0,0 +1,2 @@ +5 +3 1 4 1 5 diff --git a/autograder/tests/ordenamiento/caso1.out b/autograder/tests/ordenamiento/caso1.out new file mode 100644 index 0000000..b8a5a7e --- /dev/null +++ b/autograder/tests/ordenamiento/caso1.out @@ -0,0 +1 @@ +1 1 3 4 5 diff --git a/autograder/tests/ordenamiento/caso2.in b/autograder/tests/ordenamiento/caso2.in new file mode 100644 index 0000000..86722ce --- /dev/null +++ b/autograder/tests/ordenamiento/caso2.in @@ -0,0 +1,2 @@ +4 +9 2 7 3 diff --git a/autograder/tests/ordenamiento/caso2.out b/autograder/tests/ordenamiento/caso2.out new file mode 100644 index 0000000..58e611f --- /dev/null +++ b/autograder/tests/ordenamiento/caso2.out @@ -0,0 +1 @@ +2 3 7 9 diff --git a/autograder/tests/ordenamiento/caso3.in b/autograder/tests/ordenamiento/caso3.in new file mode 100644 index 0000000..192e9d9 --- /dev/null +++ b/autograder/tests/ordenamiento/caso3.in @@ -0,0 +1,2 @@ +1 +42 diff --git a/autograder/tests/ordenamiento/caso3.out b/autograder/tests/ordenamiento/caso3.out new file mode 100644 index 0000000..d81cc07 --- /dev/null +++ b/autograder/tests/ordenamiento/caso3.out @@ -0,0 +1 @@ +42 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; +} From dad33e7ee5c674739e885b59c045723ceb9676f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Fri, 20 Mar 2026 17:39:22 +0000 Subject: [PATCH 6/9] Sincronizando desde VS Code --- TRABAJOS_ENTORNO/calcular_fuerza | Bin 0 -> 16176 bytes TRABAJOS_ENTORNO/fisica.cpp | 15 +++++++++++++++ TRABAJOS_ENTORNO/prueba.txt | 1 + index.html | 1 + mi_app | Bin 0 -> 16024 bytes 5 files changed, 17 insertions(+) create mode 100755 TRABAJOS_ENTORNO/calcular_fuerza create mode 100644 TRABAJOS_ENTORNO/fisica.cpp create mode 100644 TRABAJOS_ENTORNO/prueba.txt create mode 100644 index.html create mode 100755 mi_app diff --git a/TRABAJOS_ENTORNO/calcular_fuerza b/TRABAJOS_ENTORNO/calcular_fuerza new file mode 100755 index 0000000000000000000000000000000000000000..d6d497ed02d265b5fbcea4f474c8ddd829de1ab5 GIT binary patch literal 16176 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 Q&i-#5N~0=Z5D>+`0Y6v0Z~y=R literal 0 HcmV?d00001 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/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 0000000000000000000000000000000000000000..a5ee04cee0b0eee1c2a6a16e44d9ebc8668d5acb GIT binary patch literal 16024 zcmeHOYit}>6~4R9!y$>ic1W`{Et#|_O$G`Feq5cE}QUy}#V$>8=B=-l%KadEI7KcaciWEf^WI5;Fb2j72 zx`If6kmguB-#zD^@7^$hYV5~=Ko~_z z>&V-TMbZVGAL9abz{q~}{tP687?uLYe&R8Pc^Jwo9oqesBbvuJO?f#_=g&MeBX5Ox zE5u_I#AD=qVovaL)qn%YRf?0*P*w<^Fv?5s*A?mgmMSnB+Fa*x?k8Rk@;B4p81W2h z*q}HWKTQ2Ga(@p4k1j2Fyf^S=9;f~`x(@x6PsRi_d#F^L>FYUE%6F8CmAUzj`To9+ zz8=$e%`WAEG>ixRbzCVZr>G2h{>PPVyT7qxNI5q+{0MCA4eSdW*dN-!{)r9j7?%N` zs9;{O-@`oq$>FMm)Y`UG&PahjKc=oI4i?i7n@mB$!Ybse32w(E+->= z8}Rx5m%j$Xq)A+ZG75VB9FWK9;MK3gklG}+LEh08-18N z6tb)DH>%+4h_XHiC`Kzj485iOV#2JV)5N9CHK%9X%191la z?=p}*`{(BDmp1?6kPz9=F9ylla`x;`nwRS5QS1E~RMqZ!6^^a@EGVH~!1~LVY9M$0 z7)xHCW@_r2>@#MHj%%>82cWiAwpV*qhcUt%^f9&)b#fLZpaR%ZH z#2JV)5N9CHK%9X%191l84E*mhV8IJjloTO9$KV=66xM&G)w=#hM8`FYC_6MjgO)1o zB)v-Qe}Hse&%Bp(e#W|$^krJVjL&5#T>s9snu~gWlZBwyW&;|VEL7`j6Q`;Eeab4t z0XmWGq^AjY6Eg5x#Z_7#$Osxs73uSss?e>>DC#dh({NL>5Kz8tZ4k)7`YYF^-VOThZ( zu>nh&Xc&n}W#1)uoT^GVd=@^~FW*;ee+CK(SV7I>p6%a;LZkTGH?aRewbLrr3=2x@ zrBORe%B4l{I(cUN5()_z&C%=oYh}Mh@c3u{cc73GdjzhJ2+O@NPz|uBBlf?8Qyc8| z;QbExe-V`Jkid4x4=&_Dxmz8fZDqf4efgtcZ%gihW-Rj5kVpUI4#D3mT=^+#hjqqh zl>c^do~}EnN=%3!9Zkz2RV8<~O6%Xu2)QEb{3pz~~7QfpwMH$$$Xz+tMSSFJb zdB<~Ri+hk%6rR1B1siz;N<*U<)~V3Re5)ixoNN zJ9(j&{NMb31uL}TA5-AFvS7o;2S=z=2UBEwfhOqP0y1Bco>OvjcHrO+gaCF#REt1` z?Grb#t6_aCk$n{FD{=P(#5Q?ih|`HXHgH44dOwLN)0-n8f0aCNW_+Iwz}aYLMz|T= z2@%;KB20gw9N05}fv2&+rD6q!UR9X0l{vFu`vqa<7b@VcG4OQF6OQK>-O4&eLLKDO zMgoK?2964#>bX_N3l_*UFgV(Qw~K00 z4_4hIm!W67T+BgOE_4P5Q$?VAgVYHV?wK;&3XSf{f7^!hDg17O+gwSy$s*J`&!@De zeYuQyCw%?}a}MV7JgdJ+dmYrE{-=#a{9O)92PinlV*WJsKTZ5aa_0Y;GoR-}y-<&? z%;$NXK|dfokE3SPxpEot2z+o3#eAMO4bvtU{NFtag;Vc`{U3xnoRhK6^Rg-8k14i( zuYo=sKbgg2P{2@`&-1|NiJv7$?w|R5{yE|gk{{12*BbC|0iP(p3^u&}TZmu(J)#rm z`6^fQ?=tHJD1`Y2{hk@bx7d-8^U3H(_|wFnCWoEacu1JXCfvss?w^0(t8LnY=g;gP zjsGd)bN+e$Aq>sHd0|+hd_7OQe*JjfWEh&o`wO{^DF3Taf$?+yV}_+%#|#DHTN>&| zzJ6?Y4hmc0!+hR{dDYM!1X_V(l>a@jh50;R=6#w`el-3?;J3hs$0yHMc^_o7Kh_yv z1#WAI&-3GD{9*uMKdoKY*}ei5ICi;zo}co*R!$7Z%{(4QzX2}hzs{%UxRpa-1Ytj| z-Pr#dP!Z3~NQG>ki7=LH5Ek1Al{=)l{W7kZ5T<+HRbfj_amwoXzZ^VDN MPkS^)2oY8M6JI7WumAu6 literal 0 HcmV?d00001 From 1b5646ae7d4bde5ea4306274d592ae4cbeb7d7b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Sat, 21 Mar 2026 13:20:39 +0000 Subject: [PATCH 7/9] gurdar ejercicio1.cpp --- autograder/ejercicio1.cpp | 45 +++++++++++++++++++++++++++++++++++++++ autograder/ejercicio2.cpp | 0 autograder/ejercicio3.cpp | 0 autograder/ejercicio4.cpp | 0 4 files changed, 45 insertions(+) create mode 100644 autograder/ejercicio1.cpp create mode 100644 autograder/ejercicio2.cpp create mode 100644 autograder/ejercicio3.cpp create mode 100644 autograder/ejercicio4.cpp diff --git a/autograder/ejercicio1.cpp b/autograder/ejercicio1.cpp new file mode 100644 index 0000000..d28a8ca --- /dev/null +++ b/autograder/ejercicio1.cpp @@ -0,0 +1,45 @@ +include +#include + +// Función de búsqueda de 2 en 2 con retroceso +int busquedaDosEnDos(const std::vector& lista, int objetivo) { + int n = lista.size(); + int i = 0; + + // 1. Avanzar de dos en dos + while (i < n && lista[i] < objetivo) { + i += 2; + } + + // 2. Si nos pasamos o llegamos al final, retrocedemos uno + // Caso A: i >= n (se salió de rango) + // Caso B: lista[i] >= objetivo (encontramos el límite) + + // Verificamos la posición actual (i) si está en rango + if (i < n && lista[i] == objetivo) { + return i; + } + + // Verificamos la posición anterior (i-1) si es válida + if (i - 1 >= 0 && i - 1 < n && lista[i - 1] == objetivo) { + return i - 1; + } + + // Si no está en ninguna, no existe + return -1; +} + +int main() { + std::vector datos = {10, 20, 30, 40, 50, 60, 70}; + int buscar = 40; + + int resultado = busquedaDosEnDos(datos, buscar); + + if (resultado != -1) { + std::cout << "Elemento encontrado en el indice: " << resultado << std::endl; + } else { + std::cout << "Elemento no encontrado." << std::endl; + } + + return 0; +} diff --git a/autograder/ejercicio2.cpp b/autograder/ejercicio2.cpp new file mode 100644 index 0000000..e69de29 diff --git a/autograder/ejercicio3.cpp b/autograder/ejercicio3.cpp new file mode 100644 index 0000000..e69de29 diff --git a/autograder/ejercicio4.cpp b/autograder/ejercicio4.cpp new file mode 100644 index 0000000..e69de29 From 8499ed613ba6e53fdcb055400792b7a8272c97ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Sun, 22 Mar 2026 21:13:26 +0000 Subject: [PATCH 8/9] =?UTF-8?q?Tareas=20completadas:=20Primos,=20Vocales,?= =?UTF-8?q?=20Suma=20y=20B=C3=BAsqueda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tareas/ensayo.tex | 105 ++++++++++++++++++ autograder/busqueda_dos_en_dos.cpp | 53 +++++++++ autograder/contar_vocales.cpp | 27 +++++ autograder/ejercicio1.cpp | 45 -------- autograder/ejercicio2.cpp | 0 autograder/ejercicio3.cpp | 0 autograder/ejercicio4.cpp | 0 autograder/numero_primo.cpp | 40 +++++++ autograder/suma_digitos.cpp | 20 ++++ autograder/tests/busqueda_dos_en_dos/caso1.in | 1 + .../tests/busqueda_dos_en_dos/caso1.out | 1 + autograder/tests/contar_vocales/caso1.in | 1 + autograder/tests/contar_vocales/caso1.out | 1 + autograder/tests/numero_primo/caso1.in | 1 + autograder/tests/numero_primo/caso1.out | 1 + autograder/tests/numero_primo/caso2.in | 1 + autograder/tests/numero_primo/caso2.out | 1 + autograder/tests/numero_primo/caso3.in | 1 + autograder/tests/numero_primo/caso3.out | 1 + autograder/tests/suma_digitos/caso1.in | 1 + autograder/tests/suma_digitos/caso1.out | 1 + autograder/tests/suma_digitos/caso2.in | 1 + autograder/tests/suma_digitos/caso2.out | 1 + 23 files changed, 259 insertions(+), 45 deletions(-) create mode 100644 tareas/ensayo.tex create mode 100644 autograder/busqueda_dos_en_dos.cpp create mode 100644 autograder/contar_vocales.cpp delete mode 100644 autograder/ejercicio1.cpp delete mode 100644 autograder/ejercicio2.cpp delete mode 100644 autograder/ejercicio3.cpp delete mode 100644 autograder/ejercicio4.cpp create mode 100644 autograder/numero_primo.cpp create mode 100644 autograder/suma_digitos.cpp create mode 100644 autograder/tests/busqueda_dos_en_dos/caso1.in create mode 100644 autograder/tests/busqueda_dos_en_dos/caso1.out create mode 100644 autograder/tests/contar_vocales/caso1.in create mode 100644 autograder/tests/contar_vocales/caso1.out create mode 100644 autograder/tests/numero_primo/caso1.in create mode 100644 autograder/tests/numero_primo/caso1.out create mode 100644 autograder/tests/numero_primo/caso2.in create mode 100644 autograder/tests/numero_primo/caso2.out create mode 100644 autograder/tests/numero_primo/caso3.in create mode 100644 autograder/tests/numero_primo/caso3.out create mode 100644 autograder/tests/suma_digitos/caso1.in create mode 100644 autograder/tests/suma_digitos/caso1.out create mode 100644 autograder/tests/suma_digitos/caso2.in create mode 100644 autograder/tests/suma_digitos/caso2.out 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/autograder/busqueda_dos_en_dos.cpp b/autograder/busqueda_dos_en_dos.cpp new file mode 100644 index 0000000..56ba6bc --- /dev/null +++ b/autograder/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/contar_vocales.cpp b/autograder/contar_vocales.cpp new file mode 100644 index 0000000..670543b --- /dev/null +++ b/autograder/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/ejercicio1.cpp b/autograder/ejercicio1.cpp deleted file mode 100644 index d28a8ca..0000000 --- a/autograder/ejercicio1.cpp +++ /dev/null @@ -1,45 +0,0 @@ -include -#include - -// Función de búsqueda de 2 en 2 con retroceso -int busquedaDosEnDos(const std::vector& lista, int objetivo) { - int n = lista.size(); - int i = 0; - - // 1. Avanzar de dos en dos - while (i < n && lista[i] < objetivo) { - i += 2; - } - - // 2. Si nos pasamos o llegamos al final, retrocedemos uno - // Caso A: i >= n (se salió de rango) - // Caso B: lista[i] >= objetivo (encontramos el límite) - - // Verificamos la posición actual (i) si está en rango - if (i < n && lista[i] == objetivo) { - return i; - } - - // Verificamos la posición anterior (i-1) si es válida - if (i - 1 >= 0 && i - 1 < n && lista[i - 1] == objetivo) { - return i - 1; - } - - // Si no está en ninguna, no existe - return -1; -} - -int main() { - std::vector datos = {10, 20, 30, 40, 50, 60, 70}; - int buscar = 40; - - int resultado = busquedaDosEnDos(datos, buscar); - - if (resultado != -1) { - std::cout << "Elemento encontrado en el indice: " << resultado << std::endl; - } else { - std::cout << "Elemento no encontrado." << std::endl; - } - - return 0; -} diff --git a/autograder/ejercicio2.cpp b/autograder/ejercicio2.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/autograder/ejercicio3.cpp b/autograder/ejercicio3.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/autograder/ejercicio4.cpp b/autograder/ejercicio4.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/autograder/numero_primo.cpp b/autograder/numero_primo.cpp new file mode 100644 index 0000000..e079095 --- /dev/null +++ b/autograder/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/suma_digitos.cpp b/autograder/suma_digitos.cpp new file mode 100644 index 0000000..6064d10 --- /dev/null +++ b/autograder/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/tests/busqueda_dos_en_dos/caso1.in b/autograder/tests/busqueda_dos_en_dos/caso1.in new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/autograder/tests/busqueda_dos_en_dos/caso1.in @@ -0,0 +1 @@ +10 diff --git a/autograder/tests/busqueda_dos_en_dos/caso1.out b/autograder/tests/busqueda_dos_en_dos/caso1.out new file mode 100644 index 0000000..3a2e3f4 --- /dev/null +++ b/autograder/tests/busqueda_dos_en_dos/caso1.out @@ -0,0 +1 @@ +-1 diff --git a/autograder/tests/contar_vocales/caso1.in b/autograder/tests/contar_vocales/caso1.in new file mode 100644 index 0000000..95e53aa --- /dev/null +++ b/autograder/tests/contar_vocales/caso1.in @@ -0,0 +1 @@ +murcielago diff --git a/autograder/tests/contar_vocales/caso1.out b/autograder/tests/contar_vocales/caso1.out new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/autograder/tests/contar_vocales/caso1.out @@ -0,0 +1 @@ +5 diff --git a/autograder/tests/numero_primo/caso1.in b/autograder/tests/numero_primo/caso1.in new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/autograder/tests/numero_primo/caso1.in @@ -0,0 +1 @@ +7 diff --git a/autograder/tests/numero_primo/caso1.out b/autograder/tests/numero_primo/caso1.out new file mode 100644 index 0000000..9ef3b7f --- /dev/null +++ b/autograder/tests/numero_primo/caso1.out @@ -0,0 +1 @@ +primo diff --git a/autograder/tests/numero_primo/caso2.in b/autograder/tests/numero_primo/caso2.in new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/autograder/tests/numero_primo/caso2.in @@ -0,0 +1 @@ +10 diff --git a/autograder/tests/numero_primo/caso2.out b/autograder/tests/numero_primo/caso2.out new file mode 100644 index 0000000..c9341ab --- /dev/null +++ b/autograder/tests/numero_primo/caso2.out @@ -0,0 +1 @@ +no primo diff --git a/autograder/tests/numero_primo/caso3.in b/autograder/tests/numero_primo/caso3.in new file mode 100644 index 0000000..b1bd38b --- /dev/null +++ b/autograder/tests/numero_primo/caso3.in @@ -0,0 +1 @@ +13 diff --git a/autograder/tests/numero_primo/caso3.out b/autograder/tests/numero_primo/caso3.out new file mode 100644 index 0000000..9ef3b7f --- /dev/null +++ b/autograder/tests/numero_primo/caso3.out @@ -0,0 +1 @@ +primo diff --git a/autograder/tests/suma_digitos/caso1.in b/autograder/tests/suma_digitos/caso1.in new file mode 100644 index 0000000..190a180 --- /dev/null +++ b/autograder/tests/suma_digitos/caso1.in @@ -0,0 +1 @@ +123 diff --git a/autograder/tests/suma_digitos/caso1.out b/autograder/tests/suma_digitos/caso1.out new file mode 100644 index 0000000..1e8b314 --- /dev/null +++ b/autograder/tests/suma_digitos/caso1.out @@ -0,0 +1 @@ +6 diff --git a/autograder/tests/suma_digitos/caso2.in b/autograder/tests/suma_digitos/caso2.in new file mode 100644 index 0000000..ea90ee3 --- /dev/null +++ b/autograder/tests/suma_digitos/caso2.in @@ -0,0 +1 @@ +45 diff --git a/autograder/tests/suma_digitos/caso2.out b/autograder/tests/suma_digitos/caso2.out new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/autograder/tests/suma_digitos/caso2.out @@ -0,0 +1 @@ +9 From 661bf7457d8e4052353b961e7bbade141171beb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alicia=20Tom=C3=A1s?= Date: Sun, 22 Mar 2026 21:41:55 +0000 Subject: [PATCH 9/9] Tareas_Entregadas --- autograder/{ => Tareas_Entregadas}/busqueda_dos_en_dos.cpp | 0 autograder/{ => Tareas_Entregadas}/contar_vocales.cpp | 0 autograder/{ => Tareas_Entregadas}/numero_primo.cpp | 0 autograder/{ => Tareas_Entregadas}/suma_digitos.cpp | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename autograder/{ => Tareas_Entregadas}/busqueda_dos_en_dos.cpp (100%) rename autograder/{ => Tareas_Entregadas}/contar_vocales.cpp (100%) rename autograder/{ => Tareas_Entregadas}/numero_primo.cpp (100%) rename autograder/{ => Tareas_Entregadas}/suma_digitos.cpp (100%) diff --git a/autograder/busqueda_dos_en_dos.cpp b/autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp similarity index 100% rename from autograder/busqueda_dos_en_dos.cpp rename to autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp diff --git a/autograder/contar_vocales.cpp b/autograder/Tareas_Entregadas/contar_vocales.cpp similarity index 100% rename from autograder/contar_vocales.cpp rename to autograder/Tareas_Entregadas/contar_vocales.cpp diff --git a/autograder/numero_primo.cpp b/autograder/Tareas_Entregadas/numero_primo.cpp similarity index 100% rename from autograder/numero_primo.cpp rename to autograder/Tareas_Entregadas/numero_primo.cpp diff --git a/autograder/suma_digitos.cpp b/autograder/Tareas_Entregadas/suma_digitos.cpp similarity index 100% rename from autograder/suma_digitos.cpp rename to autograder/Tareas_Entregadas/suma_digitos.cpp