LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

4.8. Preguntas y ejercicios.

 

anterior :: indice :: siguiente

 

1.

 

¿Qué es una estructura de control secuencial?

2.

 

¿Qué es una estructura de control Condicional?

3.

 

¿Qué es una estructura de control de Repetición?

4.

 

Indique si los siguientes programas se pueden compilar :

     
   

A)

 
{$codepage UTF8}
VAR a,b:byte;
BEGIN
  a:=8;b:=9;
  if A=B then Writeln('iguales');
  else writeln('desiguales')
END.
   

B)

 

 
{$codepage UTF8}
VAR a,b:byte;
BEGIN
  a:=1;
  b:=9;
  if a=1 then Writeln('uno')
  else if a=2 then Writeln('dos')
  else if a=3 then writeln('tres');
  else Writeln(b)
END. 
   

C)

 

 
{$codepage UTF8}
VAR a:byte;
BEGIN
  readln(a);
  Case a of
    1:Writeln('uno');
    2:Writeln('dos');
    3:Writeln('tres');
    4:Writeln('cuatro')
    else Writeln(a)
  End
END. 
     

5

 

Indique cual de los siguientes programas crea un bucle infinito :

     
   

A)

 
{$codepage UTF8}
VAR i:byte;
BEGIN
  for i:=1 to 10 do;
  Writeln(i)
END.
   

B)

 

 
{$codepage UTF8}
VAR j:byte;
BEGIN
j:=1;
While j<10 do;
Begin
Writeln(j);
j+=1
End
END.
   

C)

 

 
{$codepage UTF8}
VAR a:byte;
cond:boolean;
BEGIN
a:=1;
cond:=a<10;
While cond do
Begin
Writeln(a);
a+=1
End
END.
     

D)

 

 
{$codepage UTF8}
VAR a:byte;
    cond : boolean;
BEGIN
  a:=1;
  cond:=true;
  While cond do
    Begin 
      Writeln(a);
      a+=1;
      cond:=a<10;
    End
END.
     

6.

 

Cree los programas que se describen a continuación, usando sólo la estructura if-then-else:

 

   

 

 

A)

 

Escriba un programa que le pida al usuario que introduzca dos números de coma flotante, y que imprima el mayor, y si son iguales que imprima el siguiente mensaje: "estos números son iguales".

   

B)

 

 

Escriba un programa que acepte tres números de coma flotante, que luego imprima la suma, el promedio, el producto y el menor y mayor de ellos.

   

C)

 

 

Escriba un programa que lea 5 números y determine cuál es el más pequeño y cuál es el más grande imprimiendolos en la pantalla.

   

D)

 

 

Escriba un programa que lea un entero y determine si es par o impar.

   

E)

 

 

Haga un programa que lea el ID(identificación de los empleados),tasa (el pago por hora), y las horas(numero de horas trabajadas en la semana), calcule el pago bruto; se paga hora y media por cada hora de tiempo extra. (después de 40 horas)

     

F)

 

 

La comisión sobre las ventas totales de un empleado es como sigue:
- Si ventas <$50, entonces no hay comisión
- Si $50 <= ventas <= $500, entonces la comisión será el 10% de las ventas.
- Si las ventas > $500, entonces la comisión será el 8% de las ventas.
Escriba un programa que lea las ventas y calcule su comisión.

     

G)

 

 

Escribir un programa que determine si un año es Bisiesto. Un año es bisiesto si es múltiplo de 4 y no de 100, o es múltiplo de 400. (1984 es bisiesto, 2000 es bisiesto, 1800 no lo es).

 

   

7.

 

Cree los programas que se describen a continuación, usando sólo la estructura Case-of:

 

   

 

 

A)

 

Cuatro enteros entre 0 y 100 representan las puntuaciones de un estudiante. Escribir un programa para encontrar la media de estas puntuaciones y que muestre su puntuación de acuerdo a la siguiente tabla:

 

  media  | Puntuación
------------------------
90 a 100 |    A
80 a 89  |    B
70 a 79  |    C
60 a 69  |    D
00 a 59  |    E

     

B)

 

En una empresa, los salarios de los empleados se van a aumentar según su contrato actual, de acuerdo a la siguiente tabla:

 

     salario                        |  aumento %
