Сформулируйте задачу, решаемую в программе. Представьте блок схему программы.
program mb;
var A: array[1..15] of integer;
X, i: integer;
Begin
X:= 10;
Randomize;
for i:= 1 to 15 do begin
A[i]:= Random(46)-15;
if A[i] < X then write(A[i],' '); {выводим элементы, меньшие Х}
end;
Write(X, ' '); {сам Х}
for i:= 1 to 15 do
if A[i] > X then write(A[i],' '); {и элементы больше него}
Readln;
End.
Задача №3
Данные о температуре воды на Черноморском побережье за декаду сентября хранятся в массиве Определить, сколько за это время было дней, пригодных для купания (Т > 20 ).
Код:
program Temperature;
var i,n: integer;
T: array[1..10] of integer;
Begin
Randomize;
for i:= 1 to 10 do begin
T[i]:= 15 + Random(15);
Write(T[i], ' ');
if T[i] > 20 then inc(n);
end;
Writeln;
Write('Дней для купания: ',n);
Readln;
End.
Приведите алгоритм. Найдите ошибки
Задача:№4 Запишите алгоритм. Найдите ошибки
Даны K,L,P. Вычислить Z=корень квадратный из (L-P2 )/L*P; и S=sinZ+K2/cosK
Код:
program klp;
var k,l,p: integer;
s,z: real;
Begin
repeat
Write('Введите k,p,l: ');
Readln(k,p,l);
until (p*l <> 0) and ((l- sqr(p))/(l*p) > 0); {чтобы не было деления на 0 и}
{подкоренное выражение не меньше 0}
z:= sqrt( (l- sqr(p))/(l*p) );
s:= sin(z) + sqr(k)/cos(k);
Writeln('z= ',z:6:6);
Writeln('s= ',s:6:6);
Readln;
End.
Разложение ln(x) в ряд Тейлора
Задача:№5 Запишите алгоритм. Найдите ошибки
Используя разложение в ряд Тейлора найти значение ln(x) с заданной точностью e.
Описание:
Код:
program lnx_teilor;
var x,stx,lnt,e: real;
i,fakt,z: integer;
Begin
Write('Введите 1 < x < 2: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
stx:= x-1; {x в степени}
fakt:= 1; {значение знаменателя}
lnt:= 0; {первый элемент в разложении}
i:= 1; {счётчик}
z:= 1; {знак элемента}
while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности}
lnt:=lnt+z*stx/fakt;
inc(i);
stx:=stx*(x-1);
fakt:=i;
z:=z*(-1); {смена знака}
end;
Writeln('Количество элементов в разложении = ',i);
Writeln('Значение ln(',x:6:6,')= ',lnt:6:6);
Writeln('Значение компьютера: ',ln(x):6:6);
Readln;
End.
Разложение ex в ряд Тейлора
Задача: :№6 Запишите алгоритм. Найдите ошибки
Используя разложение в ряд Тейлора найти значение ex с заданной точностью e.
Описание:
Код:
program ex_teilor;
var x,stx,ex,e: real;
i,fakt: integer;
Begin
Write('Введите x: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
stx:=x; {x в степени}
fakt:=1; {значение факториала в знаменателе}
ex:=1; {первый элемент в разложении}
i:=1; {счётчик}
while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности}
ex:=ex+stx/fakt;
inc(i);
stx:=stx*x;
fakt:=fakt*i;
end;
Writeln('Количество элементов в разложении = ',i+1);
Writeln('Значение e^',x:6:6,'= ',ex:6:6);
Writeln('Значение компьютера: ',exp(x):6:6);
Readln;
End.
Разложение гиперболического косинуса в ряд Тейлора
Задача: :№7 Запишите алгоритм. Найдите ошибки
Используя разложение в ряд Тейлора найти значение ch(x) с заданной точностью e.
Описание:
Код:
program ch_teilor;
var x,stx,ch,e: real;
i,fakt: integer;
Begin
Write('Введите x: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
stx:= x*x; {x в степени}
fakt:= 2; {значение факториала в знаменателе}
ch:= 1; {первый элемент в разложении}
i:= 2; {счётчик}
while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности}
ch:=ch+stx/fakt;
inc(i,2);
stx:=stx*x*x;
fakt:=fakt*(i-1)*i;
end;
Writeln('Количество элементов в разложении = ',i div 2 + 1);
Writeln('Значение ch(',x:6:6,')= ',ch:6:6);
Readln;
End.
Разложение синуса в ряд Тейлора
Задача: :№8 Запишите алгоритм. Найдите ошибки
Используя разложение в ряд Тейлора найти значение sin(x) с заданной точностью e.
Описание:
Код:
program sin_teilor;
var x,stx,sint,e: real;
i,fakt,z: integer;
Begin
Write('Введите x: ');
Readln(x);
Write('Введите точность e: ');
Readln(e);
stx:= x; {x в степени}
fakt:= 1; {значение факториала в знаменателе}
sint:= 0; {первый элемент в разложении}
i:= 1; {счётчик}
z:= 1; {знак элемента}
while stx/fakt>=e do begin {до тех пор, пока элемент в разложении не меньше точности}
sint:=sint+z*stx/fakt;
inc(i,2);
stx:=stx*x*x;
fakt:=fakt*(i-1)*i;
z:=z*(-1); {смена знака}
end;
Writeln('Количество элементов в разложении = ',i div 2);
Writeln('Значение sin(',x:6:6,')= ',sint:6:6);
Writeln('Значение компьютера: ',sin(x):6:6);
Readln;
End.
Сортировка массива I
Задача: :№9 Запишите алгоритм. Найдите ошибки
Сортировка массива методом пузырька.
Описание:
Эту сортировку так называют потому, что при обработке массива более "лёгкие" элементы перемещаются вверх.
Код:
program pyz;
const n = 20;
var V:array[1..n] of integer;
i,j,tmp:integer;
begin
Randomize;
for i:=1 to n do
V[i]:= Random(100);
Writeln('Исходный массив: ');
for i:=1 to n do Write(V[i],' ');
for i:=1 to n-1 do
for j:=i+1 to n do
if V[i] >= V[j] then begin
tmp:= V[i];
V[i]:= V[j];
V[j]:= tmp;
end;
Writeln;
Writeln('Упорядоченный по неубыванию массив: ');
for i:=1 to n do Write(V[i],' ');
Readln;
End.
По убыванию элементов:
Код:
program pyz;
const n = 20;
var V:array[1..n] of integer;
i,j,tmp:integer;
begin
Randomize;
for i:=1 to n do
V[i]:= Random(100);
Writeln('Исходный массив: ');
for i:=1 to n do Write(V[i],' ');
for i:=1 to n-1 do
for j:=i+1 to n do
if V[i] < V[j] then begin
tmp:= V[i];
V[i]:= V[j];
V[j]:= tmp;
end;
Writeln;
Writeln('Упорядоченный по убыванию массив: ');
for i:=1 to n do Write(V[i],' ');
Readln;
End.