Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions tareas/ensayo.tex
Original file line number Diff line number Diff line change
@@ -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}
20 changes: 4 additions & 16 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -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"]
Binary file added TRABAJOS_ENTORNO/calcular_fuerza
Binary file not shown.
15 changes: 15 additions & 0 deletions TRABAJOS_ENTORNO/fisica.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#include <iostream>
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;
}
1 change: 1 addition & 0 deletions TRABAJOS_ENTORNO/prueba.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hola
53 changes: 53 additions & 0 deletions autograder/Tareas_Entregadas/busqueda_dos_en_dos.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#include <iostream>
#include <vector>
#include <algorithm> // Para usar std::max y std::min

int busqueda_dos_en_dos(const std::vector<int>& 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<int> 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;
}




27 changes: 27 additions & 0 deletions autograder/Tareas_Entregadas/contar_vocales.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
#include <iostream>
#include <string>
#include <cctype> // 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;
}
40 changes: 40 additions & 0 deletions autograder/Tareas_Entregadas/numero_primo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#include <iostream>
#include <cmath>

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;
}



20 changes: 20 additions & 0 deletions autograder/Tareas_Entregadas/suma_digitos.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <iostream>

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;
}
8 changes: 2 additions & 6 deletions autograder/autograder.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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:"
Expand Down
4 changes: 1 addition & 3 deletions autograder/tests/busqueda_dos_en_dos/caso1.in
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
7
2 5 8 11 14 17 20
11
10
2 changes: 1 addition & 1 deletion autograder/tests/busqueda_dos_en_dos/caso1.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3
-1
2 changes: 1 addition & 1 deletion autograder/tests/contar_vocales/caso1.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Hola Mundo
murcielago
2 changes: 1 addition & 1 deletion autograder/tests/contar_vocales/caso1.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4
5
2 changes: 1 addition & 1 deletion autograder/tests/numero_primo/caso3.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2
13
5 changes: 2 additions & 3 deletions autograder/tests/ordenamiento/caso1.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
burbuja
7
64 34 25 12 22 11 90
5
3 1 4 1 5
2 changes: 1 addition & 1 deletion autograder/tests/ordenamiento/caso1.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
11 12 22 25 34 64 90
1 1 3 4 5
5 changes: 2 additions & 3 deletions autograder/tests/ordenamiento/caso2.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
burbuja
8
3 1 4 1 5 9 2 6
4
9 2 7 3
2 changes: 1 addition & 1 deletion autograder/tests/ordenamiento/caso2.out
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1 1 2 3 4 5 6 9
2 3 7 9
1 change: 0 additions & 1 deletion autograder/tests/ordenamiento/caso3.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
burbuja
1
42
2 changes: 1 addition & 1 deletion autograder/tests/suma_digitos/caso2.in
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9
45
6 changes: 6 additions & 0 deletions hola_mundo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#include <iostream>

int main() {
std::cout << "Hola Mundo desde Docker!" << std::endl;
return 0;
}
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<h1>Docker Funciona</h1>
Binary file added mi_app
Binary file not shown.