Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное_пособие_заочное (брошюра)

.pdf
Скачиваний:
24
Добавлен:
21.03.2016
Размер:
1.92 Mб
Скачать

5.Используя язык запросов QBE (язык запросов по образцу) выполнить согласно варианту задания запросы:

a)на удаление, обновление, создание таблицы;

b)на выборку данных из одной или более таблиц;

c)на выборку данных с использованием агрегатных функций;

d)перекрестные запросы.

6.Открыть все выполненные запросы в режиме Конструктора, изменить вид запроса на запрос в режиме SQL (структурированный язык запросов), просмотреть запросы и объяснить используемые фразы и операторы языка SQL.

7.Написать отчет о выполнении лабораторной работы, который должен содержать:

a)описание таблиц с указанием типа атрибутов, первичных

ивнешних ключей;

b)схему связей между таблицами;

c)протокол работы с результатами;

d)краткие выводы.

3.5.3.Пример выполнения работы.

В качестве примера рассмотрим отношение, соответствующее варианту:

Таблицы

1.Код_сотрудника, ФИО, Должность, Оклад, Дом_адрес

2.Код_товара, Наименование_товара

3.Код_сотрудника, Код_товара, Цена_приходная, Приход, Дата_поступления

Определим типы значений атрибутов:

Код_сотрудника –

INT

ФИО -

CHAR(20)

Должность -

CHAR(15)

Оклад –

FLOAT

 

82

#include <stdio.h> #include <math.h> #include <stdlib.h>

int main()

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

float a = 3.14, b = 3.14, x = a, y, h = 0.2;

 

 

 

 

 

while (x <= b)

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

if (sin(x) > 0.2)

y = x x +1;

 

 

 

 

if (sin(x) < = 0.2)

y = pow(1/tan(x), 2);

 

 

printf(”\ny(%f) = %f”, x, y);

 

 

 

 

x += h;

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

system(“PAUSE”);

 

 

 

 

 

}

return 0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.4. Варианты заданий.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интервал

h

 

 

 

 

f(x)

 

 

вариан

 

 

 

 

 

 

 

 

 

 

 

 

 

 

та

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.5x2 ,

если cos(x) 0

1

[1, 1.2]

0.1

 

3x2 /cos x,

если

cos(x) 0

 

 

 

 

 

 

 

2

[0.1, 2.1]

0.2

 

sin(x),

если

tan(x) 0,1

 

 

 

если

tan(x) 0,1

 

 

 

 

cos(x),

3

[0.5, 1.2]

0.1

 

tan2 (x), если

ctan(x) 0,3

 

 

 

если

ctan(x) 0,3

 

 

 

 

ctan(x),

 

 

 

 

sin(x/2),

если

e2sin(x)

0,5

4

[0, 1.6]

0.2

 

 

 

 

если e2sin(x)

0,5

 

cos(x/2),

 

 

 

71

 

 

 

 

 

 

Интервал

h

 

 

 

 

 

 

 

 

f(x)

 

вариан

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

та

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

4

 

 

 

 

 

 

 

 

 

x

 

,

если

cos(x) 0,2

 

 

 

 

 

 

 

5

[0.2, 1]

0.1

 

2

x

 

 

 

 

 

4

 

 

 

 

 

 

 

 

x

 

если cos(x) 0,2

 

 

 

 

 

 

 

,

 

 

 

 

 

x

 

 

 

 

6

[2, 3.1]

0.1

(x 1)4 ,

если

sin(x) 0,1

(x 1)4 ,

если sin(x) 0,1

 

 

 

 

 

 

 

 

 

 

 

 

7

[3.0, 6.1]

0.3

x2

2x 5,

если

tan(x) 0

 

2

2x 5,

если tan(x) 0

 

 

 

x

 

 

 

(x 1)sin(x),

если

ctan(x) 0,1

8

[3.2, 3.9]

0.1

(x 1)sin(x), если

ctan(x) 0,1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sin 2 (x) sin(x) 1,

если cos(x) 0

9

[0.2, 1.4]

0.2

cos2 (x) cos(x) 1,

если cos(x) 0

 

 

 

 

 

 

 

 

(sin(x) 1)2 ,

если sin(x) 0

10

[5.7, 9.4]

0.3

(cos(x) 1)2 ,

если sin(x) 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tan2(x) tan(x) 4,

если tan(x) 0

11

[6.5, 7.1]

0.1

ctan2(x) 2ctan(x) 3,

еслиtan(x) 0

 

 

 

cos(x)/sin2 (x),

если ecos(x) 0

12

[0.3, 0.9]

0.1

sin(x)/cos2 (x),

