Автор: учитель МКОУ Плесской СОШ Юдин А.Б год (Версия для Pascal ABC)
Введение 1 Program n1; Uses Crt, GraphABC; Begin End. Заголовок программы Подключение дополнительных модулей Модуль для работы в текстовом режиме Модуль для работы с графикой Блок операторов CLRSCR; Оператор очистки экрана, от посторонних надписей. (Crt.TPU) // комментарии (пояснения)
Блок 1. Графические возможности Pascal ABC 2 Y X A x y A(, ) X Y A x y X max =640 Y max =400
Блок 1. Графические возможности Pascal ABC 3 Y X Line(,,, );X1Y1X2Y2 X1 Y1 X2 Y2 LineTo(, );X3Y3 X3 Y3
Блок 1. Графические возможности Pascal ABC 4 Y X Rectangle(,,, );X1Y1X2Y2 X1 Y1 X2 Y2 Circle(,, );XYR R X Y
Блок 1. Графические возможности Pascal ABC 5 Стандартные цвета задаются константами: clBlack – черный clWhite – белый clRed – красный clGreen – зеленый clBlue – синий clYellow – желтый SetPenColor(цвет); - установка цвета рисования
Блок 1. Графические возможности Pascal ABC 6 Виды линий задаются константами: psSolid psDash psDot psDashDot SetPenStyle(вид линии); - установка вида линии SetPenWidth(w); - устанавливает ширину линии, равную w пикселам. Только для SetPenWidth(1); толщина линии равна одному пикселю
Блок 1. Графические возможности Pascal ABC 7 Y X FloodFill(,, );цветXY X Y SetPixel( X, Y, цвет ); - закрашивает один пиксель
Блок 1. Графические возможности Pascal ABC 8 Y X TextOut(,, );'строка'XY X Y Точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст. строка
Блок 1. Графические возможности Pascal ABC 9 Задача 1. Составить программу изображающую прямоугольный параллелепипед ABCDA 1 B 1 C 1 D 1, и построить сечение через ребра AD и B 1 C 1. Program n1; Uses Crt, GraphABC; begin clrscr; End. Заготовка для программы, подключаем модуль графики.
Блок 1. Графические возможности Pascal ABC 10 Rectangle(50,100,210,300); Line(50,100,120,50); lineTo(280,50); lineTo(210,100); line(280,50,280,250); LineTo(210,300); lineTo(280,50); Рисуем видимые линии SetPenStyle(psDot); line(50,300,120,250); lineTo(120,50); lineTo(50,300); line(120,250,280,250); Рисуем невидимые линии А D BC А1А1D1 B1C1 TextOut(25,100,'A1'); TextOut(212,100,'D1'); TextOut(25,300,'A'); TextOut(212,300,'D'); TextOut(120,30,'B1'); TextOut(280,30,'C1'); TextOut(125,230,'B'); TextOut(285,230,'C'); Выводим названия вершин
Блок 1. Графические возможности Pascal ABC 11 Задача 2. Составить программу выводящую на экран следующее изображение.
Блок 2. Линейная вычислительная программа 12 Var ABC A,A,В,С :тип данных IntegerReal Подготовили в памяти три переменных для хранения целых чисел ; 2 байта
Блок 2. Линейная вычислительная программа 13 Тип ДиапазонРазмер в байтах Byte Word Integer LongInt Числа с плавающей запятой: Целые числа Тип Диапазон Размер в байтах Real2, , double , Extended3, ,
Блок 2. Линейная вычислительная программа 14 Переменная Операция присваивания 9 Значение := - знак присваивания имя := значение А:=5; А:=B+5; А:=B+C; А:=C;
Блок 2. Линейная вычислительная программа 15 Переменная 9 Значение WriteLn - вывод информации на экран 9 WriteLn(A) WriteLn('A') - выводит содержимое переменной А - выводит на экран букву А
Блок 2. Линейная вычислительная программа 16 WRITELN('Надпись'); WRITELN(A:10:5); WRITELN('Надпись=',A:10:5); WRITELN(A:10); WRITELN(A); Выводим число в стандартном виде Выводим поясняющую надпись и десятичную дробь Выводим десятичную дробь Выводим поясняющую надпись Выводим целое число
Блок 2. Линейная вычислительная программа 17 WriteLn('1-я строка'); WriteLn('2-я строка'); WriteLn('3-я строка '); Write('1-я строка'); Write('2-я строка'); Write('3-я строка '); Окончание LN указывает, что следующая выводимая на экран информация будет выводится с новой строки
Блок 2. Линейная вычислительная программа 18 Переменная Значение Клавиатура 9
Блок 2. Линейная вычислительная программа 19 ReadLn(a) - ввод информации с клавиатуры в переменную А Write('Введите А='); ReadLn(a); Выводим поясняющую надпись, что вводить Ждем, пока пользователь не введет с клавиатуры значение А и нажмет Enter Write('Введите силу '); ReadLn(F); Write('Введите массу '); ReadLn(m); Write('Введите время '); ReadLn(t);
Блок 2. Линейная вычислительная программа 20 Запись математических выражений Математическая запись Строчная запись SQRT(x+2) x2x2 SQR(x) или х*х (2 – x) / (y + 5) ABS(x – 2) exex EXP(x) ln X Ln(X)
Блок 2. Линейная вычислительная программа 21 Математическая запись Строчная запись sin X SIN(x) cos X COS(x) tg X SIN(x) / COS(x) ctg X COS(x) / SIN(x) Arctg X ArcTan(x) sin 2 X SQR(SIN(x)) sin X 2 SIN(X*X) Запись тригонометрических функций
Блок 2. Линейная вычислительная программа 22 Функция Назначение Frac(x) Дробная часть числа Int(x)Целая часть числа Random(N)Псевдослучайное число в интервале [0, N) Round(x)Округление до ближайшего целого Trunc(x)Отбрасывание дробной части числа Используется для преобразования из дробного к целому типу
Блок 2. Линейная вычислительная программа 23 y:=(2*(x*x-4)+1)/sqrt(x*x-3*x); y:=abs(x*x*x-3*x)/(sqrt(x)+4);
Блок 2. Линейная вычислительная программа 24 x1:=(-b+sqrt(D))/2*a; ? x1:=(-b+sqrt(D))/(2*a);
Блок 2. Линейная вычислительная программа 25 Задача 3. (Алгебра 8 класс.Ю.Н. Макарычев. Стр. 123, 556) Найдите значение выражения, при а = -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. Объявляем в памяти две переменных Очищаем экран от посторонних надписей Устанавливаем начальное значение А Вычисляем значение выражения Выводим результат на экран
Блок 2. Линейная вычислительная программа 26 Начало а = - 1,5 Вывод B Конец a:=-1.5; begin clrScr; b:=(a-(2*a-1)/a)/((1-a)/(3*a)); writeln(b:10:5); end.
Блок 2. Линейная вычислительная программа 27 Задача 4. Даны стороны прямоугольника a и b. Найти его площадь S=a*b и периметр P=(a+b)*2. Program n1; Uses Crt; 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. Подключаем модуль CRT.TPU Выводим результаты на экран Описаны четыре переменных действительного типа Очищаем экран от посторонних надписей Вводим с клавиатуры значения переменных А и В Вычисляем площадь и периметр
Блок 2. Линейная вычислительная программа 28 Начало Ввод А, В S=ab P=2(a+b) Вывод S,P Начало Write('ВВеди сторону А = '); Readln(a); Write('ВВеди сторону B = '); Readln(b); Выводим поясняющую надпись, что вводить Ждем ввода значения переменной А с клавиатуры S:=a*b; P:=2*(a+b); Writeln(' S = ',S: 10: 5); Writeln(' P = ',P: 10: 5);
Блок 2. Линейная вычислительная программа 29 Задача 5. Составить программу обмена значениями двух переменных. (Например: если А=1 а В=3 то при выводе А должно выводиться 3, а при выводе В должно выводиться 1.) АВ t t:=A; A:=B; B:=t; Алгоритм
Блок 2. Линейная вычислительная программа 30 A:= A + B;A = = 4 A = B = B:= A – B;B = 4 – 3 = 1 A:= A – B;A = 4 – 1 = 3 А можно ли без дополнительной переменной?
Блок 2. Линейная вычислительная программа 31 Задача 6. Дано число а. Не используя никаких операций, кроме умножения, и никаких функций получите а 8 за три операции и а 10 за четыре операции. a 2a 2 = a 2+2 = a 4 a 4a 4 = a 4+4 = a 8 aa = a 1+1 = a 2 a na m =a n+m c:=a*a; b:=c*c; d:=b*b; a 8a 2 = a 8+2 = a 10 m:=d*c;
Блок 2. Линейная вычислительная программа 32 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.
Блок 2. Линейная вычислительная программа 33 Задача 7. Составить программу вычисляющую x y. Где x – основание степени, а y – показатель степени. Program n1; Uses Crt; var a,x,y:real; begin clrScr; Write('Введи x= ');Readln(x); Write('Введи y= ');Readln(y); a:=exp(y*ln(x)); writeln(a); end.
5 DIV MOD Блок 2. Линейная вычислительная программа 34 DIV – операция целочисленного деления MOD – остаток от деления целого на целое 11 DIV 2 = 5 11 MOD 2 = DIV 10 = 2 - целочисленное деление на 10 уменьшает число на один разряд 25 MOD 10 = 5 - остаток при делении на 10 выделяет последний разряд
Блок 2. Линейная вычислительная программа 35 Задача 8. Дано трехзначное число. Определить сумму цифр этого числа. Математическая модель: а – исходное число с:= a mod – исходное число c = 256 mod 10 = 6 a:= a div 10 a = 256 div 10 = 25 d:= a mod 10d:= 25 mod 10 = 5 a:= a div 10a:= 25 div 10 = 2 S:= c + d + aS:= = 13
Блок 2. Линейная вычислительная программа 36 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. Вводим трехзначное число Производим необходимые операции Выводим сумму на экран
Блок 3. Геометрические построения. 37 Задача 9. С клавиатуры вводятся стороны прямоугольника и масштаб. Необходимо построить этот прямоугольник увеличив в соответствии с масштабом а b (x+a,y)(x,y) (x,y-b) (x+a,y-b) Y X
Блок 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); line(x+a,y,x+a,y-b); line(x,y-b,x+a,y-b); end. Подключаем модуль графики Вводим стороны и масштаб Устанавливаем координаты базовой точки Увеличиваем стороны в соответствии с масштабом Рисуем линии с использованием метода базовой точки line(x,y,x,y-b); lineTo(x+a,y-b); lineTo(x+a,y); lineTo(x,y); Можно построить прямоугольник, как замкнутую ломаную линию Rectangle(x,y,x+a,y-b); Можно построить прямоугольник, используя процедуру построения прямоугольника в виде рамки по диагонали
Блок 3. Геометрические построения 39 Задача 10. С клавиатуры вводятся стороны равнобедренного треугольника и масштаб. Необходимо построить этот треугольник увеличив в соответствии с масштабом. Y X а b c С(x,y) B(x+a,y) A(x+(a div 2),?) M(x+(a div 2),y)
Блок 3. Геометрические построения 40 Из треугольника CMA – прямоугольного по теореме Пифагора, найдем катет МА. CA=b, СM= a div 2 Так как скорее всего МА будет выражаться дробным числом, то применим функцию преобразования типов TRUNC A(x+(a div 2),y-MA) Точка А будет иметь координаты:
Блок 3. Геометрические построения 41 Задача 11. С клавиатуры вводятся стороны треугольника и масштаб. Необходимо построить этот треугольник увеличив в соответствии с масштабом Y X а b c С(x,y) B(x+a,y) A(?,?) M
Блок 3. Геометрические построения 42 Решим геометрическую задачу СВ = а СМ = x MB = a - x В треугольниках СМА и АМВ катет АМ общий cm:=trunc((b*b-c*c+a*a)/(2*a));
Блок 3. Геометрические построения 43 Из треугольника CMA, прямоугольного, по теореме Пифагора: MA:=trunc(sqrt(b*b-CM*CM)); 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); Построим треугольник