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

ФУП Информатика. Контрольная работа

.pdf
Скачиваний:
58
Добавлен:
14.05.2015
Размер:
1.58 Mб
Скачать

41

Начало

 

 

Начало

 

 

Ввод n

 

 

S=0

 

 

i=1

 

 

 

да

 

i < = n

S=S+1/i

i=i+1

нет Вывод S

Конец

Конец

Рис. 5. Схема алгоритма решения задачи 5

Поясним схему. Блоки 3, 4, 5 служат для организации цикла. С их помощью задается количество повторений цикла. Переменная i называется переменной цикла (счетчиком цикла). В

блоке 3

задается

начальное

значение

счетчика цикла, а в

блоке 6 –

шаг

изменения

счетчика

цикла. В блоке 4

осуществляется проверка на конец циклических вычислений. Обнуление суммы S в блоке 2 необходимо для того, чтобы

при первом вхождении в блок 5 действие S + 1/i было однозначно определено.

Программа на Паскале:

Program Prim_5;

{заголовок программы}

Var I, N: Integer;

{блок описания данных}

S: Real;

 

Begin

{начало операторов программы}

 

42

Read(N);

{ввод значения N с клавиатуры}

S:=0;

{обнуление суммы}

For I:=1 To N Do

{оператор цикла}

S:=S+1/I;

{циклическое действие}

Writeln('S=',S:6:2)

{вывод результата}

End.

{конец программы}

Алгоритм на Бэйсике:

10 Input N%

20 S=0

30 For I%=1 To N%

40 S=S+1/I%

50 Next I%

60 Print ("S=";S)

70 End

Можно записать и так:

10 Input N

20 S=0

30 For I=1 To N

40 S=S+1/I

50 Next I

60 Print ("S=";S)

70End

Результаты будут одинаковы при одном и том же значении N.

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

43

Задача 6. Дан массив чисел D = (d1,d2,..,dn). Найти dср по формуле dср = (d1 + d2 +...+ dn)/n.

Решение этого примера похоже на решение примера 5. Сначала введем исходные данные d1,d2,..,dn и найдем их сумму S. Разделив S на n, получим dср. и выведем результат и исходные данные.

Схема алгоритма решения задачи 6:

Начало

Ввод n

i=1

 

нет

 

i > n

Ввод di

i=i+1

да

S=0

i=1

нет

i > n

S=S+dS=S+di i

 

i=i+1

 

да dcp=S/n

Вывод dcp

Конец

Рис. 6. Схема алгоритма решения задачи 6

 

 

44

 

Программа на Паскале:

 

 

Program Prim_6;

{заголовок программы}

 

Const M=100;

 

 

Var I,N : Integer;

{блок описания данных}

 

S,DSR : Real;

 

 

D : Array[1..M] of Real;

 

Begin

{начало операторов программы}

 

Read(N);

{ввод значения N ≤100 с клавиатуры}

 

For I:=1 To N Do

{оператор цикла}

 

Read(D[I]);

{Ввод значений Di}

 

S:=0;

{обнуление суммы}

 

For I:=1 To N Do

{оператор цикла}

 

S:=S+D[I];

{нахождение суммы Di}

 

DSR:=S/N;

{нахождение среднего диаметра DSR}

 

Writeln('DSR=',DSR:6:2)

{вывод результата}

 

End.

{конец программы}

 

Программа на Бейсике:

10

Input N

 

20

Dim D(N)

 

30

For I=1 to N

 

40

Input D(I)

 

50

Next I

 

60 S=0

 

70

For I=1 To N

 

80

S=S+D(I)

 

90

Next I

 

100 DSR=S/N

110 Print ("DSR=";DSR)

120 End

45

Задача 7. Даны массив целых чисел X = (x1,x2,..,xn) и целое число Z. Найти количество чисел xi , которые равны Z.

Схема алгоритма решения задачи 7:

Начало

 

 

Ввод n,z

 

 

i=1

 

 

нет

Ввод xi

 

i > n

i=i+1

да

 

 

k=0

 

 

i=1

 

 

нет

 

нет

i > n

xi=z

i=i+1

да

да

 

 

 

 

k=k+1

 

Вывод k

Конец

Рис. 7. Схема алгоритма решения задачи 7

46

Искомое количество элементов массива Х, равных числу Z, обозначим K. До начала просмотра элементов K=0. Просматривая по порядку все элементы массива, будем сравнивать их с числом Z. Как только будет обнаружен очередной элемент, который равен Z, значение переменной K увеличивается на 1.

Программы записываются так:

Program Prim_7;

{заголовок программы}

Const M=100;

 

Var I,N,K,Z : Integer;

{блок описания данных}

 

X : Array[1..M] of Integer;

Begin

{начало операторов программы}

Read(N);

{ввод значения N ≤100 с клавиатуры}

For I:=1 To N Do

{оператор цикла}

 

Read(X[I]);

{Ввод значений Xi}

Read(Z);

{Ввод значения Z}

K:=0;

{обнуление K}

For I:=1 To N Do

{оператор цикла}

 

If X[I]=Z Then

{проверка условия}

 

K:=K+1;

{нахождение количества К}

Writeln('K=',K:6)

{вывод результата}

End.

{конец программы}

10

Input N,Z

 

20

Dim X(N)

 

30

For I=1 To N

 

40

Input X(I)

 

50

Next I

 

60 K=0

 

70

For I=1 To N

 

80

If X(I)=Z Then K=K+1

90

Next I

 

100 Print ("K=";K)

110 End

47

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

MS OFFICE ACCESS 2010

1.Запустите программу MS ACCESS, выберите «Создание новой базы данных» и сохраните создаваемую БД под именем «Служба занятости».

2.С помощью конструктора таблиц создайте следующие таблицы:

Название

Поля таблицы

 

Код_предприятия

 

Название

«Предприятия»

Адрес

 

Телефон

 

Руководитель

 

Код_безработного

 

Ф.И.О.

 

Адрес

«Безработные»

Телефон

 

Стаж

 

Семейное_положение

 

Образование

 

Код_пособия

 

Код_безработного

«Пособия»

Размер_выплаты

 

Доп_выплаты

 

Дата_постановки

 

Код_вакансии

«Вакансии»

Код_специальности

Код_предприятия

 

 

Зарплата

 

Код_безработного

«Предпочтения»

Код_предприятия

 

Код_специальности

«Специальности»

Код_специальности

Наименование

 

48

Примеры заполненных таблиц.

Таблица «Предприятия»

Таблица «Безработные»

Таблица «Пособия»

Таблица «Вакансии»

Таблица «Предпочтения»

49

Таблица «Специальности»

3. Свяжите таблицы в схему данных, показанную на рисунке. Проанализируйте данную схему и определите, между какими таблицами установлены отношения «многие-ко-многим».

50

Рис. 8. Схема данных

Итоговые запросы

Для вычисления итоговых значений надо нажать кнопку Групповые операции, чтобы в бланке QBE появилась строка Групповые операции. MS Access использует установку Группировка в строке Групповая операция для любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, вы получите набор записей, включающий по одной строке для каждого уникального значения поля запроса – но без итогов. Для получения итогов замените установку Группировка в строке Групповая операция на конкретные итоговые функции.

MS Access предоставляет девять функций, обеспечивающих выполнение групповых операций. Вы можете задать нужную вам функцию, введя ее имя с клавиатуры в строке Групповая операция бланка запроса или выбрав ее в раскрывающемся списке.

Итоговые функции MS Access:

Sum – вычисляет сумму всех значений заданного поля в каждой группе.

Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе.