LENGUAJES DE PROGRAMACIÓN  
 
 
FreePascal

PASCAL CON FREE PASCAL

 
 

 

3.11. Respuestas a las preguntas y ejercicios.

 

anterior :: indice :: siguiente

 

1.

 

Cree los programas que se describen a continuación.

 

   

 

 

A)

 
{$codepage UTF8}
VAR a,b : integer;
    c,d : single;
BEGIN
  Writeln('Ingrese dos enteros');
  Write('a=');readln(a);
  Write('b=');readln(b);
  Write('a+b=',a + b:10);
  Write('a-b=',a - b:10);
  Write('a*b=',a * b:10);
  Write('a/b=',a div b:10);
  Writeln('Ingrese dos reales');
  Write('c=');readln(c);
  Write('d=');readln(d);
  Write('c+d=',c + d:10:3);
  Write('c-d=',c - d:10:3);
  Write('c*d=',c * d:10:3);
  Write('c/d=',c div d:10:3);
END.                                   
     

B)

 

 
{$codepage UTF8}
VAR a,b,c:integer;
BEGIN
 Write('a=');readln(a);
 Write('b=');readln(b);
 c:=a div b;
 c:=a-(b*d);
 Write('residuo=',c:10);
END.

 

   

2.

 

Verifique si los siguientes programas están bien escritos.

 

 

 

Incorrectos : A.

Correctos : B.

 

   

3.

 

Verifique si los siguientes programas están bien escritos.

 

 

 

Incorrectos : A,B.

Correctos : C.

 

   

4.

 

Explique que hacen los siguientes programas.

 

 

 

 

 

A)

 

Este programa usa el operador or para comparar las dos variables.  Guardando en la variable c, el resultado que en este caso sería true.

     

B)

 

 

Este programa no hace absolutamente nada, porque no se pueden asignar valores booleanos a variables de tipo entero.

 

   

5.

 

Cree los programas que se describen a continuación.

 

   

 

 

A)

 
{$codepage UTF8}
VAR a,b:integer;
    c:boolean;
BEGIN
  Write('a=');readln(a);
  Write('b=');readln(b);
  c:=a=b;
  Writeln(c)
END.
     

B)

 

 
{$codepage UTF8}
VAR a,b:integer;
    c:boolean;
BEGIN
  Write('a=');readln(a);
  Write('b=');readln(b);
  c:=a>b;
  Writeln(c)
END.

 

   

6.

 

Indique si los siguientes programas están bien escritos.

 

 

 

Incorrectos : A,B.

 

   

7.

 

Explique que hace el siguiente programa.

 

   

 

 

A)

 

El siguiente programa compara dos enteros ingresados por teclado, y muestra true si ambos son iguales, y false en caso contrario.

 

   

8.

 

Cree los programas que se describen a continuación.

 

   

 

 

A)

 
{$codepage UTF8}
VAR
 numero,mascara:byte;
 n : byte;
BEGIN
 Writeln('Poner a 0 un bit de un byte, formato : ');
 Writeln('  786543210 --> posicion del bit');
 Writeln('  001010110 --> dígito binario');
 Write('ingrese byte =');readln(numero);
 Write('ingrese posicion del bit a cambiar : ');readln(n);
 mascara:=not(1 shl n);
 numero:=numero and mascara;
 Writeln('numero despues de cambiar el bit ',n,' =',numero);
 readln
END.
     

B)

 

 
{$codepage UTF8}
VAR
 numero,mascara:byte;
 n : byte;
BEGIN
 Writeln('Poner a 1 un bit de un byte, formato : ');
 Writeln('  786543210 --> posicion del bit');
 Writeln('  001010110 --> dígito binario');
 Write('ingrese byte =');readln(numero);
 Write('ingrese posicion del bit a cambiar : ');readln(n);
 mascara:=1 shl n;
 numero:=numero or mascara;
 Writeln('numero despues de cambiar el bit ',n,' =',numero);
 readln
END.

 

   

9.

 

Cree los programas que se describen a continuación.

 

   

 

 

A)

 

{$codepage UTF8}

VAR num1:byte;
    re,bin:longint;