если ecos(x) 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

72

3.5. Лабораторная работа 5. Работа с базой данных.

3.5.1. Цель работы.

Научиться создавать базы данных (БД) и манипулировать с ними при помощи запросов к ним на языках запросов QBE и SQL.

3.5.2.Практическое задание.

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

a)определить типы значений атрибутов и их размерность;

b)определить первичные и внешние ключи в таблицах и необходимые связи между ними для обеспечения целостности БД.

2.Создать файл БД в какой-либо среде (например, MS Access)

исохранить его в своей сетевой папке.

3.Создать таблицы БД, при этом обязательно:

a)при создании справочных таблиц обозначить ключевые поля;

b)при создании учётной таблицы для внешних ключей использовать столбцы подстановок (код и характеризующий его столбец) из справочных таблиц, при этом следует отменить опцию: «скрыть ключевой столбец» и выбрать основной столбец подстановки;

c) просмотреть схему данных со связями

между

таблицами.

 

4.Внести данные в таблицы (не менее 10 кортежей в каждой таблице) и убедиться, что система поддержки целостности БД функционирует.

81

Массив

Задание

Условия и

ограничения

 

 

 

 

 

 

 

4

В[6][2]

Определить максимальный

Bij –

 

 

элемент массива В и его

действитель-

 

 

порядковый номер

ные числа

5

С[4][3]

Вычислить минимальный

Cij–

 

 

элемент массива С и его

действитель-

 

 

порядковый номер

ные числа

6

D[2][6]

Найти максимальный и

Dijцелые

 

 

минимальный элементы

числа

 

 

массива D и поменять их

 

 

 

местами

 

7

Y[4][2]

Вычислить среднее геомет-

Yijцелые

 

 

рическое положительных

числа

 

 

элементов массива Y

 

8

Z[5][3]

Найти сумму и количество

Zij-

 

 

четных чисел, меньших 10.

натуральные

 

 

 

числа

9

N[5][2]

Определить сумму

Nij -

 

 

элементов массива N,

натуральные

 

 

кратных трем

числа

 

 

 

 

10

A[3][5]

Найти сумму и количество

Aij – целые

 

 

отрицательных элементов

числа

 

 

массива А

 

 

 

 

 

11

X[3][3]

Найти сумму и количество

Xij – целые

 

 

целых положительных

числа

 

 

чисел, больших 20, меньших

 

 

 

50.

 

 

 

 

 

12

X[4][4]

Найти сумму целых

Xij – целые

 

 

положительных чисел,

числа

 

 

кратных 2 и меньших 50.

 

 

 

 

 

 

 

80

 

3.3. Лабораторная работа 3.

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

3.3.1. Цель работы.

Научиться использовать в программах одномерные массивы данных.

3.3.2.Практическое задание.

1.Дан вектор x={x1, … , xn}. В соответствии с вариантом задания изменить значения некоторых его компонентов.

2.Составить отчет о выполнении лабораторной работы, в который включить:

a.Название и цель работы;

b.Индивидуальное задание;

c.Текст программы;

d.Результат решения задачи;

e.Блок-схему алгоритма решения задачи.

3.3.3.Пример выполнения работы.

Среди компонент вектора x={x1, … , xn} (n<20) найти максимальный элемент и поменять его местами с элементом x1.

Исходные данные:

n = 10, x = {-1.6, 0.9, 1.3, 1.8, -0.2, -0.3, 4.1, 5.5, 1.4, -1.5}

Будем хранить элементы вектора x в одномерном массиве x[10], а текущие значения максимального элемента и его номера в переменных max и k соответственно.

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

73

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

/* Лабораторная работа 3 */

#include <stdio.h> #include <stdlib.h>

int main()

{

int i, k = 0; float x[10], max;

/*Ввод элементов массива*/ for (i = 0; i < 10; i++ )

{

printf(”\nx[%d]=”, i+1); scanf( ” %f ”, &x[i]);

}

/*Поиск максимального элемента и его номера*/ max = x[0];

for (i = 1; i < 10; i++) if (x[i] > max) {

max = x[i]; k = i;

}

/*Перестановка местами максимального и первого элементов массива*/

if (k != 0)

{

x[k] = x[0];

x[0] = max;

}

/*Вывод элементов массива*/ for (i = 0; i < 10; i++ )

74

}

if (a[i][j] < min)

{

min = a[i][j]; m2 = i; n2=j;

}

}

