Problemas resueltos con Pascal

Pseudocódigo. Programación. Prácticas pascal

  • Enviado por: Cesar Sanchez
  • Idioma: castellano
  • País: España España
  • 6 páginas
publicidad
cursos destacados
Conviértete en un desarrollador web desde cero aprendiendo XHTML y CSS (Capítulo 1)
Conviértete en un desarrollador web desde cero aprendiendo XHTML y CSS (Capítulo 1)
¡Bienvenidos a la versión española del curso más completo y más vendido en la web...
Ver más información

Programación Android 04 Ciclo de vida de una actividad
Programación Android 04 Ciclo de vida de una actividad
Este curso trata sobre cómo el sistema operativo avisa del cambio de estado a las actividades en el sistema...
Ver más información

publicidad

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