Var a:array [1..3,1..5] of integer;
i,j,s:integer;
begin
randomize;
for i:=1 to 3 do begin
for j:=1 to 5 do begin
a[i,j]:=random(21)-10;
write (a[i,j]:4);
end;
writeln;
end;
for i:=1 to 3 do
for j:=1 to 5 do
s:=s+a[i,j];
writeln (s);
readln;
end.
Алгоритм - этоa. описание последовательности действий для решения задачи или достижения поставленной цели;b. правила выполнения основных операций обработки данных;c. описание вычислений по математическим формулам.Перед началом разработки алгоритма необходимо четко уяснить задачу: что требуется получить в качестве результата, какие исходные данные необходимы и какие имеются в наличии, какие существуют ограничения на эти данные. Далее требуется записать, какие действия необходимо предпринять для получения из исходных данных требуемого результата.На практике наиболее распространены следующие формы представления алгоритмов: словесная (записи на естественном языке); графическая (изображения из графических символов); псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.); программная (тексты на языках программирования).Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.Пример. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.Алгоритм может быть следующим:1. задать два числа;2. если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;3. определить большее из чисел;4. заменить большее из чисел разностью большего и меньшего из чисел;5. повторить алгоритм с шага 2.Описанный алгоритм применим к любым натуральным числам и должен приводить к решению поставленной задачи. Убедитесь в этом самостоятельно, определив с помощью этого алгоритма наибольший общий делитель чисел 125 и 75.Словесный способ не имеет широкого распространения по следующим причинам: такие описания строго не формализуемы; страдают многословностью записей; допускают неоднозначность толкования отдельных предписаний.Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным.При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.
бег - бог - рог - рок - рак - мак - маг - шаг
Const n=10;
var a:array[1..n] of real;
max,min:real; i:integer;
begin
Randomize;
writeln('Исходный массив:');
for i:=1 to n do begin
a[i]:=random(21)-10;
write(a[i],' ');
end;
writeln;
max:=a[1]; min:=a[1];
for i:=2 to n do
begin
if a[i]>max then max:=a[i];
if a[i]<min then min:=a[i];
end;
writeln('max = ',max,' min = ',min);
max:=max*max; min:=min*min;
writeln('Измененный массив:');
for i:=1 to n do
if a[i]>0 then a[i]:=a[i]*min else a[i]:=a[i]*max;
for i:=1 to n do write(a[i]:5);
writeln;
end.
Пример:
Исходный массив:
5 6 7 0 -6 5 -2 10 7 -2
max = 10 min = -6
Измененный массив:
180 216 252 0 -600 180 -200 360 252 -200
Можно, например, так (метод деления пополам):
const eps=10E-10;
function func(x:real):real;
begin
func:=ln(x)-1/x;
end;
var a,b,h,x,f1,f2: real;
begin
a:=0; h:=0.1;
a:=a+h;
f2:=func(a);
repeat
f1:=f2;
a:=a+h;
f2:=func(a);
until f1*f2<0;
b:=a; a:=a-h;
writeln('a = ',a,' b = ',b);
x:=(a+b)/2;
while abs(func(x))>eps do
begin
if func(a)*func(x)<0 then b:=x
else a:=x;
x:=(a+b)/2;
end;
writeln('x = ',x);
end.
Результат:
a = 1.7000000000000004E+000 b = 1.8000000000000005E+000
x = 1.7632228344678880E+000