Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по программированию 2013 год.doc
Скачиваний:
28
Добавлен:
07.03.2015
Размер:
1.78 Mб
Скачать

Работа № 4. Арифметические циклы с индексной переменной

Арифметический цикл с индексной переменной является частным случаем предыдущего вида цикла с той лишь особенностью, что параметром цикла является индекс элементов некоторого массива.

Задание. Разработать блок-схемы и составить программы для вычисления нижеследующих функций:

1.

где аргумент X функции задан рядом значений: Х = Х1, Х2, ... , X10.

Пояснение. Блок-схема решения задачи представлена в двух вариан­тах на рис.12 и 13. Таблица исходных чисел Xi вводится в память машины в виде массива в блоке №2. Чтобы взять из таблицы какой-либо элемент, необходимо ука­зать его порядковый номер, то есть индекс. Таким образом, параметром цикла будет яв­ляться индекс i элементов массива X, изменяющийся по закону арифметической прогрессии от 1 до 10 с шагом 1, а структура блок-схемы соответствует обычной структуре арифметического цикла (сравни с рис. 7, 8).

2.Дан массив чисел Х = X1 , Х2 , ... , Xi , …, Х50.

Положительные значения Х переписать в массив ХР , отри­цательные – в массив ХО (нули исключить). Вывести количест­во положительных и отрицательных элементов.

Пояснение. Блок-схема задачи представлена на рис.14, где i, j, k – индексы элементов массивов X, ХР и ХО соответственно. Фор­мирование массивов положительных и отрицательных элементов производится по обычным правилам реализации типовых операций (см. приложение). Текущие количества положительных и отрицательных элементов в процессе выполнения программы соответствуют значениям индексов j и k формируемых массивов. После окончания цикла эти индексы представляют итоговые количества элементов, записанных в массивы.

3. ,

где X задан массивом из 50 элементов.

Найти среднее арифметическое СА положительных результатов и среднее геометрическое СГ модулей отрицательных результатов (нули исключить).

Пояснение. Блок-схема решения задачи приведена на рис. 15. В цикле рассчитываются сумма S и количество K положительных результатов, произведение P и количество N отрицательных. Собственно СА и СГ определяются после окончания цикла при условии, что итоговые K и N отличны от нуля.

4.

где аргумент X задан рядом значений: X1, X2, … , X25. Каждый третий результат запомнить в массив, исключив нули. Определить среднее геометрическое модулей ненулевых результатов.

5.

где аргумент X задан рядом значений: X=X1, X2, … , X50. Все результаты запомнить в массив. Найти максимальный результат и минимальный по модулю результат, отличный от нуля, и их порядковые номера.

6. Дан ряд вещественных чисел A, A, … , A15 , упорядоченных по возрастанию, и вещественное число B. Необходимо:

а) переменной B присвоить ближайшее, большее значение ряда;

б) переменной В присвоить ближайшее значение ряда, то есть округлить числоВдо ближайшего значения ряда.

7. Дан массив вещественных чисел X, X, … , X100 .Необходимо:

а) переписать массив в обратном порядке;

б) просуммировать чётные и нечётные элементы массива;

в) исключить максимальный элемент, оставшиеся члены уплотнить;

г) определить среднее значение и среднеквадратичное отклонение для первых Nэлементов массива в соответствии с формулами

д) каждый элемент массива, исключая первый и сотый, заменить следующим значением (“сглаживание” экспериментальных данных, уменьшающее влияние случайных ошибок)

е) исключить из массива члены, кратные семи, переместив остальные члены так, чтобы не было пропусков;

ж) упорядочить элементы в порядке возрастания.

8. Имеется два вектора В, … , ВКиС, … , СК(К<50). Необходимо:

а) найти скалярное произведение векторов Р = ВС1 + … + ВК СК;

б) рассматривая элементы Вкак координаты одной точки вК-мерном пространстве, а элементыС– координаты другой точки, найти расстояниеРмежду ними по следующей формуле

