программирование на языке « Стандартный калькулятор» Информатики и ИКТ 11 класс. DELPHI».

advertisement
Информатики и ИКТ 11 класс.
ПРОЕКТ: «
программирование на языке «DELPHI».
Стандартный калькулятор»
Цель проекта: разработать программу «Стандартный калькулятор», практическое знакомство со
способами создания программ на Delphi, изучение тем «Ветвление» и «Циклы» в процессе написания
программы.
Введение.
1. При изучении темы «Алгоритмизация и программирование» используется система
программирования Delphi, так как язык программирования Паскаль наиболее пригоден для
использования в учебном процессе. Использование визуальной объектно-ориентированной
системы позволяет знакомить учащихся с современными методами создания программ и
создает положительную мотивацию в изучении информатики, так как учащиеся создают
реально работающие и полезные программы, например калькуляторы, музыкальные и видео проигрыватели и др.
2. Проектная форма организации работы позволяет увлечь учащихся индивидуальной и
коллективной работой над проектами. В проектной деятельности важно самовыражение
автора, его личное творчество. Так же при использовании проектов активизируется поисковая
активность учащихся, возможность выбора темпа изучения, уровня сложности материала,
самого способа решения.
3. В ходе выполнения проекта используется проблемный подход: по мере появления вопросов у
учащихся «Как реализовать данную функцию?» изучаются соответствующие темы. При работе
над проектом «Стандартный калькулятор» рассматриваются следующие темы: «Ветвление»,
«Множественный выбор», «Циклы»
4. Данный проект предлагается учащимся после изучения тем «Основы объектноориентированного программирования», «Основы визуального проектирования и
программирования в среде Delphi», «Описание констант и переменных», «Арифметические
операции и функции»
Задание. Разработать интерфейс программы «Стандартный калькулятор»
Необходимые объекты:
MainMenu – создание меню программы
Label – надпись
Edit – поле для ввода и вывода
BitBtn – кнопка (настраивается цвет надписи
на кнопке в отличие от Button)
Image – вставка изображения
Разработка интерфейса.
1. Создать форму.
Свойства формы.
Name:
kalkul
Caption:
Калькулятор
Color:
цвет по желанию
BorderIcons: biMaximize – False, остальное True.
2. Разместить на форме объект Edit. Свойства: Name : Edit1, Text –
пустая строка.
3. Разместить на форме соответствующее число кнопок.
– цифры от 0 до 9,
– знаки арифметических операций,
– знак «=»
– знаки функций (корень, синус, косинус и т.д.)
Объект – кнопка BitBtn.
Свойства:
Name – можно оставить по умолчанию
Caption – соответствующее выполняемой функции название
Font – шрифт и цвет шрифта по желанию
4. Поместить на форму изображение (если нужно), настроить цвет формы, шрифт, сделать
соответствующие надписи на форме (если нужно).
Примерный вид интерфейса программы
Повторить темы: «Описание констант и переменных», «Арифметические операции и функции» по
конспекту учащегося. См. Приложение 1 и Приложение 2.
«Написание процедур выполнения арифметических операций»
I. Написать процедуры ввода чисел. Для этого щелкнуть два раза по кнопке «1» (объект BitBtn1) и
ввести следующий код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.Text:=edit1.Text+'1'
end;
Аналогично написать процедуры ввода остальных цифр и символа «,»
II. Создать процедуру очистки поля Edit1, кнопка «С» (объект BitBtn22)
procedure TForm1.BitBtn22Click(Sender: TObject);
begin
edit1.Clear
end;
III. Создать процедуры обработки нажатий кнопок «+», «–», «/», «*» и «=». Для этого необходимо
сначала разобрать с учащимися алгоритм работы с калькулятором:
1. Ввести число в поле Edit1. При этом в поле Edit1 число будет представлено как текстовая
строка.
2. Нажать кнопку «+». В процедуре обработки этой кнопки необходимо выполнить следующие
действия:
o
преобразовать эту строку в число с помощью функции StrToFloat;
o
сохранить это число в переменной X;
o
сохранить в переменной, например, kod код этой операции;
o
очистить поле Edit1.
3. Ввести второе число в поле Edit1.
4. Нажать кнопку «=».В процедуре обработки этой кнопки необходимо выполнить следующие
действия:
o
преобразовать эту строку в число с помощью функции StrToFloat;
o
сохранить это число в переменной Y;
o
в зависимости от кода операции, сохраненной в переменной kod, выполнить
арифметическую операцию, например, z:=x+y;
o
преобразовать число, находящееся в переменной Z, в текст с помощью функции
FloatToStr и вывести в поле Edit1.
IV. Что необходимо для реализации этого алгоритма?
1. Описать переменные X, Y, Z, kod. Описывать переменные будем в основной программе, модуле
Unit, чтобы переменные могли действовать в любой процедуре (глобальные переменные).
var
Form1 : TForm1;
kod : char;
x, y, z : real;
2. Создать процедуры обработки нажатий кнопок «+», «–», «/», «*»
Например,
procedure TForm1.BitBtn17Click(Sender: TObject);
begin
x:= strtofloat(edit1.text);
kod := ‘+’;
edit1.Clear;
end;
Но что будет, если мы в поле Edit1 ничего не введем и нажмем кнопку «+»? Возникнет ошибка и
программа завершится. Чтобы избежать этого надо проверить имеется ли в поле Edit1символы? И в
зависимости от этого условия продолжить выполнять процедуру или вернуться к вводу данных.
Следовательно, мы должны использовать алгоритмическую структуру «Ветвление».
Изучить с учащимися правила записи ветвления на языке Delphi.
Изменненая процедура обработки нажатия кнопки «+»
procedureTForm1.BitBtn17Click(Sender: TObject);
begin
ifedit1.Text<>'' thenx:=strtofloat(edit1.text);
kod := ‘+’;
edit1.Clear;
end;
Аналогично создатьпроцедуры обработки нажатий кнопок «–», «/», «*»
3. Создать процедуру обработки нажатия кнопки «=». В этой процедуре необходимо в зависимости от
значения переменной kod выполнять четыре разных операции. Такая структура называется
«Множественное ветвление» или «Выбор».
Изучить с учащимися правила записи структуры «Выбор» на языке Delphi.
procedure TForm1.BitBtn19Click(Sender: TObject);
begin
кнопка «=»
if edit1.Text<>'' then y:=strtofloat(edit1.text);
впеременную y кладем edit1.text
case kod of
'+': z:=x+y;
'-': z:=x-y
'*': z:=x*y;
'/': z:=x/y
end ;
edit1.Text:=floattostr(z)
вывод в поле Edit1 значение переменной z
end;
«Написание процедур вычисления основных функций»
I. Создать процедуры вычисления функции «X в степени Y». Для этого необходимо:
1. Изучить тему «Циклы на языке Delphi».
2. Создать процедуру обработки нажатия кнопки «X в степени Y».
procedure TForm1.BitBtn24Click(Sender: TObject);
begin
x:= strtofloat(edit1.text);
kod := ‘^’;
edit1.Clear;
end;
3. Добавить в процедуру нажатия кнопки «=» следующий код
vark, y1:integer;
/y1 – степень в которую возводим число x/
…
/k– счетчик цикла/
'^': begin
y1:=strtoint( edit1.Text);
edit1.clear;
z :=1;
for k:=1 to y1 do
begin
z:=z*x
end
end
II. Создать процедуры вычисления остальных функций. При вычислении тригонометрических функций
учесть, что компьютер работает с радианной мерой углов.
Например, процедура вычисления квадратного корня
procedure TForm1.BitBtn26Click(Sender: TObject); кнопка «корень»
begin
x:=strtofloat( edit1.Text);
edit1.clear;
z:=sqrt(x);
edit1.Text:=floattostr(z)
end;
Процедура вычисления функции sin
procedure TForm1.BitBtn11Click(Sender: TObject); кнопка «sin»
begin
x:=strtofloat(edit1.Text);
x:=(x*3.14)/180;
edit1.Clear;
z:=sin(x);
edit1.Text:=floattostr(z)
end;
«Написание процедур работы с меню и усовершенствование
калькулятора»
У любой программы имеется система меню, которая позволяет выполнять разные сервисные
функции. Создадим для нашего калькулятора меню, которое будет состоять, например, из
следующий пунктов: «Файл», «Правка», «Справка». Для этого: поместить на форму объект MainMenu
(в любое место формы, этот объект будет невидим при выполнении)

