Гаджеты

Способы задания одномерных массивов. Одномерные массивы

Способы задания одномерных массивов. Одномерные массивы

1 Способ (заполнение с клавиатуры. Динамический ввод данных )

M:array of integer;

For I:=1 To 10 Do Begin

Write("Введите ",I," значение ");

2 Способ (с использованием генератора случайных чисел)

M: array of integer;

For I:=1 To 25 Do Begin

M[I]:=Random(50);

3 Способ (статический ввод данных)

M: array of integer = (31,28,31,30,31,30,31,31,30,31,30,31);

For I:=1 To 9 Do

1.4 Примеры решения задач

1. Алгоритмы поиска и присвоения значений элементам массива

1. Составить программу обработки массива размерностью n, заполненного целыми числами, введенными с клавиатуры. Вывести индексы и значения положительных элементов массива.

A:ARRAY OF INTEGER;

{ Заполнение массива }

FOR I:=1 TO N DO Begin

Write("Введите ",I," элемент массива "); ReadLn(A[I]);

{ Обработка элементов массива }

FOR I:=1 TO N DO

IF A[I]>0 THEN WriteLn("Положительный элемент = ",A[I]," его индекс = ",I);

2. Составить программу вычисления и печати значений функции Y=sin(x-1)/2x. Значения аргументов задать в массиве X, состоящего из 6 элементов. Значения функции записать в массив Y.

X,Y:ARRAY OF REAL;

FOR I:=1 TO 6 DO Begin

Write("Введите ",I," значение аргумента "); ReadLn(X[I]);

FOR I:=1 TO 6 DO Begin

Y[I]:=SIN(X[I]-1)/(2*X[I]);

WriteLn(" X= ",X[I]:4:1," Y=",Y[I]:5:2);

3. Дан массив M, состоящий из 30 элементов. Элементы массива - произвольные целые числа. Выдать на экран значение каждого пятого и положительного элемента. Указанные элементы выдать в строку.

M:ARRAY OF INTEGER;

ClrScr; Randomize;

WriteLn(" Значения элементов массива");

FOR I:=1 TO 30 DO Begin

M[I]:=Random(20)-4; Write(M[I]:3);

WriteLn(" Значения каждого пятого и положительного элемента массива");

While I<=30 DO Begin

IF M[I] > 0 THEN Write(M[I]:3);

Примеры для самостоятельного решения:

    Дан одномерный массив размерностью 10, заполненный целыми числами, введенными с клавиатуры, и величина N. Отрицательные элементы заменить на N. Измененный массив вывести на экран одной строкой.

    Дан одномерный массив размерностью N, заполненный случайными числами в интервале от -15 до 20. Вывести на экран значения элементов массива, абсолютное значение которых >10.

    Дан одномерный массив размерностью N, заполненный случайными числами. Каждый третий элемент массива возвести в квадрат, если элемент отрицательный. Измененный массив вывести на экран.

    Составить программу вычисления и печати значений функции Y=(sinx+1)cos4x. Значения аргументов задать в массиве X, состоящего из 10 элементов. Значения функции записать в массив Y.

    Из элементов массива А, состоящего из 25 элементов, сформировать массив D той же размерности по правилу: первые 10 элементов находятся по формуле Di=Ai+i, остальные - по формуле Di=Ai-i.

Разделы: Информатика

Цели:

  1. Познакомить учащихся с возможностью заполнения и обработки массива.
  2. Создать графический интерфейс проекта по заполнению массива и подсчета суммы элементов в заданном массиве.
  3. Развивать познавательный интерес к предмету
  4. Воспитывать ответственное отношение к обучению

ХОД УРОКА

1. Актуализация урока

Организационный момент

Фронтальный опрос по предыдущей теме “Понятие массива. Одномерный массив”

2. Формирование умений и навыков

Объяснение нового материала

Объявление массива

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

A: array of integer;

Основные задачи при работе с массивами

1. Формирование (заполнение) массива

