Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ ЛР_Информатика_35.03.04_Агро.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.84 Mб
Скачать

Часть 2 Установление связей между таблицами. Создание и открытие запроса (2 часа)

Задание:

    1. Откройте базу данных, созданную в результате выполнения предыдущего задания.

    2. Создайте таблицу «Поставщики», объявив ключевым поле «Код поставщика».

    3. Сохраните таблицу.

Поставщики

Код поставщика

Название фирмы

Телефон

Факс

Адрес

1010

М.Видео

(095)207-9464

(095)923-2906

Маросейка, 6/8

1020

Диал Электроникс

(095)978-0443

(095)978-1693

Новослободская, 14/19

1030

Мир

(095)152-4001

(095)152-4251

Чонгарский б-р, 16

  1. Откройте в режиме Конструктора таблицу «Товары». После поля «Код товара» создайте новое поле «Код поставщика», воспользовавшись Мастером подстановок значений этого поля из таблицы «Поставщики». В режиме таблицы задайте для этого поля значения в соответствии со следующими поставками: поставщик 1010 – товары 2,4,6,9; поставщик 1020 – товары 3,5,8,11; поставщик 1030 – товары 1,7,10,12.

  2. Установите связь между таблицами «Товары» и «поставщики». В таблице «Товары» поле «Код поставщика» становится полем внешнего ключа.

  3. Создайте и сохраните запрос для отображения названий товаров, их цен и названий фирм, поставляющих эти товары.

Технология работы:

Установление связей между таблицами.

  1. В окне БД выполните команду Сервис – Схема данных.

  2. В появившемся окне выберите таблицы для связи , нажмитеДобавить, Закрыть.

  3. Установите курсор в любую из таблиц на поле, по которому будет установлена связь, и «перетащите» это поле на связующее поле другой таблицы.

  4. Активизируйте флажок Обеспечение целостности данных.

  5. НажмитеСоздать.

Запрос на выборку.

В окне БД выберите Создание запроса в режиме Конструктора.

  1. В появившемся окне укажите имена таблиц, по полям которых будет производиться запрос, нажмитеДобавить, Закрыть.

  2. В строке Поле укажите поля, по которым будет осуществляться запрос.

  3. В строке Вывод на экран флажок должен отображаться галочкой.

  4. В строке Условие отбора введите критерии выбора (по заданию).

  5. Запустите запрос, нажав кнопку с изображением!.

  6. При закрытии, сохраните запрос.

Лабораторная работа №4

Тема:Реализация линейных и разветвляющихся алгоритмов.

Цель работы: сформировать навыки работы в среде программирования (Pascal)

Материально-техническое оснащение: Персональный компьютер – 15шт.(для студентов) и 1шт.(преподавательская); Локальная сеть – academy; Проектор AcerX 1263; Экран настенный; Методические указания к выполнению лабораторной работы; ABCPascal.

Продолжительность:2ч.

Порядок выполнения лабораторной работы:

1. Ввод и тестирование примеров программ;

2. Составление программ с линейной и разветвляющей структурой;

3. Проверка, корректировка и сдача программ.

Теоретическая часть

Алфавит языка Паскаль можно разбить на 3 группы:

1. буквы строчные и прописные буквы латинского и русского алфавита;

2. цифры - арабские 0..9

3. специальные символы - (+,-,*,/,=,<,>,<>,<=,>=,.:;{}’ := ( ) ),служебные слова :and, begin,const,div,do,else,for, и т.д. и указывается тип переменных списка.

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

Константа - не изменяет своего значения в процессе выполнения программы, она может быть задана явно своим значением или обозначена именем.

Список наиболее часто встречающихся зарезервированных слов:

And

goto

set

array

implementation

shl

begin

in

shr

case

interface

string

const

label

then

div

mod

text

Do

nil

to

Downto

not

type

Else

of

unit

End

or

until

File

pointer

uses

Far

procedure

var

For

program

while

Forward

record

with

Function

repeat

xor

Типы переменных:

Тип

Диапазон значений

Целый

Shortint

-128…127

Integer

-32768…32767

Longint

-2147483648…2147483647

Byte

0…255

Word

0…65535

Вещественный

Real

2.9 10-39…1.7 1038 11..12 значащих цифр

Single

7..8значащих цифр

Double

15..16значащих цифр

Extended

19..20значащих цифр

Логический

Boolean

True, False

Символьный

Char

1 символ

Строковый

String

Массив символов, по умолчанию длина 256 символов

Массив

array

Файлы

file

Записи

record

Арифметические операции

  • abs(x) - абсолютное значение х, т.е. х

  • exp(x) - значением функции является е в степени х.

  • sin(x) и cos(x) – значение синуса или косинуса х, х должен задаваться в радианах.

  • arctan(x) - арктангенс х.

  • ln(x) - натуральный логарифм х (х>0)

  • sqr(x) - квадрат х.

  • sqrt(x) - квадратный корень из х.

  • random(x) - случайное число из диапазона0<=...< x

  • Pi- значение пи.

  • odd(x) - значение функции true, если х нечетен, иfalseв противном случае.

  • inc(x,n) - значением является х увеличенное на n.

  • dec(x,n) - значением является х уменьшенное на n.

  • int(x) - целая часть числа х.

  • frac(x) - дробная часть числа х.

  • trunc(x) - целая часть в форме longint.

  • round(x) - значение х округленное до следующегоцелого числа.

Правила записи арифметическихвыражений.

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

2. Записывать все составные части в одну строку без подстрочных инадстрочных индексов.

