Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

Actividad Obligatoria N° 1

Parte A (Teórico)
1.
Nombre del dispositivo Tipo de almacenamiento Capacidades

Disco Duro (HDD) Magnético Hasta 20 TB o más

Unidad de Estado Sólido (SSD) Electrónico (flash NAND) Hasta 4 TB o más

Unidad de Memoria USB Electrónico (flash NAND) Desde 1 GB hasta 2 TB

Tarjeta SD Electrónico (flash NAND) Desde 2 GB hasta 1 TB

Óptico Óptico Hasta 100 GB (BDXL)

Cinta Magnética Magnético Hasta 30 TB

2.
2.a. Lenguaje de Bajo Nivel:

Lenguaje de programación C
Utilización:
Desarrollo de sistemas operativos.
Programación de sistemas embebidos.
Desarrollo de aplicaciones de tiempo real y sistemas de alto rendimiento.

Aplicaciones:
Sistemas operativos (ej., Unix, Linux).
Controladores de dispositivos.
Software de infraestructura (ej., intérpretes de lenguajes, compiladores).
Aplicaciones embebidas (ej., firmware para microcontroladores).

Características Generales:
Cercanía al Hardware: Proporciona acceso directo a la memoria y a los registros del
procesador.
Alta Eficiencia: Genera código máquina eficiente y rápido.
Portabilidad Condicionada: Aunque es más portátil que el ensamblador, el código C
puede necesitar ajustes para diferentes arquitecturas de hardware.
Punteros y Gestión Manual de Memoria: Permite un control preciso sobre la gestión
de memoria, pero esto también introduce riesgos de errores como desbordamientos
de búfer y fugas de memoria.
Amplio Uso: Es uno de los lenguajes más utilizados y ha influido en muchos otros
lenguajes de programación.
2.b. Lenguaje de Alto Nivel:
Lenguaje de programación Java
Utilización:
Desarrollo de aplicaciones empresariales.
Desarrollo de aplicaciones Android.
Aplicaciones web y servicios backend.
Programación de aplicaciones de escritorio.

Aplicaciones:
Aplicaciones web (ej., Spring Framework).
Aplicaciones móviles Android (usando Android SDK).
Aplicaciones empresariales (ej., sistemas de gestión de empresas).
Software de escritorio (ej., herramientas de desarrollo como IntelliJ IDEA).

Características Generales:
Orientación a Objetos: Java es un lenguaje completamente orientado a objetos, lo
que facilita la modularidad y el mantenimiento del código.
Portabilidad: Gracias a la Máquina Virtual de Java (JVM), el código Java puede
ejecutarse en cualquier plataforma que tenga una JVM, cumpliendo el lema "Write
Once, Run Anywhere".
Recolección de Basura Automática: Java maneja automáticamente la liberación de
memoria, reduciendo el riesgo de fugas de memoria.
Amplia Biblioteca Estándar: Proporciona una rica API que cubre desde estructuras
de datos y algoritmos hasta funciones de red y concurrencia.
Seguridad y Robustez: Incluye características como verificación de bytecode y
manejo de excepciones que aumentan la seguridad y estabilidad de las aplicaciones.

4.
Sintaxis:
Es como las reglas de gramática en un idioma. Nos dice cómo estructurar
correctamente nuestras instrucciones en el código para que la computadora las
pueda entender.
Por ejemplo, como cuando escribimos una oración en español, necesitamos poner
las palabras en el orden correcto y usar la puntuación adecuada para que tenga
sentido.

Semántica:
Se trata sobre el significado de nuestras instrucciones en el código. Es entender qué
hace exactamente nuestro código y qué resultados produce.
Por ejemplo, cuando lees una historia: no solo miras las palabras, sino que tratas de
entender el mensaje o la idea detrás de ellas.

Primitivas:
Las primitivas son como las herramientas básicas que usamos para construir cosas
más grandes. Son como los bloques de construcción de nuestro código. Incluyen
cosas como sumar números, comparar valores o repetir acciones.
En la programación la sintaxis se trata de seguir las reglas del lenguaje, como si
estuvieras siguiendo las instrucciones. Si te equivocas, el código simplemente no
funcionará.