/*Вывод значений максимального и минимального элементов и их индексов/

printf(”\nmax=a[%d][%d]=%f”, m1+1, n1+1, max);

printf(”\nmin=a[%d][%d]=%f”, m2+1, n2+1, min);

system(“PAUSE”); return 0;

}

3.4.4. Варианты заданий.

Массив

Задание

Условия и

ограничения

 

 

 

 

 

 

 

1

Х[5][5]

Вычислить сумму и

Xij –

 

 

количество положительных

действитель-

 

 

элементов массива Х

ные числа

 

 

 

 

2

А[4][3]

Вычислить среднее арифме-

Aij - целые

 

 

тическое значение

числа

 

 

положительных элементов

 

 

 

массива А

 

3

Х[3][5]

Найти сумму целых

Xij - целые

 

 

положительных чисел,

числа

 

 

кратных 4.

 

79

элементами и, когда очередной элемент массива окажется больше или меньше значения max и min соответственно, исправим их на новые значения. Одновременно в переменных m1, m2 и n1, n2 будем сохранять номер строки и номер столбца этих элементов. И, наконец, выведем найденные значения максимального и минимального элементов и их индексов на экран.

/* Лабораторная работа 4 */

#include <stdio.h> #include <stdlib.h>

int main()

{

int i, j, m1 = 0, n1=0, m2=0, n2= 0; float a[10][10], max, min;

/*Ввод элементов матрицы*/ for(i = 0; i < 10; i++)

{

printf(”\n”);

for(j = 0; j < 10; j++) scanf(”%f”, &a[i][j]);

}

/*Поиск максимального и минимального*/ /*элементов матрицы и номеров их строк и столбцов*/

max = min = a[0][0];

for(i = 0; i < 10; i++)

for(j = 0; j < 10; j++)

{

if (a[i][j] > max)

{

max = a[i][j]; m1 = i; n1=j;

78

printf (”\nx[%d]=%f ”, i+1, x[i]);

 

system(“PAUSE”);

 

 

 

 

}

return 0;

 

 

 

 

 

 

 

 

 

 

 

 

3.3.4. Варианты заданий.

 

 

 

 

 

 

 

 

 

 

 

№ варианта

 

Задание

 

 

 

1

Заменить первый элемент массива суммой

 

максимального и минимального элементов.

 

2

Заменить

последний

элемент

массива

 

суммой

максимального

и

минимального

 

элементов.

 

 

 

 

 

3

Заменить

первый

элемент

массива

 

произведением

максимального

и

 

минимального элементов.

 

 

 

 

 

 

 

 

 

4

Заменить

последний

элемент

массива

 

произведением

максимального

и

 

минимального элементов.

 

 

 

 

5

Заменить первый элемент массива частным

 

максимального и минимального элементов.

 

 

 

 

 

 

6

Заменить

последний

элемент

массива

 

частным

максимального

и

минимального

 

элементов.

 

 

 

 

 

 

 

7

Заменить первый элемент массива средним

 

арифметическим

максимального

и

 

минимального элементов.

 

 

 

 

 

 

 

 

 

8

Заменить

последний

элемент

массива

 

средним арифметическим максимального и

 

минимального элементов.

 

 

 

 

 

 

9

Заменить первый элемент массива средним

 

геометрическим

максимального

и

 

минимального элементов.

 

 

 

 

 

 

 

 

 

10

Заменить

последний

элемент

массива

 

средним геометрическим максимального и

 

минимального элементов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

75

 

 

 

 

 

№ варианта

 

Задание

 

 

11

Заменить

первый

элемент

массива

 

половиной

разности

максимального

и

 

минимального элементов.

 

 

 

 

 

 

 

12

Заменить

последний

элемент

массива

 

половиной

разности

максимального

и

 

минимального элементов.

 

 

 

 

 

 

 

 

76

3.4. Лабораторная работа 4. Вложенные циклы и разветвления в матричных

задачах.

3.4.1. Цель работы.

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

3.4.2.Практическое задание.

a11 ... a1n

1. Дана квадратная матрица A= ...

вещественных

 

 

an1 ...

ann

чисел размера NxN. В соответствии с вариантом задания произвести вычисления с элементами матрицы A.

2.Составить отчет о выполнении лабораторной работы, в который включить:

a.Название и цель работы;

b.Индивидуальное задание;

c.Текст программы;

d.Результат решения задачи;

e.Блок-схему алгоритма решения задачи.

3.4.3. Пример выполнения работы.

Найти значения и номера строк и столбцов максимального и минимального элементов квадратной матрицы

A (N=10).

Будем хранить элементы матрицы A в двумерном массиве a[10][10], а текущие значения максимального и минимального элементов и номера их строк и столбцов в переменных max, min, m1, m2 и n1, n2 соответственно.

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

77