24 APvectores - Taller de Vectores PDF

Title 24 APvectores - Taller de Vectores
Course Fundamentos de Programación
Institution Universidad de Caldas
Pages 9
File Size 205.6 KB
File Type PDF
Total Downloads 61
Total Views 146

Summary

Taller de Vectores...


Description

Metodología de la Programación para Ingenieros METODOLOGÍA DE LA PROGRAMACIÓN PROBLEMAS DE INGENIERIA PROGRAMACION MODULAR ARREGLOS DE UNA DIMENSIÓN Los ejercicios de programación deben resolverse utilizando funciones que modularicen las soluciones. 1.

Suponga las siguientes declaraciones: int int

puntos [500]; prueba, menor, indice;

¿Cuál segmento de programa encontrará el valor más pequeño de este arreglo y almacenará el subíndice del elemento donde está guardado este valor? a)

for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[menor];

b)

for (prueba = 0; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = prueba;

c)

menor = puntos[0]; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < menor) menor = puntos[prueba];

d)

indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < puntos[indice]) indice = prueba;

e)

indice = 0; for (prueba = 1; prueba < 500; prueba++) if (puntos[prueba] < indice) indice = prueba;

Página 1 de 9

Metodología de la Programación para Ingenieros 2.

Considere el segmento int

x [4], y [4], k, j;

for (k = 0; k  3; k++) { scanf (“%i”,&x[k]); for (j = k; j  3; j++) scanf (“%i”, &y[ j]); } y los datos de entrada 1

2

3

4

5

6

7

8

9

10

11

12

13

14

Después de ejecutarse el código, ¿cuál será el contenido de los arreglos x y y?

3.

a)

x: 1 2 3 4 y: 5 6 7 8

b)

x: 1 6 7 8 y: 2 3 4 5

c)

x: 1 6 10 13 y: 2 7 12 14

d)

x: 1 6 10 13 y: 2 7 11 14

e)

x: 1 2 3 4 y:12 13 14 15

f)

faltan datos de entrada

Observe el siguiente trozo de programa y diga qué imprime, suponiendo que los datos son: 5 int

41

68

32

i, j, n, sor[25];

scanf (“%i”,&n); i = 0; while (i  n-1) { scanf (“%i ”,&sor[i]); i++; } for (i = 0; i  n-1; i++) { printf (“%i \n”, sor[i]); for (j = n-1; j > i; j--) printf (“%i “,sor[i]); }

Página 2 de 9

74

55

Metodología de la Programación para Ingenieros 4.

Sean los datos enteros: n, k a0 a1 . an-1

(en la primera línea) (en la segunda línea) (en la tercera línea)

Con:

|k|  n; 1  n  50

(en la última línea)

Haga un diagrama y un programa que resuelva progresivamente cada uno de los siguientes incisos: a)

Leer los datos y almacenarlos en un arreglo vec, de tal manera que queden: vec a0

b)

a1

. . .

an-1

Copiar los datos a otro arreglo llamado inverso, de tal forma que queden almacenados como se indica a continuación: inverso an-1

c)

. . .

a0

Reemplazar cada ai en vec por (ai * 2i) sin utilizar la función de potencia y optimizando el número de operaciones: vec ao* 20

d)

(a1* 21)

. . .

Correr los elementos del vec anterior |k| lugares a la derecha si k  0, y |k| lugares a la izquierda si k  0

Al correr los elementos, haga entrar ceros a los lugares vacíos; así, si k = 2 se pierden los dos últimos datos (an-2 y an-1) y el arreglo quedaría: 0 5.

6.

0

ao

a1

. . .

an-3

Los tres arreglos reales x, y y z, tienen almacenados m, n, y o valores, respectivamente. Haga un programa que lea los datos de cada vector y calcule e imprima las sumatorias de todos sus elementos, para lo cual deberá contar con una función para sumar todos los elementos de un arreglo y una función para leer los datos de un vector. Considere que las dimensiones de los vectores se leen en el programa principal con 1  m,n,o  50. Se tiene el arreglo

Página 3 de 9

Metodología de la Programación para Ingenieros ventas 0 vene

1 vfeb

2 vmar

. .

10 vnov

11 vdic

donde se almacenan las ventas mensuales de una empresa. Haga un programa que escriba a) b) c) d) 7.

¿En qué mes se dieron las ventas máximas de la empresa? ¿A cuánto ascendieron las ventas máximas? ¿Cuál fue el total de las ventas? ¿Cuál fue el promedio de las ventas?

Dados los datos: n, a0,a1,. . .,an-1, con:

b0,b1, . . . ,bn-1

1  n  50, entero ai, bi reales

Haga programas por separado para calcular:

n -1



a i * bi

i =0

n -1

a

i

* bn−1−i

i=0

¿Requiere de arreglos? ¿Cuántos? ¿Por qué? 8.

Una fábrica de llantas quiere un programa para calcular el costo total de producción de los n modelos de llantas que produce. Los datos con que cuenta son los siguientes: n, ao, a1, ..., an-1, c0, c1, ..., cn-1, con:

