Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль Основа.doc
Скачиваний:
3
Добавлен:
17.11.2019
Размер:
494.59 Кб
Скачать

9. Массивы Часть I

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

program massiv;

const N=4;

type TVektor = array[1..N] of integer;

var a: TVektor;

y, i: integer;

begin

a[1]:=1; a[2]:=7; a[3]:=9; a[4]:=3;

y:=0;

for i:=1 to N do y:=y+a[i];

end.

  1. Найти ошибки в описании:

Const N=50;

Type Words=

array [0..n-1] of letter;

Letter='a'..'z';

Vector=array[real] of integer;

Digits=array[true..false]

of (1,2,3,4);

  1. Какие операции над массивами допустимы в следующей программе, а какие нет?

program Error;

var x,y: array[1..20] of real;

z,u: array[1..50] of real;

i: integer;

begin read(x,y);

if x<>y then

begin z:=x; x:=y; y:=z end

else x:=x+y;

for i:=1 to 20

do u[i]:=x[i]+y[i];

z:=u;

end.

  1. Написать программу, находящую максимальный элемент вектора X, состоящего из N элементов.

  2. Написать программу, заполняющую вектор X числами Фибоначчи.

  3. Написать программу, вычисляющую для вектора x значение: y=x[1]-x[2]+x[3]-...-x[n-1]+x[n]

  4. Написать программу, которая печатает те элемента массива, индексы которых кратны хотя бы одному из предыдущих.

Часть II

  1. Ответьте на вопросы:

    1. может ли массив содержать один элемент? а ни одного?

    2. можно ли во время выполнения программы изменить размер массива?

    3. верно ли, что тип элементов массива может быть любым?

    4. может ли тип индекса быть INTEGER или REAL?

    5. могут ли элементами некоторого массива быть числа 1, 1.2, 1.44?

  1. Const n=20;

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

Напишите программу, которая вычисляет для вектора x:

    1. min (x[i]-x[i-1]), i=2,3...n

    2. x[1]2-x[2]2+x[3]2-...-(-1)nx[n]2

    3. x[1] 2+x[3] 2+...+x[последнее нечетное] 2

    4. x[1]*x[n]+x[2]*x[n-1]+...x[n]*x[1]

    5. x[n]*(x[n]+x[n-1])*(x[n]+x[n-1]+x[n-2])*...*(x[n]+...x[1])

    6. true, если элементы массива x упорядочены строго по возрастанию, false в противном случае

    7. true, если элементы массива x не содержат 0, false в противном случае

    8. true, если элементы массива x чередуются по знаку (положительные, отрицательные)

    9. x[1]+x[1]*x[2]+x[1]*x[2]*x[3]+...+x[1]*x[2]*...x[n]

    10. номер первого отрицательного элемента массива х, или 0, если такого элемента нет

    11. количество четных положительных элементов массива х

    12. номер первого нулевого элемента, стоящего после отрицательного элемента, или 0, если такого элемента нет

    13. количество нулевых элементов, стоящих после отрицательных

  1. Напишите программу, которая:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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