У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 5 Обработка одномерных массивов Цель работы овладение практическими навыками ра

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 20.2.2025

ЛАБОРАТОРНАЯ РАБОТА  № 5

Обработка одномерных массивов

Цель работы - овладение практическими навыками работы с массивами, особенностями их ввода и вывода, приобретение дальнейших навыков по организации программ циклической структуры с использованием приемов программирования.

Массив в языках программирования представляет собой конечную последовательность пронумерованных элементов одинакового типа. Номер элемента называют его индексом. Основное свойство массива - все его элементы одновременно присутствуют в оперативной памяти, одинаково доступны и могут обрабатываться в любом порядке.

Массив объявляется указанием типа данных (int, float, double, char и др.), которые предполагается в нем хранить, имени массива и количества элементов. Количество элементов (размер массива) заключается в квадратные скобки:   тип  имя[размер];

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

char text[10];  /* массив text из 10 символов */

int А[50];   /* массив А из 50 целых чисел */

Для обращения к элементу массива указывается имя массива и индексы элемента в квадратных скобках, например, text[0], A[j], A[j+1] .В языке Cи индексы элементов массива всегда начинаются с нуля. В приведенном примере text[0] –первый элемент массива. Последний элемент массива будет иметь индекс на 1 меньше его размера (n-1, где n – размер массива).   

Выше были приведены примеры одномерных массивов. Одномерный массив (массив с одним индексом) часто называют вектором. Элемент одномерного массива обозначается именем массива, за которым в квадратных скобках указывается индекс элемента.  

Для организации последовательной обработки массивов удобно использовать оператор цикла for. В этом случае индекс элемента массива является параметром цикла.

Общий вид записи оператора цикла for:

for ( выражение 1 ; выражение 2 ; выражение 3 )

{тело цикла;}

Выражение 1 обычно используется для установления начального значения переменных, управляющих циклом (параметров).

Выражение 2 - это выражение, определяющее условие, при котором тело цикла будет выполняться.

Выражение 3 определяет изменение переменных, управляющих циклом после каждого выполнения тела цикла.


Схема выполнения оператора
for:

1. Вычисляется выражение 1.

2. Вычисляется выражение 2.

3. Если значение выражения 2 отлично от нуля (истина), выполняется тело цикла.

4. Вычисляется выражение 3 и осуществляется переход к пункту 2, если выражение 2 равно нулю (ложь), то управление передается на оператор, следующий за оператором for.

Существенно то, что проверка условия всегда выполняется в начале цикла. Это значит, что тело цикла может ни разу не выполниться, если условие выполнения сразу будет ложным.

Пример:

for (i=1; i<10; i++) {b=i*i;}

/* i - параметр цикла; 1, 10 - начальное и конечное значения параметра цикла соответственно Они могут быть записаны константами или выражениями.

b=i*i - тело цикла.

i++    - изменение параметра цикла.  */

Пример выполнения работы

Вычислить на ЭВМ наибольший элемент массива X[30] и его порядковый номер. Проверить правильность программы на тесте при количестве элементов N=10. При выполнении задания необходимо использовать прием нахождения наибольшего. Для этого перед циклом необходимо задать начальное значение наибольшего, равное первому элементу массива, а в цикле сравнивать наибольший с текущем элементом массива; в том случае, если текущий элемент больше наибольшего из предыдущих, то считать его наибольшим. Для нахождения порядкового номера наибольшего элемента массива необходимо перед циклом задать его начальное значение, равное 1, а в цикле всякий раз, когда текущий элемент массива больше наибольшего, считать номером наибольшего номер текущего элемента массива.

Схема алгоритма решения

Блок 1 осуществляет ввод значения N (количество элементов в массиве). В цикле, представленном блоками 2 и 3, вводятся элементы массива X, состоящего из N элементов. Блок 4 задает начальные значения переменных max_X (максимальный элемент массива) и max_N (номер максимального элемента).

Блок 5 организует цикл, перебирающий элементы массива, начиная с первого до последнего.

Блоки 6 и 7 находят наибольший элемент массива и его порядковый номер.

Блок 8 за циклом выводит результаты на печать.

Программа на языке Си :

# include <stdio.h>

main()

{int  i, max_N, N=30;

float max_X , X[N];

printf (“ВВЕДИТЕ ЗНАЧЕНИЕ N”);

scanf (“%d”, &N);

for (i=0; i<N; i++)

scanf (“%f”, &X[i]);

max_X=X[0]; max_N=0;

for (i=1; i<N; i++)

IF X[i]> max_X

    { max_X=X[i];

max_N=i;  }

printf (“max_X =%f     max_N=%d”, max_X, max_N);

}

Задания для самостоятельной подготовки

1. Изучить:

- способы описания размеров массивов на языке программирования;

- способы ввода и вывода массивов;

- реализация на конкретном языке программирования приемов накопления суммы или произведения,  запоминания результатов, нахождение наибольшего и наименьшего.

2. Разработать алгоритм решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Подготовить тест для проверки программы.

Задание к работе

1. Обработать на ЭВМ массив в соответствии с вариантом задания, указанного в таблице.

2. Проверить правильность выполнения программы с помощью тестового варианта исходных данных.


Таблица заданий

Массив

Действия

Условия

1.

X(100)

Вычислить сумму и количество элементов массива X

0xi1

2.

A(80)

Вычислить среднее арифметическое значение элементов массива А

ai>0

3.

X(70)

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

-1xi1

4.

В(50)

Определить максимальный элемент массива В и его порядковый номер

bi>0

5.

C(40)

Определить минимальный элемент массива С и его порядковый номер

сi<0

6.

D(80)

Найти максимальный и минимальный элементы массива D и поменять их местами

7.

Y(20)

Вычислить среднее геометрическое  элементов массива Y

yi>0

8.

Z(30)

Расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z

9.

N(50)

Определить сумму элементов массива N, кратных трем

ni /3*3 = ni

10.

X(N)

Вычислить сумму и количество элементов массива X

xi>0, N10

11.

A(N)

Найти среднее геометрическое элементов массива А

ai>0, N10

12.

X(N)

Переписать в массив Y подряд положительные элементы массива Х

xi>0, N10

13.

X(N)

Переписать подряд в массив Y положительные и в массив Z  отрицательные элементы массива Х

N  10

14.

B(K)

Определить максимальный элемент массива В и его порядковый номер

xi<0, N10

15.

C(K)

Определить минимальный элемент массива C и его порядковый номер

-1xi1, K10

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

1. Указать особенности программ, использующих массивы.

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

3. В чем состоит особенность организации цикла при обработке массивов?

4. В чем состоит особенность использования приемов программирования при обработке массивов?

5. Указать особенности ввода и вывода массивов.


i =1 , n

Тело цикла

8

7

6

5

4

1

конец

max_X, max_I

max_N=i

max_X=X[i]

нет

да

X[1]>max_X

i=1..N

max_N=0

max_X=X[0]

ввод N (кол-во эл-ов)

начало

2

3

ввод

элементов массива X[i]

i=0..N




1. Доклад Как подготовиться к ответу на экзамене
2. ТЕМА 1- Теоретические основы экономической географии Российской Федерации.
3. Уельс
4. Арабский халифат
5. реферат дисертації на здобуття наукового ступеня кандидата медичних наук Сі
6. МГорького Кафедра управління та економіки фармації Методичні рекомендації для проходження виробничо
7. тема предэксплуатационной подготовки новых автомобилей Автомоб
8. Правонарушение1
9. Основные проблемы защиты прав интеллектуальной собственности
10. Федеральные стандарты2 Общие принципы стандарта3 Классификация стандартов4 Основные понятия используе