Алгоритм Горюнов.ppt
- Количество слайдов: 38
Горюнов Антон
Алгоритм – описание последовательных действий, строгое исполнение которых Алгоритм приводит к решению поставленной задачи за конечное число шагов. Алгоритмизация процесс разработки алгоритма для решения задачи. Свойства: Понятность Дискретность Алгоритм Массовость Детерминированность Конечность Дискретность – это свойство указывает, что любой алгоритм должен состоять Дискретность из конкретных действий, следующих в определённом порядке. Детерминированность – это свойство указывает, что любое действие Детерминированность алгоритма должно быть строго и недвусмысленно определено в каждом случае. Конечность – это свойство показывает, что каждое действие в отдельности и Конечность алгоритм в целом должны иметь возможность завершения. Массовость – это свойство показывает, что один и тот же алгоритм можно Массовость использовать с разными исходными данными Понятность — алгоритм для исполнителя должен включать только те команды, Понятность которые ему (исполнителю) доступны, которые входят в его систему команд.
Способы записи Блок схема Школьный алгоритми ческий алг название алгоритма алг (аргументы и результаты) дано условия применимости дано алгоритма надо цель выполнения надо алгоритма нач описание промежуточных нач величин | последовательность команд (тело алгоритма) кон Turbo Pascal
Типы алгоритмов Линейные Ветвление Линейный алгоритм - алгоритм, все этапы которого выполняются однократно и строго последовательно. Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательнос ть действий. Циклические Циклический алгоритм — описание действий, которые должны по вторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла.
вывод, ввод данных начало и конец алгоритма вычисление условие Цикл вывод результатов на бумагу
Линейный Начало Ввод: x , y Линейный алгоритм – алгоритм, в котором действия выполняются последовательно одно за другим. T=(x+y)^2 5 ’t=’, t Конец
Найти у, y= 3*x + ( 8*a – 2*b) Uses crt; Начало Алг. x, b , a арг. x, b , a рез. y y= 3*x + ( 8*a – 2*b) Нач. ввод x, a , b y реш. y= 3*x + ( 8*a – 2*b) вывод y конец Var у, х, b, a: integer; K: char; Begin Write (‘x=‘); Read (x); Write (‘b=‘); Read (b); Write (‘a=‘); Read (a); Y: =3*x+(8*a 2*b); Writeln (‘y=‘, y); K: readkey; end
Циклический алгоритм — описание действий, которые должны по вторяться указанное число раз или пока не выполнено заданное условие. Перечень повторяющихся действий называется телом цикла. НАЧАЛО Ввод n Типы циклов да j: = от 1 до n Цикл с известным Числом повторений Цикл С путословием Цикл с неизвестным Числом повторений Цикл С предусловием S: =(S+1)(2*t) Вывод «S=; S» КОНЕЦ нет
Разветвляющийся алгоритм — алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий. НАЧАЛО Пример: Проверьте есть ли в трёх числах (А, В, С) два положительных. Ввод А, В, С да да А>0 нет да B>0 да C>0 нет да нет B>0 да C>0 нет Вывод ДА C>0 Вывод НЕТ КОНЕЦ нет
Uses crt; Var a, b, c: integer; K: char; Begin Writeln (‘a=‘); Readln (a); Writeln (‘b=‘); Readln (b); Writeln (‘c=‘); Readln (c); If a>0 and b>0 or a>0 and c>0 or b>0 and c>0 then writeln(‘est’) else writeln(‘net’); K: readkey; end/. Алг. есть 2 положительных? арг. a, b, c рез. Net или est Нач. если (a>0) и (b>0) или (a>0 and (c>0) или (b>0) и (c>0) то ввести ‘est’ иначе ввести ‘net’ все конец
Найти максимальное из двух чисел. Начало a, b Да Нет a > b max : =a max : =b max Конец алг max 2 x (a, b, max) арг a, b рез max Нач ввод a, b если a>b то max : =a иначе max : =b кон Uses crt; Var a, b, c: integer; K: char; Begin Clrsr; Writeln (‘a=‘); Readln (a); Writeln (‘b=‘); Readln (b); If a>b then max: =a else max: =b writeln(‘max=’, max); K: readkey; end.
Найти максимальное из двух чисел Начало алг max 2 x (a, b, max) арг a, b , c , y , max рез max a, b, c Нач ввод a, b, c Да Нет если a>b то y: =a иначе y: =b y : =a Да max: =y y: =b если y>c то max: =y Нет иначе max: =c y>c кон max: =c max Конец Uses crt; Var a, b, c, y, max: integer; K: char; Begin Clrsr; Writeln (‘a=‘); Readln (a); Writeln (‘b=‘); Readln (b); Writeln (‘c=‘); Readln (c); If a>b then y: =a else y: =b ; If y>c then max: =y else max: =c ; writeln(‘max=’, max); K: readkey; end.
Начало Найти максимальное из четырёх a, b, c Да a > b Нет y : =a y: =b Да y>c Нет x: =y x: =c x>d max: =x max: =d max Конец алг max 4 x (вещ, a, b, c, d, y, x, max) арг a, b, c рез max, y Нач ввод a, b, c если a>b то y : =a иначе y : =b если y>c то x : =y иначе x : =c если x>d то max: =x иначе max: =d всё кон
Найти сумму чисел от 1 до n Начало n, x S: =0 i: =1 for n S: =S+x ‘S: =‘, S конец aлг Summa (x, n, S) арг. x, n рез. S нач. вещ i S: = 0 для i=1 до n плюс 1 н. ввод x S: =S+x кц кон Uses crt; Var i, n, S, x: integer; K: char; Begin Clrsr; Writeln (‘x=‘); Readln (x); Writeln (‘n=‘); Readln (n); For I: =1 to n do S: =S+x; writeln(‘S=’, S); K: readkey; end.
S= 0. 5 + 0. 25 + 1|6 +… + 1|2 n Начало n S: =0 алг. Найти сумму – S. арг. n рез. S Нач. i: = 1 до n S: = S+1| (2*i) Ввод n для i: =1 до n счет. S: = S+1| (2*i) вывод (‘S=‘, S) Конец. ‘S=‘, S конец Uses crt; Var i, n: integer; S: real; K: char; Begin Clrsr; Writeln (‘n=‘); Readln (n); S: =0; For i: =1 to n do S: =S+1/(2*i); writeln(‘S=’, S); K: readkey; end.
Составить программу вычисляющую сумму всех двузначных целых чисел. НАЧАЛО S: =S+i S КОНЕЦ арг I Var I, s: integer; рез S K: char; Нач Begin S: =0 S: =S+t нц End; Writeln (‘s=‘s); S: =S + I Для I = 10, 99 Uses crt; для I=10, 99 S: =0 Алг S для (цел. I, S) K: readkey; кц end вывод: S Кон.
Составить программу вычисляющую суму квадратов. Алг S для (I, n, S) арг I n S: =0 Для I = 1, n S: =S+i 2 S КОНЕЦ рез S K: char; Нач Begin ввод n Writeln (‘s=‘); S: =0 Readln (n); нц S: =0 для I=1, n For i=1 to n do S: =S + I 2 Begin S: =S * Sgr(i) вывод: S Ввод: N Var I, s, n: integer; кц НАЧАЛО Uses crt; End; Кон. Writeln (‘s=‘s); K: readkey; end
Составить программу вычисляющую сумму чётных чисел от 1 до n. Алг S для (I, n, S) арг I n да S: =S+i S КОНЕЦ S: =0 для I=2, n For i=2 to n do если i: 2=цел. то Begin S: =S + I If I div 2=0 than S: S+i кц End; вывод: S Writeln (‘s=‘s); Кон. i: 2=цел Readln (n); нц нет Writeln (‘n=‘); S: =0 Для I = 2, n Begin ввод n S: =0 K: char; Нач Ввод: N Var I, S, n: integer; рез S НАЧАЛО Uses crt; K: readkey; end
Составить программу находяшую количество бактерий за заданное количество минут, если каждая бактерия делится на две , каждую минуту. Алг kol для (t, kol) Uses crt; арг I t Var I, S, i: integer; рез kol K: char; Нач Begin Ввод: i ввод t Write (‘l=‘); S: =1 кол: =1; Read (l); Для i: =1 до t S: =1 Нц For i=2 to l do S: =2*S Коl: =2*коl; Writeln (‘s=‘s); кц K: readkey; Вывод коl end НАЧАЛО Для I = 2, i S: =2*S S t Кон. КОНЕЦ
Cоставить программу вычисляющюю счастливый ли билетик попался. 3 первых числа = 3 последним. Uses crt; Var S 1, S 2, S 3, S 4, S 5, S 6: integer; K: char; Begin For S 1: =2 to 9 do For S 2: =2 to 9 do For S 3: =2 to 9 do For S 4: =2 to 9 do For S 5: =2 to 9 do For S 6: =2 to 9 do Writeln (‘S 1=‘); Readln (S 1); Writeln (‘S 2=‘); Readln (S 2); Writeln (‘S 3=‘); Readln (S 3); Writeln (‘S 4=‘); Readln (S 4); Writeln (‘S 5=‘); Readln (S 5); Writeln (‘S 6=‘); Readln (S 6); If (S 1+S 2+S 3)=(S 4+S 5+S 6) than Writeln (‘h=‘, happy) else Writeln (‘h=‘, not happy) K: readkey; end
Обработка текста Строка — упорядоченная последовательность символов. Строковый тип данных — структурированный тип в Турбо Паскале. Каждый символ строковой величины занимает 1 байт памяти (код ASCII). Количество симво лов в строке называется ее линой. д Длина строки может лежать в диапазоне от 0 до 255. Строковая константа — последовательность символов, за ключенных в апострофы. Например: ' это строковая кон станта', '272'. Два следующих друг за другом апострофа('') обозначают пустую строку, т. е. строку с нулевой длиной. Строковая переменная описывается в разделе описания пе ременных: Var <идентификатор> : string [<максимальная длина строки>]. Например: Var Name: string [20]. В описании строки можно не указывать длину. Например: Var slovo: string. В таком случае подразумевается, что она равна максимальной величине — 255.
Элементы строки идентифицируются именем строки с ин дексом, заключенным в квадратные скобки. Например: N[5] , S [i] , slovo [k+1]. Первый символ строки имеет номер 1. Ин декс может быть положительной константой, переменной, вы ражением целого типа. Значение индекса не должно выходить за границы описания. Тип string и стандартный тип char совместимы. Строки и символы могут употребляться в одних и тех же выражениях.
Подсчитать количество слов в строке var s: string; k, i: integer; begin write(‘вводим строку'); readln(s); s: =' '+s; for i: =1 to length(s) do if s[i]=' ' then k: =k+1; writeln(k); end.
Подсчитать в строке число букв А и В, если букв А больше, чем В, то удалить в строке все символы В var s: string; k, l, i: integer; begin write(‘вводим текст'); readln(s); k: =0; l: =0; for i: =1 to length(s) do begin if s[i]='Ђ' then k: =k+1; if s[i]='‚' then l: =l+1 end; writeln('A=', k); writeln('B=', l); if k>l then begin for i: =1 to length(s) do if s[i]='‚' then begin delete(s, i, 1); i: =i 1 end; writeln(‘s=‘, s) end.
Есть ли английское слово var a: array [1. . 100] of string; n, i, j: integer; s, s 1, c: string; begin write(‘вводим текст'); readln(n); for i: =1 to n do begin write(‘вводим слово'); readln(a[i]); end; for j: =1 to n do for i: =1 to n 1 do begin s: =a[i]; s 1: =a[i+1]; if s 1[1]
Подсчитываем пробелы VAR S: STRING; I: INTEGER; BEGIN WRITE(‘вводим текст'); READLN(S); i: =1; repeat BEGIN write(s[i]); IF S[I]='*' THEN BEGIN DELETE(S, I, 1); I: =I 1 END ELSE BEGIN INSERT(S[I], S, I); I: =I+1 END; i: =i+1 until i>length(s); writeln(‘s=‘, s); END.
Проверяет есть ли слово из трех букв var s, slovo: string; i, k: integer; i: =i+1 p: boolean; end; begin if k=3 then begin writeln(slovo); write('‚ўҐ¤ЁвҐ бва®Єг: '); p: =false end; readln(s); if p then i: =1; writeln(‘p=’‚p ); end. p: =true; slovo: =''; k: =0; while s[i]<>'. ' do begin if s[i]<>' ' then begin slovo: =slovo+s[i]; k: =k+1 end else begin if k=3 then begin writeln(slovo); p: =false end; slovo: =''; k: =0; end;
Строка содержит английский текст. Подсчитать количество букв, начинающихся на букву b var s: string; i, k: integer; begin write(‘вводим текст'); readln(s); s: =' '+s; k: =0; for i: =1 to length(s) do if (s[i]=' ')and(s[i+1]='b') then k: =k+1; writeln(k); end.
Определить, сколько раз в строке встречается данное слово var s, sl: string; k, i: integer; begin write(‘вводим строку'); readln(s); write(‘вводим слово'); readln(sl); k: =0; while pos(sl, s)>0 do begin k: =k+1; delete(s, pos(sl, s), length(sl)); end; writeln(k); end.
Графика Основные графические процедуры и функции: Построение фигур Put. Pixel(x, y, c) отображает на экране точку с координатами (x, y) и цветом c Line(x 1, y 1, x 2, y 2) рисует линию с началом в точке (x 1, y 1) и концом (x 2, y 2) Rectangle(x 1, y 1, x 2, y 2) рисует контур прямоугольника с диагональю (x 1, y 1) (x 2, y 2) Bar(x 1, y 1, x 2, y 2) рисует закрашенный прямоугольник с диагональю (x 1, y 1) (x 2, y 2) Circle(x, y, r) рисует окружность с центром (x, y) и радиусом r Ellipse(x, y, ba, ea, xr, yr) рисует дугу эллипса с центром в (x, y), горизонтальным и вертикальным радиусом xr и yr, и начальным и конечным углом ba и ea Fill. Ellipse(x, y, xr, yr) рисует закрашенный эллипс с центром в (x, y), горизонтальным и вертикальным радиусом xr и yr Определение цветов и стилей Get. Pixel(x, y) возвращает цвет пиксела с координатами (x, y) Set. Color(c) устанавливает цвет изображения (для линий) Set. Fill. Style(p, c) устанавливает текущий стиль p и цвет c (для "закрашенных" фигур) Flood. Fill(x, y, b) закрашивает замкнутую область с внутренней точкой (x, y) и цветом контура b Работа с текстом Out. Text. XY(x, y, st) выводит на экран строку st с позиции (x, y) Set. Text. Style(f, d, s) устанавливает шрифт f, его направление d и размер
Шарики
Uses graph, crt; var t, x, y, Gm, Gd; integer; t: =char; begin Gd: =Detect; Gm=2; Init. Graph (Gm, Gd, ’ ‘); if Graph Result <> grok then Halt(1); Set. Color (blue); Set. Bk. Color (white); Line (0, 20, 40, 20); Line (40, 20, 40); Line (20, 40, 20, 60); Line (20, 60, 60); Line (60, 60, 20); Line (60, 20, 100, 20); Line (60, 20, 100, 40); Line (100, 40, 80, 40); Line (80, 40, 80, 60); Line (80, 60, 120, 60); Line (120, 60, 120, 20); Line (120, 160, 20); Line (160, 20, 160, 20); Line (160, 40, 140, 40); Line (140, 60); Line (140, 60, 180, 60); Close. Graph t: =readkey; end.
Uses graph, crt; var t, x, y, Gm, Gd; integer; t: =char; begin Gd: =Detect; Gm=2; Init. Graph (Gm, Gd, ’ ‘); if Graph Result <> grok then Halt(1); Set. Color (blue); Set. Bk. Color (white); Line(80, 160, 140, 160); Line(20, 120, 80, 160); Line(180, 160, 140, 160) Line(20, 120 180, 120); Line(100, 20, 100, 120); Line(100, 20, 160, 100); Line(160, 100, 60, 100); Line(60, 100, 20); Close. Graph t: =readkey; end.
Uses graph, crt; var t, x, y, Gm, Gd; integer; t: =char; begin Gd: =Detect; Gm=2; Init. Graph (Gm, Gd, ’ ‘); if Graph Result <> grok then Halt(1); Set. Color (blue); Set. Bk. Color (white); Line (20, 60, 20); Line (60, 20, 160, 20); Line (160, 200, 60); Rectangle (40, 60, 180); Rectangle (60, 80, 100); Rectangle (60, 120, 80, 140); Rectangle (100, 80, 120, 100); Rectangle (100, 120, 140); Rectangle (140, 80, 160, 100); Rectangle (160, 120, 140); Flood. Fill (60, 160, 6); Close. Graph t: =readkey; end.
Uses graph, crt; var k, x 1, y 1, x 2, y 2, Gm, Gd; integer; t: =char; begin Gd: =Detect; Gm=2; Init. Graph (Gm, Gd, ’ ‘); if Graph Result <> grok then Halt(1); y mod k={0, …, k 1} x mod 15+1; X 1: =50; y: =150; X 2: =100; y 2: =200; For i: =1 to n do Begin K: = (I mod 15)+1; Set. Fill. Style(1, k); Bar (x 1, y 1, x 2, y 2); X 1: =x 1+50; Y 1: =y 1 – 50; X 2: =x 2 +50; Y 2: =y 2 +50; End. Readln; Close. Graph; End.
База данных exes – программа для обработки большего количества списочной информации Типы данных: 1)Текстовые 2)Числовые 3)Время дата 4)Валюта 5)Логические Режимы работы: 1)Создание редактирование 2)Манипулирование 3)Поиск 4)Элетронная таблица Система управления б. д. СУБД – комплексс программ и языковых средств, предназначенных для создания, введения и совместного применения б. д. другими пользователями. Б. д. – Ms. Abctest – полностью реализует базу данных. Информация таблицы Столбец – поле данных Строка – запись данных Запись данных состоит из нескольких полей и при этом действует: Запись данных в группу взаимосвязаных полей рассматриваемых как единое целое.
Объект – элемент предметной области , информацию о котором мы сохраняем. Информацией базы данных является: 1)Таблица 2)Запрос 3)В форме отчёта 4)Макросы модули 5)Страницы группы Первичный ключ – одно или несколько полей однозначно индетефицирующих запись. Вторичный ключ – одно или несколько полей выполняющих роль поиска, или групировки признаков, во вторичном ключе можно найти несколько объектом Типы информационных таблиц, они отличаются по своей структуре и бывают следующих типов: 1)Таблица типа объекты – свойства 2)Таблица типа объекты – объекты 3)Сложный тип таблицы 4)Вычислительная таблица