0% encontró este documento útil (0 votos)
58 vistas13 páginas

Practicos 2024

Cargado por

larita123355
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas13 páginas

Practicos 2024

Cargado por

larita123355
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNICEN FAC.

CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

INTRODUCCIÓN A LA
PROGRAMACIÓN I

GUÍA DE
TRABAJOS PRÁCTICOS
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 1 : Introducción

Objetivos del Práctico:

Hacer un primer ejercicio en java dentro del entorno moodle y probar su correcta ejecución.

1) Escriba un programa que cuando se ejecute imprima el mensaje “Hola Mundo!”

Dado que es un primer programa se adjunta a continuación el código del mismo, el


ejercicio es poder generar este código recordando todos sus componentes.

// ----------------------------------------------------------
// Primer programa en Java (imprime el mensaje Hola mundo !
// ----------------------------------------------------------
class HolaMundo {
public static void main(String[] args) {
[Link]("Hola mundo!");
}
}
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 2 : Pilas y estructuras de control

Objetivos del Práctico:

Al finalizar este práctico se espera que los alumnos


● reconozcan las partes de un programa,
● sean capaces de utilizar las tres estructuras básicas de la programación estructura: secuencia,
selección e iteración,
● comprendan la estructura “pila” y sus operaciones asociadas,
● puedan resolver un problema sencillo y codificarlo en el entorno de programación

NOTA: Para resolver los ejercicios, usar el Entorno para Resolución del práctico. Algunos
ejercicios tienen preguntas, pueden contestarlas como comentarios en el ejercicio
correspondiente en el entorno.

1) Cargar desde el teclado una pila DADA con 3 elementos. Pasar los dos primeros elementos a la
pila CJTO1 y el restante a la pila CJTO2, ambas pilas inicializadas en vacío.
1.1) ¿Importa el orden de las sentencias escritas? Explique.
1.2) ¿Funciona el programa si DADA tiene menos de 3 elementos?. Si funciona explicar
por qué, sino modifícalo.
2) Analice la siguiente porción de código

………...
if pila1. tope() < 10 {
[Link]([Link]());
} else {
[Link]([Link]());
}
Suponiendo que las pilas resultado y otroResultado se inician vacías muestra como quedarían todas
las pilas luego de ejecutar esta porción de código para:
a) pila1 <base> 6 10 19 <tope>
b) pila1 <base> 6 10 8 <tope>

2.1) Si el código fuera

……………..
[Link]([Link]());
[Link]([Link]());
y suponiendo que las pilas resultado y otroResultado están inicialmente vacías muestre cómo
quedarían luego de ejecutar esta porción de código para los mismos datos del ejercicio anterior.
2.2) ¿Por qué las dos porciones de código no realizan la misma tarea? ¿Qué función cumple la
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

estructura de control condicional IF? ¿Qué ocurre si Pila1 posee un sólo elemento?
3) Analizar la siguiente porción de código y responder.(pila1, pila2, y descarte son pilas)

……………………………..
while (![Link]())
{
[Link] ([Link]());
}

3.1 ¿Cuál es la condición del ciclo?


3.2 ¿Cuándo finaliza el ciclo? ¿Por qué?
3.3 Modifique el código para que el ciclo tenga finalización.
3.4 ¿Qué función realiza este código ahora?
3.5 ¿De qué manera se asegura en un programa que siempre se llegará a un corte dentro del
ciclo de repetición condicional?
3.6. ¿Es posible resolver el problema de pasar los datos de una pila a otra sin usar un ciclo de
repetición condicional?
4) Realizar un programa para cargar desde teclado una pila DADA y pasar a la pila DISTINTOS
todos aquellos elementos distintos al valor 8. Los elementos iguales a 8 deben quedar en DADA
5) Suponiendo la existencia de una pila LIMITE, pasar los elementos de la pila DADA que sean
mayores o iguales que el tope de LIMITE a la pila MAYORESIGUAL, y los elementos que sean
menores a la pila MENORES. ¿Funciona tu solución si DADA está vacía? ¿Funciona si la pila
Limite está vacía?
6) Dada una pila ORIGEN que se carga desde el teclado, y una pila DESTINO inicialmente vacía,
se pretende pasar los datos de ORIGEN a DESTINO pero dejándolos en el mismo orden.
7) Realice un programa para pasar el último elemento (base) de la pila DADA a su primer posición
(tope), dejando los restantes elementos en el mismo orden.
Ejemplo: DADA <base> 6 10 9 <tope>
Resultado DADA <base> 10 9 6 <tope>
8) Suponiendo la existencia de una pila MODELO que no esté vacía, eliminar de la pila DADA
todos los elementos que sean iguales al tope de la pila MODELO. Los elementos restantes de Dada
deben conservar su orden
9) Suponiendo la existencia de tres pilas ORIGEN, MODELO y REEMPLAZO no vacías,
escribir un programa Reemplazar que reemplace a todos los elementos de ORIGEN que sean igual
al tope de MODELO por el tope de REEMPLAZO.
10) Informar por teclado si la cantidad de elementos de la pila DADA es par o impar
11) Lee el código y determina qué objetivo intenta cumplir este programa y si tiene algún error.
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