1.1. по формулам For i:=1 to 10 do a[i]:= i*i;

1.2. сгенерировать случайным образом For i:=1 to 10 do a[i]:= random(20):

Встроенная функция RANDOM(MAX), возвращает случайное целое число, равномерно распределенное в диапазоне от 0 до МАХ – 1(МАХ – параметр обращения)

1.3. ввести с клавиатуры For i:=1 to 10 do read(a[i]);

2. Сортировка массива (по возрастанию, по убыванию);

3. Поиск элементов в массиве;

4. Выбор элементов из массива по условию;

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

Для начала работы с массивом его необходимо заполнить, т.е. присвоить элементам массива определенные значения. Для генерации последовательности случайных чисел используем функцию Random(100). При запуске программы данная функция выведет псевдослучайную последовательность целых чисел в интервале от 0 до 100.

Для генерации различающихся между собой последовательностей случайных чисел рекомендуется использовать оператор Randomize

Действия с одномерными массивами

1. Вычисление суммы элементов

For I:= 1 To 10 Do s:=s+ a[i]; (обычное накопление суммы в s)

2. Вычисление произведения

For I:= 1 To 10 Do р:=р* a[i]; (обычное накопление произведения в р)

3. Поиск элемента с заданным значением

3. Прим енение умений и навыков на практике

Проект “Сумма элементов в массиве”. Разработаем проект “Сумма элементов в массиве”, который будет производить заполнение массива случайными числами и вычислять сумму этих чисел

Для начала создадим процедуру заполнения массива

1.Запустить систему программирования Delphi.

2. Работа над проектом начинается с создания графического интерфейса, для этого в окне Конструктор форм на форму помещаются управляющие элементы. Для создания графического интерфейса проекта разместим на форме два текстовых поля для вывода числовых данных (одно – заполнение массива, другое – вывод суммы) и две кнопки для реализации событийных процедур: заполнение массива и сумма

3. С помощью Панели инструментов поместить на форму Forml текстовое поле Editl и командную кнопку Buttonl

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

4. Осуществить двойной щелчок по кнопке Buttonl, появится заготовка событийной процедуры TForml.ButtonlClick: Произвести объявление массива A и описание переменных I, S в разделе описания переменных var

A:array of integer;

procedure TForm1.Button1Click(Sender: TObject);

For I:= 1 To 10 Do

A[I] := Random(10);

Edit1.Text:= Edit1.Text +" " + IntToStr(a[i]);

5. Сохранение проекта (Save Project As)

6. Компиляция проекта (Project - Compile)

Теперь создадим процедуру для вычисления суммы элементов в заполненном массиве

С помощью Панели инструментов п оместим на форму Forml кнопку Button2 и текстовое поле Edit2. Двойной щелчок мышью по кнопке Button2, для которой надо создать программный код, вызывает окно Программный код с пустой заготовкой событийной процедуры.

procedure TForm1.Button2Click(Sender: TObject);

For I:= 1 To 10 Do

Edit2.Text:= Edit2.Text +" " + IntToStr(s)

Сохранение проекта всего проекта (Save Project).

Произведем компиляцию проекта (нажатием клавиши F9).

Щелкнуть по кнопкам Заполнить массив и Сумма.

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

4. Подведение итогов

5. Домашнее задание: Создать проект “Произведение элементов массива”, предусматривающий заполнение массива случайными числами и возможность вывода в текстовое поле произведение всех элементов в массиве.

Определение массивов

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

Основные понятия:

Массив обозначается одним именем. Так всю совокупность действительных чисел

1.6, 14.9, -5.0, 8.5, 0.46

можно считать массивом и обозначить одним именем, например А. Образующие массив переменные называются элементами массива. Каждый элемент массива обозначается именем массива с индексом, заключенным в круглые скобки.

A(1), A(2), A(3), ..., A(n).

Индекс определяет положение элемента массива данных относительно его начала.

