0% encontró este documento útil (0 votos)
15 vistas5 páginas

Fundamentos de La Programacion Con PSeint - Ejercicio 6

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)
15 vistas5 páginas

Fundamentos de La Programacion Con PSeint - Ejercicio 6

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
Está en la página 1/ 5

Fundamentos de la Programación (ING6101)

Guía 6: Datos estructurados - Arreglos

1) Completar los procedimientos y el programa principal, de manera tal que resuelva lo


siguiente: Leer tres vectores en las variables a, b, c, obtener todos los posibles vectores
suma entre dos de ellos e imprimir por pantalla los resultados.

SubProceso Lee(N, V)

FinSubProceso

SubProceso Suma(N, V, U, S)

FinSubProceso

SubProceso Escribe(N, V)

FinSubProceso

Proceso Vectores
Definir a, b, c Como Entero;
Definir Sab, Sbc, Sac Como Entero;
Dimension a[20], b[20], c[20];
Dimension Sab[20], Sbc[20], Sac[20];
Definir N Como Entero;

Escribir 'Ingrese dimension de los vectores';


Leer N;


FinProceso

2) Escribir un programa que, a través de procedimientos y/o funciones, permita leer un


arreglo B de N elementos enteros y luego presente un menú en el que el usuario pueda
seleccionar una de las opciones siguientes:
a) Intercambiar los elementos de las posiciones h y k (h≤N; k≤N), elegidas por el
usuario. Mostrar el arreglo modificado.
b) Asignar el valor cero a todos los elementos de índice impar. Mostrar el arreglo B
modificado.
c) Calcular y mostrar la suma de todos los elementos del arreglo.
d) Construir un arreglo C que sea B permutado (C[1]=B[N], C[2]=B[N-1], …,
C[N]=B[1]). Mostrar el arreglo C.
e) Imprimir los elementos del vector B que sean pares.

3) Desarrollar una función que, a partir de un arreglo A de N elementos, cada uno de los
cuales es una cifra entera entre 0 y 9, retorne el número cuyos dígitos son los elementos de
A. Ejemplo: [ 1, 2, 4, 0, 9 ] → 12409.

4) Ingresar los elementos enteros de un vector V, un valor entero K, y luego:

FI-UNMDP // Hoja 1
a) Mostrar la cantidad de ocurrencias de K en V.
b) Generar y mostrar un arreglo W con los elementos de V distintos de K.
c) ¿Se podrían obtener ambos resultados en un único recorrido? En caso afirmativo,
realizarlo.

5) Determinar si un vector es una “mochila perfecta”. Es decir, si cada elemento (a partir del
tercero) es mayor que la suma de los dos anteriores.

6) Para vectores reales de R3 , defina funciones y/o procedimientos para calcular:


a) el módulo de un vector: R3 → R
b) un vector unitario con la misma dirección del vector dado: R3 → R3
c) la suma de dos vectores: R3 + R3 → R3
d) el producto escalar de dos vectores: R3 . R3 → R
e) el producto vectorial de dos vectores: R3 × R3 → R3
f) el producto mixto de tres vectores: R3 . (R3 × R3) → R
g) dados dos vectores de R3 , ver si uno de ellos es combinación lineal del otro
h) dados tres vectores de R3 , ver si alguno de ellos es combinación lineal de los otros
dos (el producto mixto debe ser nulo)

7) Una aplicación de registro de calorías quemadas durante el día utiliza la información del
GPS del teléfono para determinar la velocidad a la que se desplaza el usuario y obtiene las
calorías quemadas de acuerdo a la siguiente tabla:

Tipo de actividad Calorías quemadas (cal)


REPOSO (menos de 0,5 km/h) 0
MODERADA (entre 0,5 y 7 km/h) 0,00638 . peso [kg] . tiempo [min]
INTENSA (más de 7 km/h) 0,01056 . peso [kg] . tiempo [min]