---------------------------------------------------
0 a 9000      unidades monetarias   |    20
9001 a 15000  unidades monetarias   |    10
15001 a 20000 unidades monetarias   |     5
más de 20000  unidades monetarias   |     0

 

Escribir el programa para que solicite el salario del empleado, calcule y visualice el nuevo salario.

     

C)

 

 

En una tienda, al monto de las compras de los clientes, se le hace un descuento según el total venta de su comprobante de pago.

            Total venta           | desc %
----------------------------------------------
0 a 100 unidades monetarias       |   0
101 a 2000 unidades monetarias    |   5
2001 a 5000 unidades monetarias   |  10
5001 a 10000 unidades monetarias  |  15

 

Escribir un programa que solicite el total de ventas de un cliente, calcule y visualice su descuento.

     

D)

 

 

En un supermercado el cliente puede pagar al contado o con tarjeta de crédito, al cliente se la hará un descuento de acuerdo a las siguientes condiciones:

 

Si el cliente paga con tarjeta de crédito y el importe es mayor a 100 u.m., entonces se le hace un descuento del 2.5%.
Si el cliente paga con tarjeta de crédito y el importe es menor a 100 u.m., entonces se le hace un descuento del 2%.
Si el cliente paga al contado y el importe es mayor a 100 u.m., entonces se le hace un descuento del 5%.
Si el cliente paga al contado y el importe es menor a 100 u.m., entonces se le hace un descuento del 3%.

     

E)

 

 

Haga un programa que lea desde teclado un numero desde el 1 al 7, y que imprima el día de la semana correspondiente, si el número esta fuera del rango que imprima un mensaje de error.

     

F)

 

 

Hacer un programa que lea desde el teclado el día, mes como números, y que imprima el día de la semana correspondiente, el mes correspondiente. Si el día o el mes ingresado es incorrecto entonces que muestre un mensaje de error.

 

   

8.

 

Cree los programas que se describen a continuación, usando sólo la estructura While-do:

 

   

 

 

A)

 

Haga un programa que pida el kilometraje recorrido y los galones usados por cada tanque lleno de un taxi, que muestre el kilometraje por galón (kilometraje/galón) de cada taxi.

El programa deberá pedir al usuario si desea continuar después de ingresar el kilometraje y los galones de cada taxi.

Cuando el usuario decida no continuar deberá mostrar el kilometraje promedio usado por galón de todos los taxis.

     

B)

 

 

Desarrolle un programa que determine si un cliente, ha excedido el límite de su cuenta de crédito. Por cada cliente se tiene la siguiente información:


  a) Número de cuenta (entero)
  b) Balance al inicio del mes
  c) Total de artículos que el cliente cargó a su cuenta este mes
  d) Límite de crédito


El programa deberá pedir esta información, calcular el balance nuevo (balance nuevo = balance inicial+cargos-créditos) y determinar si el nuevo balance excede el límite de su cuenta de crédito. Si el cliente ha excedido el límite de su cuenta de crédito, entonces el programa deberá presentar su número de cuenta, límite de crédito, balance nuevo y el mensaje "Límite de crédito excedido".

El programa deberá pedir al usuario si desea continuar después de calcular cada balance.

     

C)

 

 

Una empresa paga por comisión a sus vendedores del siguiente modo : Éstos reciben 150 u.m. a la semana más 9% de sus ventas brutas en la semana. Por ejemplo, un vendedor que vende 4000 u.m. en una semana recibirá 150 u.m. más 9% de 4000 u.m. es decir, un total de 510 u.m. El programa debe aceptar como entrada las ventas brutas de cada vendedor, calcular y mostrar sus ingresos. El programa deberá pedir al usuario si desea continuar después de calcular y mostrar los ingresos de un vendedor.

     

D)

 

 

Haga un programa que determine la paga total de varios empleados. El programa debe pedir las horas trabajadas en una semana, y la tarifa normal por hora. Por las primeras 40 horas se paga la tarifa normal y por las horas extras la mitad de la tarifa normal.

El programa deberá pedir al usuario si desea continuar después de mostrar la paga total de un empleado.

     

E)

 

 

Haga un programa que pida las cantidades vendidas de 10 vendedores y determine, al vendedor que vendio la mayor cantidad de unidades.

     

F)

 

 

