- •Тема 1.2. Основные понятия алгоритмизации
- •1.1.Система программирования –совокупность средств разработки программ(языки программирования,______________, трансляторы, ______________, библиотеки,___________)
- •1.2.Структура системы программирования:
- •Тема 2.1. Основные принципы объектно-ориентированного программирования (ооп)
- •Приложение 1 .Общие свойства и события компронентов
- •Свойство Align
- •Свойство Color
- •Тема 2.2.
- •Приложение 2. Команды основного меню
- •Задание1. Указать назначение команд
- •Задание 2. Каково назначение файлов проекта
- •Тема 2.3. Визуальное событийно-управляемое программирование
- •If RadioButton1. Checked Then Memo1.Lines.Add( ‘ выход‘);
- •Занятие 8 Стандартные диалоговые окна: назначение, свойства, события.TOpenDialog, tSaveDialog, tColorDialog, tOpenPictureDialog, tSavePictureDialogTPrinterSetupDialog, tPrinterDialog
- •Раздел 3
- •Тема 3.1. Основные элементы процедурного языка программирования
- •Тема 3.2.
- •X принадлежит отрезку [2,5] или [-1,1]
- •Приложение 3. Математические формулы
- •Тема 3.3.
- •Тема 3.4.
Тема 3.2.
Операторы и операции
Занятие 1 -2Выражения. Виды операций. Стандартные функции.
Задание 1. Записать выражения
X4 |
|
Log2x/5 |
|
|a+bx| |
|
E|x-y| |
|
Задание2 . Записать в общепринятом виде
(-d+sqrt(sqr(d)-4*a*b))/(2*a)
|
|
Arctan(y2-a)/2*abs(x4-ln(5)*y5)/exp(-1)
|
|
Задание 3. Вычислить выражение
Succ(-2)=
Trunc(-3/14)=
3*7div 2 mod 7/3=
Задание4. Указать порядок операций
A and b or not c and d
Задание5 .Записать выражение
X принадлежит отрезку [2,5] или [-1,1]
Задание 6. Каково назначение функций?
FloatToStrF(n, f , k,m) |
|
FloatToStr (n) |
|
StrToInt (s) |
|
StrToFloat (s) |
|
Round (n) |
|
Trunc (n) |
|
Frac(n) |
|
Int (n) |
|
Chr(n) |
|
IntToStr (k) |
|
Ехр(n) |
|
Ln(n) |
|
Rardom(n) |
|
Аbs (n) |
|
Приложение 3. Математические формулы
Язык ObjectPascal имеет ограниченное количество встроенных математических функций. Поэтому при необходимости использовать другие функции следует применять известные соотношения. В таблице приведены выражения наиболее часто встречающихся функций через встроенные функции языка ObjectPascal.
Функция |
Соотношение |
Соотношение на языке ObjectPascal |
|
|
Ln(x)/Ln(a) |
|
|
Exp(a*Ln(x)) |
|
|
Sin(x)/Cos(x) |
|
|
Cos(x)/Sin(x) |
|
|
ArcTan(Sqrt(x/(1-sqr(x)))) |
|
|
Pi/2- ArcTan(Sqrt(x/(1-sqr(x)))) |
|
|
Pi/2-ArcTan(x) |
|
|
(Exp(x)-Exp(-x))/2 |
|
|
(Exp(x)+Exp(-x))/2 |
|
|
1/Sin(x) |
|
|
1/Cos(x) |
Тема 3.3.
Управляющие структуры
Занятие1 . Операторы условного и безусловного перехода
Задание1. Указать ошибки
If 1<x<2 then x:=x+1;y:=0;
Else x:=0;y:=y+1;
If 1<x and x<2 then begin x:=x+1; y:=0 end;
Else begin x:=0; y:=y+1 end;
Задание 2 Есть ли в программе пустой оператор?
Begin a:=true; ; b:=b or a end;
Beginif x=0 then goto 1; y:=x; 1: end
Задание 3. Записать на языке выражение , соответствующее рисунку (см. номер варианта)
Задание 4 . Рассмотреть программу вычисления стоимости междугородного телефонного разговора.
Как известно, стоимость междугородного разговора по телефону в выходные дни ниже, чем в обычные. Программа, текст которой приведен в листинге 2.1, запрашивает длительность разговора и день недели, а затем вычисляет стоимость разговора. Если день недели — суббота или воскресенье, то стоимость уменьшается на величину скидки. Цена минуты разговора и величина скидки задаются в тексте программы как константы. Вид диалогового окна программы приведен на рис. 2.4.
Для ввода исходных данных (длительность разговора, номер дня недели) используются поля редактирования, для вывода результата и пояснительного текста — поля меток. В табл. 2.3 перечислены компоненты и указано их назначение, а в табл. 2.4 приведены значения свойств этих компонентов.
Рис. 2.4. Диалоговое окно программы Стоимость разговора
Примечание
Здесь и далее при описании формы приложения приводятся значения только тех свойств компонентов, которые используются в программе. Значения остальных свойств, в частности определяющих размер и положение компонентов, могут быть .оставлены без изменения или изменены произвольным образом, естественно, в разумных пределах (очевидно, что положение командной кнопки или поля редактирования может быть выбрано в пределах формы произвольным образом).
|
|
|
|
Программа производит вычисления в результате щелчка на командной кнопке Вычислить. При этом возникает событие onclick, которое обрабатывается процедурой TForm1.Button1Click.
Листинг 2.1. Вычисление стоимости телефонного разговора
($R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
const
PAY =0.15; // цена одной минуты разговора 0.15 рубля
DISCOUNT = 0.2; // скидка 20 процентов
var
Time:Real; // длительность разговора
Day:integer; // день недели
Summa:real; // стоимость разговора
begin
Time:=StrToFloat(Editl.Text) ;
Day:=StrToInt(Edit2.Text);
Summa:= PAY*Time;
if (Day = 6) OR (Day = 7)
then Surama:=Summa*(1 - DISCOUNT);
label3.caption:='K оплате '
+ FloatToStr(Summa) + 'руб.'; end;
end.
Задание 5. Проанализировать код программы
В зависимости от числового значения вывести поясняющий текст к денежной величине :может быть: "рубль", "рублей" или "рубля" (123 рубля, 120 рублей, 121 рубль). Очевидно, что окончание поясняющего слова определяется последней цифрой числа, что отражено в табл. 2.8.
Таблица 2.8. Зависимость окончания текста от последней цифры числа
|
|
|
|
|
Цифра |
Поясняющий текст |
|
|
0, 5, 6, 7, 8, 9 |
Рублей |
|
|
1 |
Рубль |
|
|
2,3,4 |
Рубля |
|
|
|
|
|
Приведенное в таблице правило имеет исключение для чисел, оканчивающихся на 11, 12, 13, 14. Для них поясняющий текст должен быть "рублей".
Диалоговое окно программы приведено на рис. 2.12, а текст — в листинге 2.4. Поясняющий текст формирует процедура обработки события onKeyPress.
Рис. 2.12. Диалоговое окно программы
Листинг 2.4. Формирование поясняющего текста
unit. rub_l; interface
uses
Windows, Messages, SysUtils,
Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm) Label1: TLabel;
Editl: TEdit; Label2: TLabel;
procedure EditlKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations } public
{ Public declarations } end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// нажатиеклавиши
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char) var
n : integer; // число
r : integer; // остаток от деления n на 10
text: string[10]; // формируемый поясняющий текст
begin
if Key = chr(VK_RETURN) then
begin
n := StrToInt(Editl.Text); if n > 100
then n:=n mod 100;
if (n >= 11) and (n <= 14) then
text:=' рублей' else begin
r:= n mod 10;
case r of
1: text:=' рубль'; 2 .. 4: text:=' рубля';
else text:=' рублей';
end;
end;
Label2.Caption := IntToStr(n)+ text; end;
end;
end.
Занятие 2,3.Тема: Циклические конструкции. Циклы с параметром.
Тема: Циклические конструкции. Циклы с постусловием и предусловием
Задание1 .
S:=0;i:=0; while i<5 do i:=i+1; s:=s+1/I;
S:=0; i:=1; while i>1 do begin s:=s+1/I; i:=i-1 end;
S:=0; i:=1; repeat s:=s+1/I; i:=i-1 until i<=1;
S:=1; n:=1; for i:=2 to n do s:”=s+1/I;
Задание 3.Составить программу вычисления (См.вариант дом. Контрольной работы)