Escribir un programa que implemente el algoritmo de dicha aplicación. El programa debe


permitir ingresar el peso del usuario y calcular las calorías quemadas durante el día. Para
simular la señal de entrada del GPS, generar un vector de longitud N con los datos del
desplazamiento (en metros) del usuario, almacenando números aleatorios de tipo real,
entre 0 y 200 (se toman muestras cada 30 segundos). Además, el programa debe calcular y
mostrar el porcentaje de tiempo que el usuario estuvo realizando cada tipo de actividad.
Finalmente, debe permitir ingresar un tiempo e informar qué actividad se estaba
realizando en ese tiempo.

8) Considerar la siguiente tabla de valores de una función f:

x 3,0 3,3 3,6 4,0 4,5


f(x) 14,9 18,2 22,3 27,2 33,3

Se desea usar estos valores para estimar los valores de f para otros valores de x dentro del
intervalo dado por la tabla. Escribir un programa que almacene la tabla anterior y que, para
cada valor de x elegido por el usuario, escriba la correspondiente aproximación de f(x).

FI-UNMDP // Hoja 2
Esta aproximación puede ser obtenida mediante el método de interpolación lineal. Este
consiste en trazar una línea recta entre los dos puntos de la tabla que rodean al valor de x
elegido, y luego evaluar x en dicha recta. Es decir, si quisiéramos aproximar el valor f(3,5),
los dos puntos serían los correspondientes a x = 3,6 y x = 3,3.

9) Desarrollar un procedimiento que reciba un vector de números y lo devuelva sin el máximo


ni el mínimo. Por ejemplo: si se recibe el vector [38, 3, 86, 341, 29, 42, 35, 9] se deberá
devolver [38, 86, 29, 42, 35, 9]. Si el vector tiene menos de dos elementos, debe devolver el
mismo vector y un cartel de advertencia.

10) Dados un vector V de N componentes reales ordenadas en forma ascendente y dos valores
reales A y B (A<B), generar y mostrar un vector W con los elementos positivos de V que se
encuentren en el intervalo [A, B].

11) La regla de Paolo Ruffini sirve para realizar de forma sencilla la división de un polinomio (de
grado mayor que uno) por un binomio de la forma x - a. Por ejemplo:

La división de x3 + 2x2 - x - 2 por x - 3 se realiza de la siguiente manera:

1 2 -1 -2
3 3 15 42
1 5 14 40

El cociente de la división es x2 + 5x + 14 y el resto 40. Además, habiendo tomado como


divisor a x - 3, el resto 40 es también la evaluación del polinomio en el valor 3.

a) Realizar un subprograma que aplique la regla de Ruffini para dividir un polinomio


de coeficientes enteros por un binomio de la forma x - a (a entero). El subprograma
debe retornar el polinomio cociente, y el valor del resto.
b) Realizar un programa que calcule cuántas veces es divisible un polinomio de
coeficientes enteros por el binomio x - a (a entero).
c) Realizar un programa que calcule todas las raíces enteras de un polinomio,
sabiendo que cualquier raíz entera debe ser un divisor del término independiente.

12) En un juego de tiro al blanco se han realizado una serie de N disparos, cada uno
representado como coordenadas (x,y). Se pide leer los disparos y almacenarlos en dos
vectores paralelos. Además, solicitar el ingreso de un punto de coordenadas (X, Y) que
representa el centro del blanco. Luego, mostrar un menú con las siguientes opciones, el
cual debe reiterarse hasta que el usuario decida salir:
a) Porcentaje de tiros que han caído a una distancia menor a R (leído por teclado) del
centro, respecto del total de disparos registrados.
b) Número de orden del primer disparo que dio en el centro, si es que hubo alguno.
c) Almacenar en nuevos vectores las coordenadas de los puntos que han quedado
más lejos del centro (puede haber más de uno).

