Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Написание программы на Паскале для решения задач на ввод-вывод линейных и двумерных массивов



Цель работы: научиться правильно описывать различные массивы, уметь инициализировать массивы, распечатывать содержимое массива; научится решать задачи на использование массивов.

 

Общие сведения:

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

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

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

Этапы решения задачи:

1. Суть одного из алгоритмов решения данной задачи состоит в том чтобы " просматривать" массив построчно и находить в каждой строке пару (0: число), а затем менять их местами между собой и так до тех пор пока в строке таких пар не окажется.

2. Напишем программу на псевдо паскале:

program example1; var V: array[1..100, 1..100] of integer; m, n, i, j, c: integer; flag: boolean; begin < ввод размерности массива m*n> < заполнение ячеек массива> for i: =1 to m do repeat flag: = true; for j: =1 to n-1 do if (v[i, j]=0) and (v[i, j+1]< > 0) then begin < поменять их местами> flag: = false; end; until flag; < Печать массива> readln; end.

 

3.Составим блок схему алгоритма


Детализируем блок " Упорядочиваем 1-ю строку"


Блок схема алгоритма целиком:


4.Приведем программу на языке Паскаль:

program example1; var V: array[1..100, 1..100] of integer; m, n, i, j, c: integer; flag: boolean; begin write('Введите размерность массива m-n> '); readln(m, n); for i: = 1 to m do for j: = 1 to n do begin write('V[', i, ', ', j, ']= '); readln(V[i, j]); end; for i: =1 to m do repeat flag: = true; for j: =1 to n-1 do if (v[i, j]=0) and (v[i, j+1]< > 0) then begin c: =v[i, j]; v[i, j]: =v[i, j+1]; v[i, j+1]: =c; flag: = false; end; until flag; for i: = 1 to m do begin for j: = 1 to n do write(V[i, j]: 2); writeln end; readln; end. Контрольные вопросы

1. Каким образом определяются переменные типа массив (одномерный и двумерный)?

2. Как осуществляется доступ к отдельному элементу одномерного и двумерного массива?

3. Каким образом выводятся элементы массива на экран?

4. Приведите пример фрагмента программы, который выводит на экран двумерный массив в виде матрицы.

5. Сколько чисел можно записать в шестимерный массив X: Array[0..1, 0..1, 0..1, 0..1, 0..1, 0..1] of Integer?

 

Список индивидуальных заданий:

1. Даны целые числа а1, а2, а3. Получить целочисленную матрицу [bij]i, j=1, 2, 3, для которой bij=ai-3aj.

2. Получить [aij]i=1, …10; j=1, …12 - целочисленную матрицу, для которой aij=i+2j.

3. Дано натуральное число n. Получить действительную матрицу [aij]i, j=1, …n, для которой aij=.
Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных в заштрихованной части матрицы.

а) б) в) г)

4. Дана квадратная вещественная матрица размерности n. Найти количество нулевых элементов, стоящих: выше главной диагонали; ниже главной диагонали; выше и ниже побочной.

5. Дана вещественная матрица размерности n * m. По матрице получить логический вектор, присвоив его k-ому элементу значение True, если выполнено указанное условие и значение False иначе: - все элементы k столбца нулевые; - элементы k строки матрицы упорядочены по убыванию; - k строка массива симметрична.

6. Дана вещественная матрица размерности n * m. Сформировать вектор b, в котором элементы вычисляются как: - произведение элементов соответствующих строк; - среднее арифметическое соответствующих столбцов; - разность наибольших и наименьших элементов соответствующих строк; - значения первых отрицательных элементов в столбце.

7. Дан двухмерный массив A[1..m, 1..n]. Написать программу построения одномерного массива B[1..m], элементы которого соответственно равны а) суммам элементов строк, б) произведениям элементов строк, в) наименьшим средних арифметических элементов строк.

8. Расположить элементы данного массива в обратном порядке (первый элемент меняется с последним, второй - с предпоследним и т.д. до середины; если массив содержит нечетное количество элементов, то средний остается без изменения).

9. В данном массиве поменять местами элементы, стоящие на нечетных местах, с элементами, стоящими на четных местах.

Задачи повышенной сложности

1. В массиве А[1..N, 1..N] определить номера строки и столбца какой-нибудь седловой точки. Некоторый элемент массива называется седловой точкой, если он является одновременно наименьшим в своей строке и наибольшим в своем столбце.

2. Массив А[1..5, 1..7] содержит вещественные числа. Требуется ввести целое число K и вычислить сумму элементов А[I, J], для которых I+J=К. Прежде, однако следует убедиться, что значение К позволяет найти решение, в противном случае нужно напечатать сообщение об ошибке.

3. Дан массив A[1..N, 1..N]. Составить программу, которая прибавила бы каждому элементу данной строки элемент, принадлежащий этой строке и главной диагонали.

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

5. Заполнить двухмерный массив Т[1..n, 1..n] последовательными целыми числами от 1 до n 52 0, расположенными по спирали, начиная с левого верхнего угла и продвигаясь по часовой стрелке:

