1. Escribir un programa que lea dos números enteros A y B, y obtenga los valores A div B, A mod B. PROGRAM EJERDIV; Uses Crt; Var A,B: Integer; Var soluc: Integer; Begin ClrScr; WRITELN('Introduzca dos numeros:'); WRITELN; WRITE('A: '); READLN(A); WRITE('B: '); READLN(B); WRITELN; WRITE('A div B = '); soluc := A div B; {div hace la division de 2 numeros enteros} WRITELN(soluc); WRITELN; WRITE('A mod B = '); soluc := A mod B; {mod muestra el resto de una division de 2 numeros enteros} WRITELN(soluc); End.
  2. Escribir un programa en Pascal que muestre un mensaje afirmativo si el numero introducido es múltiplo de 5.
    PROGRAM EJER32; 
    	USES CRT;
    
    	var num:Integer;
    Begin
    	ClrScr;
    
    	WRITE('Introduzca un numero : '); 	READLN(num);
    	IF num mod 5 = 0 THEN
    		WRITE('El numero introducido es múltiplo de 5')
    	ELSE
    		WRITE('El numero introducido no es múltiplo de 5');
    End.
    

  3. Escribir un programa en Pascal que lea un numero y lo devuelva multiplicado por 5 y dividido por 7.
    PROGRAM EJER34; 
    	USES CRT;
    
    	var num, soluc:Real;
    Begin
    	ClrScr;
            WRITE('Introduzca un numero: ');
    	READLN(num);
    	WRITELN;
    	
    {multiplicamos y dividimos el numero obtenido}
    soluc := (num * 5) / 7;
    
    WRITE('(',num:5:2,' * 5) / 7) = ',soluc:5:2);
    {Poniendo ":5:2" le decimos el formato de salida del numero,
    5 posiciones y 2 decimales - Prueba a cambiarlo como mas te guste}
    End.
    

  4. Escribir un programe en Pascal que resuelva una matriz 3 x (sin bucles).
    PROGRAM DETER3; 
            USES CRT;
    
            VAR a11,a12,a13,a21,a22,a23,a31,a32,a33:REAL;
            VAR M:REAL;
    
    BEGIN
    
         ClrScr;
    
         WRITELN ('Introduzca los valores de la matriz 3x3');
         WRITELN (' ');
    
         WRITE ('a11: ');   READLN (a11);
         WRITE ('a12: ');   READLN (a12);
         WRITE ('a13: ');   READLN (a13);
         WRITE ('a21: ');   READLN (a21);
         WRITE ('a22: ');   READLN (a22);
         WRITE ('a23: ');   READLN (a23);
         WRITE ('a31: ');   READLN (a31);
         WRITE ('a32: ');   READLN (a32);
         WRITE ('a33: ');   READLN (a33);
    
         WRITELN (' ');
    
         M:=(a11*a22*a33)+(a21*a32*a13)+(a31*a12*a23)
           -(a13*a22*a31)-(a11*a23*a32)-(a12*a21*a33);
    
         WRITE ('El resultado es: ');        WRITE (M:5:2);
    
    END.
    

  5. Escribir un programa que convierta un número de segundos en su equivalente en minutos y segundos.
    PROGRAM EJERSEG;
            Uses Crt;
                 var seg0,seg,min: Integer;
    Begin
         ClrScr;
                WRITE('Introduzca los segundos: '); READLN(seg0);
                WRITELN;
    
                min := seg0 div 60;
                seg := seg0 mod 60;
    
                WRITE(seg0,' segundos son ',min,' minutos y ',seg,'
    		segundos.');
    End.
    

  6. Imprimir la media de los elementos que se encuentran en las posiciones pares y la media de los elementos que se encuentran en las posiciones impares de un vector numérica.
    PROGRAM EJEMEDIA;
            Uses Crt;
                 var sumapar,sumaimp,n_par,n_imp: Integer;
                 var i: Integer;
                 var media_p,media_i: Real;
                 const num=10;
                 var numeros: Array[1..num] of Real;
    Begin
         ClrScr;
                WRITELN('Introduzca los ',num,' numeros');
                WRITELN;
    
                sumapar := 0;
                sumaimp := 0;
                n_par   := 0;
                n_imp   := 0; {Inicializamos las variables a 0 para evitar
    		sorpresas}
    
                For i := 1 to 10 do
                    Begin
                         WRITE('Introduzca el numero ',i,' : '); READLN
    			(numeros[i]);
                         If num mod 2 = 0 then  {para que sea par, el
    			resto de una division debe ser 0}
                            Begin
                                 n_par := n_par + 1; {tambien se puede
    			hacer con "inc(n_par)"}
                                 sumapar := sumapar + num;
                            End
                         Else {si no es par, DEBE ser impar}
                            Begin
                                 n_imp := n_imp + 1;
                                 sumaimp := sumaimp + num;
                            End;
                    End;
    
                {Vamos a hallar la media de los pares y los impares}
    
                WRITELN;
                media_p := sumapar / n_par;
                media_i := sumaimp / n_imp;
                WRITELN('La media de los numeros pares es: ',media_p:5:2);
                WRITELN;
                WRITELN('La media de los numeros impares es: ',media_i:5:2);
    End.
    

  7. Escribir un programa que muestre en pantalla VS2 realizado por nosotros (usar PROCEDURE).
    PROGRAM VS2 (INPUT, OUTPUT);
            Uses Crt;
    
    	PROCEDURE letra_V; 
    		BEGIN	WRITELN('V       V');		
    			WRITELN(' V     V ');
    			WRITELN('  V   V  ');
    			WRITELN('   V V   ');
    			WRITELN('    V    ');
    		END;
    	PROCEDURE letra_S;
    		BEGIN
    			WRITELN('SSSSSSS');
    			WRITELN('S	');
    			WRITELN('SSSSSSS');
    			WRITELN('      S');
    			WRITELN('SSSSSSS');	
    		END;
    	PROCEDURE num_2;
    		BEGIN
    			WRITELN('2222222');
    			WRITELN('      2');
    			WRITELN('2222222');
    			WRITELN('2	');
    			WRITELN('2222222');
    		END;
    BEGIN {empezamos el programa principal}
    	ClrScr;
    	letra_V; WRITELN;
    	letra_S; WRITELN;
    	num_2;
    	REPEAT Until Keypressed; {mantenemos la pantalla viendo la
    	solución hasta que se pulse una tecla}
    END.
    

  8. Hacer un programa que incremente un número usando un PROCEDURE.
    PROGRAM incrementar (INPUT, OUTPUT);
            Uses Crt;
                 VAR num: INTEGER;
                 PROCEDURE incremento;
                      BEGIN
                           num := num + 1;
                      END;
    BEGIN
         ClrScr;
         WRITE('Introduzca un numero para incrementarle: '); READLN(num);
         WRITELN;
         incremento;
         WRITE('El numero, incrementado en una unidad, es: ',num);
         REPEAT Until Keypressed;
    END.
    

  9. Escribir un programa que, utilizando procedimientos con parámetros, lea desde el teclado las unidades y el precio que quiere comprar, y en funcion de las unidades introducidas le haga un descuento o no.
    PROGRAM productos (INPUT, OUTPUT);
    Uses Crt;
    CONST
         Desc = 15; {le haremos un 15% de descuento}
    VAR
       Unidades, precio: INTEGER;
       Total, cantDesc: REAL;
    PROCEDURE descuento (VAR cantidad, descuento: REAL; porciento: INTEGER);
              BEGIN
                   Descuento := cantidad * porciento/100; {el descuento es
    		el 15% del total}
                   Cantidad := cantidad - descuento;      {la cantidad final
    		es la cantidad - el descuento}
              END;
    BEGIN
         ClrScr;
         WRITE('Introduzca el numero de unidades: ');
         READLN(unidades);
         WRITELN;
         WRITE('Introduzca el precio: ');
         READLN(precio);
         WRITELN;
         Total := precio * unidades; {Calculamos el total}
         IF (unidades > 5) THEN descuento (total, cantDesc, desc) {aplicamos
    el descuento}
            ELSE cantDesc := 0;
         WRITELN('Total: ',total:5:2,' Descuento: ',cantdesc:5:2); {
    escribimos en pantalla el total y el descuento}
         REPEAT Until Keypressed;
    END.
    

  10. Hacer un programa que calcule el area de un círculo (usar un PROCEDURE).
    PROGRAM area (INPUT, OUTPUT);
            Uses Crt;
    
                 VAR radiocirc, resultado: REAL;
            PROCEDURE areacirculo (radio: REAL; VAR area: REAL);
                 CONST pi = 3.1415926535;
                 BEGIN
                      area := pi * SQR(radio);
                 END;
    BEGIN
         ClrScr;
                WRITE('Introduzca el radio del circulo: '); READLN
    		(radiocirc);
                WRITELN;
                IF (radiocirc > 0) THEN
                   BEGIN
                        areacirculo(radiocirc, resultado); {radiocirc se
    			corresponde con radio y resultado con area}
                        GOTOXY(20,5);
                        WRITELN('El area del circulo es: ',resultado:8:2);
                   END
                ELSE
                    WRITE('No puede introducir un radio negativo.');
    
         REPEAT Until Keypressed;
    END.
    

    Volver