BEGIN
    bin:=0;
    Write('Ingrese un numero : ');Readln(num1);
    re:=num1 mod 2;
    bin:=re;
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*10);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*100);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*1000);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*10000);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*100000);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*1000000);
    num1:=num1 div 2;
    re:=num1 mod 2;
    bin:=bin+(re*10000000);
    num1:=num1 div 2;
    writeln('Su equivalente en binario es : ',bin);
    readln;
END.

        

B)

 

 

{$codepage UTF8}

VAR num1,num2:byte;    
BEGIN
   Write('Ingrese un numero : ');readln(num1);
   Write('Su equivalente en binario es : ');

   num2:=0;
   num2:=num2+(byte(%10000000=(num1 and %10000000))*10000000);
   num2:=num2+(byte(%01000000=(num1 and %01000000))*1000000);
   num2:=num2+(byte(%00100000=(num1 and %00100000))*100000);
   num2:=num2+(byte(%00010000=(num1 and %00010000))*10000);
   num2:=num2+(byte(%00001000=(num1 and %00001000))*1000);
   num2:=num2+(byte(%00000100=(num1 and %00000100))*100);
   num2:=num2+(byte(%00000010=(num1 and %00000010))*10);
   num2:=num2+(byte(%00000001=(num1 and %00000001))*1);
   Writeln(num2);
   readln
END.

     

C)

 

 

{$codepage UTF8}

VAR b:integer;
    dec:byte;
BEGIN
   dec:=0;
   Write('Ingrese un numero binario de 8 dígitos : ');readln(b);
   dec:=dec+((b mod 10)*1);

   b:=b div 10;
   dec:=dec+((b mod 10)*2);

   b:=b div 10;
   dec:=dec+((b mod 10)*4);

   b:=b div 10;
   dec:=dec+((b mod 10)*8);

   b:=b div 10;
   dec:=dec+((b mod 10)*16);

   b:=b div 10;
   dec:=dec+((b mod 10)*32);

   b:=b div 10;
   dec:=dec+((b mod 10)*64);

   b:=b div 10;
   dec:=dec+((b mod 10)*128);
   Writeln('Su equivalente decimal es : ',dec);
   readln
END.

   

        

D)

 

 

{$codepage UTF8}

VAr celsius :single;
    Farenheith : single;
BEGIN
   Write('Ingrese una temperatura en celsius : ');
   Readln(celsius);
   Farenheith:=((9/5)*celsius)+32;
   Writeln('Farenheith : ',Farenheith:10:10);
END.

     

E)

 

 

{$codepage UTF8}

VAR pies,yardas,pulgadas,centimetros,metros : single;
BEGIN
   Write('Ingrese una medida en pies : ');
   Readln(pies);
   yardas:=pies/3;
   pulgadas:=pies*12;
   centimetros:=pulgadas*2.54;
   metros:=centimetros/100;
   Writeln('Pies : ',pies:10:3);
   Writeln('Yardas : ',yardas:10:3);
   Writeln('Pulgadas : ',pulgadas:10:3);
   Writeln('Centimetros : ',centimetros:10:3);
   Writeln('Metros : ',metros:10:3); readln
END.

     

F)

 

 

{$codepage UTF8}

VAR h,b1,b2,area : single;
BEGIN
   Write('Ingrese la altura del trapecio (h) : ');
   Readln(h);
   Write('Ingrese la base 1 (b1) : ');
   Readln(b1);
   Write('Ingrese la base 2 (b2) : ');
   Readln(b2);
   area:=((b1+b2)/2)*h;
   Writeln('Altura : ',h:10:3);
   Writeln('Base 1 : ',b1:10:3);
   Writeln('Base 2 : ',b2:10:3);
   Writeln('Area : ',area:10:3);
END.

     

G)

 

 

{$codepage UTF8}

VAR radio:extended;
BEGIN
  Write('Ingrese el radio de un circulo : ');
  Readln(radio);
  Writeln('diametro : ',radio*2:10:5);
  Writeln('circunferencia : ',2*3.14159*radio:10:5) ;
  Writeln('area : ',3.14159*radio*radio:10:5);
  Readln
END.

     

H)

 

 

{$codepage UTF8}

