program P8_1;
uses wincrt;
var
i, j, n : integer;
flag : boolean;
nums : array [1..50] of integer;
Begin
write('Enter number of your inputs >>> ');
readln(n);
write('Input numbers >>> ');
for i := 1 to n do
read(nums[i]);
for i := 1 to n do
begin
flag := true;
j := 2;
while (j <= (nums[i] div 2)) and (flag = true) do
begin
if nums[i] mod j=0 then
flag := false;
j := j + 1;
end;
if (flag) then
nums[i] := 0;
end;
writeln('The result is...');
for i := 1 to n do
write(nums[i]:3);
End.
program P8_2;
uses wincrt;
const
tax = 0.1;
insurance = 0.07;
var
employee : array [1..50, 1..3] of integer;
salary : array [1..50] of real;
i, j, k, temp, n :integer;
tempr : real;
Begin
write('Enter number of your inputs >>> ');
readln(n);
writeln('Input data ... ');
for i := 1 to n do
for j := 1 to 3 do
read(employee[i, j]);
for i := 1 to n do
salary[i] := employee[i,2] * employee[i,3] - employee[i,2] * employee[i,3] * (tax + insurance);
for i := 1 to n do
for j := 1 to n-1 do
if employee[i,1] < employee[j,1] then
begin
for k := 1 to 3 do
begin
temp := employee[j,k];
employee[j,k] := employee[i,k];
employee[i,k] := temp;
end;
tempr := salary[i];
salary[i] := salary[j];
salary[j] := tempr;
end;
writeln('The result is ...');
for i:= 1 to n do
begin
for j := 1 to n do
write(employee[i,j]:6);
writeln(salary[i]:8:2);
end
End.
program P8_3;
uses wincrt;
var
prime, count : array [1..100] of integer;
i, j, k, n, num, temp : integer;
flag : boolean;
Begin
write('Input your number >>> ');
readln(num);
temp := num;
for i := 2 to num do
if num mod i = 0 then
begin
j := j + 1;
while num mod i = 0 do
begin
prime[j] := i;
count[j] := count[j] + 1;
num := num div i;
end;
end;
write(temp, ' = ');
for i := 1 to j do
write('(', prime[i], '^', count[i], ')', '*');
writeln('1')
End.
program P8_4;
uses wincrt;
var
num, result : longint;
i, r, p : integer;
Begin
write('Input your number >>> ');
readln(num);
p := 1;
while (num > 0) do
begin
r := num mod 10;
if (r <> 0) then
begin
result := result + r * p;
p := p * 10;
end;
num := num div 10;
end;
write('The result is ');
writeln(result)
End.
program P8_5;
uses wincrt;
var
nums : array [1..5,1..5] of integer;
sum, i, j : integer;
Begin
for i := 1 to 5 do
for j := 1 to 5 do
read(nums[i,j]);
for i := 1 to 5 do
begin
sum := 0;
for j := 1 to 5 do
begin
write(nums[i,j]:5);
sum := sum + nums[i,j];
end;
writeln(sum:5);
end;
for j := 1 to 5 do
begin
sum := 0;
for i := 1 to 5 do
sum := sum + nums[i,j];
write(sum:5);
end;
end.
program P8_6;
uses wincrt;
var
nums : array [1..10, 1..10] of integer;
m, n, i, j, k, temp : integer;
Begin
write('Input dimension of your matrix >>> ');
readln(m, n);
writeln('Input your data ...');
for i := 1 to m do
for j := 1 to n do
read(nums[i,j]);
for i := 1 to m do
for k := 1 to n do
for j := 1 to n-1 do
if nums[i,k] > nums[i,j] then
begin
temp := nums[i,k];
nums[i,k] := nums[i,j];
nums[i,j] := temp;
end;
for j := 1 to n do
for k := 1 to m do
for i := 1 to m-1 do
if nums[k,j] > nums[i,j] then
begin
temp := nums[k,j];
nums[k,j] := nums[i,j];
nums[i,j] := temp;
end;
writeln;
writeln('The sorted matrix is ...');
for i := 1 to m do
begin
for j := 1 to n do
write(nums[i,j]:5);
writeln;
end;
End.
program P8_7;
uses wincrt;
var
sorted : array [1..20] of integer;
added : array [1..5] of integer;
i, j, k, index : integer;
flag : boolean;
Begin
writeln('Input the sorted array (15 number) >>> ');
for i := 1 to 15 do
read(sorted[i]);
writeln;
writeln('Input other array >>> ');
for j := 1 to 5 do
read(added[j]);
index := 15;
for j := 1 to 5 do
begin
flag := false;
i := 1;
while (flag = false) do
begin
if sorted[i] > added[j] then
begin
for k := index+1 downto i+1 do
sorted[k] := sorted[k-1];
sorted[i] := added[j];
index := index + 1;
flag := true;
end;
i := i + 1;
end;
end;
writeln;
writeln('The result is ...');
for i := 1 to 20 do
write(sorted[i]:4);
End.
program P8_8;
uses wincrt;
var
id : array [1..10] of integer;
average : array [1..10] of real;
grade : array [1..10] of char;
i, j, count : integer;
ave1, ave2, ave3 : real;
Begin
writeln('Input data for 10 student (Id, Average) >>> ');
for i := 1 to 10 do
readln(id[i], average[i]);
for i := 1 to 10 do
if (average[i] >= 16) then
grade[i] := 'A'
else if (average[i] >= 14) and (average[i] < 16) then
grade[i] := 'B'
else if (average[i] >= 12) and (average[i] < 14) then
grade[i] := 'C'
else if (average[i] >= 10) and (average[i] < 12) then
grade[i] := 'D'
else
grade[i] := 'E';
for i := 1 to 10 do
if average[i] > ave1 then
begin
ave3 := ave2;
ave2 := ave1;
ave1 := average[i];
end
else if (average[i] < ave1) and (average[i] > ave2) then
begin
ave3 := ave2;
ave2 := average[i];
end
else if (average[i] < ave2) and (average[i] > ave3) then
begin
ave3 := average[i];
count := 1;
end
else if (average[i] = ave3) then
count := count + 1;
writeln('The third average is this class is ...');
for i := 1 to 10 do
if average[i] = ave3 then
writeln(id[i]:2, ave3:7:2, grade[i]:3);
End.
program P8_9;
uses wincrt;
var
matrix : array [1..10,1..10] of integer;
m, n, i, j, k, ind_i, ind_j, min : integer;
flag : boolean;
Begin
write('Input dimension of your matrix >>> ');
readln(m, n);
writeln('Input data for matrix >>> ');
for i := 1 to m do
for j := 1 to n do
read(matrix[i,j]);
for i := 1 to m do
begin
min := matrix[i,1];
flag := true;
for j := 1 to n do
if matrix[i,j] < min then
begin
min := matrix[i,j];
ind_i := i;
ind_j := j;
end;
for k := 1 to m do
if matrix[k,ind_j] > min then
flag := false;
if (flag) then
matrix[ind_i,ind_j] := maxint;
end;
writeln;
writeln('The result is ...');
for i := 1 to m do
begin
for j := 1 to n do
if matrix[i,j] = maxint then
write('*':4)
else
write(matrix[i,j]:4);
writeln;
end
End.