Просмотрите данные программы, сформулируйте задачи, которые они реализуют. program z4;
var a,k,s:longint;
begin
writeln('Введите число');
readln(a);
s:=a;
while s>9 do
begin
k:=s; s:=0;
repeat
s:=s+k mod 10; k:=k div 10;
until k=0
end;
Writeln('Цифровой корень числа',a,'=',s);
end.
Объяснение:
programm.top /pascal
Минимальный элемент массива
Главная Pascal Алгоритмы Алгоритмы поиска Минимальный элемент минимальный элемент массиваочень просто. Если это упорядоченный массив, то достаточно вернуть первое или последнее значение, в зависимости от того, как отсортированы данные, от наименьшего к наибольшему или от наибольших к наименьшим. Это очень простая задача.В случае с неотсортированным массивом, задача поиска минимального значения элемента сводиться к полному обходу всех элементов и выбора из них -минимума.
Код программы для поиска минимального, по значению, элемента неупорядоченного массива
{$CODEPAGE UTF8} program Minimal; const arrayLength = 10; var inputArray : array [1..arrayLength] of integer; minimum, i: integer; begin randomize; writeln ('Исходный массив: '); {заполнение случайными числами} for i := 1 to arrayLength do begin inputArray[i] := random(100); write (inputArray[i]:4); end; writeln; {поиск минимального значения} {считаем что первый элемент и есть минимальный} minimum := inputArray[1]; for i := 2 to arrayLength do if minimum > inputArray[i] then {если минимум больше текущего} minimum := inputArray[i]; {присваиваем ему текущее значение} write('Минимальный элемент массива ', minimum); readln; end.
{ FreePascal 2.6.4}
program test;
uses
crt;
var
a, b, c, d : integer;
f : longint;
procedure swap (var x : integer; var y : integer);
var z : integer;
begin
z := x;
x := y;
y := z;
end;
function nod (m, n : integer) : integer;
begin
while m<>n do begin
if m>n
then
m:=m-n
else
n:=n-m;
end;
nod := m;
end;
function max (a,b : integer) : integer;
begin
if a>b
then max := a
else max := b;
end;
function min (x, y, z : integer) : integer;
var m : integer;
begin
m := x;
if y<m then m := y;
if z<m then m := z;
min := m;
end;
function mypow (a, b : integer) : integer;
var e, f : integer;
begin
f := 1;
for e:=1 to b do f := f*a;
mypow := f;
end;
function fact(a : integer) : longint;
var
i : integer;
res : longint;
begin
res := 1;
for i := 1 to a do res := res*i;
fact := res;
end;
begin
clrscr;
writeln('Test of function SWAP');
write('Input A: ');
readln(a);
write('Input B: ');
readln(b);
swap(a, b);
writeln('A=', a, ', B=', b);
writeln;
writeln('Test of function NOD');
write('Input A: ');
readln(a);
write('Input B: ');
readln(b);
c := nod(a, b);
writeln('NOD(', a, ',', b, ')=', c);
writeln;
writeln('Test of function MAX');
write('Input A: ');
readln(a);
write('Input B: ');
readln(b);
c := max(a, b);
writeln('MAX(', a, ',', b, ')=', c);
writeln;
writeln('Test of function MIN');
write('Input A: ');
readln(a);
write('Input B: ');
readln(b);
write('Input C: ');
readln(c);
d := min(a, b, c);
writeln('MIN(', a, ',', b, ',', c, ')=', d);
writeln;
writeln('Test of function POW');
write('Input A: ');
readln(a);
write('Input B: ');
readln(b);
c := mypow(a, b);
writeln('POW(', a, ',', b, ')=', c);
writeln;
writeln ('Test of function FACT (not large than 12!)');
write('Input A: ');
readln(a);
f := fact(a);
writeln(a, '!=', f);
writeln;
readkey;
end.