VAR num,dig1,dig2,dig3,dig4,dig5:integer;
BEGIN
   Write('Ingrese un numero de 5 digitos : ');
   Readln(num);
   dig1:=num div 10000;
   dig2:=(num mod 10000)div 1000;
   dig3:=((num mod 10000)mod 1000) div 100;
   dig4:=(((num mod 10000)mod 1000)mod 100)div 10;
   dig5:=((((num mod 10000)mod 1000)mod 100)mod 10);
   Writeln(dig1,' ',dig2,' ',dig3,' ',dig4,' ',dig5);
   Readln
END.

     

I)

 

 

{$codepage UTF8}

VAR primerT,ultimoT,suma,n:extended;
BEGIN
  Write('Ingrese primer termino : ');
  Readln(primerT);
  Write('Ingrese ultimo termino : ');
  readln(ultimoT);
  Write('Cantidad de numeros de la serie : ');
  Readln(n);
  suma:=n/(2/(primerT+ultimoT));
  Writeln('la suma de los terminos es : ',suma:5:0);
  Write('presione enter para terminar...');
  Readln
END.

 

   

10.

 

Verifique si los siguientes programas están bien escritos.

 

 

 

Incorrectos : A,B

Correctos : C,D

 

   

11.

 

Cree los programas que se describen a continuación.

 

   

 

 

A)

 

{$codepage UTF8}

VAR numero : single;
    raiz2,raiz3,raiz4:single;
BEGIN
  Write('Ingrese un numero : ');readln(numero);
  raiz2:=exp(ln(numero)*(1/2));
  raiz3:=exp(ln(numero)*(1/3));
  raiz4:=exp(ln(numero)*(1/4));
  Writeln('Raiz cuadrada : ',raiz2:10:10);
  Writeln('Raiz cubica : ',raiz3:10:10);
  Writeln('Raiz cuarta : ',raiz4:10:10);
  readln
END.

     

B)

 

 

{$codepage UTF8}

USES Math;

VAR numero : single;
    raiz2,raiz3,raiz4:single;
BEGIN
   Write('Ingrese un numero : ');readln(numero);
   raiz2:=numero**(1/2);
   raiz3:=numero**(1/3);
   raiz4:=numero**(1/4);
   Writeln('Raiz cuadrada : ',raiz2:10:10);
   Writeln('Raiz cubica : ',raiz3:10:10);
   Writeln('Raiz cuarta : ',raiz4:10:10);
   readln
END.

     

C)

 

 

{$codepage UTF8}

USES Math;

VAR S,C,tea,n:single;
BEGIN
  Write('Capital : ');readln(C);
  Write('periodos : ');readln(n);
  Write('tasa efectiva anual : ');readln(tea);
  S:=C*((1+(tea/100))**n);
  Writeln('Monto : ',S:10:3);
  readln
END.

     

D)

 

 

{$codepage UTF8}

VAR S,C,tea,n:single;
BEGIN
  Write('Monto : ');readln(S);
  Write('periodos : ');readln(n);
  Write('tasa efectiva anual : ');readln(tea);
  tea:=tea/100;
  C:=S*((1+tea)**-n);
  Writeln('Capital : ',C:10:3);
  readln
END.

 

   

12.

 

Cree los programas que se describen a continuación

 

   

 

 

A)

 

{$codepage UTF8}

VAR num1 : Single;
    num2 : Single;
    residuo : Single;
BEGIN
  Write('Ingrese un num1 : ');Readln(num1);
  Write('Ingrese un num2 : ');Readln(num2);
  residuo:=num1-((Int(num1/num2))*num2);
  Writeln('su residuo es : ',residuo:4:4);
  Writeln('Presione Enter ...');
  Readln;
END.

     

B)

 

 

{$codepage UTF8}

USES Math;
VAR num : real;
    red : integer;
    masc: integer;
BEGIN
  Write('Ingrese un real : ');readln(num);
  Write('Redondeo : ');readln(red);
  masc:=10**(red+1);
  num:=num+(5/(masc));
  masc:=10**(red);
  num:=(int(num*masc))/masc;
  writeln('Numero redondeado : ',num:0:red);
  readln
END.

     

anterior :: indice :: siguiente

 

 
 

  SUGERENCIAS