FI-UNMDP // Hoja 3
13) Desarrollar un programa que implemente procedimientos y/o funciones que permitan:
a) Leer una matriz de FxC números enteros.
b) Dado un número h, calcular el promedio de los elementos de la columna h.
c) Dado un número k, calcular el mínimo de los elementos de la fila k.
d) Obtener un vector de C elementos con los promedios de cada columna.
e) Obtener un vector de F elementos con los mínimos de cada fila de la matriz.
f) Generar un vector con los elementos positivos de la matriz.

14) Desarrollar funciones y/o procedimientos que permitan:


a) Obtener un vector con la fila i-ésima de la matriz.
b) Obtener un vector con la columna j-ésima de la matriz.
c) Generar un vector con los elementos de la diagonal principal de la matriz.
d) Generar dos vectores con los elementos de la matriz ubicados por encima y por
debajo de la diagonal principal.
e) Indicar si una matriz es o no identidad (Una matriz identidad es una matriz
cuadrada cuyos elementos de la diagonal principal son unos y el resto de los
elementos son todos ceros).

15) Escribir una función booleana que indique si las sumas de los elementos de las distintas
diagonales descendentes de una matriz cuadrada son todas iguales. Por ejemplo:

Dada la siguiente matriz: Todas sus diagonales descendentes son:


C
A B C B F
D E F A E I
G H I D H
G

16) Dadas N ciudades, las distancias entre cada par de ellas se almacenan en una matriz
DISTANCIA, donde DISTANCIA[i,j] indica la distancia en km que hay entre las ciudades i y j.
Se pide:
● Ingresar la información NECESARIA para armar dicha matriz (las distancias nulas y
las duplicadas por simetría, no deben ingresarse, sino que debe asignarlas el
programa).
● almacenar los nombres de las ciudades en una estructura auxiliar
y luego:
a) Informar los nombres de las dos ciudades más distantes y de las dos más cercanas.
b) Para una ciudad cuyo nombre es ingresado por teclado, informar qué tan distante
está de las restantes ciudades.

Por ejemplo: para N=5, y las siguientes ciudades y distancias:

FI-UNMDP // Hoja 4
1 2 3 4 5
1 - Buenos Aires 1 0 646 792 933 53
2 - Córdoba 2 646 0 677 824 698
3 - Corrientes 3 792 677 0 157 830
4 - Formosa 4 933 824 157 0 968
5 - La Plata 5 53 698 830 968 0

La salida debe ser:


a) La Plata y Formosa son las ciudades más distantes
Buenos Aires y La Plata son las ciudades más cercanas
b) Para X = "Corrientes", la salida debe ser:
Buenos Aires a 792 km
Córdoba a 677 km
Formosa a 157 km
La Plata a 830 km

17) Un sistema de energía renovable funciona mediante un conjunto de N aerogeneradores.


Durante M días, se registra una vez al día la cantidad de vueltas dadas por cada
aerogenerador. Las aspas tienen una longitud de 10 m de radio. Escribir un programa
modularizado que permita calcular:
a) La velocidad angular (rad/seg) promedio de cada aerogenerador.
b) La aceleración centrípeta (rad/seg2) en el extremo del aspa del aerogenerador que
obtuvo la mayor velocidad angular promedio.
c) El día de menos viento en promedio.

18) El Servicio Meteorológico Nacional registra, mes por mes, la cantidad de lluvia que cae por
provincia, en mm (entero), y lo almacena en una matriz. Realizar un programa que permita:
a) Ingresar la información. La misma está desordenada y consta de: número de mes,
nombre de la provincia y cantidad de mm de lluvia caídos (solo de los meses y
provincias en que se produjeron precipitaciones).
b) Calcular en qué mes y en qué provincia llovió más. Mostrar el número de mes, el
nombre de la provincia y la cantidad de mm de lluvia.
c) Hacer un listado de las provincias con su precipitación anual, indicando el nombre
de la provincia y la cantidad de agua caída.

FI-UNMDP // Hoja 5

También podría gustarte