Лабораторная работа № 4. Обработка одномерных массивов — КиберПедия 

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

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

Лабораторная работа № 4. Обработка одномерных массивов

2017-09-30 612
Лабораторная работа № 4. Обработка одномерных массивов 0.00 из 5.00 0 оценок
Заказать работу

Цель работы: изучение приемов обработки одномерных массивов

Объем работы: 2 часов

Теоретическая часть

Массивы в С++ представляют собой последовательность ячеек базового типа, доступ к которым может осуществляться либо с указанием индексов (целого или символьного типов), либо с использованием возможностей адресной арифметики.

Согласно правилам С++ все массивы состоят из смежных ячеек памяти. Младший адрес соответствует первому элементу массива, а старший – последнему. Индексы массива всегда начинаются с 0.

Массивы и указатели тесно связаны между собой Трудно описать массивы и обрабатывать их не используя указателей.

Объявление массива:

<Тип элемента> <Имя> [<Размер1>] [= {<Список значений >}];

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

Тип индекса – порядковый – определяет доступ к элементу.

Нумерация индексов ВСЕГДА начинается с 0.

Размер – определяет количество элементов по данному индексу.

Тип элемента – любой кроме файла, в том числе, другой массив.

Массив в памяти не может занимать более 2 Гб.

Объявление одномерных массивов:

1) Статически

int a[10]; - массив на 10 целых чисел ;// индекс меняется 0 - 9

float mas[20] – массив на 20 вещественных чисел;

char sim[8] – массив на 8 символов;

double massiv[30] – массив на 30 вещественных чисел двойной точности;

unsigned int koord[10] – массив целых беззнаковых чисел.

2) Динамически

int *dinmas; указатель на целое;

dinmas=new int [100]; массив на 100 элементов целого типа.

Индекс меняется от 0 до величины, на 1 меньшей указанной в размере

Внешние и статические массивы можно инициализировать при объявлении.

int a[5]={0,-36,78,3789,50};

float b[10]={0,-3.6,7.8,3.789,5.0,6.1,0,-6.5,8.9,3.0};

long double c[4]={7.89L,6.98L,0.5L,56.8L};

short *m={2,3,5,8,12,0,56};

По правилам С++ имя массива является его адресом.

Поэтому для адресации элементов массива независимо от способа описания можно использовать адресную арифметику.

Пример. Разработать программу определения максимального элемента массива A(5) и его номера.

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

Поиск максимального элемента требует дополнительных переменных: amax – для хранения текущего и найденного максимального значения и imax – для хранения номера текущего и найденного максимального значения. Саму операцию поиска выполним следующим образом.

Запомним в качестве текущего максимального, т. е. запишем в amax первый элемент и зафиксируем в imax его номер. Затем будем последовательно просматривать элементы массива, сравнивая их со значением, хранящимся в amax. Если очередной элемент больше значения в amax, то сохраняем его в качестве максимального в amax и запоминаем его номер в imax (рис. 7).

Рисунок 7 - Поиск максимального элемента массива: состояние на момент проверки четвертого элемента массива (а), изменение текущего значения максимального элемента и его номера по результатам проверки четвертого элемента массива (б)

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

На рис. 8 представлена схема алгоритма программы. Поскольку операции ввода-вывода массивов выполняют однотипно, на схеме алгоритма соответствующих циклов, так же как и запросов на ввод данных, обычно не показывают. Вместо этого в схему вставляют блок операции ввода/вывода, в котором указано имя массива и количество элементов, участвующих в операции.

Рисунок 8 - Схема алгоритма поиска максимального элемента массива

Ниже приведен текст программы.

#include “stdafx.h”

#include <stdio.h>

int main(int argc, char* argv[])

{float a[5], amax; int i, imax;

puts(“Input 5 values:”);

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

scanf(“%f “,&a[i]);printf(“\n”);

amax=a[0];

imax=0;

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

if(a[i]>amax)

{ amax=a[i]; imax=i;}

puts(“Values:“);

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

printf(“%7.2f ”,a[i]);

printf(“\n”);

printf(“Max = %7.2f number = %5d\n”,amax, imax);

return 0; }

Другие примеры программ, содержащих обработку массивов, приведены в [1].

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

1. Прочитать и проанализировать задание в соответствии со своим вариантом.

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

3. Написать программу.

4. Вызвать среду программирования Turbo Delphi, создать новый проект консольного приложения и ввести текст программы в среду программирования.

5. Подобрать тестовые данные (не менее 3-х вариантов).

6. Отладить программу на выбранных тестовых данных.

7. Продемонстрировать работу программы преподавателю.

8. Составить отчет по лабораторной.

9. Защитить лабораторную работу преподавателю.

Требования к отчету

Отчет должен быть выполнен на бумаге формата А4 или А5 в том числе в тетрадях или на тетрадных листах. Если отчет выполняется на отдельных тетрадных листах, то они должны быть аккуратно обрезаны по линии подшивки и скреплены. Неаккуратно выполненные, оборванные или грязные отчеты не принимаются.

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

Каждый отчет должен иметь титульный лист, на котором указывается:

а) наименование факультета и кафедры;

б) название дисциплины;

в) номер и тема лабораторной работы;

г) фамилия преподавателя, ведущего занятия;

д) фамилия, имя и номер группы студента;

е) номер варианта задания.

Кроме того отчет по лабораторной работе должен содержать:

1) схему алгоритма, выполненную вручную или в соответствующем пакете;

2) текст программы;

3) результаты тестирования, которые должны быть оформлены в виде таблицы вида:

Исходные данные Ожидаемый результат Полученный результат
     

4) выводы.

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

1. Что такое «массив»? В каких случаях используется эта структура данных?

2. Как показать операции с массивом на схеме алгоритма?

3. Какой объявить массив в программе?

4. Как осуществляется ввод и вывод элементов массива?

5. Объясните, почему в вашей программе следует использовать массив?

6. Как подбирают тесты для отладки программ, содержащих массивы? Какие недостатки и достоинства имеет использование для заполнения массивов датчиков случайных чисел?



Поделиться с друзьями:

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.019 с.