class Ej11Practico2 {

public static void main(String[] args) {


Pila Origen = new Pila();
Pila Descarte = new Pila();
Pila Auxiliar = new Pila();
[Link]();
[Link](" ");
[Link](" ");
while (![Link]()) {
if([Link]() == 2) {
[Link]([Link]());
[Link](0);
}
else {[Link]([Link]());};

}
while (![Link]()) {
[Link]([Link]());

}
[Link]();

}
}
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 3: Agregando condiciones compuestas

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● comprendan las condiciones compuestas y su uso en las estructuras de control
● puedan resolver problemas utilizando condiciones compuestas en las estructuras cuando sea
necesario
● Comience a utilizar un método de Resolución de problemas

Codificar los siguientes programas leyendo desde teclado o inicializando las pilas según
corresponda. En caso de ser necesario se pueden utilizar estructuras auxiliares. Recordar usar los
pasos del método para resolver cada problema(entender enunciado, entender los datos, pensar una
estrategia y luego codificar).
1) Dada una pila no vacia ORIGEN, pasar todos los elementos a DESTINO hasta que aparezca un
cero u ORIGEN quede sin elementos.
2) Realizar un programa para comparar la cantidad de elementos de las pilas A y B. Mostrar el
resultado por pantalla.
3) Comparar dos pilas para determinar si son iguales, es decir que tienen la misma cantidad de
elementos y en el mismo orden. Mostrar el resultado por pantalla.
4) La pila DADA se encuentra ordenada de menor a mayor. Insertar el tope de la pila ELEMENTO
en DADA de tal forma que continúe ordenada.
5) Dada un pila ORIGEN que se lee por teclado y una pila MODELO inicializada con un sólo
elemento, modificar ORIGEN tal que si existe un elemento igual tope de MODELO se lo ubique al
principio de la estructura, considerando que sólo cambia la primer ocurrencia de ese elemento.
Imprima ORIGEN.
6) Ubicar el primer elemento de la pila DADA detrás del primer elemento de valor 12, dejando los
demás elementos en el mismo orden. Si el elemento de valor 12 es el primero, dejarlo como estaba.
Se supone que al menos hay un elemento de valor de 12.
7) Concatenar dos pilas de modo que la que posee menos elementos quede abajo; si ambas tienen la
misma cantidad de elementos, cualquiera puede quedar abajo.
8) Informar por pantalla si una pila PARTE está incluida en otra pila GRANDE (o sea, que una
porción de GRANDE es igual a PARTE con los mismos elementos en el mismo orden).
9) Modificar el programa del ejercicio 5 para reubicar todas las ocurrencias del tope de MODELO
que aparecen en ORIGEN.
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 4: Variables

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● comprendan el concepto de variable y la operación de asignación
● reconozcan los distintos tipos primitivos de Java