Por otro lado, la semántica es entender el propósito de cada línea de código.


Si no comprendes bien lo que hace cada parte del código, es como si estuvieras
construyendo algo sin saber realmente para qué sirve. Podrías terminar con un
programa que hace cosas extrañas o que simplemente no hace lo que esperabas.

Tanto la sintaxis como la semántica son fundamentales en la programación. La


sintaxis asegura que el código se pueda escribir correctamente, mientras que la
semántica asegura que el código haga lo que tú quieres que haga.

5.
Diagrama de Flujo:
- Permite representar visualmente el flujo de un algoritmo utilizando formas
geométricas y flechas.
- Ayuda a identificar posibles problemas y a optimizar el flujo del algoritmo
antes de escribir el código real.
- Es una forma efectiva de comunicar la lógica del algoritmo a otros
programadores o personas no técnicas.

Pseudocódigo:
- Proporciona una descripción detallada del algoritmo en un lenguaje cercano
al natural.
- No está ligado a la sintaxis de un lenguaje de programación en particular por
lo que permite expresar la solución de manera más flexible.
- Ayuda a planificar y organizar la lógica del algoritmo antes de escribir el
código real, lo que puede ahorrar tiempo y reducir errores durante la
implementación.

Diagrama de Flujo SumaNumeros :


Pseudocódigo SumaNumeros :
Algoritmo SumaNumeros
Definir num1,num2,suma Como entero
Leer num1, num2
Escribir "Numero 1: ", num1," Número 2: ", num2
suma = num1 + num2
Escribir "Suma: ", suma
FinAlgoritmo
6.
La Teoría de la Resolución de Problemas
Es básicamente un conjunto de ideas y métodos para resolver problemas de manera
más efectiva. Es como tener un conjunto de herramientas para enfrentar diferentes
desafíos.

El método de Polya
Es una guía paso a paso que te ayuda a abordar un problema de manera
organizada y lógica. El mismo fortalece la competencia y resolución de problemas.
Esta técnica se aplica cuando se necesita diseñar, implementar y operar el
pensamiento con un enfoque lógico.

Los pasos utilizado para la resolución de problemas:

1) Comprender el Problema:
En esta etapa, se analiza y comprende completamente el problema. Se
identifican los datos relevantes, se establecen los objetivos y se determina
qué se requiere para resolverlo.
2) Planear la Solución:
En esta etapa, se elabora un plan o estrategia para resolver el problema.
Esto puede implicar descomponer el problema en subproblemas más
manejables, identificar algoritmos o métodos relevantes y determinar los
pasos necesarios para implementar la solución.
3) Ejecutar el Plan:
Aquí es donde se lleva a cabo la implementación del plan previamente
diseñado. Se siguen los pasos planificados y se utilizan las herramientas y
técnicas adecuadas para resolver el problema.
4) Revisar y Evaluar:
Una vez que se ha encontrado una solución, se revisa y se evalúa su validez
y eficacia. Se verifica si la solución resuelve correctamente el problema y se
realizan ajustes si es necesario.
7.
Variables

Definición
Una variable es un nombre simbólico asociado a un espacio en la memoria del
ordenador donde se puede almacenar un dato. El valor de una variable puede
cambiar durante la ejecución del programa.

Explicación
Es como una caja en la que puedes guardar algo, como sal. Le pones una etiqueta a
la caja, para saber qué hay dentro y puedes cambiar la cantidad de cualquiera sea el
contenido de esa caja cuando lo necesites.

Características Técnicas
Identificador: Es el nombre que le das a la caja (la etiqueta).
Tipo de dato: Especifica qué tipo de cosa puedes guardar (números, texto, etc.).
Valor: Es lo que realmente guardas en la caja

Ejemplo y Asignación de Valores

INT edad = 25
let edad = 25
(cumple un año)
edad = 26

Una vez inicializada su valor puede variar tantas veces como se la modifique.

Constantes

Definición
Una constante es un nombre simbólico asociado a un valor que no cambia durante
la ejecución del programa. Una vez asignado, el valor de una constante no puede
ser modificado.

Explicación
Es como una caja en la cocina donde guardas algo que nunca cambia, como la
temperatura de congelación del agua (0 grados Celsius). Una vez que pones ese
valor en la caja, no lo puedes cambiar.

Características
Identificador: Nombre que se le da a la constante.
Tipo de dato: Especifica el tipo de dato que puede almacenar.
Valor: El dato que se almacena en la constante.

Ejemplo y Asignación de Valores


const float PI = 3.14159;
const PI = 3.14159
PI = 3.14159

Una vez inicializada su valor debe mantenerse igual y no puede variar.

8.
Operadores Relacionales y Lógicos en Programación
Son herramientas fundamentales en la programación para comparar valores y tomar
decisiones basadas en esas comparaciones.
Son esenciales para el control de flujo en los programas.
Permiten realizar comparaciones y combinaciones de condiciones, facilitando la
toma de decisiones complejas dentro del código.

Operadores Relacionales
Los operadores relacionales permiten comparar dos valores y devuelven un
resultado de tipo booleano (True o False). Estos operadores se usan comúnmente
en condiciones de control, como en declaraciones if, while, y for.

Principales Operadores Relacionales


Menor que (<)
Mayor que (>)
Igual a (==)
Diferente de (!=)
Menor o igual que (<=)
Mayor o igual que (>=)

Ejemplos y Cómo Utilizarlos

a=4
b=5
resultado = a < b

a=5
b=4
resultado = a != b

Operadores Lógicos
Los operadores lógicos permiten combinar varias expresiones relacionales para
formar condiciones más complejas. Los resultados también son booleanos (True o
False).

Principales Operadores Lógicos


AND (&& o and): Devuelve True si ambas condiciones son verdaderas.
OR (|| o or): Devuelve True si al menos una de las condiciones es verdadera.
NOT (! o not): Invierte el valor de verdad de la condición.

Ejemplos y Cómo Utilizarlos

a=4
b=5
resultado = (a < b) and (b > 3)

a=4
b=2
resultado = (a < b) or (b > 1)

a=4
resultado = not (a > 5)

9.

Pruebas de Escritorio
Definición
Son una técnica utilizada en la programación para verificar la lógica de un algoritmo
sin ejecutarlo en una computadora.
Consiste en simular manualmente la ejecución del algoritmo, paso a paso, utilizando
un conjunto específico de valores de entrada.
El objetivo es identificar errores lógicos, condiciones de borde y comportamientos
inesperados antes de la implementación o durante la depuración de un código.

Ejemplo pseudocódigo
Algoritmo Factorial
Entrada: Un número entero n
Salida: El factorial de n

si n < 0 entonces
imprimir "Error: el número debe ser no negativo"
sino
factorial := 1
para i desde 1 hasta n hacer
factorial := factorial * i
fin para
imprimir "El factorial de", n, "es", factorial
fin si
Fin Algoritmo
Tabla de Seguimiento

