Главная страница

Задание 1 Массив одномерный. Отчет по выполнению заданий 1 и 2 по статическому и динамическому массивам. По заданию 3 в отчет включить код, комментируя функции. 2


Скачать 116.17 Kb.
НазваниеОтчет по выполнению заданий 1 и 2 по статическому и динамическому массивам. По заданию 3 в отчет включить код, комментируя функции. 2
Дата19.02.2022
Размер116.17 Kb.
Формат файлаdocx
Имя файлаЗадание 1 Массив одномерный.docx
ТипОтчет
#366770
страница4 из 6
1   2   3   4   5   6

Статический массив


Массив – это линейная, однородная структура данных, состоящая из конечного числа элементов. Доступ к элементу массива прямой по индексу.

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

Формат определения одномерного статического массива

[КП] спецификатор базового типа массива Имя массива [количество элементов]

Где:

Количество элементов – константа или макроопределение

Примеры объявления массива

#define Len 100

float z[len];

int main()

{

int x[100];

double y[Len];

}

Спецификатор базового типа массива – это любой простой тип языка Си, включая указатель.
Представление в памяти массива из Len элементов










∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙




0

1

2




Len-1

Для всех элементов массива общим является имя, но у каждого элемента массива уникальным является индекс.

Имя массива - это константный указатель. Он хранит адрес первого байта области памяти, выделенной под элементы массива. Это можно представить так:



Объем памяти выделенной переменной можно рассчитать по формуле Len*объем одного элемента.

Доступ к элементу массива осуществляется по имени. Имя элемента массива формируется по следующему правилу:

имя массива [индекс элемента]

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

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

Пример заполнения массива с переменной верхней границей при инициализации и при вводе с клавиатуры

int main()

{ int i ,y[4]={5, 6, 7,8}; //инициализация массива

// вывод массива

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

{

cout<< y[i]<<″ ″

}

//заполнение с клавиатуры

const int Len=100;

int x[Len], n;

cout<<″ Введите количество обрабатываемых элементов массива″;

cin>>n;

if(n>0 && n
{ cout<<″Введите ″<
for(i=0;i
{

cin>> x[i];

}

}

else

cout<<″ n должно быть больше нуля″;

}

Пример заполнения статического массива датчиком случайных чисел из диапазона от 100 до 300.

Примечание.

1)Функция rand() генерирует числа в диапазоне от 0 до RAND_MAX. RAND_MAX— это константа, определённая в библиотеке cstdlib.h. Для MVS RAND_MAX= 32767,но оно может быть и больше, в зависимости от компилятора.
2) Формула генерации случайных чисел по заданному диапазону

random_number = firs_value + rand() % last_value;

где

firs_value - минимальное число из желаемого диапазона

last_value - ширина выборки

3) Чтобы при различных запусках программы датчик формировал новое значение, необходимо настроить функцию rand(), передав ей новое начальное значение для алгоритма формирования случайного числа. Для этого надо в программу включить вызов функции srand( time(0) );из time.h. до вызова функцииrand().

#include “stdio.h”

#include "stdlib.h"

#include "time.h"

#define Len 100
int main()

{

int x[Len], n;

cout<<″ Введите количество обрабатываемых элементов массива″;

cin>>n;

if(n>0 && n
{ srand( time(0) );

for(i=0;i
{

x[i]=100+rand()%300;

}

}

else

cout<<″n должно быть больше нуля″;

}}
1   2   3   4   5   6


написать администратору сайта