1) Intercambie los valores de dos variables enteras. ¿Cuáles serían las diferencias si las
variables fueran de tipo caracter?
2) Sume los N primeros números naturales. (Ejemplo si N=5 se debe responder con la
suma de 1+2+3+4+5)
3) Utilice una variable para mostrar por pantalla la posición que tiene un elemento dado en
la pila Original, el tope es posición 1. Tanto los datos de la pila como el elemento deben
ser pedidos por teclado al usuario. Si el elemento no está en la pila la posición deberá
responder -1.
4) Realice un método que: dada la variable entera Posicion, eliminar de la pila Secuencia
el elemento que se encuentre en dicha posición, el tope de la pila es la posición 1 (si la
posición es inválida no hace nada).
5) Utilizando el código del ejercicio anterior resuelva: Dadas dos pilas (ORIGINAL y
POSICIONES), eliminar de ORIGINAL todos los elementos que POSICIONES indica, usando
los códigos anteriores. Note que al eliminar un elemento los restantes disminuyen en uno
su ubicación. Contemple este caso para que los corrimientos no afecten su algoritmo.
6) Objetivo: Desarrollar un programa en Java que utilice variables booleanas para
determinar si se deben emitir diferentes tipos de alertas climáticas basadas en las
condiciones actuales.
Descripción: Supongamos que estás desarrollando una parte de un sistema de alertas
para una aplicación de clima. Este sistema decide si es necesario emitir alertas
específicas a los usuarios basándose en varias condiciones climáticas. Las condiciones
climáticas se representarán mediante variables booleanas.
Variables y Condiciones:
● lluvia: indica si está lloviendo.
● temperaturaAlta: indica si la temperatura es superior a 30 grados Celsius.
● temperaturaBaja: indica si la temperatura es inferior a 0 grados Celsius.
● vientosFuertes: indica si hay vientos fuertes.
Tareas:
​ Declara e inicializa las variables booleanas mencionadas con valores que elijas
(pueden ser true o false).
​ Escribe condiciones que evalúen estas variables y emitan alertas según
corresponda:
● Si hay lluvia y vientosFuertes, imprimir: "Alerta de tormenta".
● Si hay temperaturaAlta, imprimir: "Alerta de ola de calor".
● Si hay temperaturaBaja, imprimir: "Alerta de helada".
● Si ninguna de las condiciones anteriores se cumple, imprimir: "Condiciones
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

climáticas normales".
Requisitos Adicionales:
● Considera la posibilidad de que más de una alerta pueda ser verdadera al mismo
tiempo y asegúrate de que tu programa pueda emitir todas las alertas pertinentes.
● Añade una variable booleana alertaGeneral que se active (true) si se emite
cualquier tipo de alerta y se muestre un mensaje al final del programa indicando si
se ha emitido alguna alerta o no.
7) Modifique el programa anterior para que le pida al usuario los valores de las 4 variables
y en base a lo ingresado responda lo correspondiente.
8) Realice un programa que pida los siguientes textos: nombres, apellido, cuenta, dominio
y un entero anioNacimiento (controlando que esté entre los límites 1900-2023) y luego
imprima:
Persona: <apellido>, <nombres>
mail: <cuenta>@<dominio>
edad al 1/1/2024: <xxx> años
(Si el usuario ingresa un texto o un número fuera del rango para el año el programa debe
avisar con “Año erróneo, ingrese un número entre 1900 y 2023” y volver a pedirlo)
9) Realice un programa que solicite el nombre del alumno (tipo String) y luego las notas de
los finales que rindió (tipo integer de 0 a 10 con decimales), debe pedir las notas de a una
hasta que el usuario ingrese una nota -1 que indicará que no posee más finales. Defina
además una constante con la nota mínima necesaria para aprobar y otra con la cantidad
total de materias de la carrera). Luego debe responder:
Alumno: <nombre>
Cantidad total de exámenes rendidos: xxx
Cantidad de exámenes aprobados: yyy
Cantidad de exámenes desaprobados: zzz
Nota promedio: sss
Nota promedio de los exámenes aprobados: vvvv
Porcentaje de avance en la carrera: ppp
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 5: Modularización I

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● comprenda el concepto de método y la utilidad de los mismos como herramienta para la
estructuración (MODULARIZACIÓN) de un programa,
● comprendan el concepto de parámetros, la diferencia entre parámetros formales y actuales
● pueda analizar las ventajas de la MODULARIZACIÓN y diferencie los métodos que ofician
de funciones de los que son del tipo procedimiento.

