Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Массивы, их виды. Использование массивов




ЛАБОРАТОРНАЯ РАБОТА № 3

Контрольные вопросы

Методические указания по выполнению

задания

4.1 Перед выполнением лабораторной работы обучающийся должен получить индивидуальное задание.

4.2 Изучить теоретический лекционный материал и ознакомиться с описанием лабораторной работы.

4.3 Изучить операторы Turbo Pascal, организующие ветвления и циклы.

4.4 Проанализировать задание для выполнения лабораторной работы.

4.5 Выполнить постановку задачи

4.6 Выполнить формализацию задачи.

4.7 Составить алгоритм решения задачи в графической форме.

4.8 Составить программу решения задачи на языке Turbo Pascal.

4.9 С помощью системы программирования Turbo Pascal составить текст программы и выполнить ее.

4.10 Проверить правильность составления программы с помощью контрольного примера.

4.12 Оформить отчет по лабораторной работе.

1. В каких случаях используют Writeln(‘Понедельник’); циклы с предусловием?

2. Каковы особенности использования цикла с постусловием?

3. В чем сходство и различие операторов CASE и IF?

4. Каков порядок выполнения цикла с параметром?

5. Что такое счетчик цикла?

6. Как задаются условия в операторах циклов и сравнения?

7. Какой формат имеет оператор CASE?

8. Какой формат имеет оператор IF?

9. Как избежать «зацикливания» при использовании операторов циклов?

10. В каких случаях используются «операторные скобки»?

11. Что такое вложенные операторы?

1.Цель работы :

Составление алгоритмов и программ для решения задач с использованием массивов.

2.Краткая теория:

Массивы

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

Пример 1: Пусть даны вещественные числа а12, …, а1000. Необходимо к каждому из этих чисел добавить число 2,

Если решать эту задачу с помощью простых переменных, то каждое из чисел надо обозначить собственным идентификатором и затем написать 1000 операторов присваивания типа bi = ai + 2; и т. д. Чтобы избежать этих трудностей, числа а12, …, а1000 могут быть организованы как одномерный массив с именем А.

Одномерный массив — это конечная последовательность данных (компонентов) одного типа, имеющих общее имя. Каждый отдельный компонент массива называется элементом. Количество элементов называется размером массива. Тип элементов определяет тип массива. Размер и тип массива указываются при его описании, причем размер может быть указан либо конкретным значением, либо ранее определенной константой. Например, упомянутый выше массив А на языке Паскаль может быть описан следующим образом:

VAR A: Array [1..1000] of Real;

или

CONST N=1000;

VAR A: Array [1..N] of real;

Номер элемента называется индексом. Индексы являются целыми положительными константами или целыми переменными. Чтобы обратиться к некоторому элементу массива, нужно рядом с идентификатором массива в скобках указать индекс элемента. Например, А [99] означает 99-й элемент массива А.

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

Program MASSIV;

{ Эта программа демонстрирует использование массивов }

VAR

i: Integer;

А, В: Array [1..1000] of Real;

BEGIN

Writeln(‘введите массив А');

For i:=l to 1000 do

Begin

Write(‘Введите ',1,'-элемент ->');

ReadLn (A [i]);

End;

WriteIn(‘ массив В: ‘);

For i:=l to 1000 do

Begin

B[i]:=A[i]+2;

Write (B[i]:6:3);

End;

END.

Данные могут быть организованы в виде таблицы (матрицы), где расположение каждой переменной определяется номером строки и номером столбца. Например, место в зрительном зале задается указанием номера ряда и номером места в этом ряду. Такие данные удобно описать как двумерный массив. В отличие от одномерного массива каждому элементу двумерного массива соответствует пара индексов. Первый индекс — это номер строки, а второй — номер столбца, где расположен элемент массива..

Размер двумерного массива задается парой чисел: М х N, где М — число строк, а N — число столбцов в таблице.

Пусть задан двумерный массив MATR, имеющий размер 10 х 20. Этот массив на языке Паскаль может быть описан следующим образом:

VAR MATR: Array [1..10,1..20] of Integer,

тогда

MATR [5,7] — элемент, расположенный в 5-й строке и в 7-м столбце.

Любая константа, переменная, значение функции или выражения в Турбо-Паскале характеризуются своим типом. Тип любого из этих объектов определяет множество допустимых значений, которые может иметь объект, а также множество допустимых операций, которые применимы к объекту. Кроме того, тип определяет и формат внутреннего представления значения объекта.

Имя, которое программист присваивает своему определяемому типу, — произвольный идентификатор. Объявление типа должно быть сделано в разделе объявлений, и ему должно предшествовать кодовое слово TYPE.

Отличительной особенностью массивов является то обстоятельство, что все их компоненты суть данные одного типа (возможно, структурированного); эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

TYPE

digit = ARRAY [0..9] OF integer;

matrix = ARRAY [1..100, 0..9] OF real;

VAR

m: matrix;

d: digit;

i: integer;

Описание типа массива задается следующим образом:

<имя типа> = ARRAY [<сп.инд.типов>] OF <тип>;

Здесь:.

- <имя типа> — правильный идентификатор;

- ARRAY, OF — служебные слова (англ.: массив, из);

- <сп.инд.типов> — список из одного или нескольких индексных типов, разделенных запятыми;

- <тип> — любой тип Турбо-Паскаля.

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов через две точки (..). Так как <тип>, идущий за словом OF, — любой тип Турбо-Паскаля, он может быть, в частности, другим массивом.

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

Пример 2: Дана таблица целых чисел, содержащая 10 строк и 20 столбцов. Сосчитайте сумму всех чисел в таблице.

Программа решения этой задачи может быть написана на Паскале следующим образом:

Program MASSIV;

{ Эта программа демонстрирует использование

двумерных массивов и вложенных циклов }

VAR

i,j: Integer; l

SUMMA: Integer;

A: Array [1..10, 1..20] of Integer:

BEGIN

SUMMA:= 0;

Writeln(‘ Введите массив А');

For I:=l to 10 do

For j:=l to 20 do

Begin

Write(‘A[‘,,’,’,j,’]=’);

Readln (A [i,j]);

SUMMA:= SUMMA+A[i,j];

End;

Writeln('Cyммa =’, SUMMA);

END.

Обратите внимание, что внутри цикла со счетчиком i организован цикл со счетчиком j. В результате суммируются в начале числа 1-й строки (i =l, при j =1, 2,..., 20), затем суммируются числа 2-й строки (i =2, j = 1, 2,..., 20) и т. д.

В данной программе в теле одного цикла содержится другой цикл. Такие циклы называются вложенными. Причем цикл со счетчиком i является внешним, а цикл со счетчиком j — внутренним. При написании вложенных циклов необходимо соблюдать следующее правило: последний оператор внутреннего цикла должен либо предшествовать, либо совпадать с последним оператором внешнего цикла. Вложенные циклы напоминают матрешек, вложенных одна в другую.

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

Процедура RANDOMIZE.

Предназначена для инициализации датчика случайных чисел. Формат обраще

ния:

RANDOMIZE;

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




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


Дата добавления: 2014-12-17; Просмотров: 1649; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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