Два раза щелкнуть левой кнопкой мыши по этому объекту на форме.

Выделить в появившейся форме пунктирное поле и в инспекторе объектов в свойство Caption
ввести «Файл».

Аналогично создать пункты меню «Правка» и «О программе».

В меню «Файл» создать пункт «Выход», а в «Правка» - пункты «Копировать» и «Вставить».

Закрыть форму создания меню.
procedure TForm1.N2Click(Sender: TObject);
begin
close
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Edit1.CopyToClipboard;
/
копироватьвбуферобмена/
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Edit1.PasteFromClipboard;
/вставить из
буфера обмена/
end;
Создание меню
Для создания справки создадим еще одну форму с именем Form2, на которой можно разместить
справочные сведения и информацию об авторах программы. Для размещения текста можно
воспользоваться объектом Memo, который представляет из себя почти готовый текстовый редактор,
и объектом Image для размещения графики и фотографий. Для открытия формы воспользуемся
командой Form2.ShowModal.
Процедура открытия формы «Справка»
procedure TForm1.N8Click(Sender: TObject);
begin
Form2.ShowModal
end;
Открытие формы «Справка»
Усовершенствование калькулятора
В зависимости от желания и уровня подготовки, каждый учащийся может по-своему модернизировать
программу. Кто-то пожелает просто улучшить интерфейс программы, а другой захочет превратить
свой простой калькулятор в инженерный, добавив разнообразные математические функции,
логические операции и функции, работу с 2-ми, 8-ми и 16-ми числами. В Приложении 3 приведен
пример одного калькулятора.
Заключение. На уроках информатики проектная форма организации работы позволяет раскрыть
творческий потенциал учащихся, активизирует исследовательскую работу и позволяет выбрать
индивидуальный темп и сложность выполнения работы.
Приложение 1
Типы данных. Описание переменных и констант.
Тип данных определяет возможные значения констант, переменных, функций и выражений,
принадлежащих к этому типу, форму представления в ЭВМ и операции, которые могут
выполняться над ними.
Типы данных
Сложные
Простые
Целый тип
Integer
Cardinal
Shortint
Smallint
Longint
Int64
Byte
Word
Longword
-2147483648
…+2147483647
0..4294967295
-128. .+127
-32768.. +32767
-2147483648. .2147483647
-263..+ 263-1
0..+255
0..+65535
0.. +4294967295
Файлы
Множества
Записи
Массивы
Ограниченный
Boolean
Char
String
Real
Перечислимый
Определяемые
пользователем
Стандартные
Integer
являются комбинацией простых
Вещественный тип
Real
Real48
Single
Double
Extended
Comp
Currency
5е-324...1.7е+308
2.9е-39...1.7е+38
1.5е-45...3.4е38
5е-324...1.7е+3083.6е-4951...1.1е4932
-263..+ 263
-922337203685477.5808 ..
922337203685477.5807
Символы
Помимо чисел, в Паскале разрешается обрабатывать данные в виде одиночных символов и их
последовательностей (строк). Символы имеют тип Char и записываются в виде знака,
взятого в одиночные кавычки: «Р», «к».
Строки
Последовательность символов, заключенная в одиночные кавычки, называется строкой (тип String —
зарезервированное слово).
Строки фиксированной длины
По умолчанию строка типа String может иметь размер до 2 Гбайт, а оперативная память для нее
выделяется программой автоматически, в зависимости от текущей длины строки. В некоторых
случаях бывает полезно ограничить длину строки небольшим фиксированным значением. Для явного
указания длины после ключевого слова string в квадратных скобках задается число, определяющее эту
длину.
string[50]
Логические данные
Помимо чисел, символов и строк, в Паскале имеется тип данных Boolean, в диапазон значений
которого входят всего две величины: True (истина, да) и False (ложь, нет). Значение False считается
меньше, чем значение True.
Примечание: Логический тип данных используется при проверке правильности условий и при
сравнении величин. Для сравнения данных предусмотрены операции отношения:
< - меньше, <= - меньше или равно, = - равно, < > не равно >= - больше или равно, > больше
Переменные.
Во время работы программы данные в ней могут храниться в неизменном виде, как константы
(тогда они указываются в тексте программы явно), или же они записываются и обрабатываются как
переменные. Переменные можно рассматривать как ячейки памяти компьютера, имеющие свои имена
(идентификаторы). Содержимое переменных может многократно меняться. Каждая переменная имеет
тип, определяющий, какого рода данные в ней хранятся. Паскаль не допускает использования
переменных с неопределенным типом и не разрешает записывать в переменную одного типа данные
другого типа.
Для того чтобы переменную можно было использовать в программе, ее предварительно надо
объявить (декларировать, описать).
Команда описания переменных в Паскале записывается так:
var имя-переменной: тип-переменной;
Слово var — ключевое. В качестве имени переменной выступает любой допустимый идентификатор,
если он не был описан ранее и не является зарезервированным словом, а в качестве типа — одно из
названий допустимых типов.
var X007: integer;
var Pi: real;
Если несколько описаний переменных следуют друг за другом, то ключевое слово var можно
повторно не указывать.
var X007: integer; Pi: real;
Константы
В некоторых случая бывает удобно вместо явного указания конкретных значений (чисел или строк)
использовать константы — фиксированные значения, для которых определено имя. Константы
отличаются от переменных тем, что не могут менять свои значения. Они предназначены только для
удобства программиста. Константы описываются способом, напоминающим описание переменных,
только вместо ключевого слова var применяется ключевое слово const, а тип можно указывать, а
можно и не указывать. Значение константы задается после знака равенства:
const PI = 3.14;
ПОДСКАЗКА. Названия констант принято записывать прописными буквами, чтобы легко отличать
их от переменных.
Описание констант стандартного типа.
Описание переменных стандартного
типа.
Константы в программе могут быть
заданы явно своим значением или обозначены
именем. Если константа обозначена именем,
то она должна быть описана в разделе
констант:
CONST
B=1.8E-3;
типа}
SIM='R';
L=TRUE;
FAM='Иванов';
{действительного
{символьного типа}
{логического типа}
{строковый тип}
Любая переменная, встречающая в
программе, должна быть описана в разделе
описания переменных:
VAR
B : INTEGER;
целого типа}
SUM : REAL;
{действительного типа}
K : CHAR;
типа}
LOG : BOOLEAN;
типа}
FAM : STRING;
типа}
FAM : STRING[20];
типа, число
{переменная
{символьного
{логического
{строкового
{строкового
символов
<=20}
Если несколько переменных имеют
одинаковый тип, то их можно объединять в
список, например :
A,B,S : INTEGER;
Приложение 2
Арифметические операции и функции преобразования.
1. Арифметические операции.
операция
+
*
/
DIV
MOD
действие
сложение
вычитание
умножение
деление
целочисленное
деление
получение остатка
от деления
Пример
2+3
12-25
4*6
12/3
123 div 4
результат =30
23 mod 5
результат=3
2. Арифметические функции.
Функция
Действие (обозначение в математике)
ABS(X)
Модуль числа Х
COS(X)
cosx
SIN(X)
sinx
SQR(X)
x2
SQRT(X)
x
ROUND(X)
TRUE - если Х - нечетное. FALSE если Х - четное
Округление Х
INT(X)
TRUNC(X)
FRAC(X)
EXP(X)
Выделение целой части Х
Выделение целой части Х
Выделение дробной части Х
ex
ORD(x)
CHR(x)
определение числового кода символа
определение символа по его числовому
коду.
ODD(X)
Тип
аргумента
real
integer
real
integer
real
integer
real
integer
real
integer
Тип
функции
real
integer
real
real
real
real
real
integer
real
real
integer
real
integer
real
real
real
real
integer
char
integer
boolean
integer
integer
real
integer
real
real
real
integer
char
3. Выражения.
Арифметические выражения строятся из арифметических констант, переменных, функций
и операций над ними. Все данные, входящие в арифметические выражения, должны быть
одного типа. Допускается использование в одной операции данных целого и вещественного
типа.
Правила записи выражений.
1. Записывать все составные части выражений в одну строку.
2. Использовать только круглые скобки.
3. Нельзя записывать подряд два знака арифметических операций.
Например, выражение 3*А*С/-Z неверно. Его следует записать так: 3*А*С/(-Z) .
4. Вычисления выполняются слева направо в соответствии со старшинством операций.
Старшинство операций.
1. Операции вычисления значения функции.
2. Операции умножения и деления.
3. Операции DIV и MOD.
4. Операции сложения и вычитания.
Функции преобразования.
Ввод и вывод данных можно осуществлять через объекты Label, Edit и др. Но эти объекты
работают только с текстовыми данными. Даже если вы в объект Edit введете число, например
123, то это будет представлено в текстовом формате, т.е. выполнять непосредственно
арифметические операции с этими данными нельзя. Необходимо преобразовать текст в
число. Для этого служат следующие функции преобразования:
X := StrToFloat (S) – преобразует значение текстовой переменной S в вещественный тип
данных и результат помещается в переменную X, которая должна быть описана как Real.
Y := StrToInt (S) – преобразует значение текстовой переменной S в целый тип данных и
результат помещается в переменную Y, которая должна быть описана как Integer.
Выводить на экран с помощью этих объектов числовые данные тоже непосредственно
нельзя. Необходимо числовые данные преобразовывать в текст. Для этого служат следующие
функции:
S1 := FloatToStr (X) – преобразует значение вещественной переменной X в строковый тип
данных и результат помещается в переменную S1, которая должна быть описана как String.
S2 := IntToStr (X) – преобразует значение целой переменной X в строковый тип данных и
результат помещается в переменную S2, которая должна быть описана как String.
Например, программа сложения двух чисел.
Поместим на форму 3 объекта Edit. Два (Edit1 и Edit2) – для ввода исходных чисел, третье
(Edit3) – для вывода результата и кнопку Button1 для начала расчета.
Два раза щелкнем по кнопке и
введем следующий код,
который будет выполнятся при
нажатии на кнопку.
procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z : real;
begin
x := StrToFloat(edit1.text);
{ Текстовое значение объекта Edit1 преобразуем в
вещественный тип данных и помещаем в переменную X}
y := StrToFloat(edit2.text);
{ Текстовое значение объекта Edit2 преобразуем в
вещественный тип данных и помещаем в переменную Y}
z:=x+y;
{Вычисляем сумму чисел}
edit3.Text:=floatToStr(z)
{ Вещественное значение переменной Z преобразуем в
строковый тип данных и выводим в поле объекта Edit3}
end;
Download