Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛПР_ПР12ЭК (Автосохраненный).docx
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

Практическая работа №8-9

по дисциплине «Информатика».

Тема: «МАССИВЫ»

Целью работы является:

  • освоение объявления массивов целых и вещественных типов;

  • овладение навыками алгоритмизации и программирования структур типа массив;

  • изучение основных характеристик массивов данных

  • получение навыков использования программирования с вложенными циклами.

Задание на выполнение лабораторной работы

Разработать схему алгоритма и программу обработки массива в соответствии с вариантом задания.

Программа должна включать:

  • объявление массивов целых и вещественных типов;

  • ввод исходных данных;

  • обработку числовых значений массива в соответствии с вариантом задания;

  • вывод результатов выполнения программы.

Средства и оборудование

Персональная ЭВМ, среда программирования Borland Pascal.

Теоретические основы

Массив- это совокупность однотипных элементов. В массивы могут быть объединены данные любого типа. Данные объединяются в массив в случае, если необходимо выполнить одни и те же действия над определенным количеством однотипных значений. Массивы отображают следующие математические понятия:

  • вектор с элементами для - одномерный массив;

  • матрица с элементами - двумерный массив;

  • пространство - n-мерный массив, где n- количество его измерений (индексов).

Объявление массива определяет атрибуты, размерность и размер:

  • размерность определяет количество индексов при обращении к элементу массива;

  • размер массива определяет количество его элементов с учетом всех его измерений.

Массивы можно объявить в разделах Type или Var. Форма объявления массива:

Type( Var)

T = array[T1] of T2;

где T- идентификатор типа массива (идентификатор массива);

T1- тип индексов массива в виде списка типов, по одному для каждого измерения (как правило тип индексов диапазонный);

T2- тип элементов массива.

Примеры объявления массивов:

Type

Vector=array[0..10] of Real;

Matrix= array[0..10,0..10] of Real;

Matrix1=array[0..10] of Vector;

Var

f: Vector;

A: Matrix;

f1: array[0..10] of Integer;

A1: array[0..10,0..10] of Integer;

B: array[0..10,0..20,0..30 ] of Extended;

При объявлении массива границы изменения значений индексов массива возможно определить как константы. Например:

Const

m=10;

n=20;

A2: array[0..m,0..n] of Real;

Обращение к массиву можно производить только поэлементно. Например:

for i:= 0 to 10 do

f[i]:= …;

for i:= 0 to 10 do

for j:= 0 to 10 do

a[i,j]:=…;

Варианты заданий

1. Даны натуральное число n, действительные числа a1,…, an:

а) определить количество положительных и отрицательных членов последовательности;

б) определить min и max значения;

в) наименьшее (наибольшее) из четных чисел, входящих в последовательность;

г) наибольшее (наибольшее) из нечетных и количество четных чисел, входящих в последовательность;

д) отсортировать последовательность по возрастанию (убыванию) значений элементов;

е) определить ;

ж) получить все значения j ( ), для которых ;

2. Даны целые числа a1,…, a50. Получить последовательность b1,..., b50, которая отличается от исходной тем, что все нечетные члены удвоены.

3. Вычислить , где

4. Дано

.

Получить .

5. Дано

Получить .

6. Дано

.

Среди a1,…,an найти все положительные значения, среди положительных a1,…,an выбрать наименьшее число.

7. Дано

Найти сумму квадратов тех чисел a1,…,a100, которые не превосходят двух.

8. Даны натуральное число n, действительные числа x1,...,x3n. Вычислить сумму чисел из xn+1,…,x3n, которые превосходят по величине все числа x1,…,xn.

9. Даны действительные числа a, b (a <b), натуральное число n, функция у = f(x), определенная на отрезке [а, b]. Для значений аргумента xi=a+ih (i = 0, 1, .. ., n), h=(b-а)/n вычислить значения функции yi=f(xi) (i = 0, 1, ..., n).

Вывести хi и уi (i=0, 1, ..., n) в виде таблицы из двух колонок. В i-ю строку таблицы заносятся соответствующие значения хi и уi. Рассмотреть следующие функции:

а) у = sin х + cos 2х, а=-, b=, n=50;

б) у = sin + соs х, а=0, b=2, n=50;

в) у = , а=-3, b=5, n=40;

г) у = , а=-1, b=2, n=30;

д) у = xe-x, а=-1, b=3, n=40.

10. Рассматривается последовательность a1,…,a1000. Требуется определить, сколько членов последовательности с номерами 1, 2, 4, 8, 16, ... имеют значение, меньшее, чем 0.25. При этом считать, что

а) ak=sin2(3k+5)-cos(k2-15), k=1, 2, ..., 1000;

б)  ;

в) a1,…,a1000 - заданные действительные числа;