Контрольное задание № 4. Составить циклическую программу вычисления функцииYm=F(Xi), гдеm=1-5, а аргументХi задан в виде массива. Вариант задания берется из табл. 4 в соответствии с номером, указанным преподавателем. Вычисляемые функции и массивы аргументов приведены после таблицы. Обозначения искомых переменных и формируемых массивов представлены в контрольном задании №3.

Таблица 4

Фун-кция

V1

V2

W1

W2

Задание на выполнение

1

Y1

0,35

-0,5

A0,A1,G2,MAX,R3,R4,

2

Y2

12,5

0,15

-0,5

G0,A3,A4,MAX1,R1,R2

3

Y3

2,5

0,35

A0,A1,G1,MIN1,R4,R5

4

Y4

1,8

2,37

G0,A2,A4,MIN1,R0,R6

5

Y5

-25,3

A0,A1,G3,MAX,R3,R4

6

Y1

-0,17

1,0

0,21

G0,A2,A3,MAX1,R2,R3

7

Y2

2,15

-3,5

1,25

A0,A1,G4,MIN,R5,R6

8

Y3

0,712

-0,86

3,2

G0,A1,A2,MIN1,R1,R2

9

Y4

4,2

4,0

3,6

A0,A2,G1,MAX,R5,R0

10

Y5

-30,7

-0,18

G0,A1,A3,MAX1,R1,R3

11

Y1

1,2

4,23

A0,A2,G2,MIN,R6,R5

12

Y2

2,56

-1,89

G0,A1,A4,MIN1,R3,R4

13

Y3

1,32

0,22

0,21

A0,A2,G3,MAX,R0,R6

14

Y4

1,85

2,75

2,75

G0,A4,G4,MAX1,R1,R6

15

Y5

-20,0

2,0

0,6

A0,G2,G3,MIN,R1,R2

16

Y1

0,75

G0,A3,G1,MIN1,R0,R3

17

Y2

1,55

-0,15

0,45

A0,G1,G4,MAX,R5,R6

18

Y3

-0,27

1,2

0,2

G0,A3,G2,MAX1,R1,R2

19

Y4

1,27

A0,A2,G4,MIN,R3,R4

20

Y5

2,1

0,5

G0,A3,G3,MIN1,R2,R3

21

Y1

0

-1

0,97

A0,G1,G2,MAX,R5,R6

22

Y2

-3,3

0,33

-1,3

G0,A3,G4,MAX1,R1,R2

23

Y3

0,17

0,5

A0,G1,G3,MIN,R0,R5

24

Y4

-6,28

G0,A4,G2,MIN1,R3,R4

25

Y5

1,5

-1,5

91,5

A0,G2,G3,MAX,R5,R6

26

Y1

0,36

1,6

-0,65

G0,A4,G1,MAX1,R1,R2

27

Y2

0,15

0,82

A0,G2,G4,MIN,R0,R6

28

Y3

-0,32

0,256

-0,7

G0,A4,G3,MIN1,R1,R2

29

Y4

-4,6

5,47

A0,А1,G4,MAX,R0,R3

30

Y5

0,7

-33,5

G0,A3,G2,MIN,R0,R4

Вычисляемые функции и массивы аргументов

где

X

4,5

-0,3

-1,5

-0,9

0,2

0,1

-1,8

3,37

-4,5

4,5

где

X

-2,5

-2,1

-0,78

0,45

0,65

1,8

-0,18

-0,7

4,8

где

X

0,44

-1,2

2,5

12,3

-1,65

0,45

-3,3

-0,11

-0,45

-7,5

где

X

-8.3

-10,7

7,25

4,8

-5,1

0,37

-1,5

1,5

-1,5

2,3

0,4

где

X

0,01

0,02

-0,5

2,31

0

1,0

0

-1,25

-1,0

-0,77

0

Рекомендации. При программировании вычисления функций Y следует анализировать возможность возникновения ошибок выполнения таких математических операций, как деление на ноль и вычисление логарифма нуля или отрицательного числа. Последняя ошибка может быть следствием неправомочного применения операции логарифмирования для вычисления целой степени произвольного числа (например, для вычисления cos2X).