Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Лабораторная работа 5

Цель работы – познакомиться с одномерными массивами, приобрести навыки написания программ на языке C++ с использованием одномерных массивов.

Теория

Массив – это структура однотипных данных, занимающих непрерывную область памяти. Массив имеет размер – количество элементов в нем. Определение одномерного массива:

 

typeимя_массива [константное_выражение];

 

Здесь имя_массива – идентификатор; константное_выражение – количество элементов в массиве; type – произвольный тип данных языка C++, который будут иметь элементы массива, например, int, double и т.д. В некоторых случаях допустимо описание массива без указания количества его элементов, т.е. без константного выражения в квадратных скобках.

Каждый элемент массива имеет свой номер (также называемый индексом), обращение к элементу массива осуществляется путем указания его индекса. В языке C++ элементы нумеруются, начиная с 0, поэтому последний элемент массива имеет номер на 1 меньше размера массива.

 

Пример

//Здесь создаются 4 элемента массива – a[0], a[1], a[2], a[3].

float a[4];

 

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

 

Пример

void f (void)

{

static float F[4]; //Внутренний статический массив

long double A[10]; //Массив автоматической памяти

}

void main ()

{

extern int D[]; //Описание массива

f ();

}

int D[8]; //Внешний массив (определение)

Массивы D[8], F[4] инициализированы нулевыми значениями.

 

Явная инициализация элементов массива разрешена только при его определении и возможна двумя способами: либо с указанием размера массива в квадратных скобках, либо без явного указания (без конкретного выражения) в квадратных скобках.

 

Пример

char СН[] = { 'А', 'В', 'С', 'D'}; //Массив из 4 элементов

int IN[6] = { 10, 20, 30, 40 }; //Массив из 6 элементов

char STR[] == "ABCD", //Массив и» 5 элементов

 

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

 

Пример

/*программа, которая создает массив типа int[], заданного размера, считывает с клавиатуры его элементы, затем прибавляет к каждому элементу массива число 1, затем выводит результат на экран*/

#include <iostream.h>

int main()

{

const int n=20; //Размер массива

int i; //Счетчик в циклах

int arr[n]; //Объявление массива

//Считываем массив

cout<<"Введите "<<n<<" целых чисел: ";

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

cin>>arr[i];

//Прибавляем по 1 к каждому элементу

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

arr[i]+=1;

//Выводим массив на экран

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

cout<<arr[i]<<" ";

cout<<endl;

return 0;

}

 

При написании программ часто возникает потребность в присвоении переменной случайного значения или в заполнении массива случайными числами. Для этого используется генератор случайных значений rand ()%n, который генерирует псевдослучайные числа в диапазоне от 0 до n-1. Для того чтобы генератор работал, необходимо подключить библиотеки <stdlib.h> и <stdio.h>, а до использования генератора написать функцию randomize(), которая инициализирует генератор.

 

Пример

1.

/*программа, которая выводит на экран 10 чисел, сгенерированных случайным образом*/

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int i;

randomize();

printf("Ten random numbers from 0 to 99\n\n");

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

printf("%d\n", rand() % 100);

return 0;

}

 

2.

/*программа, которая заполняет массив с помощью генератора случайным чисел*/

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int i;

randomize();

const int n=20;

int arr[n];

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

arr[i]= rand() % 100;

return 0;

}

 

Задание

1. Запустите C++Builder.

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

3. Выполните компиляцию программы. При наличии ошибок внести исправления.

4. Сдайте отчет преподавателю.

 

Варианты

Задача Диапазон изменения значений элементов массива
  Вывести на экран все четные числа в массиве [-100…100]
  Определить число нулей и число единиц в массиве 0 или 1
  Поменять 0 и 1 ролями 0 или 1
  Определить, сколько значений в массиве превышают среднее значение [-50…120]
  Сгруппировать все ненулевые значения в начале массива [-1…4]
  Вычислить произведение элементов массива [-20.5…50.5]
  Вывести на экран все нечетные числа в массиве [-60…20]
  Найти количество положительных элементов в массиве [-30…40]
  Определить, есть ли в данном массиве два соседних элемента с одинаковыми знаками [-100…50]
  Переставить элементы массива в обратном порядке [1…78]
  Определить, сколько в массиве элементов, которые строго больше обоих своих соседей [-3.2…104.2]
  Сгруппировать все нулевые значения в начале массива [-2…1]
  Найти значение наибольшего элемента в массиве [-40…70]
  Циклически сдвинуть элементы массива вправо [1…66]
  Отсортировать массив по возрастанию [-25…50]
  Поменять у элементов массива знаки [-36…70]
  Вычислить разность элементов массива [45.7…157.7]
  Положительные элементы массива поменять местами с отрицательными [-100…200]
  Переставьте соседние элементы массива [-25…80]
  Найти значение наименьшего элемента в массиве [-200…-30]
  Найти количество отрицательных элементов в массиве [-50…30]
  Найти количество элементов массива, которые больше предыдущего элемента в этом массиве [-10…20]
  Отсортировать массив по убыванию [-48…95]
  Вычислить сумму элементов массива [-34.6…23.6]
  Циклически сдвинуть элементы массива влево [-5…24]

 




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


Дата добавления: 2015-08-31; Просмотров: 912; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.