Programar los métodos para resolver cada uno de los siguientes problemas y luego Hacer el
programa principal que invoque al método y muestre el resultado por pantalla
1)Dado un número, calcular su factorial. Ej: fact(4) = 4*3*2*1 = 24.
2)Dado un número, devolver su Doble
3) Dado dos números, devolver el mayor.
4). Verificar si un número es par o impar, devolviendo true o false, respectivamente.
5) Dada una pila, devolver el valor que resulte de calcular la suma de todos sus elementos.
6) Dada una pila, devolver el promedio de todos sus elementos. Se debe tener en cuenta que
la pila puede estar vacía. En ese caso, ¿dónde debería considerarse esta situación?
7) Dada una pila, devolver true o false si un número NUM está al menos una vez en la pila
8) Dada una pila, devolver la posición de NUM en la pila. Si no está, devolver -1; si está
más de una vez, devolver la primer ocurrencia.
Hacer los siguientes ejercicios como actividad previa a la próxima teoría:
9) Modifique el programa principal de los ejercicios 5 y 6 para que además de los datos
pedidos muestre por pantalla la Pila, luego de haber invocado los métodos. ¿Qué datos
muestra la Pila? ¿Qué puede haber pasado?
10) Suponga que el método del ejercicio 2 fue resuelto con esta porción de código:
private static int DOBLE (int num) {
num= num*2;
return num
}
y el programa principal tiene esta líneas;
……
[Link]("El doble es: " + DOBLE(num));
[Link](num);
¿Qué se muestra por pantalla? ¿por qué num tiene ese valor luego de haber invocado a la
función?
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 6: Modularización II

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● comprenda el concepto de método y la utilidad de los mismos como herramienta para la
estructuración (MODULARIZACIÓN) de un programa,
● comprendan el concepto de parámetros, la diferencia entre parámetros formales y actuales y
las distintas formas de pasaje de parámetros
● comprendan el alcance de una variable
● puedan plantear estrategias para resolver problemas (siguiendo la forma de trabajo dada en
clase),
● pueda analizar las ventajas de la MODULARIZACIÓN y diferencie los métodos que
ofician de funciones de los que son del tipo procedimiento.

Resolver los siguientes problemas usando la estrategia de modularización


y teniendo en cuenta el mecanismo de pasajes de parámetros que maneja
JAVA de tal forma que los datos pasados no sean modificados si no
corresponde
1) Revise los ejercicios del práctico anterior y agregue la clonación en los casos que considere
necesario.
2) Usando el ejercicio 3 del práctico 5, calcular el máximo de una serie de números enteros que el
usuario va ingresando de a uno, se termina cuando el usuario ingresa un cero.
3) Dada PilaUno y PilaDos, determinar cuál tiene mayor promedio e informar por pantalla.
4) Dada una pila Numeros realizar una función que retorne True o False según sea ó no la pila
capicua.(ej de pila capicua: 1 2 1 ; ej, de pila NO Capicua: 1 2 3) El programa principal debe
emitir un mensaje informando.
5) Analizar que dos Pilas sean iguales (misma cantidad y orden de elementos).El programa
principal debe emitir un mensaje informando.
6) Suponiendo la existencia de una pila Modelo (vacía o no), eliminar de la pila Dada todos los
elementos que existan en Modelo. Imprimir Dada luego de la eliminación.
7) Retome el ejercicio 8 del Práctico 3 y replantee la solución modularizando.

8) Dada una pila Dada que se carga por teclado, eliminar los elementos repetidos que se encuentran
en la pila, dejando una sola ocurrencia de cada elemento.

9) Separar de la pila Dada el mayor de sus elementos (si hay más de uno, separar la primer
ocurrencia), colocándolo en una variable de tipo entero. La pila queda con un elemento menos
manteniendo el orden original.
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 7: Arreglo - Primera parte

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● propongan soluciones aplicando diseño descendente,
● desarrollen aplicaciones con uso de arreglos de una dimensión.

Para los ejercicios del práctico suponer que se tiene (existen y no se tienen que implementar):
_un método que permite cargar un arreglo del tipo y tamaño (constante) solicitado.
_un método que permite imprimir un arreglo del tipo y tamaño (constante) solicitado.
Para las implementaciones en papel no se requiere la llamada a los métodos anteriores. Para
cada ejercicio propuesto realizar un programa. Modularizar la solución separando la carga de
los datos, los métodos asociados a la resolución, y las impresión de los resultados.
1) Dado un arreglo de caracteres, invertir su orden (Ejemplo: |c|h|t|e| -> |e|t|h|c|).

2) Dado un arreglo de enteros, obtener la cantidad de números pares.

3) Dado un arreglo de caracteres determinar si es capicua.

4) Dado un arreglo de enteros, solicitar al usuario el ingreso de una posición y realizar un


corrimiento a izquierda o hacia la menor posición del arreglo.

5) Dado un arreglo de caracteres, solicitar al usuario el ingreso de un caracter e insertarlo al


principio del arreglo (posición 0). Para ello tendrá que realizar un corrimiento a derecha (se
pierde el último elemento del arreglo) y colocar el caracter en el arreglo en la posición indicada.

