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

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

Type

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

Procedure InpMN ( Var N:integer); {процедура ввода массива }

Begin

Writeln(‘введите N’ );

Repeat

Readln(N);

If (N>10) or (N<3) then

Writeln ('zadai snova');

until (N<=10) and (N=>3);

end;

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

Var j,i:integer;

s:real;

Begin

s:=0;

For i:=2 to (N-1) do {строки без крайних}

For j:=2 to (N-1) do { столбцы без крайних}

s:=s+Mas[i,j];

Sum:=s;

end;

ЗАДАЧА 2 Написать функцию, которая вычисляет сумму всех отрицательных элементов четных столбцов передаваемого ей произвольного вещественного массива размерами 10 х 10 элементов

FUNCTION Sum(Var Mas:Massiv):real;

Var j,I:integer;

s:real;

Begin

s:=0;

For i:=1 to 10 do

For j:=1 to 10 do

If not Odd(j) then { если четный столбец, то}

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

s:=s+Mas[i,j]; { считаем сумму }

Sum:=s; { возвращаем значение в основную программу}

end;

ЗАДАЧА 3 Написать функцию, которая вычисляет среднее арифметическое произвольного одномерного вещественного массива длиной N элементов. Если количество элементов в массиве, передаваемом в функцию меньше 1, функция должна равняться нулю. N не больше 999.

Type

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

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

Var i,j:integer;

sum,w:real;

begin

sum:=0;

j:=0;

if N<1 then {если меньше 1 элемента }

begin

srednee:=0; {присваиваем функции 0 }

exit; {возвращаемся в основную программу }

end

else

begin

for i:=1 to N do

begin

sum:= sum+Mas[i];

j:=j+1;

end;

w:=sum/j; end; { находим среднее арифметическое}

srednee:=w; {возвращаем значение в основную программу }

end;

ЗАДАЧА 4 Написать процедуру, переставляющую произвольный одномерный вещественный массив в обратном порядке (имя и длину массива - N не больше 999 включить в список параметров)

Type

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

PROCEDURE obrabotka (var Mas:massiv;Nstr:integer);

var Mas2:massiv;

i,j:integer;

begin

j:=Nstr;

for i:=1 to Nstr do begin

Mas2[j]:=Mas[i];

j:=j-1;

end;

for i:=1 to Nstr do

Mas[i]:=Mas2[i];

end;

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

FUNCTION number(Var Mas:Massiv; N:integer):integer;

Var I,j:integer;

min:real;

begin

min:=1000.0;

j:=0;

for i:=1 to N do

if ((Mas[i]<min) and (Mas[i]>0)) then {если положительное число меньше минимального}

begin min:=Mas[i]; {то его значение присваиваем минимальному}

number:=i; end; {и сохраняем его номер}

if (min=1000.0) then number:=0; {если таких чисел не было, возвращаем 0}

end;

ЗАДАЧА 6 Написать процедуру транспонирования (т.е. зеркального отображения относительно главной диагонали) произвольной квадратной вещественной матрицы размерами не более 10 х 10 элементов (размер и имя матрицы передавать процедуре через параметры)

Procedure Transp (Var Mas:Massiv;N:integer);

Var I,j:integer;

K:massiv; {транспонированная матрица}

Begin

for i:=1 to N do begin

for j:=1 to N do begin

K[i,j]:=Mas[j,i]; {транспонирование}

write (Fout,K[i,j]:6:2); {вывод матрицы в файл}

end;

writeln(Fout); {новая строка матрицы}

end;

end;

ЗАДАЧА 7 Написать функцию целого типа, которая вычисляет сумму всех положительных элементов нечетных строк передаваемого ей произвольного целочисленного массива размерами М х N элементов. М и N не больше 100.

{в основной программе ограничение на ввод М и N }

Repeat

Writeln (‘введите N’);

Readln(N);

Writeln (‘введите M’);

Readln(M);

Until (N<100) and (M<100);

FUNCTION Sum(Var Mas:Massiv; N,M:integer):integer;

Var j,i,s:integer;

Begin

s:=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;

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

PROCEDURE obrabotka (var Mas:massiv;Nstr:integer;var sum:real);

var

summa:real;

i,j:integer;

begin

j:=0;

summa:=0.0;

for i:=1 to Nstr do begin

if ((Mas[i]>1.0) and (Mas[i]<2.0)) then {если число в заданном интервале}

begin summa:=summa+Mas[i]; {то суммируется}

j:=j+1; {считаем количество чисел удовлетворяющих условию}

end;

end;

if (j=0) then {если таких чисел не было}

sum:=0 else {возвращаем 0 в основную программу}

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

end;

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

Type

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

FUNCTION sum(Var Mas:Massiv; N,K:integer):integer;

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