Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания.pdf
Скачиваний:
81
Добавлен:
13.02.2015
Размер:
1.2 Mб
Скачать

10.ЛАБОРАТОРНАЯ РАБОТА №8 «ОДНОМЕРНЫЕ МАССИВЫ»

Цель работы: Сформировать навыки по созданию и работе с одномерными массивами средствами изучаемого языка программирования

Общие вопросы работы с массивами смотри в главе 1.

13.2Задания к лабораторной работе №8

1.В массив A[N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.

2.В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

3.Дана последовательность целых чисел а1, а2,..., аn. Выяснить, какое число встречается раньше — положительное или отрицательное.

4.Дана последовательность действительных чисел а1, а2,..., аn. Выяснить, будет ли она возрастающей.

5.Дана последовательность натуральных чисел а1, а2,..., аn. Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.

6.Дана последовательность чисел а1, а2,..., аn. Указать наименьшую длину числовой оси, содержащую все эти числа.

7.Дан массив действительных чисел а1, а2,..., аn. Заменить все его члены, большие данного Z, этим числом. Подсчитать количество замен.

8.Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.

9.Дан массив действительных чисел, размерность которого N. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.

10.Даны действительные числа а1, а2,..., аn. Поменять местами наибольший и наименьший элементы.

11.Даны целые числа а1, а2,..., аn. Вывести на печать только те числа, для которых аi ≥ i.

12.Даны натуральные числа а1, а2,..., аn. Указать те из них, у которых остаток от деления на М равен L (0≤ L≤M— 1).

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

14.При поступлении в вуз абитуриенты, получившие двойку на первом экзамене, ко второму не допускаются. В массиве А[n] записаны оценки экзаме-

81

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

15.Дана последовательность чисел, среди которых имеется один нуль. Вывести на печать все числа до нуля включительно.

16.В одномерном массиве размещены: в первых элементах — значения аргумента, в следующих — соответствующие им значения функции. Напечатать элементы этого массива в виде двух параллельных столбцов (аргумент и значения функции).

17.Пригодность детали оценивается по размеру В, который должен соответствовать интервалу (А - δ, А + δ). Определить, имеются ли в партии из N деталей бракованные. Если да, то подсчитать их количество, в противном случае выдать отрицательный ответ.

18.У вас есть доллары. Вы хотите обменять их на рубли. Есть информация о стоимости купли-продажи в банках города. В городе N банков. Составьте программу, определяющую, какой банк выбрать, чтобы выгодно обменять доллары на рубли.

19.Дан целочисленный массив с количеством элементов n. Напечатать те его элементы, индексы которых являются степенями двойки (1, 2, 4, 8, ...).

20.Задана последовательность из N вещественных чисел. Определить, сколько среди них чисел меньших К, равных K и больших К.

21.Задана последовательность N вещественных чисел. Вычислить

Si =

(X i M )2

N 1

 

где М — среднее арифметическое данной последовательности.

22.Задан массив (VAR А: ARRAY [1..N] OF '0'..'9';). Определить, входит ли в него последовательность символов 123, если да, то сколько раз и с каких позиций (N> 3).

23.Задан массив действительных чисел. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых происходит смена знака.

24.Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами.

25.Задана последовательность N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются числами Фибоначчи.

26.Задана последовательность N вещественных чисел. Вычислить

значение выражения n x1 x2 ...xn .

27. Задана последовательность N целых чисел. Вычислить сумму элементов массива, порядковые номера которых совпадают со значением этого

82

элемента.

28.Заполнить массив из N элементов с начальным значением задан-

ным Л[0]≠ 0, по принципу A [I]=A[I DIV 2]+A[I-l].

29.Определить количество элементов последовательности натуральных чисел, кратных числу М и заключенных в промежутке от L до N.

30.Определить, сколько процентов от всего количества элементов последовательности целых чисел составляют нечетные элементы.

83

11.ЛАБОРАТОРНАЯ РАБОТА №9 «ФОРМИРОВАНИЕ МАССИВОВ»

Цель работы: Сформировать навыки по формированию двумерных массивов в соответствии с заданным шаблоном средствами изучаемого языка программирования

13.1 Примеры и пояснения к лабораторной работе

Пример 9.1 Сформировать и вывести на экран двумерный массив случайных чисел

Листинг 9.1

for i:=1 to m1 do begin

for j:=1 to n1 do begin

//Заполнение массива числами от 0 до 255 a[I,j]:=random(256);

write(a[i,j]:4,' '); end;

writeln;

end;

Пример 9.2 Сформировать двумерный массив целых чисел как показано на рисунке 9.1, размерность массива m x n вводит пользователь.

Изменение значений переменных C, M, N показано на рисунке 9.2. Переменная С увеличивается, а M и N уменьшаются. Исполнение алгоритма показано в таблице 9.1.

Листинг 9.2

 

 

 

 

 

 

 

 

 

 

 

 

 

var

 

 

1

 

2

 

 

3

 

4

 

 

a:array[1..100,1..100] of

 

 

12

 

13

 

14

 

5

 

 

integer;

 

 

11

 

16

 

15

 

6

 

 

i,j,k,c,max,m,n,m1,n1:inte

 

 

10

 

9

 

 

8

 

7

 

 

ger;

 

 

Рис. 9.1 Пример массива

begin

 

 

 

 

 

 

 

 

 

 

 

 

 

write('rasmernost: '); read(m,n);

 

 

 

 

 

 

 

 

 

 

n1:=n; m1:=m; //сохранение начальных значений размерности

max:=n*m; //Вычисление максимального числа

 

begin

 

 

 

i:=1; k:=1; c:=1;

 

 

 

 

 

 

 

k>max then

//Объединяющий цикл

break;

 

 

 

 

 

if

while k<=max do

 

 

 

 

 

 

 

 

 

 

begin

 

 

 

C

 

 

 

 

N

 

 

//Формирование верхней строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

3

 

4

 

 

for j:=c to n do

 

 

 

 

 

 

 

 

84

 

12

13

14

5

 

M

10

9

8

7

 

11

16

15

6

 

 

 

 

 

 

 

Рис. 9.2 Изменение переменных

a[i,j]:=k;

k:=k+1;

end; //Формирование правого столбца

for i:=c+1 to m do begin

if k>max then break; a[i,j]:=k;

k:=k+1;

end; //Формирование нижней строки

for j:=n-1 downto c do begin

if k>max then break; a[i,j]:=k;

k:=k+1;

end; //Формирование левого столбца

for i:=m-1 downto c+1 do begin

if k>max then break; a[i,j]:= k;

k:=k+1;

end;

//Изменение переменных для перехода на внутренние строки и столбцы c:=c+1;

m:=m-1; n:=n-1; i:=c;

end;

writeln;

//Вывод двумерного массива for i:=1 to m1 do

begin

for j:=1 to n1 do write(a[i,j]:3,' ');

writeln;

end;

end.

Таблица 9.1 Заполнение массива циклами

 

Первый цикл

Второй цикл

Третий цикл

Четвертый цикл

1

 

2

3

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

14

 

 

 

 

5

 

 

 

 

12

 

 

 

85