Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2017-09-30 | 612 |
5.00
из
|
Заказать работу |
|
|
Цель работы: изучение приемов обработки одномерных массивов
Объем работы: 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!