Программа вылетает т.к. много значений перебирает, если не хочется подобного просто смените ограничение.
var i,a,b,c,d:integer;
begin
for i:=1000 to 9999 do begin
a:=i mod 10;
b:=(i div 10) mod 10;
c:=(i div 100) mod 10;
d:=(i div 1000) mod 10;
if (a=b) and (b=c) and (c=d) then writeln ('odinakovie cifri - ',i);
if (a<>b) and (a<>c) and (a<>d) and (b<>c) and (b<>d) and (c<>d) then writeln('ne odinakovie cifri - ',i);
end;
Program 1rst;
uses Crt;
var a,b,output1,output2:real;
begin
write('Введите а= ');Readln(a);
write('Введите b= ');Readln(b);
output1:=6*a+15*b-13*b;
output2:=(a+b)*(a-b);
writeln(output1:5:2,output:8:2);
readln;
end.
Procedure PrintMatrix(matrix : array[,] of integer);
begin
matrix.Println;
end;