Universidad Nacional del Sur Principios de Computadoras I 2° Cuatrimestre 2009 Principios de Computadoras I Trabajo Práctico N° 1 1) Dado un valor A de tipo entero ingresado por el usuario indicar: i) Su cuadrado. ii) Su valor absoluto. iii) Su raíz cuadrada. iv) v) vi) Si es par o impar. Desarrollar más de un método. La cantidad de dígitos que posee (sin usar ciclos). Si es negativo, positivo o cero. 2) Escribir un programa en Pascal que sume, reste, multiplique y divida dos números reales. 3) Escribir un programa en Pascal que calcule el perímetro y el área de un rectángulo. 4) Escribir un programa en Pascal que calcule el perímetro y el área de un círculo. 5) Escribir un programa en Pascal que calcule la superficie y el volumen de un cilindro. 6) Escribir un programa en Pascal que calcule el volumen de una esfera. 7) Desarrollar un programa que descomponga un número entero de 4 dígitos en Unidad, Decena, Centena y Unidad de Mil. 8) Dados dos números A y B indicar la diferencia entre el mayor y el menor. No está permitido usar la función Abs(). 9) Dadas las longitudes de tres segmentos determinar si éstos pueden formar un triángulo. Colocar en una variable llamada Triang un 0 si no pueden formarlo, un 1 si forman un triángulo equilátero, un 2 si forman un triángulo isósceles y un 3 si forman un triángulo escaleno. 10) Hacer un programa que permita redondear un número real a dos cifras decimales. Ej: 23.4567 à 23.46 11) Hacer un programa que determine si un número entero de 5 dígitos es capicúa. 12) Escribir un programa en Pascal que calcule el número de horas, minutos y segundos que hay en X segundos. 13) Escribir un programa en Pascal que, dadas las longitudes de la hipotenusa y la de uno de los catetos de un triángulo rectángulo, calcule la longitud del otro cateto. 14) Realizar un programa que muestre en pantalla los primeros 10 múltiplos de un número entero I. 15) Realizar un programa que muestre en pantalla todos los divisores de un número entero I. 16) Realizar un programa que determine si un número entero I es primo. 17) Dadas las variables A y B de tipo entero ingresadas por el usuario, hacer un programa que liste todos los números comprendidos entre ambas variables que cumplan con la condición indicada en cada punto: i) ii) iii) Números Pares Números Impares Múltiplos de un valor K (K ∈ N) ingresado por el usuario. 18) Calcular el factorial de un número natural dado como dato. Recordar que: n! = n * (n -1) * (n -2) * ... * 2 * 1 * 1 19) Hacer un programa que cuente cuántos números capicúas hay entre 10000 y 99999. Trabajo Práctico N° 1 web: http://www.lip.uns.edu.ar/pci - *: [email protected] Página 1 de 4 Universidad Nacional del Sur Principios de Computadoras I 2° Cuatrimestre 2009 20) Mostrar todos los números a, b y c de tipo entero que cumplan con la siguiente regla a2 + b2 = c2 teniendo en cuenta que 1<=a<=1000 y 1<=b<=1000 21) Realizar una tabla de conversión de temperaturas de °C a °F para todos los valores enteros que se encuentren entre dos valores A y B de tipo real ingresados por el usuario. °C = 5 ∗ (° F − 32) 9 22) Realizar un programa que indique cuántos triángulos isósceles, cuántos equiláteros y cuántos escalenos pueden formarse si se tienen segmentos a, b y c que cumplen con la siguiente condición: 1 <= a <= b <= c <= 20 23) Se dice que un entero positivo es triangular si es igual a una suma de enteros consecutivos que comienza en 1. Así, son números triangulares los siguientes: 1, 3 (= 1+2), 6 (= 1+2+3), 10(= 1+2+3+4), 15 (= 1+2+3+4+5), etc. Realice un programa en Pascal que indique si un número entero positivo ingresado por el usuario es triangular. 24) Realizar un programa en el cual un jugador debe acertar un número aleatorio entre 0 y 100 “pensado” por la computadora. El usuario haría sucesivos intentos para adivinarlo y se le debe indicar si el número ingresado es mayor o menor que la incógnita. Cuando acierte, se le deberá indicar el número de intentos que utilizó o para adivinarlo. 25) Se tiene el siguiente arreglo A[]: A[] 1 2 3 4 5 6 7 8 9 10 11 12 N=13 7 9 1 3 8 2 10 6 4 13 5 -1 0 Completar las siguientes líneas: A[1] A[5] A[N] A[N+1] A[N] + 1 A[1] + 3 A[1 + 3] A[A[9]] = _________ = _________ = _________ = _________ = _________ = _________ = _________ = _________ Si i=6 y j=1 completar: A[i] A[i - j] A[i + j] A[i] + j A[2*i] 2*A[i] 2*A[2*i] 2*A[3*i] A[j-i] = ________ = ________ = ________ = ________ = ________ = ________ = ________ = ________ = ________ 26) Dado un arreglo A[1..N], desplazar todos los elementos un lugar hacia atrás. 27) Dado un Arreglo A[] de dimensión N=20, cargar el mismo con la secuencia de valores indicada en cada punto: a) b) c) d) e) f) g) 1, 2, 3, 4, 5, ....., 20 2, 4, 6, 8, 10, ....., 40 1.01, 2.02, 3.03, 4.04, 5.05, ....., 20.20 1, 4, 9, 16, ...... , 400 20, 19, 18, 17, 16, ....., 1 39, 37, 35, 33, ....., 5, 3, 1 1, 20, 3, 18, 5, 16, 7, 14, ......, 15, 6, 17, 4, 19, 2 Trabajo Práctico N° 1 web: http://www.lip.uns.edu.ar/pci - *: [email protected] Página 2 de 4 Universidad Nacional del Sur Principios de Computadoras I 2° Cuatrimestre 2009 28) a) Indicar si los arreglos S[] y T[] mostrados a continuación son iguales: 1 2 3 4 5 S[] 88 44 66 11 99 T[] 1 88 2 44 3 66 4 11 5 99 b) hacer dos programas, uno que sume los elementos de S y otro que sume los elementos de T. Saque conclusiones. 29) a) Indicar si las matrices L[] y M[] mostradas a continuación son iguales: L[] 1 2 3 4 5 1 8 13 21 34 55 2 89 144 233 377 610 M[] 1 2 1 8 89 2 13 144 3 21 233 4 34 377 5 55 610 b) hacer dos programas, uno que sume todos los elementos de L y otro que sume todos los elementos de M. Saque conclusiones. 30) Indicar qué diferencias de comportamiento presentan los siguientes códigos: (Saque conclusiones.) c) a) suma := 0; for i:=1 to N do begin if A[i] mod 2 = 0 then suma := suma + A[i]; writeln(suma); end; suma := 0; for i:=1 to N do begin if A[i] mod 2 = 0 then suma := suma + A[i]; end; writeln(suma); d) b) for i:=1 to N do begin suma := 0; if A[i] mod 2 = 0 then suma := suma + A[i]; writeln(suma); end; for i:=1 to N do begin suma := 0; if A[i] mod 2 = 0 then suma := suma + A[i]; end; writeln(suma); 31) Indicar cuál es la salida por pantalla de los siguientes programas. (Saque conclusiones.) a) i:=0; j:=0; k:=0; c) i:=0; j:=0; k:=0; for i:=1 to 2 do writeln(i, j, k); for i:=1 to 2 do for k:=1 to 3 do for j:=1 to 4 do writeln(i, j, k); for j:=1 to 4 do writeln(i, j, k); d) i:=0; j:=0; k:=0; for i:=1 to 2 do begin for j:=1 to 4 do writeln(i, j, k); for k:=1 to 3 do writeln(i, j, k); b) i:=0; j:=0; k:=0; for i:=1 to 2 do for j:=1 to 4 do for k:=1 to 3 do writeln(i, j, k); Trabajo Práctico N° 1 web: http://www.lip.uns.edu.ar/pci for k:=1 to 3 do writeln(i, j, k); end; - *: [email protected] Página 3 de 4 Universidad Nacional del Sur Principios de Computadoras I 2° Cuatrimestre 2009 32) La Ley de Ohm, establece que la intensidad de la corriente eléctrica que circula por un dispositivo lineal es directamente proporcional a la diferencia de potencial aplicada e inversamente proporcional a la resistencia del mismo, según expresa la fórmula siguiente: En donde, I = Intensidad en amperios (A) (corriente) V = Diferencia de potencial en voltios (V) (voltaje) R = Resistencia en ohmios (O). Dado un valor de voltaje especificado por el usuario y considerando que la resistencia puede tomar valores entre 100Ω y 1500Ω con intervalos de 100Ω, realice un programa en Pascal que muestre en pantalla una tabla donde se indique el valor de la corriente en función de los valores de las resistencias. 33) Implemente un programa en Pascal para calcular las siguientes ecuaciones: a) 4 ⋅ 5000 1 ∑ (−1 ) 2n + 1 n n =0 5000 b) 1 2 n =1 n 6∑ 4n 2 c) 2 ⋅ ∏ 2 n =1 4n − 1 5000 Trabajo Práctico N° 1 web: http://www.lip.uns.edu.ar/pci - *: [email protected] Página 4 de 4