Будь умным!


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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

ЛАБОРАТОРНАЯ РАБОТА  № 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. ИНТЕЛЛЕКТУАЛЬНОЕ ПЯТИБОРЬЕ
3. I Относительная трикуспидальная недостаточность
4. 1 Постановка задачи 5
5. вид человеческой деятельности что позволяет изготавливать искусственные украшения тела человека
6. Вариант 26 0020060000000008-26-Дата- 27
7. видимому на всех звёздах
8. Тема- Организационные структуры управления Дисциплина- Введение в направление Выполнила- Студент
9. на тему Создание цифровой модели местности на часть землепользования СПК Красный Луч Лысковского район
10. Розрахунок автомобільного двигуна
11. Яппи
12. Тема 2 МЕТОДИЧЕСКАЯ РАЗРАБОТКА ПРАКТИЧЕСКОГО ЗАНЯТИЯ ПО ТЕМЕ-
13. одно из примечательных исторических явлений
14. больше всего стрелочек то есть про что больше всего информации.html
15. Лабораторная работа Цель занятия.
16. Ревизия операций по учету хозяйственно-экономической деятельности в Ивьевском РАЙПО
17. тема следующих плановых показателей основная цель производственной деятельности предприятия и ее отдел
18. Системы химического мониторинга
19. Симфоническое и камерное творчество Танеева
20. Тема - Субъекты гражданских правоотношений