1  n  50, entero ai enteros ci enteros

Donde: ai ci 9.

representa la cantidad de llantas producidas del modelo i representa el costo de producción de una llanta del modelo i

Se tienen los siguientes datos:

Página 4 de 9

Metodología de la Programación para Ingenieros

n, ic0, ic1, ..., icn-1 con:

1  n  32, entero ici reales

Donde: ici

representa el ingreso per cápita de cada estado de la República Mexicana.

Elabore un programa para calcular e imprimir el ingreso per cápita promedio de la República, así como para escribir cuántos estados tienen un ingreso menor que este promedio y cuántos lo tienen mayor o igual. 10.

Sean los datos: n, x1, x2, . . . , xn con:

1  n  25, entero xi reales

Realice un programa que: a) b)

Lea los datos y almacene los xi en un arreglo. Calcule e imprima la media de los datos dada por la fórmula: n



x= c)

 xi i =1

n

Calcule e imprima la desviación estándar dada por la fórmula: n



 ( xi − x) 2 a= 11.

i =1

n

Un casino desea llevar a cabo unas estadísticas sobre el juego de ruleta. Se solicita un programa que cuente el número de veces que cada número es ganador en una jornada y al final del día imprima un reporte con lo siguiente: a) b) c) d)

¿Cuántas veces resultó ganador cada elemento de la ruleta? ¿Cuáles elementos no resultaron ganadores en toda la jornada? ¿Cuál fue el número de cada color que ganó más veces?(suponga que sólo hay uno) ¿Cuál fue el elemento que ganó en más ocasiones?

Página 5 de 9

Metodología de la Programación para Ingenieros Recuerde que la ruleta está formada por 70 elementos. Existen del 1 al 34 rojo, del 1 al 34 negros, el 0 y el 00. El casino desconoce el número de juegos de una jornada. Los datos que el casino proporcionará son los siguientes: número, color número, color ... -1, X Donde: número

color -1,X 12.

representa el número correspondiente al elemento ganador con 0  número  34 donde el 0 se representa como un 0 rojo y el 00 se representa como un 0 negro. representa el color correspondiente al elemento ganador. con: R = rojo, N = negro representan el fin de la jornada

Una compañía ha clasificado a sus n (1  n  50) empleados dentro de los grupos 1 y 2. Cada empleado del grupo 1 recibirá, a partir de ahora, un aumento de $250.00 a la semana sobre su sueldo actual, mientras que a cada uno de los del grupo 2 sólo se le dará $150.00 adicionales por semana. La información que se proporciona de cada empleado es: clave del empleado (comprendida entre 100 y 2500, inclusive), grupo al que pertenece (1 o 2) y sueldo semanal actual (entre $300.00 y $6000.00). Si un empleado del grupo 1 con el nuevo sueldo gana semanalmente más que el sueldo promedio del grupo entonces debe cambiar al grupo 2. Haga un programa que: a) b) c)

13.

14.

Lea la información de los n empleados e imprima la clave, grupo y sueldo semanal nuevo para cada empleado, actualizando el grupo si es el caso. Calcule el sueldo promedio de los empleados por grupo y calcule también el promedio general de todos, sin considerar el grupo. Indique cuántos empleados cambiaron del grupo 1 al 2.

Se tienen n alumnos (1  n  50) de los cuales se conoce la clave y la calificación final. Haga un programa que: a)

Lea dicha información, la cual se da ya ordenada en forma descendente, con respecto a la clave.

b)

Imprima la clave y calificación de todos los alumnos que obtuvieron calificación superior al promedio del grupo.

c)

Imprima la calificación que obtuvieron los alumnos cuyas claves proporcionará el usuario. Se sabrá que el usuario ya no quiere conocer más calificaciones cuando, en lugar de una clave, proporcione un cero. Utilice búsqueda binaria para buscar las claves que el usuario solicita.

Se tiene un conjunto de n parejas de datos Xi, Yi donde cada pareja representa las coordenadas del punto i de un polígono irregular de n lados. Suponga que las

Página 6 de 9

Metodología de la Programación para Ingenieros coordenadas se proporcionarán en orden adyacente. Elabore un programa para leer el número de lados del polígono, leer las coordenadas de los puntos y obtener el área del polígono irregular utilizando la siguiente fórmula: Area = [(X0+X1)*(Y0-Y1 ) + (X1+X2)*(Y1-Y2)+. . .+ (Xn-1+X0)*(Yn-1-Y0)/2 Suponga que los Xi ,Yi son reales y n es entero con 1  n  50. 15.

Escriba un programa para leer una serie de n datos desordenados, almacenarlos en el vector val (de máximo 50 localidades), ordenarlos de manera creciente, utilizando el algoritmo de selección directa, en ese mismo vector y, por último, imprimirlos en orden. val 0 vo Variante:

16.

17.

1 v1

2 v2

. .

n-1 vn-1

49 ...

En el vector final no debe haber datos repetidos.

Partiendo del ejercicio anterior, elabore un programa que contenga funciones para: a)

