Similar presentations:
Линейный алгоритм (версия для Pascal ABC)
1.
(Версия для Pascal ABC)2012 год
2.
Введение1
Заголовок
Program n1;
программы
Uses Crt, GraphABC;
Begin
МодульПодключение
для
CLRSCR;
дополнительных
Модуль работы
для
работы
Оператор
в очистки
модулей
с графикой
// комментарии
(пояснения)
экрана,
от
текстовом
режиме
End.
посторонних
надписей.
(Crt.TPU)
Блок операторов
3.
Блок 1. Графические возможности Pascal ABC2
Y
x
A
Xmax=640
y
A
y
x
A(
Ymax=400
Y
X
,
)
X
4.
Блок 1. Графические возможности Pascal ABCX1
3
X2
Y1
Y3
Y2
Line( X1 , Y1 , X2 , Y2 );
LineTo( X3, Y3 );
Y
X3
X
5.
Блок 1. Графические возможности Pascal ABCX1
4
X2
X
Y1
R
Y
Y2
Rectangle( X1, Y1 , X2 , Y2 );
Circle( X , Y , R );
Y
X
6.
Блок 1. Графические возможности Pascal ABCСтандартные цвета задаются константами:
clBlack – черный
clBlue – синий
clRed – красный
clGreen – зеленый
clYellow – желтый
clWhite – белый
SetPenColor(цвет);
- установка цвета рисования
5
7.
Блок 1. Графические возможности Pascal ABC6
Только для SetPenWidth(1); толщина
Виды линий задаются константами:
линии равна одному пикселю
psSolid
psDash
psDot
psDashDot
SetPenStyle(вид линии);
- установка
вида линии
SetPenWidth(w);
- устанавливает ширину линии,
равную w пикселам.
8.
Блок 1. Графические возможности Pascal ABCX
Y
FloodFill( X , Y , цвет );
SetPixel( X , Y , цвет );
- закрашивает один пиксель
Y
7
X
9.
Блок 1. Графические возможности Pascal ABCX
Y
строка
TextOut( X , Y , 'строка' );
Точка (x,y) задает верхний левый угол
прямоугольника, который будет содержать текст.
Y
8
X
10.
Блок 1. Графические возможности Pascal ABCСоставить программу изображающую
прямоугольный параллелепипед ABCDA1B1C1D1, и
построить сечение через ребра AD и B1C1.
Задача 1.
Program n1;
Uses Crt, GraphABC;
begin
clrscr;
End.
Заготовка для программы,
подключаем модуль
графики.
9
11.
Блок 1. Графические возможности Pascal ABCB1
А1
C1
D1
B
А
C
D
Rectangle(50,100,210,300);
SetPenStyle(psDot);
TextOut(25,100,'A1');
Line(50,100,120,50);
TextOut(212,100,'D1');
line(50,300,120,250);
lineTo(280,50);
TextOut(25,300,'A');
lineTo(120,50);
lineTo(210,100);
TextOut(212,300,'D');
lineTo(50,300);
line(280,50,280,250);
TextOut(120,30,'B1');
line(120,250,280,250);
LineTo(210,300);
TextOut(280,30,'C1');
lineTo(280,50);
TextOut(125,230,'B');
TextOut(285,230,'C');
Рисуем видимые
линии
Рисуем невидимые
Выводим названия
линии вершин
10
12.
Блок 1. Графические возможности Pascal ABCЗадача 2. Составить
программу выводящую на экран
следующее изображение.
11
13.
Блок 2. Линейная вычислительная программа12
2 байта 2 байта 2 байта
A
B
C
Var A, В, С : тип данных ;
Integer
Подготовили
в памяти
три переменных для
хранения целых чисел
Real
14.
Блок 2. Линейная вычислительная программа13
Целые числа
Тип
Byte
Word
Integer
LongInt
Диапазон
0..255
0..65535
-32768..32767
−2147483648..2147483647
Размер в байтах
1
2
2
4
Числа с плавающей запятой:
Тип
Диапазон
Real
2,9 ∙ 10-39 - 1,7 ∙ 1038
double
5 ∙ 10-324 - 1,7 ∙ 10308
Extended 3,4 ∙ 10-4932 - 1,1 ∙ 104932
Размер в байтах
6
8
10
15.
Блок 2. Линейная вычислительная программаПеременная
Операция
присваивания
14
Значение
9
:= - знак присваивания
имя := значение
А:=5;
А:=B+5;
А:=B+C;
А:=C;
16.
Блок 2. Линейная вычислительная программа15
Переменная
9
Значение
WriteLn - вывод информации на
экран
WriteLn(A) - выводит содержимое переменной
А
WriteLn('A') - выводит на экран букву А
17.
Блок 2. Линейная вычислительная программаВыводим
десятичную
WRITELN('Надпись');
дробь
Выводим поясняющую
WRITELN(A:10:5);
Выводим надпись
целое число
Выводим число в
WRITELN(A:10);
стандартном виде
Выводим поясняющую
WRITELN(A);
надпись и десятичную
дробь
WRITELN('Надпись=',A:10:5);
16
18.
Блок 2. Линейная вычислительная программаWriteLn('1-я строка');
WriteLn('2-я строка');
WriteLn('3-я строка');
Write('1-я строка');
Write('2-я строка');
Write('3-я строка');
Окончание LN указывает, что
следующая выводимая на экран
информация будет выводится с новой
строки
17
19.
Блок 2. Линейная вычислительная программаПеременная
18
Значение
Клавиатура
9
20.
Блок 2. Линейная вычислительная программаReadLn(a) - ввод информации с клавиатуры
в переменную А
Write('Введите А='); ReadLn(a);
Ждем,
пока
Выводим силу '); ReadLn(F);
Write('Введите
поясняющую пользователь не
Write('Введите
массу
');
ReadLn(m);
введет
с
клавиатуры
надпись, что вводить
значение
и нажмет
Write('Введите время
'); АReadLn(t);
Enter
19
21.
Блок 2. Линейная вычислительная программа20
Запись математических выражений
Математическая
запись
x 2
x2
2 х
y 5
x 2
ex
ln X
Строчная запись
SQRT(x+2)
SQR(x) или х*х
(2 – x) / (y + 5)
ABS(x – 2)
EXP(x)
Ln(X)
22.
Блок 2. Линейная вычислительная программа21
Запись тригонометрических функций
Математическая
запись
Строчная запись
sin X
сos X
tg X
ctg X
Arctg X
sin2X
sin X2
SIN(x)
COS(x)
SIN(x) / COS(x)
COS(x) / SIN(x)
ArcTan(x)
SQR(SIN(x))
SIN(X*X)
23.
Блок 2. Линейная вычислительная программа22
Функция
Назначение
Frac(x)
Int(x)
Random(N)
Дробная часть числа
Целая часть числа
Псевдослучайное число
в интервале [0, N)
Округление до
ближайшего целого
Отбрасывание дробной
части числа
Round(x)
Trunc(x)
Используется для преобразования из
дробного к целому типу
24.
Блок 2. Линейная вычислительная программаy
23
2( x 4) 1
2
x 3x
2
y:=(2*(x*x-4)+1)/sqrt(x*x-3*x);
x 3x
3
y
x 4
y:=abs(x*x*x-3*x)/(sqrt(x)+4);
25.
Блок 2. Линейная вычислительная программаb D
x1
2a
x1:=(-b+sqrt(D))/2*a;
x1:=(-b+sqrt(D))/(2*a);
?
2x x 1 0
2
1 9
x1
2 1 3 2
2
1 9 1 3 2 1
x1
2 2
4
4 2
24
26.
Блок 2. Линейная вычислительная программа25
Задача 3. (Алгебра 8 класс.Ю.Н. Макарычев. Стр. 123, №556) Найдите
выражения, a 2a 1
a
1 a
3a
значение
при а = -1,5.
(Ответ: 7,5)
Program n1;
Объявляем в памяти
Uses Crt;
две
переменных
Очищаем
экран от
var a,b:real;
посторонних
надписей
Устанавливаем
begin
Вычисляем
значение
начальное значение
А
clrScr;
выражения
a:=-1.5;
b:=(a-(2*a-1)/a)/((1-a)/(3*a));
writeln(b:10:5);
Выводим результат на
end.
экран
27.
Блок 2. Линейная вычислительная программаНачало
а = - 1,5
2a 1
a
a
b
1 a
3a
Вывод B
Конец
26
begin
clrScr;
a:=-1.5;
b:=(a-(2*a-1)/a)/((1-a)/(3*a));
writeln(b:10:5);
end.
28.
Блок 2. Линейная вычислительная программа27
Задача 4. Даны стороны прямоугольника a и b. Найти его
площадь S=a*b и периметр P=(a+b)*2.
Program n1;
Описаны
четыре
Подключаем
Вводим
с
клавиатуры
Uses Crt;
переменных
модуль
CRT.TPU
значения
переменных
А
Очищаем
экран
от
Var a,b,s,p:Real;
действительного
иВ
посторонних
begin
типа
надписей
ClrScr;
Write('ВВеди сторону А = '); Readln(a);
Write('ВВеди сторону B = '); Readln(b);
S:=a*b;
Вычисляем
P:=2*(a+b);
Выводим
площадь и на
Writeln(' S = ',S: 10: 5);
результаты
периметр
экран
Writeln(' P = ',P: 10: 5);
end.
29.
Блок 2. Линейная вычислительная программа28
Начало
Ввод
А, В
Write('ВВеди сторону А = '); Readln(a);
Write('ВВеди сторону B = '); Readln(b);
S=ab
P=2(a+b)
S:=a*b;
Ждем ввода значения
Выводим поясняющую
P:=2*(a+b);
переменной А с
надпись, что вводить
клавиатуры
Вывод
S,P
Начало
Writeln(' S = ',S: 10: 5);
Writeln(' P = ',P: 10: 5);
30.
Блок 2. Линейная вычислительная программа29
Задача 5. Составить
программу обмена значениями двух
переменных. (Например: если А=1 а В=3 то при
выводе А должно выводиться 3, а при выводе В
должно выводиться 1.)
Алгоритм
1
А
3
В
1
t
t:=A;
A:=B;
B:=t;
31.
Блок 2. Линейная вычислительная программаА можно ли без дополнительной переменной?
A=
134
B = 31
A:= A + B;
A=1+3=4
B:= A – B;
B=4–3=1
A:= A – B;
A=4–1=3
30
32.
Блок 2. Линейная вычислительная программа31
Дано число а. Не используя никаких операций,
кроме умножения, и никаких функций получите а8 за три
операции и а10 за четыре операции.
Задача 6.
n
m
n+m
a ∙a =a
1+1
a =
2
a
a∙a =
2
2
2+2
4
a ∙a = a = a
4
4
4+4
8
a ∙a = a = a
8
2
8+2
10
a ∙a = a = a
c:=a*a;
b:=c*c;
d:=b*b;
m:=d*c;
33.
Блок 2. Линейная вычислительная программаProgram n3;
Uses Crt;
var a,c,b,d,m:integer;
Begin
ClrScr;
Write('ВВеди А = '); Readln(a);
c:=a*a;
b:=c*c;
d:=b*b;
writeln(a, ' в 8 степени = ',d:8);
m:=d*c;
writeln(a, ' в 10 степени = ',m:8);
end.
32
34.
Блок 2. Линейная вычислительная программа33
Составить программу вычисляющую xy .
Где x – основание степени, а y – показатель
степени.
Program n1;
y
y ln x
Uses Crt;
var a,x,y:real;
2
begin
clrScr;
Write('Введи x= ');Readln(x);
Write('Введи y= ');Readln(y);
a:=exp(y*ln(x));
writeln(a);
end.
Задача 7.
x e
12 144
35.
Блок 2. Линейная вычислительная программаDIV
– операция
деления
25 DIV
10 =целочисленного
2
11 DIV 2 = 5
- целочисленное деление на 10
MOD
– остаток от деления целого на
уменьшает число на один разряд
целое
11 MOD 2 = 1
25 MOD 10 = 5
11 2
DIV
- остаток
10 5при делении на 10
выделяет
разряд
1 последний
MOD
34
36.
Блок 2. Линейная вычислительная программа35
Задача 8. Дано трехзначное число. Определить сумму
цифр этого числа.
Математическая модель:
а – исходное число 256 – исходное число
с:= a mod 10
c = 256 mod 10 = 6
a:= a div 10
a = 256 div 10 = 25
d:= a mod 10
d:= 25 mod 10 = 5
a:= a div 10
a:= 25 div 10 = 2
S:= c + d + a
S:= 6 + 5 + 2 = 13
37.
Блок 2. Линейная вычислительная программаProgram n1;
Uses Crt;
Вводим
var a,b,c,d,s:Integer;
трехзначное
begin
число
clrScr;
Write('Введи A= ');Readln(a);
c:= a mod 10;
Производим
a:= a div 10;
необходимые
d:= a mod 10;
операции
a:= a div 10;
Выводим
S:= c + d + a;
сумму на
writeln('S =',S:5);
экран
end.
36
38.
Блок 3. Геометрические построения.37
Задача 9. С клавиатуры вводятся стороны
прямоугольника и масштаб. Необходимо построить
этот прямоугольник увеличив в соответствии с
масштабом
(x,y-b)
а
(x+a,y-b) X
b
Y
(x,y)
(x+a,y)
39.
Блок 3. Геометрические построения38
Program n1;
Подключаем
Uses Crt,GraphAbc;
var a,b,m,x,y:Integer;
модуль графики
Можно построить
begin
прямоугольник,
clrScr;
используя процедуру
Write(‘Введи длину ');Readln(a);
построить
Write(‘Введи ширину ');Readln(b);Можно
построения
Write(‘введи масштаб ');Readln(m);
прямоугольник,
как
прямоугольника
в виде
x:=10;
замкнутую
ломаную
рамки
по диагонали
Вводим
Устанавливаем
y:=300;
линию
a:=a*m;
координаты стороны и
b:=b*m;
базовой
точки масштаб
Увеличиваем
Рисуем
линии
line(x,y,x+a,y);
line(x,y,x,y-b);
Rectangle(x,y,x+a,y-b);
стороны
в с
line(x,y,x,y-b);
lineTo(x+a,y-b);
использованием
соответствии с
line(x+a,y,x+a,y-b); lineTo(x+a,y);
метода
базовой
масштабом
line(x,y-b,x+a,y-b); lineTo(x,y);точки
end.
40.
Блок 3. Геометрические построения39
Задача 10. С клавиатуры вводятся стороны
равнобедренного треугольника и масштаб.
Необходимо построить этот треугольник увеличив в
соответствии с масштабом.
A(x+(a div 2),?)
b
X
c
B(x+a,y)
а
Y С(x,y)
M(x+(a div 2),y)
41.
Блок 3. Геометрические построения40
Из треугольника CMA – прямоугольного по
теореме Пифагора, найдем катет МА.
MA CA CM
2
2
CA=b, СM= a div 2
MA
b (a div 2)
2
2
Так как скорее всего МА будет выражаться дробным
числом, то применим функцию преобразования
типов TRUNC
MA Trunc ( b (a div 2) )
2
2
Точка А будет иметь координаты:
A(x+(a div 2),y-MA)
42.
Блок 3. Геометрические построения41
Задача 11. С клавиатуры вводятся стороны
треугольника и масштаб. Необходимо построить этот
треугольник увеличив в соответствии с масштабом
X
A(?,?)
b
Y
С(x,y) M а
c
B(x+a,y)
43.
Блок 3. Геометрические построения42
Решим геометрическую задачу
СВ = а
СМ = x
MB = a - x
В треугольниках СМА и АМВ катет АМ общий
AC CM AB MB
2
2
2
2
b x c (a x)
2
2
2
2
b x c ( a x)
2
2
2
2
2
b x c a 2ax x
2
2
2
2ax b c a
2
2
2
b c a
x
2a
2
2
2
2
cm:=trunc((b*b-c*c+a*a)/(2*a));
44.
Блок 3. Геометрические построения43
Из треугольника CMA, прямоугольного, по теореме
Пифагора:
MA b CM
MA:=trunc(sqrt(b*b-CM*CM));
2
2
A(x+cm,y-ma)
line(x,y,x+a,y);
line(x,y,x+cm,y-ma);
line(x+cm,y-ma,x+a,y);
Построим
треугольник