Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy.doc
Скачиваний:
302
Добавлен:
09.03.2016
Размер:
626.18 Кб
Скачать

39. Массив как способ организации данных. Реализация массивов в различных языках программирования. Одномерные и многомерные массивы. Типовые алгоритмы обработки массивов.

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

Доступ к элементам массива осуществляется по индексу, который указывается после имени массива в квадратных скобках. Например: А[2]=12, C[‘d’]=234.

Массивы реализованы практически во всех структурных и объектно-ориентированных языках программирования.

Рассмотрим структуру массива на примере языка TurboPascal:

  1. Сначала необходимо описать тип данных массив:

Type <имя_типа>=Array[min_индекс..max_индекс] of <тип_элементов_массива>;

  1. Описать переменную, имеющей тип массив:

Var <имя_переменной>: <имя описанного выше типа>

Пример:

Type List = Array [1..30] Of String;

MasNum = Array[1..15] Of Real;

Var Fam, Name : List; { Переменные Fam и Name – массивы строк }

Year, a, b : MasNum; { Переменные Year, a и b – массивы вещественных чисел }

Для обработки массивов наиболее часто используется оператор цикла со счетчиком For.

Фрагмент программы, позволяющий осуществить ввод значений элементов массива A из N элементов, может быть записан следующим образом:

For i := 1 to n do

begin

Write (‘введите ’ , i , ’-ый элемент ’);

Readln ( A[i] )

end;

Многомерные массивы– это массивы элементами которых являются другие массивы.

Рассмотрим двумерный массив в программах на языке TurboPascal.

1) Описание типа:

Type <имя типа> = Array [ <min номер строки>..<max номер строки> , <min номер столбца>..<max номер столбца> ] Of <тип элементов массива>;

2) Описание переменной типа массив:

Var <имя переменной> : <имя описанного выше типа>;

Например:

Type Mas2 = Array [1..5, 1..6] of Integer;

A: Mas2– переменная А массив целых чисел, в котором 5 строк и 6 столбцов.

Над массивами нельзя выполнять арифметические действия (вычитать, складывать и др.). Все действия выполняются поэлементно.

Приведём примеры типовых алгоритмов обработки массивов на языке Pascal:

1) Суммирование матриц:

for i:= 1 to n do

begin

for j:= 1 to m do

c[i,j]:=a[i,j]+ b[i,j]

end;

2) Суммирование элементов массива:

sum := 0;

for i := 1 to n do

sum := sum + arr[i];

3) Умножение элементов массива:

op := 1;

for i := 1 to n do

op := op * arr[i];

40. Подпрограммы (методы) в языках программирования. Формальные и фактические параметры. Глобальные и локальные переменные. Рекурсивное выполнение подпрограммы.

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

Язык Турбо Паскаль содержит два типа подпрограмм:

1. Процедуры

2. Функции.

Процедуры в Паскале. Структура процедуры аналогична структуре программы и состоит из заголовка и блока (тела программы).

Procedure <имя> (<список параметров>)

<блок описаний>

begin

<тело процедуры>

end;

Структура процедуры почти полностью совпадает со структурой программы. Но имеются исключения:

I. Заголовокначинается с зарезервированного словаProcedure, кроме того содержит список параметров.Параметры– это средства связи процедуры с программой и другими процедурами, механизм обмена данными. Параметры процедуры бывают двух видов:

- параметры-значения, или входные параметры – это исходные, (входные) данные, передаваемые в процедуру. Их значения после окончания работы процедуры остаются неизменными. Описание параметров-значений:<имя>: <тип> .

- параметры-переменные, или выходные параметры – это результаты работы процедуры, передаваемые обратно в программу или другую процедуру. Их значения поле окончания процедуры изменяются. Описание выходных параметров:Var <имя> : <тип> .

Например, процедура может иметь такой заголовок:

Procedure Calculate (x,y:integer; var z: integer, var f: real);

Имя этой процедуры Calculate. Она имеет 4 параметра: два входных (или параметра значения) – это параметрыxиyцелого типа; два выходных (или параметра-переменных) – я целого типа иfвещественного типа, т.к. типы у них различны, перед описанием каждого указано зарезервированное словоVar.

Блок описаний может содержать те же разделы, что и блок описаний программы (Const,Type,Var,Procedure,Function),за исключением описания подключения модулей библиотек Uses.

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

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

Тело процедуры также представляет собой составной оператор, но заканчиваетсяEnd;

ВЫЗОВ ПРОЦЕДУРЫ может осуществляться из основной программы или процедуры, описанной после вызываемой. При вызове указываетсяимя процедуры и список фактических параметров, т.е. тех, которые будут подставлены на местоформальных (используемых в списке параметров процедуры). Количество, порядок и типы фактических параметров должны совпадать с количеством, порядком и типами формальных параметров. Например, процедуруCalculate, заголовок которой был описан выше, можно вызвать следующим образом:

Calculate(a,b,c,d);- при условии, чтоa,b, с имеют типInteger,d–Real.

Calculate(23,p+14,q,w);- еслиpиqимеют типInteger,aw–Real.

Практически всё сказанное о процедурах верно и для функций. Отличие функции от процедуры состоит в том, что функция не имеет выходных параметров, она возвращает единственное значение – это значение функции. Входные параметры называются ещёаргументами функции.

Описание функции:

Function <имя> (<список аргументов>): <тип значения функции>;

<Блок описания локальных переменных>

Begin

<тело функции>

End;

В теле функции обязательно должна быть команда присваивания вида:

<имя функции>:=<вычисленное значение>;

Которая и позволит функции возвратить вычисленное значение.

Например, опишем функцию вычисления среднего арифметического двух целых чисел:

Function middle(a,b:integer):real;

Begin

Middle:=(a+b)/2

End;

Процедуры и функции, производящие вызов «самих себя» называютрекурсивными. Рекурсией называется ситуация, когда какая-то подпрограмма прямо или через другие подпрограммы вызывает себя в качестве подпрограммы. Реализуемый при этом алгоритм называется рекурсивным.

41 Объектно-ориентированное программирование: класс, объект, поле, метод. Принципы объектно-ориентированного подхода. Их реализация в современных языках программирования.

42 Языки разметки HTML и XML. Каскадные таблицы стилей.

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