Buscar un valor x dentro del arreglo utilizando el algoritmo de búsqueda secuencial. La función debe regresar como resultado la posición en la que se encuentra el valor buscado. Si x no se encuentra en el arreglo, la función calcula la posición en la que debería encontrarse y regresa: (–posición –1).

b)

Buscar un valor x dentro del arreglo utilizando el algoritmo de búsqueda binaria.

c)

Insertar un valor x en el arreglo de tal forma que se siga conservando el orden ascendente de los valores. Al insertar se debe verificar que haya espacio libre y que x no exista en el arreglo. La función debe regresar como resultado 1 si se insertó x en el arreglo, 0 si x ya existía en el arreglo y –1 si no existe espacio libre en el arreglo.

d)

Eliminar un valor x del arreglo, compactando si es necesario para que no haya espacios libres entre valores. La función debe regresar como resultado 1 si se eliminó x, 0 si x no se encontraba en el arreglo y –1 si el arreglo estaba vacío.

e)

Sustituir un valor x ya existente en el arreglo con un valor y de tal manera que el arreglo siga conservando su orden creciente. La función debe regresar como resultado 1 si se hizo la sustitución, 0 si x no se encontraba en el arreglo y –1 si el arreglo estaba vació.

Escriba un programa que lea dos vectores de diferente número de elementos, los ordene y posteriormente los mezcle en un tercer vector guardando el orden.

Página 7 de 9

Metodología de la Programación para Ingenieros

Restricción: no se deben unir los vectores en desorden, ni copiar un vector completo, es decir, los elementos que se almacenen en el tercer vector se deben ir guardando en orden. 18.

Elabore un programa para leer un vector cuyos datos se proporcionan en orden ascendente, leer un segundo vector cuyos datos se proporcionan en orden descendente, mezclarlos en un tercer vector cuyos datos aparezcan en orden ascendente, y por último, imprimir el vector resultante.

19.

Haga un programa que lea los datos de dos polinomios como se explica posteriormente y que, utilizando un menú, efectúe las siguientes operaciones sobre polinomios: a) b) c)

Suma. Resta. Multiplicación.

Al seleccionar el usuario una de estas tres opciones dará los polinomios sobre los cuales se realizará la operación solicitada. Los datos que el usuario proporcionará son los coeficientes (reales) y los exponentes (enteros,  0 y  15) de ambos polinomios, los cuales pueden o no estar ordenados. El final de cada polinomio está dado por un –1 como coeficiente y como exponente. Los términos del polinomio resultante deberán ser desplegados en orden descendente, observando el siguiente formato:  cX ^e Donde:  c ^ e

representa el signo del término representa el coeficiente del término significa exponenciación representa el valor del exponente

Página 8 de 9

Metodología de la Programación para Ingenieros Por ejemplo, suponga que los datos son: 2.5 -2

3 2

-4 -3

2 4

6.5 9.1

1 1

3 6.9

4 8

-1 -1

-1 -1

Entonces, los polinomios que se van a operar son: +2.5X3 - 4X2 + 6.5X1 + 3X4 -2X2 - 3X4 + 9.1X1 + 6.9X8 De tal forma que el resultado de la suma es: 6.9X8 + 2.5X3 - 6X2 + 15.6X1 y se desplegaría como: + 6.9X^8 + 2.5X^3 - 6X^2 + 15.6X^1 20.

Escriba un programa que cambie un número de una base a otra. Para esto debe conocer el número, la base en que está expresado el número y la base a la que se desea convertir el número en cuestión. El rango de las bases es entre 2 y 16 (utilizando A = 10, B = 11, etc.). El número puede tener parte fraccionaria.

21.

Dado un número natural n de 4 cifras, no todas iguales, encuentre e imprima el número mayor y el menor que se puede formar con las mismas cifras. Por ejemplo, si n = 6174, entonces el número mayor que se puede formar es 7641 y el menor 1467.

22.

Haga un programa que utilizando “la criba de Eratóstenes” encuentre los números primos entre 1 y 999, la cual funciona como sigue: a)

Inicialice todos los elementos de un vector (comenzando en el índice 2), de 1000 enteros, con 1 (verdadero). Los elementos con índices 0 y 1 deben inicializarse con 0 (falso).

b)

Comience con el índice i=2 del vector. Recorra el vector, del elemento i+1 al último, y cada vez que encuentre un elemento cuyo valor sea 1, póngale 0 si su índice es múltiplo de i. Vuelva a hacer lo mismo, pero ahora considerando el primer elemento que sea 1 y cuyo índice sea mayor a i. Continúe este proceso hasta que haya probado todos los elementos iguales a 1.

Cuando se haya terminado este proceso, los índices del vector cuyos elementos sean 1 son primos.

Página 9 de 9...


Similar Free PDFs