1 2 3 4 5 6 20 21 22 23 24 7 19 32 33 34 25 8 18 31 36 35 26 9 30 29 28 27 10 15 14 13 12 11

 

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


ЛАБОРАТОРНАЯ РАБОТА №7-15.

Создание однотабличной базы данных. Заполнение базы данных. Создание новых таблиц. Ввод и просмотр данных посредством формы. Создание схем данных. Создание многотабличной формы. Формирование запросов на выборку. Создание сводных таблиц и диаграмм. Создание отчетов.

Цель работы: Изучить вопросы, связанные с созданием таблиц в БД и заданием схемы данных. Изучить способы создания запросов на выборку, удаление, обновление, добавление данных и формирование новых таблиц, простых форм (с помощью мастера и конструктора). Изучить свойства форм.

Методическое указание.

Реализовать базу данных (БД) по теме «Учет выдачи и возврата книг» в СУБД Microsoft Access 2007.

В результате проектирования БД «Учет выдачи и возврата книг»получены следующие таблицы:

Тематика (код тематики, наим.тематики)

Издательство (код изд-ва, наим. изд-ва)

Читатель (номер ЧБ, фам, адрес, год рожд, образование)

Книги (№ книги, наим.книги, авторы, код тематики, код изд-ва, адрес хранения)

Учет книг (номер ЧБ, № книги, дата возврата, дата выдачи, дата факт.возврата)

Перед созданием таблиц в СУБД необходимо для каждого поля (столбца) таблиц определить некоторые характеристики (полужирным шрифтом выделены ключевые поля):

 

Тематика

Характеристики поля Поле Тип поля Списочный характер Возможные ограничения Индексируемость Обязательность заполнения
Код тематики Счетчик - - - +
Наименование тематики Текстовый - - + +

Читатель

Характеристики поля Поле Тип поля Списочный характер Возможные ограничения Индексируемость Обязательность заполнения
Номер ЧБ Числовой - - - +
Фамилия Текстовый - - + +
Адрес Текстовый - - - +
Год рождения Числовой - > 1920 And < 2005 - -
Образование Мастер подстановок неполное среднее, среднее, высшее - - -

Издательство

Характеристики поля Поле Тип поля Списочный характер Возможные ограничения Индексируемость Обязательность заполнения
Код издательства Счетчик - - - +
Наименование издательства Текстовый - - + +

 

Книги

Характеристики поле Поле Тип поля Списочный характер Возможные ограничения Индексируемость Обязательность заполнения
№ книги Числовой - - - +
Наименование книги Текстовый - - - +
Авторы Текстовый - - + +
Код тематики Мастер подстановок (поле Наименование тематики из таблицы «Тематика») - - - +
Код издательства Мастер подстановок (поле Наименование издательства из таблицы «Издательство») - - - +
Адрес хранения Мастер подстановок Отдел 1 Отдел 2 - - +

 

Учет книг

Характеристики поля Поле Тип поля Списочный характер Возможные ограничения Индексируемость Обязательность заполнения
Номер ЧБ Мастер подстановок (Номер ЧБ из таблицы «Читатель») - - - +
№ книги Мастер подстановок (№ книги из таблицы «Книги») - - - +
Дата выдачи Дата/время - - - +
Дата возврата Дата/время - - - +
Дата фактвозврата Дата/время - - - -

 

1. Запустить MS Access 2007, создать новую базу данных «Учет выдачи и возврата книг».

2. Создание таблицы «Тематика»:

· на закладке Главная с помощью кнопки Вид перейти в режим Конструктора:

 

· внести названия и типы полей таблицы «Тематика»:

· в разделе Свойства поля на закладке Общие для поля Наименование тематики установить характеристики индексируемости и обязательности:

· на закладке Главная с помощью кнопки Вид перейти в Режим таблицы и ввести данные в таблицу «Тематика»:

 

3. Создание таблицы «Читатель»:

· на закладке Создание с помощью кнопки Таблица создать новую таблицу и сохранить под именем «Читатель»:

 

· перейти в режим Конструктора и внести названия и типы полей таблицы «Читатель»:

- для поля Год рождения в разделе Свойства поля на закладке Общие внести соответствующее ограничение целостности в строку Условие на значение;

- так как поле Образование должно быть представлено в виде списка, поэтому для его создания выберите тип данных Мастер подстановок. Затем в появившемся окне необходимо выбрать опцию Будет введен фиксированный набор значений, далее, отвечая на вопросы Мастера, ввести значения элементов списка;

 

· в разделе Свойства поля на закладке Общие для введенных полей установить соответствующие характеристики индексируемости и обязательности;

· внести данные в таблицу «Читатель».

 

4. Аналогично создать таблицы «Издательство», «Книги», «Учет книг», учитывая характеристики полей в соответствующих таблицах, и внести данные. Обратите внимание, в каком порядке создавались таблицы и вносились в них данные!

 

5. Схема данных:

