Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labor4.doc
Скачиваний:
7
Добавлен:
05.06.2015
Размер:
96.26 Кб
Скачать

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

Составление программ с использованием

массивов

Цель работы:

1) изучить описание массивов на языке С;

2) освоить обработку массивов с использованием вложенных циклов.

Теоретические сведения

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

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

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

тип имя_массива [размер];

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

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

Пример 1. Следующая программа загружает целочисленный массив числами от 0 до 9 и выводит его:

#include <stdio.h>

int main(void)

{

int x[10];

int t;

for(t=0;t<10;t++) x[t]=t;

for(t=0;t<10;t++) printf("%d ",x[t]);

return 0;

}

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

Пример 2. Ввод массива с клавиатуры.

. . .

#define M 30

. . .

int main ( )

{double x[M];

. . .

for (int i=0; i< M; i++)

{ cout << "\n x[" << i << "%d ]=";

cin >> x[i];

}

return0;

}

Mожно организовать ввод массива, пользуясь генератором случайных чисел.

Пример 3. Ввод массива с помощью генератора случайных чисел.

#include <stdlib.h>

#include <stdio.h>

#include <time.h>

int main( void )

{

int i;

int a[10];

/* Seed the random-number generator with current time so that

* the numbers will be different every time we run.

*/

srand( (unsigned)time( NULL ) );

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

a[i]=rand() ;

return 0;

}

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

Пример 4. Инициализация одномерного массива

#define M 10

. . .

main ( )

{ double x[M]= {12.2, 45.4, 67.2, 12.2, 34.6, 87.4, 83.6, 12.3, 14.8, 55.5};

. . .

}

Если начальных значений задано меньше, чем элементов в массиве, компилятор присвоит оставшимся элементам массива значение 0. Если количество начальных значений больше, чем число в квадратных скобках, компилятор выдаст сообщение об ошибке.

Точное число начальных значений можно не указывать, так как язык С позволяет задавать размер массива автоматически, используя количество элементов в соответствующем списке начальных значений. Следовательно, число в квадратных скобках при описании массива может отсутствовать. В этом случае размер массива определит компилятор, например, double x[ ]= {1,2,3};

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]