3. Использовать скобки одного типа - круглые. ( [{ и другие скобкиприменять запрещается)

4. Нельзя записывать подряд 2 знака арифметических операций.

5. Вычисления выполняются слева направо в соответствии состаршинством операций:

1) вычисление функций;

2) * / DIV (деление нацело), MOD (получение остатка от деления)

3) + -

Основные операторы

Оператор присваивания (:=).{переменная}:= {переменная, арифметическое выражение, функция, число или константа}

Например: x:=y; x:=y+z;x:=abs(y-z); x:=12;

Оператор ввода read(список переменных), readln(список переменных), ln – после ввода следует перевести курсор на следующую строку.

Например: readln(f,b,a); read(s);

Структура программы

Правила языка Паскаль предусматривают единую для всех программ форму основной структуры:

Program<Имя программы>;

<раздел описаний>

Begin

<тело программы>

End.

Разветвляющие алгоритмы

Begin {начало}

Оператор; оператор; … оператор

End. {конец}

Примечание: количество слов beginсовпадает с количеством слов end.

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

Условный оператор:

if<условие>then<оператор1>else<оператор2>;

Примечание: перед словом else нельзя ставить точку с запятой.

Пример 1.1.Вычислить (1,2:36+1,2:0,25+cos2):7,24.

Составим программу для решения приведенного арифметического примера, записывая его по правилам языка в одну строку:

Без использования переменной

Program primer1_1;

Begin

Write('ответ=',1.2/36+1.2/0.25+cos(2))/7.24);

End.

С использованием переменной

Program primer1_1;

Var P:real;

Begin

P:=1.2/36+1.2/0.25+cos(2))/7.24;

Write('ответ=',P);

End.

Пример 1.2. Вывести на экран следующую строку:

Инженерный факультет

Группа Зем-15ФИО студента.

Program primer1_2;

Begin

Writeln('Инженерныйфакультет');

Write('Группа Зем-15');

Write('ФИО студента');

End.

Пример 1.3. Ввести и вывести на печать три символа.

Program primer1_3;

Var a1,a2,a3:char;

Begin

Writeln(‘введите три символа через пробел’);

Readln(a1,a2,a3);

Writeln(‘1-ыйсимвол’,a1);

Writeln(‘2-ый символ’,a2);

Writeln(‘3-ый символ’,a3);

End.

Пример 1.4.Необходимо ввести и вывести на печать два целых числа и два вещественных числа.

Program primer1_4;

Var a1,a2:integer; a3,a4:real;

Begin

Writeln(‘введите 1-оечисло’);readln(a1);

Writeln(‘введите 2-оечисло’);readln(a2);

Writeln(‘введите 3-оечисло’);readln(a3);

Writeln(‘введите 4-оечисло’);readln(a4);

Writeln(‘РЕЗУЛЬТАТ’);

writeln(‘1-оечисло’,a1);

writeln(‘2-оечисло’,a2);

writeln(‘3-оечисло’,a3);

writeln(‘4-оечисло’,a4);

End.

Пример 1.5.Вычислить max(X+Y+Z,XYZ), вывести на экран значение большего вычисленного числа.

Program primer1_5;

Varx,y,z:integer;

Max:integer;

Begin

Writeln(‘введитеx,y,z’);

Readln(x,y,z);

If (x+y+z)> x*y*z then max:=x+y+z else max:=x*y*z;

Writeln(‘большое число=’,max);

End.

Пример 1.6. Вычислить значение функции f(x) в зависимости от значения аргумента х.

Program primer1_6;

Varx,y:real;

Begin

Writeln(‘введитех’);

Readln(x);

If x>0 then y:=x;

If x=0 then y:=0;

If x<0 then y:= -sqr(x);

Writeln(‘значение х=’,x);

Writeln(‘значение f(x)=’,y);

End.

Пример 1.7. Определить, попадает ли число Х в интервал от -2 до 13. Проверить два условия:

  1. Х должно быть больше -2. Если это условие является истинной, то проверяем второе условие;

  2. Х должно быть меньше 13. В том случае, когда оба условия выполняются, то данное значение Х удовлетворяет условию -2<Х <13

1 способ

Program primer1_7;

Var x:integer;

Begin

Writeln(‘введитеХ’);

Readln(x);

If x>-2 then

Ifx<13 then

writeln(‘x=’,x,’ попадаетвинтервал’)

elsewriteln(‘не попадает в интервал’);

end.

2 способ

Program primer1_7;

Var x:integer;

Begin

Writeln(‘введитеХ’);

Readln(x);

If (x>-2) and (x<13) then

writeln(‘x=’,x,’ попадаетвинтервал’)

elsewriteln(‘не попадает в интервал’);

end.

Пример 1.8. Администрация одного магазина для привлечения большего числа клиентов ввела правило, согласно которому каждый покупатель, который приобрел товар на сумму более 1000 руб., имеет право на скидку в размере 3% со стоимости покупок.

Программа в случае, если стоимость покупки превышает указанную сумму, должна подсчитывать величину скидки и ту сумму, которую должен заплатить покупатель с учетом скидки. В случае же, если стоимость покупок меньше 100 руб., программа должна выдавать сообщение о том, что покупка должна быть оплачена полностью.

Program primer1_8;

Var sum,sumsk,skidka:real;

Begin

Writeln(‘введите сумму покупки’);

Readln(sum);

If sum>1000 then

Begin

skidka:=sum*0.03;

sumsk:=sum-skidka;

writeln(‘суммаскидкисоставляет=’,skidka);

writeln(‘покупатель должен заплатить с учетом скидки=’,sumsk);

end

else

writeln(‘покупатель оплачивает покупку полностью=’,sum);

end.