567
.pdfСКЛАД < 0; математическая функция: ABS(НевыполненныеЗаказы из запроса СКЛАД умножить на Цена из СПИСОК ТОВАРОВ); 0)),
у) добавить новое поле перетаскиванием из окна запроса СКЛАД вниз
ВыполненныеЗаказы; ф) закрыть запрос, назвать СТОИМОСТЬ ЗАКАЗА;
х) вновь открыть запрос СТОИМОСТЬ ЗАКАЗА перейти в режим конструктора и добавить новое поле ИтоговаяСтоимость: , построив выражение IIf (ВыполненныеЗаказы из запроса СТОИМОСТЬ ЗАКАЗА <> 0; (СтоимостьЗаказа отнять СтоимостьНедостающегоТовара); 0);
ц) вызывая правой кнопкой мыши свойства денежных полей запроса поменять Формат поля на денежный;
ЗАДАНИЕ 3
Создание отчетов:
а) Создать и отредактировать в режиме конструктора отчет К СПИСАНИЮ:
выбрать в меню СОЗДАНИЕ подменю Отчеты - Мастер Отчетов,
раскрыв список Таблицы/Запросы выбрать запрос К СПИСАНИЮ, перенести направо все поля,
в уровни группировки перенести Наименование, ДАЛЕЕ, в списке сортировки выбрать ПревышениеСрокаХранения, щелкнуть
кнопку ИТОГИ и поставить отметку SUM - подсчет сумм для поля Сумма, щелкнуть ОК, щелкнуть ДАЛЕЕ,
выбрать вид макета, например, Блок, ориентацию поставить
Альбомная, ДАЛЕЕ,
выбрать стиль, например, Стандартная, ДАЛЕЕ, набрать имя отчета: К СПИСАНИЮ, щелкнуть ГОТОВО,
просмотреть, перейти в режим МАКЕТА (кнопка РЕЖИМ), подправить поля для
полного отображения записей, вызывая свойства денежных полей установить Формат поля – Денежный;
б) Создать и отредактировать в режиме конструктора отчет
СТОИМОСТЬ ЗАКАЗА:
выбрать в меню СОЗДАНИЕ подменю Отчеты - Мастер Отчетов,
раскрыв список Таблицы/Запросы выбрать запрос СТОИМОСТЬ ЗАКАЗА, перенести направо поля КодЗаказа, Наименование, ВыполненныеЗаказы, ИтоговаяСтоимость,
группировку установить по Наименованию,
сортировку установить по КодЗаказа, с подсчетом Итогов: SUM, (по полю ИтоговаяСтоимость),
в режиме МАКЕТА, установить Формат денежных полей –
Денежный;
41
ГЛАВА 4. ОБРАБОТКА ЧИСЛОВЫХ ДАННЫХ
4.1.Visual BASIC на вкладке «Разработка» Microsoft Word
Для работы в среде Visual Basic программ Microsoft Office следует вызвать соответствующую панель инструментов (Alt_F11) «Редактора Visual Basic», щелкнуть кнопку панели инструментов «InsertUserForm» - появится форма программы. (Внимание! Возможности встроенного языка ограничены).
ЗАДАНИЕ 1
Составить программу вычисления величины по заданному расчетному выражению: S=A*B/C . Предусмотреть вывод на экран окна предупреждения при вводе неверных исходных данных (С=0). На экранной форме расположить поля для ввода начальных данных, поле ввода результата, кнопку начала вычисления, кнопку завершения программы:
а) установить на форме текстовые |
поля. |
Щелчками |
кнопки мыши по объекту «текстовое поле» |
(TextBox) |
с |
протаскиванием с удержанием левой |
кнопки |
мыши, по |
экранной форме установить три элемента для ввода исходных данных - А, В, иС и один элемент для ввода результата – S;
б) присвоить свойству (Name в окне |
свойств Properties) каждого из |
|||
элементов значения: А, В, С, и S соответственно. |
|
|||
в) в поле свойств (Text) каждого элемента установить значение 0; |
||||
4.Обозначить установленные элементы, |
поместив |
около |
||
каждого |
из них элемент метка |
(Label), |
поменяв в |
свойстве |
(Caption) их обозначения: А, В, С и S соответственно; |
|
|||
г) на свободные места экранной формы |
установить |
два |
||
элемента: |
командная |
кнопка |
(CommandButton); |
д) в свойство (Caption) кнопок занести надписи: «Начало» START и «Конец» END соответственно;
е) вызвать свойства экранной формы щелчком по ее свободному месту и в Caption занести текст: «S=A*B/C»;
ж) для решения задачи открыть окно программного кода (Code) кнопки
двойным щелчком и занести программный код.
Для кнопки «Конец»: оператор END в месте расположения курсора. Для кнопки «Начало» программный код:
A=A.Text: B=B.Text: C=C.Text IF C<>0 Then
S=A*B/C
42
ELSE
MSGBOX «Знаменатель=0», 32, «ОШИБКА»
END IF
S.Text=S
з) запустить программу на выполнение. Для этого щелкнуть мышью кнопку RUN (F5) панели инструментов.
и) ввести исходные данные в поля А, В и С, после щелчка по кнопке «Начало», наблюдать результат, повторить изменяя А, В и С, при вводе нулевого значения в поле С наблюдать окно сообщения об ошибке.
к) завершить решение, щелкнув по кнопке «Конец».
ЗАДАНИЕ 2
Преобразовать программу задания 1, используя элементы типа: «линейка прокрутки» для ввода и изменения исходных данных:
а) поставить на форме элементы: горизонтальная полоса прокрутки для каждого из данных
А, В, С;
б) выделить указателем мыши все элементы: «линейка прокрутки» и редактировать их свойства
(Min=-1000, Max=1000, SmallChange=10);
в) изменить имена линеек прокрутки (Name) в окне свойств для величины А: на P1, для В: на P2, для С: на P3;
г) записать программные коды. Открыть двумя щелчками по линейке прокрутки P1 величины А окно кода программы и записать:
A.Text=P1.Value
затем окно для линейки P2 величины В
B.Text=P2.Value
затем окно для линейки P3 величины С
C.Text=P3.Value
д) выполнить программу, изменять состояние линеек, наблюдая изменение значений в полях А, В, С, получать ответ, щелкая по кнопке
«Начало».
ЗАДАНИЕ 3
Определить значение величины «Y», используя одно из предложенных
трех расчетных выражений, вводя исходные данные: |
|
||
Y= A+B или |
Y= A-B |
или |
Y= A*B |
|
43 |
|
|
а) запустить новый проект (Insert user Form);
б) установить на форме три элемента: кнопка OptionButton;
в) в пункт Caption первого элемента OptionButton, занести первое выражение Y=А+В, для элемента 2: Y=А-В, и для элемента 3: Y=А*В;
г) свойство Name элемента OptionButton1 поменять на F1,
OptionButton2 на F2 и OptionButton3 на F3;
д) установить на форме три текстовых поля для А и В и поле для Y;
е) установить 2 кнопки действий: для выполнения расчета и для завершения;
ж) в свойство Text текстовых полей TextBox1, 2 и 3 занести нулевые значения. В пункты Name обозначения: А, В и Y;
з) установить элементы
Label для обозначений полей А, В и Y;
и) поменять свойство Caption кнопок Button и метокLabel;
к) раскрыть окно кода кнопки «КОНЕЦ» и записать оператор END; л) в окне программного кода кнопки «НАЧАЛО» записать текст:
A=Val(A.Text) : B=Val(B.Text) IF F1.Value=TRUE Then Y=1*A+B
ElseIf F2.Value=TRUE Then Y=A-B
Else Y=A*B
End If Y.Text=Y
м) решить задачу, выбирая одну из трех расчетных формул.
ЗАДАНИЕ 4
Составить проект справочная система: выбор в окне списка (ListBox) и получение подсказки (например, получение подсказки о функциональных клавишах в среде Total Commander):
а) поместить на экранную форму элементы: поле текста (TextBox) окно списка (ListBox) и кнопку (CommandButton);
44
б) в свойстве окна списка «Visible» установить «False»; в) в свойстве текстового поля очистить свойство «Text»;
г) в свойстве «Caption» кнопки текст «Горячие клавиши TC»; д) в окне кода кнопки CommandButton записать программу:
ListBox1.Visible=True
FOR I=1 to 10 : ListBox1.AddItem «F»&I : Next I
е) открыть окно кода списка ListBox1 и записать программу (использовать, для ускорения, копирование: Ctrl_C и вставку: Ctrl_V):
Select Case ListBox1.ListIndex
Case 0: TextBox1.Text=«Помощь»
Case 1: TextBox1.Text=«Пользовательское меню»
Case 2: TextBox1.Text=«Чтение файла»
Case 3: TextBox1.Text=«Редактирование файла»
Case 4: TextBox1.Text=«Копирование»
Case 5: TextBox1.Text=«Перемещение»
Case 6: TextBox1.Text=«Создание каталога»
Case 7: TextBox1.Text=«Удаление» Case 8: TextBox1.Text=«Главное меню» Case 9: TextBox1.Text=«Выход»
End Select
ж) запустить проект, щелкнуть по командной кнопке, выбирать щелчком записи в окне списка, наблюдая результат.
ЗАДАНИЕ 5
Составить проект для заполнения массива случайными числами:
а) поместить на новую экранную форму окно списка (ListBox) и кнопку
(CommandButton);
б) открыть двойным щелчком по кнопке окно программного кода и напечатать текст программы:
For i = 1 to 40 : s(i) = 20 * Rnd(1) : Next i ListBox1.Clear
For i = 1 to 40 : ListBox1.AddItem s(i) : Next i
в) перед названием подпрограммы Private Sub CommandButton1_Click() добавить описание размерности массива вещественных чисел:
Dim S(40) As Single
г) запустить программу, щелкнуть командную кнопку в поле программы и наблюдать результат.
45
4.2.Обработка числовых данных в среде языка PASCAL
Среда языка программирования Pascal, например PascalABC позволяет решать сложные задачи по обработке числовых данных.
ЗАДАНИЕ 1
Выполнить расчет по заданному простому расчетному выражению: Y= a+0.2*b
а) загрузить среду редактора языка Pascal и набрать текст программы:
PROGRAM P1;
VAR X:INTEGER; Y,A,B:REAL;
BEGIN
READ(A,B); Y:= A+0.2*В; WRITELN(Y);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода два числа A и B и наблюдать результат.
(Тест: числа 2 и 4 ответ: 2,8)
ЗАДАНИЕ 2
Выполнить вычисления по выбранному |
по условию расчетному |
|||
выражению. |
|
|
|
|
|
a>b |
Y=(a+b)/4 |
|
|
|
a<=b |
Y=4*a*b |
|
|
а) открыть новый файл и набрать текст программы:
PROGRAM P2;
VAR X:INTEGER; Y,A,B:REAL;
BEGIN
READ(A,B);
IF A>B THEN Y:=(A+B)/4 ELSE Y:=4*A*B;
WRITELN(Y);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода два числа A и B и наблюдать результат.
(Тест: числа 2 и 4 ответ: 32, числа 4 и 2 ответ: 1,5)
46
ЗАДАНИЕ 3
Табулировать функцию Y=x*(a+b/4) при изменении X от 0 до 6 с единичным шагом.
а) открыть новый файл и набрать текст программы:
PROGRAM P3;
VAR X:INTEGER; Y,A,B:REAL;
BEGIN
READ(A,B);
FOR X:=0 TO 6 DO BEGIN
Y:=X*(A+B/4); WRITELN(X,Y); END;
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода два числа A и B и наблюдать результат.
(Тест: числа 2 и 4 ответы: 00; 13; 26; 39; 412; 515; 618;)
ЗАДАНИЕ 4
Даны два числа А и В. Найти их сумму и разность.
а) открыть новый файл и набрать текст программы:
PROGRAM P4;
VAR A,B,SUM,RAZ:REAL;
BEGIN
WRITELN(‘Введите два числа’); READLN(A,B);
SUM:=A+B; RAZ:=A-B;
WRITELN(‘Сумма= ’,SUM,’Разность= ’,RAZ);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода два числа A и B и наблюдать результат.
(Тест: числа 2 и 4 ответ: Сумма=6 Разность =-2)
ЗАДАНИЕ 5
Даны три числа а,b,c - найти наибольшее из них.
а) открыть новый файл и набрать текст программы:
47
PROGRAM P5;
VAR a,b,c,MAX:REAL; BEGIN
WRITELN(‘ВВЕДИТЕ ЧИСЛА a,b,c’);READLN(a,b,c); IF a>b THEN
IF a>c THEN MAX:=a ELSE MAX:=c ELSE IF b>c THEN MAX:=b ELSE MAX:=c;
WRITELN(‘Max=’,MAX);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода три числа A, B, С и наблюдать результат.
(Тест: числа 2 6 и 4 ответ: Max=6)
ЗАДАНИЕ 6
Программа, производящая вычисление суммы целых чисел от 1 до N.
а) открыть новый файл и набрать текст программы:
PROGRAM P6;
VAR I,N,S:INTEGER;
BEGIN
WRITELN(‘N=’ );READLN(N);
S:=0;
FOR I:=1 TO N DO S:=S+I;
WRITELN(‘Сумма=’,S);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода число N и наблюдать результат.
(Тест: N = 5 Сумма = 15, N=30 Сумма = 465)
ЗАДАНИЕ 7
Программа, вычисляющая сумму членов ряда: S=1+1/2+1/3+1/4… пока очередное слагаемое 1/n >0,01.
а) открыть новый файл и набрать текст программы:
PROGRAM P7;
VAR n:INTEGER; S:REAL;
48
BEGIN S:=0; n:=1;
WHILE 1/n>0.01 DO BEGIN S:=S+1/n; n:=n+1; END;
WRITELN(‘Сумма =’, S);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
(Тест: при n=1 результат: 5.17737751763962)
ЗАДАНИЕ 8
Программа нахождения суммы элементов матрицы размером 2х5.
а) открыть новый файл и набрать текст программы:
PROGRAM P8;
VAR I,J,S:INTEGER;
M:ARRAY[1..2,1..5] OF INTEGER;
BEGIN
S:=0;
FOR I:=1 TO 2 DO FOR J:=1 TO 5 DO
BEGIN WRITELN('Ввести элементы матрицы (10)');
READLN(M[I,J]); S:=S+M[I,J]; END;
WRITELN('Сумма=',S);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода десять чисел и наблюдать результат.
(Тест: Числа 1;2;3;4;5;6;7;8;9;10 Ответ = 55)
ЗАДАНИЕ 9
Методом половинного деления найти корень уравнения x-Cos(x)=0.
а) открыть новый файл и набрать текст программы:
PROGRAM P9;
FUNCTION FUN(A:REAL):REAL;
BEGIN
FUN:=A-COS(A);
END;
VAR A,B,X:REAL;
49
BEGIN
WRITELN('Ввести интервал А и В для поиска корня = '); READLN(A,B);
REPEAT X:=0.5*(A+B);
IF FUN(X)*FUN(A)<0 THEN B:=X ELSE A:=X; UNTIL ABS(A-B)<1E-4;
WRITELN(' Корень уравнения ',X); END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
в) ввести через клавишу Enter в строку ввода два числа и наблюдать результат.
(Тест: Интервал 0 и 1; Ответ = 0.73907470703125)
ЗАДАНИЕ 10
Методом трапеций найти значение интеграла функции x-Cos(x) в пределах от 0 до 2.
а) открыть новый файл и набрать текст программы:
PROGRAM P10;
FUNCTION FUN(X:REAL):REAL;
BEGIN
FUN:=X-COS(X);
END;
VAR H,X,Y,A,B:REAL; I,N:INTEGER;
BEGIN
WRITELN('Ввести данные A(0),B(2),N(1000) = ');
READ(A,B,N);
X:=0; Y:=0; H:=(B-A)/N;
FOR I:=1 TO N-1 DO BEGIN
X:=X+H;
Y:=Y+FUN(X);
END;
Y:=H/2*(FUN(A)+FUN(B)+2*Y);
WRITELN('Результат= ',Y);
END.
б) выполнить программу щелчком по соответствующей кнопке меню или клавишей F9;
50