Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные по программированию.doc
Скачиваний:
37
Добавлен:
29.02.2016
Размер:
1.78 Mб
Скачать

Лабораторная работа № 7

Тема: «Обработка одномерных массивов. Сортировка массивов»

  1. Цель работы

1.1 Получение практических навыков в работе с одномерными массивами.

1.2 Знакомство с алгоритмами упорядочения.

  1. Техническое обеспечение

    1. Персональная ЭВМ

    2. Клавиатура.

    3. Дисплей.

    4. Печатающее устройство.

  1. Программное обеспечение

    1. Операционная система Windows

    2. Система программирования Visual C++ версия 6.0 или Borland C++ версия 3.1 и более поздние версии.

  1. Постановка задачи

Для конкретного варианта ввести массив исходных данных и выполнить над ним указанные действия. Изучив алгоритмы упорядочения, выбрать один из них. Написать программу, которая работает с любым набором данных. Входную информацию и результаты счета вывести на печать, снабдив их соответствующими заголовками.

  1. Содержание отчета.

    1. Тема и цель работы.

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

    3. Текст программы.

    4. Результаты счета.

  1. Общие сведения

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

5.1 Одномерный массив

Стандартный тип объявления одномерного массива следующий:

тип имя_переменной[размер];

В С массивы должны определяться однозначно, чтобы компилятор мог выделить для них место в памяти. Здесь тип объявляет базовый тип массива и является типом каждого элемента массива. Параметрразмеропределяет, сколько элементов содержит массив. В одномерном массиве стандартный размер массива в байтах вычисляется следующим образом:

общее число байт=sizeof(базовый тип)*число элементов;

У всех массивов первый элемент имеет индекс 0. Поэтому, если написать

Charp[10];

То будет объявлен массив символов из 10 элементов, причем эти элементы адресуются индексом от 0 до 9. Следующая программа вводит целочисленный массив с клавиатуры и выводит его на дисплей:

#include <stdio.h>

main ( )

{ const int n=10;

intx[n]; /* резервирует место для 10 целочисленных элементов */

int t;

for (t=0; t<n; ++t)

{

printf(“Введите %d-й элемент массива: “,t+1);

scanf(“%d”, &x[t]);

}

for (t=0; t<n; ++t)

printf(“%d “, x[t];

}

В языке С отсутствует проверка границ массивов. Можно выйти за один конец массива и записать значение в какую-либо переменную, не относящуюся к массиву, или даже в код программы. Работа по проверке границ массива возлагается на программиста. Например, следует убедиться, что массив символов, куда осуществляется ввод, имеет достаточную длину для принятия самой длинной последовательности символов.

Одномерные массивы – это на самом деле списки информации одного типа.

    1. Создание указателя на массив

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

intsample[10];

Можно создать указатель на первый элемент массива, используя имя sample. Следовательно, следующий фрагмент присваивает переменнойрадрес первого элемента массиваsample:

int *p;

int sample[10];

p=sample;

Можно также получить адрес первого элемента массива с помощью оператора &. Например:

p=sample;

и

p = &sample[0];

Приводят к одинаковому результату. Тем не менее запись &sample[0] в профессиональных программах практически не встречается.