6) Dado un arreglo de enteros, eliminar la primera ocurrencia de un número entero ingresado por
el usuario (si existe). Para ello tendrá que buscar la posición y si está, realizar un corrimiento a
izquierda (queda una copia de la última posición del arreglo en la anteúltima posición).

7) Dado un arreglo de enteros, eliminar todas las ocurrencias de un número entero ingresado por
el usuario (mientras exista).

8) Dado un arreglo de caracteres denominado Texto, y otro arreglo de caracteres denominado


Patron cuyo tamaño es menor o igual al tamaño de Texto, determinar cuántas ocurrencias de
Patron hay en Texto. (Por ejemplo: se tiene Texto = |a|b|c|d|b|c|b|d|b|a|b|c| y Patron= |b|c|. Luego
de resolver el problema se obtiene que hay 3 ocurrencias).
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

Práctico 8: Arreglo - Segunda parte

Objetivos:

Al finalizar este práctico se espera que los alumnos:


● propongan soluciones considerando si la estructura está ordenada o no,
● realicen implementaciones para detectar/procesar secuencias en arreglos.

Para los ejercicios del práctico suponer que se tiene (existen y no se tienen que implementar):
_un método que permite cargar un arreglo de secuencias del tipo y tamaño (constante) solicitado.
_un método que permite imprimir un arreglo de secuencias del tipo y tamaño (constante)
solicitado.
Además, suponer que:
_en los arreglos de secuencias de enteros las secuencias están separadas por uno o más 0, y el
arreglo comienza y termina con uno o más 0.

_en los arreglos de secuencias de caracteres las secuencias están separadas por uno o más ‘ ’
(dos comillas simples con un espacio en el medio), y el arreglo comienza y termina con uno o
más ‘ ’.

Para las implementaciones en papel no se requiere la llamada a los métodos anteriores. Para
cada ejercicio propuesto realizar un programa. Modularizar la solución separando la carga de
los datos, los métodos asociados a la resolución, y las impresión de los resultados.
1) Dado un arreglo ordenado creciente de enteros, solicitar al usuario el ingreso de un número
entero e insertarlo en el arreglo manteniendo su orden (hay que usar la propiedad de orden del
arreglo). Para ello tendrá que realizar un corrimiento a derecha (se pierde el último valor del
arreglo) y colocar el número en el arreglo en la posición indicada.
2) Dado un arreglo desordenado de enteros, solicitar al usuario el ingreso de dos números enteros
(posiciones del arreglo) y ordenar de forma creciente el arreglo entre dichas posiciones.
3) Se tiene dos arreglos de enteros del mismo tamaño, uno está desordenado y se denomina
Desordenado, y el otro está ordenado de manera ascendente y se denomina Ordenado. Se pide
tratar de insertar los elementos de Desordenado en Ordenado, manteniendo el orden del último
en todo momento. (Por ejemplo: se tiene Desordenado = |5|11|4|9| y Ordenado = |3|6|12|15|.
Luego de resolver el problema se tiene Desordenado = |10|11|4|9| y Ordenado = |3|4|6|9|).
4) Dado un arreglo de secuencias de enteros, encontrar la posición de inicio de la secuencia cuya
suma de valores (contenido de la secuencia) sea mayor.
5) Dado el arreglo de secuencia de caracteres, encontrar la posición de inicio de la anteúltima
secuencia (considerar comenzar a buscarla a partir de la última posición del arreglo).
6) Dado el arreglo de secuencia de caracteres y un número entero ingresado por el usuario,
elimine las secuencias de tamaño igual al número ingresado.
7) Dado un arreglo de secuencias de enteros y un número entero ingresado por el usuario, copie de
UNICEN FAC. CIENCIAS EXACTAS -2024- INTRODUCCIÓN A LA PROGRAMACIÓN I

forma continua las secuencias de tamaño igual al número ingresado en otro arreglo de enteros.
Dicho arreglo será inicializado con 0 ¿Qué tamaño deberá tener?. La copia en este último
arreglo debe comenzar desde el principio del mismo.
8) Dado un arreglo de secuencias de enteros, eliminar todas las ocurrencias de una secuencia
patrón dada por otro arreglo de iguales características (solo tiene esa secuencia patrón).
Eliminar implica perder valores haciendo corrimientos.
9) Dado el arreglo de secuencia de caracteres, eliminar todas las secuencias que tienen orden
descendente entre sus elementos.

También podría gustarte