Линейный алгоритм.ppt
- Количество слайдов: 44
(Версия для Pascal ABC) 2012 год
Введение 1 Заголовок Program n 1; программы Uses Crt, Graph. ABC; Begin Подключение Модуль для CLRSCR; дополнительных Модуль для работы Оператор очистки работы в с графикой модулей // комментарии (пояснения) экрана, от текстовом режиме End. посторонних надписей. (Crt. TPU) Блок операторов
Блок 1. Графические возможности Pascal ABC 2 Y x A Xmax=640 y A y x A( Ymax=400 Y X , ) X
Блок 1. Графические возможности Pascal ABC 3 X 1 X 2 Y 1 Y 3 Y 2 Line( X 1 , Y 1 , X 2 , Y 2 ); Line. To(X 3, Y 3 ); Y X 3 X
Блок 1. Графические возможности Pascal ABC 4 X 1 X 2 X Y 1 R Y Y 2 Rectangle( X 1, Y 1 , X 2 , Y 2 ); Circle( X , Y , R ); Y X
Блок 1. Графические возможности Pascal ABC 5 Стандартные цвета задаются константами: cl. Black – черный cl. Blue – синий cl. Red – красный cl. Green – зеленый cl. Yellow – желтый cl. White – белый Set. Pen. Color(цвет); - установка цвета рисования
Блок 1. Графические возможности Pascal ABC 6 Только для Set. Pen. Width(1); толщина Виды линий задаются константами: линии равна одному пикселю ps. Solid ps. Dash ps. Dot ps. Dash. Dot Set. Pen. Style(вид линии); - установка вида линии Set. Pen. Width(w); - устанавливает ширину линии, равную w пикселам.
Блок 1. Графические возможности Pascal ABC 7 X Y Flood. Fill( X , Y , цвет ); Set. Pixel( X , Y , цвет ); - закрашивает один пиксель Y X
Блок 1. Графические возможности Pascal ABC 8 X Y строка Text. Out( X , Y , 'строка' ); Точка (x, y) задает верхний левый угол прямоугольника, который будет содержать текст. Y X
Блок 1. Графические возможности Pascal ABC 9 Задача 1. Составить программу изображающую прямоугольный параллелепипед ABCDA 1 B 1 C 1 D 1, и построить сечение через ребра AD и B 1 C 1. Program n 1; Uses Crt, Graph. ABC; begin clrscr; End. Заготовка для программы, подключаем модуль графики.
Блок 1. Графические возможности Pascal ABC 10 B 1 А 1 C 1 D 1 B А C D Rectangle(50, 100, 210, 300); Set. Pen. Style(ps. Dot); Text. Out(25, 100, 'A 1'); Line(50, 100, 120, 50); line(50, 300, 120, 250); Text. Out(212, 100, 'D 1'); line. To(280, 50); line. To(120, 50); Text. Out(25, 300, 'A'); line. To(210, 100); line. To(50, 300); Text. Out(212, 300, 'D'); line(280, 50, 280, 250); line(120, 250, 280, 250); Text. Out(120, 30, 'B 1'); Line. To(210, 300); Text. Out(280, 30, 'C 1'); line. To(280, 50); Text. Out(125, 230, 'B'); Text. Out(285, 230, 'C'); Рисуем видимые линии Рисуем невидимые Выводим названия линии вершин
Блок 1. Графические возможности Pascal ABC 11 Задача 2. Составить программу выводящую на экран следующее изображение.
Блок 2. Линейная вычислительная программа 12 2 байта A B C Var A, В, С : тип данных ; Integer Подготовили в памяти Real три переменных для хранения целых чисел
Блок 2. Линейная вычислительная программа 13 Целые числа Тип Byte Word Integer Long. Int Диапазон 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
Блок 2. Линейная вычислительная программа 14 Переменная Операция присваивания Значение 9 : = - знак присваивания имя : = значение А: =5; А: =B+5; А: =B+C; А: =C;
Блок 2. Линейная вычислительная программа 15 Переменная 9 Значение Write. Ln - вывод информации на экран Write. Ln(A) - выводит содержимое переменной А Write. Ln('A') - выводит на экран букву А
Блок 2. Линейная вычислительная программа 16 Выводим десятичную WRITELN('Надпись'); дробь Выводим поясняющую WRITELN(A: 10: 5); надпись Выводим целое число Выводим число в WRITELN(A: 10); стандартном виде Выводим поясняющую WRITELN(A); надпись и десятичную дробь WRITELN('Надпись=', A: 10: 5);
Блок 2. Линейная вычислительная программа 17 Write. Ln('1 -я строка'); Write. Ln('2 -я строка'); Write. Ln('3 -я строка'); Write('1 -я строка'); Write('2 -я строка'); Write('3 -я строка'); Окончание LN указывает, что следующая выводимая на экран информация будет выводится с новой строки
Блок 2. Линейная вычислительная программа 18 Переменная Значение Клавиатура 9
Блок 2. Линейная вычислительная программа 19 Read. Ln(a) - ввод информации с клавиатуры в переменную А Write('Введите А='); Read. Ln(a); Ждем, пока Выводим Write('Введите силу '); Read. Ln(F); поясняющую пользователь не Write('Введите массу '); Read. Ln(m); введет с клавиатуры надпись, что вводить значение А и нажмет Write('Введите время '); Read. Ln(t); Enter
Блок 2. Линейная вычислительная программа 20 Запись математических выражений Математическая запись x 2 Строчная запись SQRT(x+2) SQR(x) или х*х (2 – x) / (y + 5) ex ln X ABS(x – 2) EXP(x) Ln(X)
Блок 2. Линейная вычислительная программа 21 Запись тригонометрических функций Математическая запись Строчная запись sin X сos X tg X ctg X Arctg X sin 2 X sin X 2 SIN(x) COS(x) SIN(x) / COS(x) / SIN(x) Arc. Tan(x) SQR(SIN(x)) 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 x 1: =(-b+sqrt(D))/2*a; x 1: =(-b+sqrt(D))/(2*a); ?
Блок 2. Линейная вычислительная программа 25 Задача 3. (Алгебра 8 класс. Ю. Н. Макарычев. Стр. 123, № 556) Найдите выражения, значение при а = -1, 5. (Ответ: 7, 5) Program n 1; Объявляем в памяти Uses Crt; две переменных Очищаем экран от var a, b: real; посторонних надписей Устанавливаем begin Вычисляем значение начальное значение А clr. Scr; выражения a: =-1. 5; b: =(a-(2*a-1)/a)/((1 -a)/(3*a)); writeln(b: 10: 5); Выводим результат на end. экран
Блок 2. Линейная вычислительная программа 26 Начало а = - 1, 5 begin clr. Scr; a: =-1. 5; b: =(a-(2*a-1)/a)/((1 -a)/(3*a)); Вывод B Конец writeln(b: 10: 5); end.
Блок 2. Линейная вычислительная программа 27 Задача 4. Даны стороны прямоугольника a и b. Найти его площадь S=a*b и периметр P=(a+b)*2. Program n 1; Описаны четыре Подключаем Вводим с клавиатуры Uses Crt; переменных модуль CRT. TPU значения переменных А Очищаем экран от Var a, b, s, p: Real; действительного и В посторонних begin типа надписей Clr. Scr; 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.
Блок 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);
Блок 2. Линейная вычислительная программа 29 Задача 5. Составить программу обмена значениями двух переменных. (Например: если А=1 а В=3 то при выводе А должно выводиться 3, а при выводе В должно выводиться 1. ) Алгоритм 1 А 3 В 1 t t: =A; A: =B; B: =t;
Блок 2. Линейная вычислительная программа 30 А можно ли без дополнительной переменной? A= 3 4 1 B= 3 1 A: = A + B; A = 1 + 3 = 4 B: = A – B; B=4– 3=1 A: = A – B; A = 4 – 1 = 3
Блок 2. Линейная вычислительная программа 31 Задача 6. Дано число а. Не используя никаких операций, кроме умножения, и никаких функций получите а 8 за три операции и а 10 за четыре операции. n∙am=an+m a 1+1 = a 2 a∙a = a 2∙a 2 = a 2+2 = a 4∙a 4 = a 4+4 = a 8∙a 2 = a 8+2 = a 10 a c: =a*a; b: =c*c; d: =b*b; m: =d*c;
Блок 2. Линейная вычислительная программа 32 Program n 3; Uses Crt; var a, c, b, d, m: integer; Begin Clr. Scr; 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 Составить программу вычисляющую xy. Где x – основание степени, а y – показатель степени. Program n 1; Uses Crt; var a, x, y: real; begin clr. Scr; Write('Введи x= '); Readln(x); Write('Введи y= '); Readln(y); a: =exp(y*ln(x)); writeln(a); end. Задача 7.
Блок 2. Линейная вычислительная программа 34 DIVDIV 10 = 2 25 – операция целочисленного деления 11 DIV 2 = 5 - целочисленное деление на 10 MOD – остаток от деления целого на уменьшает число на один разряд целое 11 MOD 2 = 1 25 MOD 10 = 5 11 2 DIV - остаток 5 10 при делении на 10 выделяет последний разряд 1 MOD
Блок 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
Блок 2. Линейная вычислительная программа 36 Program n 1; Uses Crt; Вводим var a, b, c, d, s: Integer; трехзначное begin число clr. Scr; 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. С клавиатуры вводятся стороны прямоугольника и масштаб. Необходимо построить этот прямоугольник увеличив в соответствии с масштабом (x, y-b) а (x+a, y-b) X b Y (x, y) (x+a, y)
Блок 3. Геометрические построения 38 Program n 1; Подключаем Uses Crt, Graph. Abc; var a, b, m, x, y: Integer; модуль графики Можно построить begin прямоугольник, clr. Scr; используя процедуру 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); line. To(x+a, y-b); использованием соответствии с line(x+a, y, x+a, y-b); line. To(x+a, y); метода базовой масштабом line(x, y-b, x+a, y-b); line. To(x, y); точки end.
Блок 3. Геометрические построения 39 Задача 10. С клавиатуры вводятся стороны равнобедренного треугольника и масштаб. Необходимо построить этот треугольник увеличив в соответствии с масштабом. A(x+(a div 2), ? ) b X c B(x+a, y) а Y С(x, y) 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. С клавиатуры вводятся стороны треугольника и масштаб. Необходимо построить этот треугольник увеличив в соответствии с масштабом X A(? , ? ) b Y С(x, y) M а c B(x+a, y)
Блок 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); Построим треугольник
Линейный алгоритм.ppt