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

Контрольные задания

  1. Составить программу, которая вводит с клавиатуры N чисел и помещает четные из введенных в множество А, а нечетные – в множество В. Элементы полученных множеств распечатать.

  2. Составить программу, которая вводит предложение и формирует три множества: множество гласных, множество согласных, множество разделителей. Элементы полученных множеств вывести на экран.

  3. Составить программу, которая вводит с клавиатуры N целых чисел и формирует 5 множеств: одно-, дву-, трех-, четырех- и пятизначных чисел. Элементы полученных множеств вывести на экран.

  4. Составить программу-тренажер по проверке знания таблицы умножения на заданное число N (оно должно вводиться с клавиатуры). Программа должна вразброс выводить 10 примеров вида «K * N =» (К изменяется от 1 до 10), причем так, чтобы примеры не повторялись. Пользователь вводит ответ, после чего программа должна выводить сообщение «Верно» или «Неверно».

  5. «Решето Эратосфена». Алгоритм с таким названием позволяет выделить простые числа из интервала от 2 до N. Он состоит в следующем: создаем исходное множество чисел от 2 до N. Множество простых чисел на начальном этапе пусто. Берем первое число – это 2. Оно является простым числом, включаем это число в множество простых чисел. Удаляем из исходного множества чисел все числа, кратные 2 (т.е. 2, 4, 6 и т.д.). Вновь берем первое число из исходного множества чисел. Это 3 – простое число. Включаем его в множество простых чисел, а из исходного множества исключаем все числа, кратные 3. Снова берем первое число из исходного множества (это число 5 - простое). Включаем его в множество простых, а из исходного исключаем все числа, кратные числу 5. Эти действия повторяем до тех пор, пока исходное множество чисел не станет пустым.

Тема 9. Массивы в языке Паскаль Краткое изложение теоретического материала

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

А – массив из пяти целых чисел. Индексы элементов – целые числа от 1 до 5.

В - массив из 5 вещественных чисел. Индексы элементов – целые числа от 2001 до 2005.

C - массив из 5 целых чисел. Индексы элементов – символы от целые числа от 1 до 5.

W – массив из пяти строк. Индексы элементов – целые числа от 1 до 5.

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

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

Обработка массивов в языке Турбо Паскаль:

  1. Описание нового типа данных - массив:

    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 – массивы вещественных чисел }

  1. Ввод элементов массива:

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

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

For i := 1 to n do

begin

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

Readln ( A[i] )

end;

  1. Заполнение массива случайными числами зачастую используется в учебных (и не только) задачах, для того чтобы не вводить длинные числовые последовательности:

Randomize; { инициализация датчика случайных чисел }

For i := 1 to n do

A[ i ] := random(100); { в этом случае значения элементов будут лежать в интервале от 0 до 99 }

  1. Вывод массива на экран:

For i := 1 to n do

Writeln( A[i] );

  1. Сортировка массива – это упорядочение его элементов по возрастанию или убыванию. Разработан не один десяток алгоритмов сортировки массива (см. соответствующую литературу). Ниже приведен фрагмент программы, реализующей один из алгоритмов сортировки массива. Алгоритм сортировки по убыванию состоит в следующем:

  • Фиксируем первый элемент массива, сравниваем его со всеми последующими (от 2-го до последнего – n-го), если какой-либо оказывается больше первого, то поменять его местами с первым. В результате таких сравнений и обменов на первом месте в массиве окажется самый большой элемент.

  • Зафиксируем второй элемент массива. Будем сравнивать его со всеми последующими (начиная уже с 3-го), и если найдем большие элементы, будем менять их местами со вторым. В результате этих действий на втором месте окажется самый большой элемент массива из оставшихся.

  • Зафиксируем третий элемент и повторим описанные выше действия.

  • В результате повторения описанных действий (таких повторов будет n-1, т.к. последний элемент сравнивать уже не с чем) массив будет отсортирован по убыванию.

For i := 1 to n-1 do

For j := i+1 to n do

If A[ j ] > A[ i ] then

begin { меняем местами i-ый и j-ый элементы массива А }

p := A[ i ]; { для этого используем Ъ

A[ i ] := A[ j ]; { промежуточную переменную p, тип которой }

A[ j ] := p { должен совпадать с типом элементов массива }

end;

При сортировке по убывания нужно в тексте программы изменить лишь знак «>» на знак «<».

Размер массива – это количество элементов в нем.

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

Двумерный массив можно представить в виде совокупности пронумерованных строк и столбцов:

1

2

3

4

5

6

1

24

-57

0

12

1

13

2

103

6

-134

2

15

-8

3

5

9

24

-11

-67

91

4

-7

10

8

421

36

-22

5

11

47

-3

14

59

32


А

Двумерный числовой массив А состоит из 5 строк и 6 столбцов. Для того чтобы обратиться к отдельному элементу этого массива, нужно указать после его имени индексы в квадратных скобках через запятую – сначала номер строки, затем номер столбца. Например: А[1,3]=0, А[4,1]= -7, А[4,6]= -22, А[2,5]=15.

Использование двумерных массивов в программах на языке Турбо Паскаль:

  1. Описание двумерного массива:

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

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

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

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

Например:

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

Var a : Mas2;

{ Переменная a – двумерный массив целых чисел, в котором 5 строк и 6 столбцов }

  1. Ввод элементов массива:

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

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

For i := 1 to n do

For j := 1 to m do

begin

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

Readln ( A[i , j] )

end;

  1. Вывод массива на экран в виде прямоугольной матрицы (таблицы):

For i := 1 to n do

begin

For j:=1 to m do

Write ( A[i , j] : 3 ); {выводим все элементы i-ой строки массива в одну строку на экране}

Writeln { переводим на экране курсор на следующую строку}

end;