Inicialización
Las primeras 3 líneas muestran que las variables n, suma, i, nMayor y nVeces no
están definidas o inicializadas. Esto es típico al inicio de un programa antes de la
asignación de valores.
Asignación de Valores
En la línea 4(1), suma se inicializa a 0.
En la línea 6(1), nVeces se inicializa a 3.
Primer Bucle (Primer Número: 12)
En la línea 7(1), i se inicializa a 1.
En la línea 8(1), n se lee y se asigna el valor 12.
En la línea 9(1), suma se actualiza sumando n (0 + 12 = 12).
En la línea 10(1), como es la primera iteración, nMayor se inicializa a n (12).
La línea 12(1) finaliza la primera iteración del bucle.
Segundo Bucle (Segundo Número: 18)
En la línea 7(2), i se incrementa a 2.
En la línea 8(2), n se lee y se asigna el valor 18.
En la línea 9(2), suma se actualiza sumando n (12 + 18 = 30).
En la línea 10(2), n (18) es mayor que nMayor (12), por lo que nMayor se actualiza a
18.
La línea 12(2) finaliza la segunda iteración del bucle.
Tercer Bucle (Tercer Número: 5)
En la línea 7(3), i se incrementa a 3.
En la línea 8(3), n se lee y se asigna el valor 5.
En la línea 9(3), suma se actualiza sumando n (30 + 5 = 35).
En la línea 10(3), n (5) no es mayor que nMayor (18), por lo que nMayor no cambia.
La línea 12(3) finaliza la tercera y última iteración del bucle.
Finalización
Finalmente, en la línea 19(1), después de salir del bucle, el valor final de suma es 35
y el valor final de nMayor es 18.
Resumen Final
suma: 35 (la suma de 12, 18 y 5).
nMayor: 18 (el mayor número entre 12, 18 y 5).
nVeces: 3 (cantidad de números procesados).
10.
Estructuras lógicas
Las estructuras lógicas o de control nos dan el poder de alterar, controlar o modificar
el orden o el flujo en el que se ejecutan las instrucciones de un software a voluntad.
Gracias a las estructuras de control podemos abstraer algoritmos o secuencias de
instrucciones en un software para lograr su objetivo.

Existen tres tipos:

Secuenciales
Es la estructura más simple. Consiste en ejecutar una serie de instrucciones una tras
otra en el orden en que están escritas.

Ejemplo:

Inicio
Leer A
Leer B
Suma := A + B
Imprimir Suma
Fin

Gráfico:

Selectivas o de Selección
La selección permite tomar decisiones y ejecutar diferentes instrucciones basadas
en una condición. Las estructuras de selección más comunes son if-else y
switch-case.
Ejemplo:

Inicio
Leer X
Si X >= 0 Entonces
Imprimir "X es positivo o cero"
Sino
Imprimir "X es negativo"
Fin

Gráfico:

Iterativas o de Repetición
La repetición permite ejecutar una instrucción o un bloque de instrucciones varias
veces. Las estructuras de repetición más comunes son for, while y do-while.

Ejemplo:

Inicio
Leer N
i := 1
Mientras i <= N Hacer
Imprimir i
i := i + 1
Fin
Gráfico:

Parte B (Práctico)
1.
Problema a resolver

Calcular el área de una figura compuesta por dos triángulos rectángulos y una
semicircunferencia

Salida del programa

El área total de la figura

Nombre de la variable Descripción Tipo

H Hipotenusa del triángulo. Real

R Radio de la semicircunferencia. Real

AreaTriangulo Área de un triángulo Real

AreaSemicircunferencia Área de la semicircunferencia. Real

AreaTotal Área total de la figura. Real

Fórmulas:
1 2 2
Área del triángulo: AreaTriangulo = 2 · 𝑅 · 𝐻 −𝑅
1 2
Área de la semicircunferencia: AreaSemicircunferencia = 2
·π· 𝑅
Área total: AreaTotal = 2 · AreaTriangulo + AreaSemicircunferencia
2.

Problema resolver

Calcular el costo total de un banquete basado en el número de personas

Salida del programa

Presupuesto total.

Nombre de la variable Descripción Tipo

numPersonas Número de personas Entero

costoPorPersona Costo por persona Real

presupuestoTotal Presupuesto total Real

3.

Problema resolver

Calcular edades promedio por sexo, mayor edad por sexo y cantidad total de
alumnos por sexo

Salida del programa

Edades promedio por sexo, mayor edad por sexo, cantidad total de alumnos por
sexo y total

Nombre de Descripción Tipo


la variable

edad Edad ingresada Entero

sexo Sexo del alumno Carácter: (‘m’ o ‘f’)

totalMasc Total de alumnos masculinos Entero

totalFem Total de alumnos femininos Entero

sumaMasc Suma de edades de alumnos masculinos Entero

sumaFem Suma de edades de alumnos femeninos Entero

mayorMasc Mayor edad de alumnos masculinos Entero

mayorFem Mayor edad de alumnos femininos Entero

También podría gustarte