Здавалка
Главная | Обратная связь

Печатает те элемента массива, индексы которых



1. являются степенями двойки (1, 2, 4, 8, 16...)

2. являются полными квадратами (1, 4, 9, 16,...)

3. являются числами Фибоначчи (1, 2, 3, 5, 8,...)

преобразует массив по следующему правилу (через x' обозначены элементы массива x после преобразования):

4. x'[k]=max x[i] при 1≤i≤k, k=1..n

5. располагает элементы массива в обратном порядке

6. x'[1]=x[1], x'[n]=x[n], x'[k]=(x[k-1]+x[x+1])/2

7. x'[k] равно среднему из x[i] при 1≤i≤k, k=1..n

8. элементы массива циклически сдвигает на две позиции влево

9. элементы массива циклически сдвигает на три позиции вправо

10. упорядочивает каждую пару элементов, так что x'[i]єx'[i+1] i=1,3, 5,...

11. переставляет первый элемент на k место так, что x'[i]<x'[k], x'[k] ≤x'[j], i=1, 2,...k-1, j=k+1, k+2,...n

12. сортирует массив x по невозрастанию методом пузырька

13. сортирует массив x по невозрастанию методом выбора максимального элемента

14. сортирует массив x по невозрастанию методом вставки

Процедуры и функции

Часть I

1)Определите значение переменной y после выполнения следующей программы:

program massiv;

function test(a, b: integer): integer;

var z: integerl

begin

if a>b then z:=a else z:=b;

test:=2*z+1;

end;

var y, k1, k2: integer;

begin

k1:=test(3, 7);

k2:=test(5, 2);

y:=k1+k2;

end.

2)Найдите ошибки в описании процедур и функций:

a. function g(k:integer):0..maxint; var i,s:0..maxint; begin s:=0; for i:=1 to k do s:=s+sqr(i) end; b. function h(x:integer):integer; begin h(x):=(sqr(x)+x)/2 end;
c. function m(x:integer):integer; var i: integer; begin m:=0; for i:=1 to 10 do m:=m+x*x; end; d. procedure zero(a:array[1..10] of integer); var i: integer; begin for i:=1 to n do a[i]:=0; end;

3)Допишите следующую программу, реализовав используемые в ней процедуры. Программа считает поэлементную сумму двух векторов. Какие параметры передаются по значению, а какие по ссылке и почему?

const

n=5; {размерность векторов}

type

vector=array[1..n] of integer;

{Реализация процедур:

ReadVector(var a:vector) -ввод вектора.

WriteVector(a:vector) -вывод вектора.

Sum(a,b:vector; var s:vector) -поэлементное суммиров. векторов,

s[i]:=a[i]+b[i]}

{Основная программа}

var

a,b, {исходные вектора}

s: vector; {сумма векторов a и b}

begin

ReadVector(a);

ReadVector(b);

Sum(a, b, s);

WriteVector(a);

WriteVector(b);

WriteVector(s);

end.

4)Напишите функцию для нахождения:

a)максимального элемента вектора; b)суммы элементов вектора.

Часть II

1)Написать процедуру или функцию:

1. Написать функцию для нахождения количества различных элементов вектора, не используя дополнительных массивов

2. Написать функцию less для сравнения векторов, такую что less(a,b)=true <=> a<b <=> a[i]<b[i] для любого i

3. Написать функцию для нахождения расстояния |a[i]-a[j]| между двумя наиболее близких по значению элементами вектора

4. Написать функцию для нахождения расстояния |a[i]-a[j]| между двумя наиболее удаленными по значению элементами вектора

5. Наити количество элементов группы, содержащей наибольшее число одинаковых элементов вектора

Например: 1 2 1 2 3 9 8 2 результат: 3

1 2 3 результат: 1

6. Дан массив целых чисел x[1]..x[m+n], рассматриваемый как соединение двух его отрезков: начала x[1]..x[m] длины m и конца x[m+1]..x[m+n] длины n. Написать процедуру, которая не используя дополнительных массивов, переставляет начало в конец

7. Написать процедуру для нахождения производной многочлена. Исходный и результирующий многочлен задаются массивами коэффициентов

8. Написать процедуру перемножения двух многочленов заданных массивами коэффициентов, результатом является многочлен заданный массивом коэффициентов

9. Написать процедуру для сортировки массива x по невозрастанию методом пузырька

Даны два массива целых чисел упорядоченные по невозрастанию:

10. Содержащие одинаковый элемент. Написать функцию, находящую этот элемент

11. Написать функцию, находящую количество общих элементов

12. Написать процедуру, соединяющую их в один упорядоченный по невозрастанию массив

13. Написать процедуру, находящую их пересечение в виде упорядоченного по невозрастанию массива

14. Написать функцию, находящую количество различных элементов







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.