г)  .

Дана матрица размером .

  1. Найти сумму элементов каждого столбца.

  2. Найти сумму элементов каждой строки.

  3. Найти сумму элементов каждого чётного столбца.

  4. Найти сумму элементов каждой чётной строки.

  5. Найти сумму элементов каждого нечётного столбца.

  6. Найти сумму элементов каждой нечётной строки.

  7. Найти сумму элементов матрицы.

  8. Найти элемент, имеющий наибольшее значение.

  9. Найти элемент, имеющий наименьшее значение.

  10. В каждой четной строке матрицы заменить значения элементов нулем и просуммировать элементы нечётных столбцов.

  11. В каждой нечетной строке матрицы заменить значения элементов нулем и просуммировать элементы чётных столбцов.

Дана квадратная матрица порядка N

  1. Просуммировать элементы главной диагонали.

  2. Просуммировать элементы побочной диагонали.

  3. Просуммировать элементы, расположенные над главной диагональю.

  4. Просуммировать элементы, расположенные над побочной диагональю.

  5. Просуммировать элементы, расположенные под главной диагональю.

  6. Просуммировать элементы, расположенные под побочной диагональю.

  7. Заполнить квадратную матрицу таким образом, чтобы значения элементов главной диагонали были равны единице.

  8. Заполнить квадратную матрицу таким образом, чтобы элементы побочной диагонали были равны единице.

  9. Определить, является ли матрица симметричной относительно главной диагонали.

  10. Определить, является ли матрица симметричной относительно побочной диагонали.

  11. Найти сумму элементов первой строки и последнего столбца.

  12. Найти сумму элементов первого столбца и последней строки.

  13. Найти наибольшее из значений элементов первой строки и последнего столбца.

  14. Найти наибольшее из значений элементов главной диагонали.

  15. Найти наибольшее из значений элементов побочной диагонали.

  16. Найти наибольшее из значений элементов находящихся над главной диагональю.

  17. Найти наибольшее из значений элементов находящихся под главной диагональю.

  18. Найти наибольшее из значений элементов находящихся над побочной диагональю.

  19. Найти наибольшее из значений элементов находящихся под побочной диагональю.

  20. Значения элементов главной диагонали заменить нулем и просуммировать элементы, расположенные под главной диагональю.

  21. Значения элементов главной диагонали заменить нулями и просуммировать элементы, расположенные под побочной диагональю.

  22. Дана матица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы:

  1. Получить квадратную матрицу порядка n:

a) ; б) ; в) ;

г) ; д) ; е) ;

  1. Даны квадратная матрица А порядка n и вектор b с n элементами. Вычислить:

  1. ;

  2. ;

  3. , где E - единичная матрица порядка n.

  1. Дана квадратная матрица A порядка n. Получить вектор , где b - вектор, элементы которого вычисляются по формуле:

а) , (i=1,…,n);

б) (i=1,…,n).

  1. Дано действительное число х. Получить квадратную матрицу порядка 10:

, середина заполняется нулями.

Контрольные вопросы

  1. Что такое массив ?

  2. Как определить местоположение элемента в массиве ?

  3. Особенности расположения элементов массива в памяти ЭВМ. Особенности расположения в памяти многомерных массивов.

  4. Каким образом задаётся описание массива, что в нём указывается ?

  5. Общие и отличительные черты одномерных, двумерных и n- мерных массивов.

  6. В каких операциях могут участвовать массивы и какие к ним при этом предъявляются требования ?

  7. Что называется сортировкой массива ? Какие методы сортировки вы знаете ?

  1. Дано действительное число x и натуральное n. Описать функции:

а)  ;

б)  ;

в)  ;

г)  ;

д)  ;

е)  ;

ж)  ;

з)  ;

и)  ;

к)  ;

л)  ;

м)  ;

н)  ;

о)  ;

п)  ;

р)  ;

с)  ;

т)  ;

у)  ;

ф)  ;

х)  ;

ц)  ;

ч)  ;

э)  ;

ю)  ;

я)  ;

аа)  ;

аб)  .

Контрольные вопросы

  1. В каком месте программы объявляются процедуры (функции) ?

  2. Поясните структуру процедуры (функции).

  3. Что такое глобальные и локальные переменные ?

  4. Что такое формальные и фактические параметры ?

  5. Какие типы данных могут быть использованы при определении параметров подпрограмм ?

  6. Что такое параметры - значения и параметры-переменные ?

  7. Как определить параметры - значения и параметры-переменные ?

  8. В каких случаях следует использовать параметры- значения и параметры–переменные ?

  9. Как производится вызов процедуры (функции) ?

Литература

  1. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. 2-е изд., перераб. и доп. – СПб.: БХВ – Санкт – Петербург, 2000. – 416с.