21.- ESCRIBIR UN PROGRAMA QUE RECORRA UN FICHERO Y QUE DADO UN DÍA MES Y AÑO IMPRIMA EL LUGAR Y EL VALOR ASOCIADO A DICHA FECHA. program examen2; uses crt, math; type registro=record lugar:string; dia:integer; mes:integer; anio:integer; valor: real; var x,y:registro; var f:file of registro; assing (f,'nombredelfichero'); reset (f); read (x.dia,x.mes,x.anio); read (f,y); while not eof (f) and (x.dia<>y.dia) or (x.mes<>y.mes) or (x.anio<>y.anio) do read (f,y); if not eof (f) then writeln (y.lugar,y.valor); close (f); if eof then writeln ('No se encontro el registro');
22.- Escribir un programa en Pascal que calcule el máximo y el mínimo de un vector introducido por el usuario. program maximo_minimo; uses crt, math; type vector=array of integer; var num,i:integer;vector1:vector; procedure maximo_v (var v:vector;n:integer); var i:integer;maximo:integer; maximo:=v[1]; for i:=1 to N do if v[i]>maximo then maximo:=v[i]; writeln ('El maximo del vector es:',maximo); procedure minimo_v (var v:vector; N:integer); var i:integer;minimo:integer; minimo:=32767; for i:=1 to N do if v[i]<minimo then minimo:=v[i];
writeln ('El minimo del vector es:',minimo); writeln ('Escribir el numero de componentes del vector:'); readln (num); setlength (vector1,num); for i:=1 to num do writeln ('Escribir la componente del vector:'); readln (vector1[i]); maximo_v (vector1,num); minimo_v (vector1,num);
23.- Escribir un programa que pase un número a hexadecimal. program hexadecimal; uses crt, math; var i,j,numero,x:integer;v:array [1..100]of integer; writeln ('Escribir un numero:'); readln (numero); i:=1; v[1]:=numero mod 16; while (numero div 16)>16 do x:=numero div 16; i:=i+1; v[i]:=x mod 16; numero:=x; v[i+1]:=x div 16; for j:=i+1 downto 1 do writeln ('El digito es:',v[j]);
24.- ESCRIBIR UN PROGRAMA QUE DADOS TRES NUMEROS QUE REPRESENTAN 3 LONGITUDES NOS DIGA SI EXISTE UN TRIANGULO QUE TENGA ESAS DIMENSIONES Para que haya un triangulo que tenga esas dimensiones la suma de cualesquiera dos lados tiene que ser mayor que el tercer lado: program triangulo; uses crt,math; var l1,l2,l3:real; writeln ('Introducir el primer lado del triangulo:'); readln (l1); writeln ('Introducir el segundo lado del triangulo:'); readln (l2); writeln ('Introducir el tercer lado del triangulo:'); readln (l3); if l1+l2>l3 then if l2+l3>l1 then if l1+l3>l2 then writeln ('Las tres longitudes forman un triangulo') end end end else writeln ('Los tres lados no forman un triangulo');
25.- ESCRIBIR UN PROGRAMA QUE ME DE EN MÁXIMO COMÚN DIVISOR DE DOS NÚMEROS Sabemos que si m es el máximo común divisor de dos numeros, entonces m/a tiene resto cero, que m/b tiene resto cero program mcd; uses crt, math; var a,b,c,i,j,maximo:integer; var v:array [1..100] of integer; writeln ('Introducir el mayor de los numeros:'); readln (b); writeln ('Introducir el menor de los numeros:'); readln (a); c:=b-a; for i:=b downto 1 do if (b mod i)=0 then if (a mod i)=0 then if (c mod i)=0 then j:=j+1; v[j]:=i; maximo:=v[j]; for j:=i downto 1 do
if v[j]>maximo then maximo:=v[j]; writeln ('El maximo comun divisor es:', maximo);
26.- Escribir un programa que me pida un número y me diga el número de dígitos que tiene. program ejercicio; uses crt,math; var numero,i,j:longint; writeln ('Escribir un numero:'); readln (numero); i:=1; j:=0; while (numero div i)>1 do i:=i*10; j:=j+1; writeln ('El numero de digitos que tiene el numero es:',j);
27.- Escribir todos los números primos desde 1 hasta 100. program numeros_primos; uses crt, math; type vector=array [1..100] of integer; var a:vector; n:integer; procedure crear_vector (var v:vector); var i:integer; for i:=1 to 100 do v[i]:=i; procedure primo (var numero:integer); var i,j:integer; j:=0; for i:=2 to numero-1 do if (numero mod i)=0 then j:=1 if j=0 then writeln ('El numero ', numero, ' es un numero primo'); procedure primos (var v1:vector); var i:integer; for i:=3 to 100 do primo (v1[i]);
crear_vector (a); primos (a);
28.- BUSCAR LOS NUMEROS QUE CUMPLAN LA CONDICIÓN DE QUE LA SUMA DE SUS CIFRAS AL CUBO ES IGUAL AL NUMERO program numeros; uses crt,math; var i,a,b,c,d,numero:integer; for i:=1 to 999 do a:=i div 100; b:=i mod 100; c:= b div 10; d:=b mod 10; numero:=(a*a*a)+(c*c*c)+(d*d*d); if (numero=i) then writeln ('El numero ', i, ' cumple la condicion');
29.- HACER UN NUMERO SOBRE OTRO. La expresión que nos da un numero n! r! n r! sobre otro es: ( ) program combinatoria; uses crt, math; var a,b,c:integer;resultado:real; function factorial (var numero:integer):real; var i:integer; factorial:=1; for i:=1 to numero do factorial:=factorial*i; if numero=0 then factorial:=1; if numero=1 then factorial:=1 writeln ('Introducir un numero:'); readln (a); writeln ('Introducir el otro numero'); readln (b); if (a>b) then c:=a-b;
resultado:=factorial (a)/(factorial(b)*factorial(c)); writeln ('Resultado:', resultado:5:0); end ; if (b>a) then c:=b-a; resultado:=factorial (b)/(factorial(a)*factorial(c)); writeln ('Resultado',resultado:5:0);
30.- PEDIR UNA MATRIZ 3X3 Y EL ELEMENTO CENTRAL HACER QUE SEA LA MEDIA DEL RESTO DE COMPONENTES DE LA MATRIZ program matriz_media; uses crt, math; type matriz=array [1..3,1..3] of real; var a,b:matriz; procedure leer_matriz (var m:matriz); writeln ('Escribir el elemento 11 de la matriz:'); readln (m[1,1]); writeln ('Escribir el elemento 12 de la matriz:'); readln (m[1,2]); writeln ('Escribir el elemento 13 de la matriz:'); readln (m[1,3]); writeln ('Escribir el elemento 21 de la matriz:'); readln (m[2,1]); writeln ('Escribir el elemento 23 de la matriz:'); readln (m[2,3]); writeln ('Escribir el elemento 31 de la matriz:'); readln (m[3,1]); writeln ('Escribir el elemento 32 de la matriz:'); readln (m[3,2]); writeln ('Escribir el elemento 33 de la matriz:'); readln (m[3,3]); m[2,2]:=0; function matriz_resultado (var m1:matriz):matriz ; var i,j:integer; var media,sumatorio:real;
sumatorio:=0; for i:=1 to 3 do for j:=1 to 3 do sumatorio:=sumatorio+m1[i,j]; media:=sumatorio/8; for i:=1 to 3 do for j:=1 to 3 do matriz_resultado[i,j]:=m1[i,j]; matriz_resultado[2,2]:=media; procedure escribir_matriz (var m2:matriz); var i,j:integer; for i:=1 to 3 do for j:=1 to 3 do write (m2[i,j]:5:2,''); writeln; leer_matriz (a);
b:=matriz_resultado (a); escribir_matriz (b);