Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
88
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
    1. Действия с одномерными массивами

      1. Инициализация массива

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

При явной инициализации размер массива может быть либо задан непосредственно:

int mass[5] = {1, 2, 4, 8, 16};

либо автоматически определён компилятором по списку начальных значений:

int mass[] = {1, 2, 4, 8, 16};

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

      1. Ввод значений элементов массива с клавиатуры

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

ПРИМЕР 30:

Задание

Составить программу, которая выполняет ввод значений элементов действительного массива a[N] с клавиатуры. Количество элементов массива задать директивой препроцесора.

Решение

#include<stdio.h>

#include<conio.h>

#define P printf

#define N 15

void main( )

{ float a[N]; int i;

clrscr();

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

{ Р("\n введите a[%d]=", i );

scanf("%f",&a[i]);

}

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/ /*11*/ /*12*/ /*13*/

      1. Заполнение массива случайными числами

В языке Си имеется возможность использования генератора псевдослучайных целых чисел. Эти псевдослучайные числа можно получить с помощью функции

random(k),

где k – целое число, не превосходящее 32767.

Функция random(k) возвращает случайное целое число, лежащее в диапазоне от 0 до k – 1. Она описана в заголовочном файле stdlib.h. Следовательно, для того чтобы использовать эту функцию, в начале программы должна присутствовать директива препроцессора

#include<stdlib.h>

Если необходимо, чтобы генерируемые псевдослучайные последовательности при последующих запусках программы не повторялись, нужно использовать функцию randomize( ). Она также описана в заголовочном файле stdlib.h. Для генерации псевдослучайных чисел функция randomize( ) использует текущее время, поэтому директивой

#include <time.h>

в программу должен быть включён файл time.h.

ПРИМЕР 31:

Задание

Составить программу, заполняющую массив mass[10] действительных случайными числами от -50до 50.

Решение

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include <time.h>

#define N 10

#define P printf

void main()

{ float mass[N]; int i;

randomize();

puts(“ заполнение массива случайными \

\ действительными числами”);

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

{ mass[i] =( 50 - random(100) ) / 1.3;

printf("%6.2f",mass[i]);

}

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/

/*10*/

/*11*/ /*12*/

/*13*/

/*14*/ /*15*/ /*16*/

ПРИМЕР 32:

Задание

Составить программу, заполняющую целочисленный массив mass[10] случайными числами из диапазона [a,b] для значений a и b, вводимых с клавиатуры.

Решение

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include <time.h>

#define N 10

#define P printf

void main()

{ int mass[N], a, b, i; randomize();

puts(“ заполнение массива целыми/

/случайными числами из диапазона [a, b]”);

M: P("Введите:\n a=") ;scanf("%d",&a);

P("b="); scanf("%d",&b);

if(a>=b){P("неверный интервал, /

/ повторите ввод"); goto M; }

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

{ mass[i] = a + random(b-a+1);

printf("%5d",mass[i]);

}

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/

/*10*/ /*11*//*12*/

/*13*/

/*14*//*15*//*16*//*17*//*18*/

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