Для рассмотренного выше примера элементами массива А являются:

A(1)=1.6, A(2)=14.9, A(3)=-5.0, A(4)=8.5, A(5)=0.46

Прежде чем воспользоваться массивом, в программу надо включить оператор DIM, задающий максимально допустимый индекс. Это даст возможность системе с Бейсиком зарезервировать в памяти область достаточного размера.

Формат записи оператора DIM:

DIM имя_массива (максимальный_индекс)

"Имя_массива" обычно выбирается по тем же правилам, что и имена простых переменных.

"Максимальный_индекс" указывает максимально допустимый в программе индекс и должен быть положительным.

Примеры описания массивов:

DIM X(50) " объявление одномерного числового массива X для 50 чисел;

DIM V$(12) "объявление одномерного массива V для 12 символьных элементов.

Объявление массива с переменным размером.

Виды ошибок

Если указать в программе элемент массива с индексом большим, чем значение размерности, объявленное в операторе DIM или принятое по умолчанию, то выдается сообщение об ошибке 9:

Subscript out of range (выход за пределы массива).

Если оператор DIM указан после использования имени массива или массив повторно объявлен, то появляется сообщение 10:

Redimensioned array (повторное задание размерности массива).

Существует два способа присваивания значений элементам массива:

1) cтатический, с использованием операторов DATA, READ и оператора присваивания;

2) динамический, с использованием оператора INPUT и функции RND.

При работе с массивами очень удобно пользоваться оператором цикла FOR...NEXT. В качестве индекса массива используют параметр цикла.

1. Пример статического заполнения массива.

DATA слива,ананас,груша

DATA яблоко,вишня,абрикос

Цикл FOR...NEXT последовательно присваивает значения всем переменным из списка.

2. Пример динамического заполнения массива

INPUT "Введите количество элементов массива ";N

В данном примере используется переменное задание размерности массива.

3. Пример заполнения массива с помощью стандартной функции RND

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

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

Ход урока:

1. Объяснение нового материала:

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

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

Для обозначения отдельных элементов в массивах необходимо указывать индексы.

Описание массивов:

  • Тип (повторение типов переменных, аналогия с массивами: вещественный, целочисленный %, символьный $, логический)
  • Размеры массивов (одномерный- линейный, двумерный- прямоугольный и т. д.)

Поскольку в массивах хранятся совокупности данных, то их обработка производится с помощью циклов.

алг «Таблица умножения»
нач
от K=1 до 9 цикл
от L=1 до 9 цикл
T=K*L
кцикл
кцикл
кон

T- двумерный массив (цикл в цикле)
L-формирует строки- внутренний цикл
К-изменяет индекс строк

алг «вывод таблицы умножения»
нач
от K=1 до 9 цикл
от L=1 до 9 цикл
Вывод T
Кцикл
Вывод (новая строка)
кцикл
кон

внутренний цикл организует вывод строк
внешний- формирует таблицу (столбцы)

Способы заполнения массивов

  1. с клавиатуры
  2. переписывание информации, хранящейся на МГД
  3. формулой
  4. датчиком случайных чисел
  5. data, read

Табличные величины

Одномерный массив соответствует списку, двумерный- таблице. Прежде, чем их использовать в программе необходимо указать машине, чтобы она заранее отвела место

Dim (dimension-размер)

Dim(8) Dim(8, 15)

Отсчет размерности идет с нуля.

Dim ставится в начале программы.

Способы заполнения массивов

1. с клавиатуры

dim A(3,4)
for I=1 to 3
for j=1 to 4
input A(I,J)
next J,I

2. формулой

dim A(3)
for I=1 to 3
A(I)=cos(I)
next I

3. датчиком случайных чисел

dim B(7)
for I=0 to 7
A(I)=int(rnd(1)*100+1)
next I

4. data, read

dim A$(4)
for I=1 to 4
read A$(I)
? A$(I)
next I
data Лена, Оля, Катя, Коля

д/з: конспекты