Calcule el valor de PI a partir de la serie infinita:

 

          4     4     4     4     4
PI = 4 - --- + --- - --- + --- - --- + ....
          3     5     7     9    11


sólo hasta 5000 términos de la serie.

     

G)

 

  Escriba un programa que lea un entero no negativo, calcule e imprima su factorial.

 

   

9.

 

Cree los programas que se describen a continuación, usando sólo la estructura Repeat-until:

 

   

 

 

A)

 

Escriba un programa que imprima los enteros positivos desde 1 hasta 300, de manera que en la salida aparezcan tres números en una línea, así:

1    2    3
4    5    6
..
...
298  299  300

     

B)

 

 

Escriba un programa que calcule, con dos decimales, la suma:

 1     2     3           99
--- + --- + --- + ... + -----
 2     3     4           100

     

C)

 

 

Escriba un programa que lea un entero positivo N>=10 y calcule el producto.

 

  1       3       5          2N-1
----- x ----- x ----- x ... ------
 1^2     2^2     3^2         N^2

     

D)

 

 

La serie de Fibonacci : 1,1,2,3,5,8,13,21,... se define suponiendo que los dos primeros términos tienen el valor 1 y que cada término subsiguiente está dado por la suma de los dos términos precedentes:

1+1=2,1+2=3,2+3=5,3+5=8,....

Escriba un programa que imprima la serie de Fibonacci, de manera que no exceda de 10000

     

E)

 

 

Haga un programa que determine el mayor y menor de una serie de números ingresados por teclado, el programa debe pedir la cantidad de números a leer.

     

F)

 

 

Escriba un programa que lea desde el teclado las poblaciones de los países expresado en millones de habitantes y sus tasas, para que imprima las poblaciones (a la unidad de mil más cercana) de A y B cada año hasta cuando la población de A exceda la de B y que encuentre el número N de años para el cual la población de A excede a la de B.

 

Ejemplo :

   Población A : 20e+06

   Población B : 30e+06

   tasa A : 0.08

   tasa B : 0.01

 

ANIO POBLACION A POBLACION B

 

 1   21600       30300

 2   23328       30603

 3   25194       30909

 4   27210       31218

 5   29387       31530

 6   31737       31846

 7   34276       32164

 

   

10.

 

Cree los programas que se describen a continuación, usando sólo la estructura For-to-do:

 

   

 

 

A)

 

Haga un programa que lea el capital de un deposito, la tasa de interes (compuesto y anual) y el numero de años. Escriba un programa que imprima el capital de la cuenta cada año durante un periodo de n años.

     

B)

 

 

Escriba un programa que imprima las raices cuadradas, cúbicas, cuartas de los números del 1 al 100.

     

C)

 

 

Escriba un programa que permita convertir un numero binario a decimal.

     

D)

 

 

Escriba un programa que estime el valor de la constante matemática e empleando la fórmula, sólo para los primeros 1000 términos de la serie:

 

       1      1      1
e=1+ ---- + ---- + ---- + ...
      1!     2!     3!

     

E)

 

 

Escriba un programa que calcule el valor de e^x mediante la fórmula, sólo para los primeros 1000 términos de la serie:

 

         x     x^2     x^3

e^x=1+ ---- + ----- + ----- + ...
        1!      2!      3!

     

F)

 

 

Escribir un programa que imprima todos los enteros positivos impares menores que 100, omitiendo aquellos enteros divisibles por 7.

 

   

11.

 

Cree los programas que se describen a continuación, usando sólo la estructura For-downto-do:

 

   

 

 

A)

 

La constante PI se puede aproximar a partir de:

 

 PI^2          1       1       1
------ = 1 + ----- + ----- + ----- + ....
   6          2^2     3^2     4^2

 

Haga el programa sólo para los primeros 8000 términos de la serie.

     

B)

 

 

Escriba un programa que imprima el número 20 veinte veces, el número 19 diecinueve veces, el número 18 dieciocho veces, y así sucesivamente.

     

D)

 

 

Haga un programa que imprima los números impares que se encuentre entre 100 y 1.

     

E)

 

 

Escriba un programa que pida por teclado a,b y n, para calcular:

 

 1      1        1        1           1
--- + ----- + ------ + ------ +...+ ------
 a     a+b     a+2b     a+3b         a+nb

     

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS