Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vernye_zadachi.docx
Скачиваний:
1
Добавлен:
24.09.2019
Размер:
42.77 Кб
Скачать

Var j,I:integer;

s: real;

Begin

s:=0.0;

For i:=1 to N do

For j:=1 to M do

If Odd(i) then

if Mas[i,j]>0 then s:=s+Mas[i,j];

Sum:=s;

end;

ЗАДАЧА 19 Написать процедуру расчета корней квадратного уравнения, задаваемого тремя коэффициентами, и возвращающую количество корней и их значения. Процедура не должна ничего выводить на экран. (Все ситуации определяются количеством корней).

Procedure uravnenie(a,b,c:real;var kor1,kor2:real;Var K:integer);

var

D:real;

begin

D:=b*b-4*a*c; {вычисляем дискриминант}

if D>0 then begin; {если он больше нуля}

kor1:=(-b+sqrt(D))/(2*a);

kor2:=(-b-sqrt(D))/(2*a);

K:=2; {количество корней=2}

end;

if D=0 then begin{если дискриминант равен нулю}

kor1:=-b/(2*a);

kor2:=0.0;

K:=1; {уравнение имеет 1 корень}

end;

if D<0 then K:=0; {уравнение не имеет корней при отрицательном дискриминанте}

end;

ЗАДАЧА 20 Написать функцию логического (булевского) типа, возвращающую в вызывающую программу значение TRUE, если сумма элементов передаваемого ей произвольного вещественного массива (длиной N элементов), не превосходит заданной величины (передаваемой в процедуру в качестве одного из параметров) и FALSE а противном случае. N не больше 999.

Type

Massiv = array [1..999] of real; { описание типа массива}

Function obr (var Mas:massiv; var Nst:integer;K:real):boolean;

var

otv:boolean;

i:integer;

sum:real;

begin

sum:=0.0; ;{обнуляем переменную для суммы чисел}

for i:=1 to Nst do

sum:=sum+Mas[i]; ;{находим сумму чисел}

if sum<K then otv:=TRUE {если константа больше, то TRUE }

else otv:=FALSE; {иначе FALSE }

obr:=otv; {возвращаем значение в функцию}

end;

ЗАДАЧА 21 Написать функцию логического типа, возвращающую в вызывающую программу значение TRUE, если в передаваемом ей произвольном целочисленном массиве (длиной N элементов) больше положительных (включая 0) элементов, чем отрицательных, и FALSE в противном случае. N не больше 999.

Type

Massiv = array [1..999] of integer; { описание типа массива}

Function obrabotka (var Mas:massiv; var Nst:integer):boolean;

var

otv:boolean;

pol,otric,i:integer;

begin

pol:=0;{переменная для количества положительных чисел}

otric:=0; {переменная для количества отрицательных чисел}

for i:=1 to Nst do

if (Mas[i]<0) then otric:=otric+1

else pol:=pol+1;

if pol>otric then otv:=TRUE {если положительных больше то TRUE }

else otv:=FALSE; {если отрицательных больше то FALSE }

obrabotka:=otv; {возвращаем значение в функцию}

end;

ЗАДАЧА 22 Написать процедуру, возвращающую в вызывающую программу среднее арифметическое только отрицательных элементов передаваемого ей произвольного вещественного массива (длиной N элементов). N не больше 999. (Из всех операторов основной программы написать только описание типа массива).

Type

Massiv = array [1..999] of real; { описание типа массива}

FUNCTION srednee(Var Mas:Massiv; N:integer):real;

Var I,j:integer;

sum:real;

begin

sum:=0;

j:=0;

for i:=1 to N do

if Mas[i]<0 then {если отрицатетельное}

begin

sum:= sum+Mas[i]; {находим сумму}

j:=j+1; {считаем количество отрицательных элементов}

end;

srednee:=sum/j; {возвращаем среднее арифметическое в основную программу}

end;

ЗАДАЧА 23 Написать процедуру, которая в передаваемом ей произвольном квадратном вещественном массиве размерами N x N меняет местами элементы главной и обратной диагонали. При описании типа массива учесть, что N не может быть больше 20.

Type

Massiv = array [1..20,1..20] of real; { описание типа массива}

Procedure obmen (Var Mas:Massiv;kol:integer);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]