· на закладке Работа с базами данных с помощью кнопки Схема данных вызвать схему данных и поместить на неё все имеющиеся таблицы.

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

Внешний вид схемы данных должен быть следующий:

 

 

6. Создание форм:

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

· на закладке Создание с помощью кнопки Форма создать формы для каждой таблицы, улучшая внешний вид каждой формы при использовании закладки Формат.

 

7. Создание отчета

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

· на закладке Создание с помощью кнопки Конструктор запросов создать новый запрос и сохранить под именем «Книги читателя»;

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

· проверить правильность работы запроса с помощью закладки Конструктор и команды Выполнить;

· на закладке Создание с помощью кнопки Мастер отчетов создать простой настраиваемый отчет на основе запроса «Книги читателей». При работе с Мастером отчетов необходимо установить следующие уровни группировки:

· для добавления итогов откройте созданный отчет в Режиме макета и на закладке Формат в списке Итоги выберите Количество значений. Таким образом, общий вид отчета должен быть следующим:

 

8. Элементы администрирования базы данных

В MicroSoft Office Access 2007 предусмотрена улучшенная модель безопасности, которая упрощает процесс защиты базы данных и ее открытия с включенной защитой. Примечание: хотя предлагаемые методы повышают уровень безопасности, наилучший способ защиты данных — хранение таблиц на специальном сервере (например, на компьютере, на котором выполняется Службы Microsoft Windows SharePoint Services 3.0) и хранение форм и отчетов на локальных компьютерах или в общих сетевых ресурсах. Cредства обеспечения безопасности в Office Access 2007:

 

Шифрование базы данных паролем. В средстве шифрования, доступном в MicroSoft Office Access 2007, объединены и усовершенствованы два предыдущих средства — применение паролей и шифрование базы данных. При использовании пароля базы данных для шифрования базы данных эти данные становятся недоступны для других средств, и другие пользователи вынуждены вводить пароль, чтобы получить доступ к этой базе данных. Для шифрования в Access 2007 используется более эффективный алгоритм, чем в более ранних версиях Access.

· Откройте базу данных в монопольном режиме, для этого:

- щелкните значок Кнопка Office , а затем выберите команду Открыть;

- в диалоговом окне Открытие найдите файл, который нужно открыть, и выделите его (одним щелчком);

- нажмите стрелку рядом с кнопкой Открыть и выберите вариант Монопольно:

· на закладке Работа с базами данных в группе Работа с базами данных щелкните Зашифровать паролем:

· откроется диалоговое окно Задание пароля базы данных, введите пароль в поле Пароль, повторите его в поле Подтверждение и нажмите кнопку ОК;

· самостоятельно изучить возможности дешифровки базы данных.

 

Создание резервной копии базы данных.

· щелкните значок Кнопка Office , выберите команду Управление, затем Резервная копия базы данных;

· в появившемся окне Сохранение укажите место для сохранения резервной копии базы данных.

 

Упрощенное открытие баз данных.

В предыдущих версиях Access пользователю приходилось отвечать на различные предупреждающие сообщения — например о безопасности макросов и изолированном режиме. По умолчанию, если в Office Access 2007 открывается база данных, расположенная не в доверенном месте, отображается только панель сообщений.

 

Если файлы базы данных (как в новом формате Office Access 2007, так и в более ранних) расположены в надежном месте, например в папке или в общем сетевом ресурсе, которые указаны как надежные, они будут открываться и обрабатываться без сообщений с предупреждениями и запроса о включении или отключении содержимого. Описанная ниже последовательность шагов объясняет, как найти или создать надежное расположение, а затем добавить туда базу данных.

· щелкните значок Кнопка Office , а затем - кнопку Параметры Access. Примечание: открывать базу данных не требуется;

· в открывшемся диалоговом окне Параметры Access выберите пункт Центр управления безопасностью и в группе Центр управления безопасностью Microsoft Office Access нажмите кнопку Параметры центра управления безопасностью;

· выберите Надежные расположения, просмотрите уже созданные надежные расположения;

· для создания нового надежного расположения используйте кнопку Добавить новое расположение, а затем укажите значения параметров в диалоговом окне Надежное расположение Microsoft Office;

· для размещения базы данных в надежном расположении можно воспользоваться проводником Windows или открыть файл в Access и сохранить его в надежном расположении;

· для открытия базы данных в надежном расположении можно использовать любой привычный способ. Например, выбрать и затем дважды щелкнуть файл в проводнике Windows либо, если уже запущен Access, нажать кнопку Microsoft Office для поиска и открытия файла. Если база данных Office Access 2007 размещена в надежном расположении, при ее открытии работают все коды VBA, макросы и безопасные выражения. При этом не возникает необходимость решать вопросы доверия.

 

 

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

Продемонстрировать БД «Учет выдачи и возврата книг», выполненную полностью в соответствии с данной лабораторной работой.

 


ЛАБОРАТОРНАЯ РАБОТА №16-18.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-03-25; Просмотров: 1096; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.053 с.)
Главная | Случайная страница | Обратная связь