Практическое занятие №20

HАИМЕНОВАНИЕ: Решение задач на одномерные массивы

1.ЦЕЛЬ РАБОТЫ: Научится использовать одномерные массивы при программирование на С++

2.ПОДГОТОВКА К ЗАНЯТИЮ:

2.1. Изучить предложенную литературу.

2.2. Подготовить бланк отчёта.

3.ЛИТЕРАТУРА:

3.1 Белов В.В., Чистякова В.И. Программирование в Delphi: процедурное, объектно-ориентированное, визуальное. Учебное пособие. – М.: Горячая линия – Телеком, 2009

3.2 Голицына О.Л., Попов И.И. Основы алгоритмизации и программирования. – Форум, 2010

3.3Семакин И.Г., Шестаков А.П. Основы алгоритмизации и программирования. – М.: Издательский центр «Академия», 2008

3.4Семакин И.Г., Шестаков А.П. Основы программирования. – М.: Издательский центр «Академия», 2008

4. ПЕРЕЧЕНЬ ОБОРУДОВАНИЯ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ:
4.1. Персональный IBM PC.

5.ЗАДАНИЕ:

5.1 Дан вектор {z,}', i = 1, ••-, 50. Вычислить длину этого вектора:

5.2 Вычислить полином 10-й степени по формуле Горнера:

й10х10+ а9х9+... + а{х + а0= ((...(ai0x + а9)х + д8)х +... + а^х + a0.

5.3 Для вектора {х,}, / = 1,..., 20, подсчитать количество компонент, значения которых лежат в интервале [0,1].

5.4 Даны два вектора {х,}, {у,}, / = 1,..., 10, упорядоченные по возрастанию. Слить их в один вектор {z,), / = 1,..., 20 так, чтобы сохранилась упорядоченность.

5.5 Дан массив, состоящий из 100 целых чисел.

а) Вывести все числа, которые встречаются в" этом массиве несколько раз.

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

6. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:

6.1 По предложенной литературе изучить необходимый материал;

6.2 Выполнить задания практического занятия и записать листинг программы;

6.3 Дать ответы на контрольные вопросы;

7. СОДЕРЖАНИЕ ОТЧЕТА:

7.1 Наименование и цель работы

7.2 Код программы

7.3 Записать результат (листинг) выполненых заданий.

7.4 Ответы на контрольные вопросы

7.5 Вывод о проделанной работе

8. КОНТРОЛЬНЫЕ ВОПРОСЫ:

8.1 Массив это?

8.2 Операция sizeof де используется?

8.3 Где происходит объявление переменных?

8.4 Зачем нужен оператор c l r s c r?

ПРИЛОЖЕНИИ:

Понятие массива знакомо из Паскаля. Массив — это структура однотипных элементов, занимающих непрерывную область памяти. С массивом связаны следующие его свойства: имя, тип, размерность, размер. Формат описания массива следующий:

тип элементов имя [константное выражение]

Константное выражение определяет размер массива, т. е. числе элементов этого массива. Например, согласно описанию i n t A[10]; объявлен массив с именем А, содержащий 10 элементов целого типа. Элементы массива обозначаются индексированными именами. Нижнее значение индекса равно 0:

А [ 0 ], А [ 1 ], А [ 2 ], А [ 3 ], А [ 4 ], А [ 5 ], А [ 6 ], А [ 7 ],

А [ 8 ], А[9]

В отличие от Паскаля в Си нельзя определять произвольные диапазоны для индексов. Размер массива, указанный в описании, всегда на единицу больше максимального значения индекса.

Размер массива может явно не указываться, если при его объявлении производится инициализация значений элементов.

Например:

i n t p [ ] = { 2, 4, б, 10, 1 };

В этом случае создается массив из пяти элементов со следующими значениями:

р [ 0 ] = 2, р [ 1 ] = 4, р [ 2 ] = б, р [ 3 ] = 1 0, р [ 4 ] =1

В результате следующего объявления массива i n t М[б]={5, 3, 2 };

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

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

//Ввод и вывод массива

tinclude <iostream.h>

•include <conio.h>

void main()

{ int i, A [ 5 ];

c l r s c r ();

f o r (i = 0; i<5; i++)

{ c o u t «" A [ " «i «" ] = "; c i n» A [ i ];}

f o r (i = 0; i<5; i++)

c o u t «" A [ " «i «" ] = " «A [ i ] «"

}

Пример 2. Ввод вещественного массива и вычисление среднего значения.

//Среднее значение массива

•include <iostream.h>

•include <conio.h>

void main()

{ const n=10;

int i; double A[n], SA;

clrscr ();

for(i=0; i<n; i++) {cout«"A["«i«" ]=";

cin»A[i]; }

SA=0;

for(i=0; i<n;i++) SA=SA+A[i];

SA=SA/n;

cout<<"/переднее значение="«SА;

}

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

Пример 3. Сортировка массива «методом пузырька».

//Сортировка массива

•include <iostream.h>

•include <conio.h>

void main()

{ int X[]={6,4,9,3,2,1,5,7,8,10};

int i,j,n,A;

clrscr();

n=sizeof(X)/sizeof(X[0]);

for(i=0; i<n-l; i++)

f o r (j = 0; j < n - l - i; j++)

i f (X [ j ] > X [ j + l ]) {A=X[j]; X [ j ] = X [ j + l ]; X[j+1]=A;}

f o r (i = 0; i<n; i++) c o u t «X [ i ] «" ";

}

В данной программе массив инициализирован. Его размер равен числу заданных значений. Чтобы сделать программу универсальной по отношению к размеру массива, значение размера вычисляется автоматически и заносится в переменную n. Для этого используется операция sizeof () — определение размера в байтах. Результат sizeof (X) равен размеру в памяти всего массива х — 20 байтам. Результат sizeof (Х[0]) равен размеру одного элемента массива — 2 байтам. Отношение этих величин равно 10 — числу элементов массива. Внимательно проанализируйте

организацию перебора значений параметров вложенных циклов — i, j.В результате выполнения этой программы на экран выведется упорядоченная числовая последовательность

1 2 3 4 5 6 7 8 9 10



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: