Презентация по информатике на тему Линейный алгоритм
2012 год (Версия для 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 Xmax=640 Ymax=400 Блок 1. Графические возможности Pascal ABC 3 Y X Line( , , , ); X1 Y1 X2 Y2 X1 Y1 X2 Y2 LineTo( , ); X3 Y3 X3 Y3 Блок 1. Графические возможности Pascal ABC 4 Y X Rectangle( , , , ); X1 Y1 X2 Y2 X1 Y1 X2 Y2 Circle( , , ); X Y R 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( , , ); цвет X Y X Y SetPixel( X , Y , цвет ); - закрашивает один пиксель Блок 1. Графические возможности Pascal ABC 8 Y X TextOut( , , ); 'строка' X Y X Y Точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст. строка Блок 1. Графические возможности Pascal ABC 9 Задача 1. Составить программу изображающую прямоугольный параллелепипед ABCDA1B1C1D1, и построить сечение через ребра AD и B1C1. 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 B C А1 D1 B1 C1 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 A B C A, В, С : тип данных Integer Real Подготовили в памяти три переменных для хранения целых чисел ; 2 байта 2 байта 2 байта Блок 2. Линейная вычислительная программа 13 Тип Диапазон Размер в байтах Byte 0..255 1 Word 0..65535 2 Integer -32768..32767 2 LongInt −2147483648..2147483647 4 Числа с плавающей запятой: Целые числа Тип Диапазон Размер в байтах Real 2,9 ∙ 10-39 - 1,7 ∙ 1038 6 double 5 ∙ 10-324 - 1,7 ∙ 10308 8 Extended 3,4 ∙ 10-4932 - 1,1 ∙ 104932 10 Блок 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) x2 SQR(x) или х*х
(2 – x) / (y + 5) ABS(x – 2) ex EXP(x) ln X Ln(X) Блок 2. Линейная вычислительная программа 21 Математическая запись Строчная запись sin X SIN(x) сos X COS(x) tg X SIN(x) / COS(x) ctg X COS(x) / SIN(x) Arctg X ArcTan(x) sin2X SQR(SIN(x)) sin X2 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 1 1 3 3 1 t:=A; A:=B; B:=t; Алгоритм Блок 2. Линейная вычислительная программа 30 A:= A + B; A = 1 + 3 = 4 A = B = B:= A – B; B = 4 – 3 = 1 A:= A – B; A = 4 – 1 = 3 А можно ли без дополнительной переменной? 1 3 4 1 3 Блок 2. Линейная вычислительная программа 31 Задача 6. Дано число а. Не используя никаких операций, кроме умножения, и никаких функций получите а8 за три операции и а10 за четыре операции. a2∙a2 = a2+2 = a4 a4∙a4 = a4+4 = a8 a∙a = a1+1 = a2 an∙am=an+m c:=a*a; b:=c*c; d:=b*b; a8∙a2 = a8+2 = a10 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. Составить программу вычисляющую xy . Где 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 = 1 11 2 10 1 5 1 25 DIV 10 = 2- целочисленное деление на 10 уменьшает число на один разряд 25 MOD 10 = 5 остаток при делении на 10 выделяет последний разряд Блок 2. Линейная вычислительная программа 35 Задача 8. Дано трехзначное число. Определить сумму цифр этого числа. Математическая модель: а – исходное число с:= a mod 10 256 – исходное число 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 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 Решим геометрическую задачу СВ = аСМ = xMB = 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); Построим треугольник