Ingeniero en Informática


Problemas resueltos con Pascal


Metodología y Tecnología la Programación

Ejercicios: Tema 2

Problema 2.1

Diseñar un programa que permita dibujar en la pantalla el patrón siguiente:

--

|

|

--

|

|

--

Solución

program EseNoModular (output);

{ El programa dibuja la letra S según el patrón solicitado,

No necesita entrada de datos por lo que no se necesita input,

No es modular }

{ Programa Principal}begin {Patrón de la horizontal} writeln(' -','-')

{Patrón vertical izquierdo} writeln('|'); writeln('|');

{Patrón de la horizontal}

writeln(' -','-')

{Patrón vertical derecho}

writeln(' |');

writeln('|':3) {Una alternativa}

end.

Problema 2.2

Diseñar un programa que permita dibujar en la pantalla el patrón siguiente:

--

|

|

--

|

|

--

Solución

program ENoModular (output);

{ El programa dibuja la letra E según el patrón solicitado,

No necesita entrada de datos por lo que no se necesita input,

No es modular }

{ Programa Principal}begin {Patrón de la horizontal}

writeln(' -','-')

{Patrón vertical izquierdo}

writeln('|');

writeln('|');

{Patrón de la horizontal}

writeln(' -','-')

{Patrón vertical izquierdo}

writeln('|');

writeln('|');

{Patrón de la horizontal} writeln(' -','-')

end.

Problema 2.3

Diseñar un programa que admita por teclado los catetos de un triángulo rectángulo, calcule su hipotenusa, y la muestre por pantalla.

Solución

program hipotenusa (input, output);{ Este programa calcula la hipotenusa de un triángulo rectángulo. Para ello:

1.- Pide que se introduzcan por teclado los valores de los catetos

2.- Halla la hipotenusa utilizando el teorema de pitágoras

3.- Muestra por pantalla el resultado que ha calculado }

{Precondición: [cat1,cat2] " R }

var

cat1,cat2, {variables que acogen las medidas de los catetos}

sumCuadrados, {variable que acoge la suma de los cuadrados }

hipo :real; {variable que acoge el valor de la hipotenusa }

begin { comienza el programa hipotenusa}

{Precondición: input=[cat1,cat2]}

{Obtención de datos} write('Introduce la longitud del primer cateto: '); readln (cat1); write('Introduce la longitud del segundo cateto: '); readln (cat2);

{Confirmación de los valores}

writeln ('Cat1 = ',cat1:8:2, ' y Cat2 = ',cat2:8:2);

writeln ('Pulsa Enter para seguir');

readln; {Permite revisar en la pantalla los valores escritos}

{Cálculo de la hipotenusa}

{Invariante:hipo=(cat12 + cat22)1/2}

sumCuadrados:=sqr(cat1) + sqr(cat2);

hipo:=sqrt(sumCuadrados);

{Escritura de Resutados}

writeln(' ------ RESULTADOS ------');

writeln('La hipotenusa es: ', hipo:8:2)

Postcondición:output=[hipo]}end. {del programa hipotenusa}

Problema 2.4

Diseñar un programa que admita por teclado un ángulo en grados, calcule su tangente y la muestre por pantalla en notación decimal con siete caracteres y dos decimales.

Solución

program TangenteAnguloGrados (input,otutput);

{El programa calcula la tangente de un ángulo, introducido por teclado en grados y la muestra por la pantalla en notación decimal, con siete caracteres y dos decimales}

{Versión 1: No utiliza subprogramas}

{1.- Lee los grados

2.- Calcula la tangente

3.- La expresa por pantalla con la precisión que se pide}

const Pi=3.1416;

{Precondición: [angGrad,tan] " R " input=angGrad }

var angGra, {ángulo en grados } angRad {ángulo en radianes}

tan: real; {su tangente }

{Precondición: angGra " 90 + k*180 }

begin {Comienzo del Programa TangenteAnguloGrados }

{ Lectura del valor de ángulo en grados. } write ('Escribe el  ángulo en grados ( ángulo<>90+k*180): '); readln(angGra);

{ Precondición: ángulo <> 90 + k*180 }{ Conversión de grados a radianes }{ Invariante: angRad = angGra * pi / 180 }

angRad:=angGra * Pi / 180;

{ Cálculo de la tangente y asignación del valor a tan}

tan:= sin(angRad) / cos (angRad)

{Escribe valor en formato decimal con 7 caracteres y con dos decimales }

write('El valor de la tangente es: ');

writeln(tan:7:2)

{Postcondici¢n: Output = tan }

end. {Fin del programa TangenteAnguloGrados }

Problema 2.5

Diseñar un programa que admita por teclado un numero entero positivo, calcule su clave encriptada y la muestre por pantalla. La fórmula de encriptación es la siguiente:

Clave Encriptada (N) = ASCII ( NE), donde NE = K * (1+N2) , K=23

Solución

program EncriptaCodigo (input, output);

{versión 1: No Utiliza subprogramas }

{ Este programa encripta un número entero positivo: Para ello

1.- Pide que se introduzca el número por teclado

2.- Calcula el encriptado del numero que se ha introducido. Para ello:

2.1 Aplica la fórmula NE = K * (1 + N2), donde K = 23

2.2 Encripta el  rea. Para ello

2.2.1 Recoge el resultado NE

2.2.2 Devuelve el carácter ascii de la división entera de NE

y 256

3.- Muestra por pantalla el carácter resultante de la encriptación }

{ Precondiciones: n " Z+, input = [n]

Invariante: c=ascii( k *(1+sqr(n)) mod 256)

Postcondición output= [c]}

const

K=23;

NAscii=256;

var

num,

numEnc:integer;

claEnc:char;

begin { comienza el programa EncriptaCodigo}

{Obtención de datos:}

write('Introduce un número positivo: ');

readln (num);

{Cálculo del número encriptado}

numEnc:=(K*(1+sqr(num)));

{Cálculo del carácter encriptado}

carEnc:=char(numEnc mod NAscii);

{ Escritura de Resutados}

writeln(' ------ RESULTADOS ------');

writeln('El número escrito es: ', num:8);

writeln('El carácter que lo encripta es:', carEnc:3)

end. {del programa EncriptaCodigo}

Tema 2: Elementos de Pascal

1

1

Metodología y Tecnología de la Programación




Descargar
Enviado por:Cesar Sanchez
Idioma: castellano
País: España

Te va a interesar