224.21K
Категория: ПрограммированиеПрограммирование

Алгоритм – это описание детерминированной последовательности действий

1.

Алгоритм – это описание
детерминированной
последовательности действий,
направленных на получение из
исходных данных результата за
конечное число дискретных шагов с
помощью понятных исполнителю
команд.

2.

3.

Свойства алгоритмов
• Дискретность (прерывность, раздельность) –
разбиение алгоритма на шаги;
• Выполнимость и понятность – каждый шаг
алгоритма должен быть понятен исполнителю;
• Результативность - получение результата за
конечное число шагов;
• Детерминированность - выполнение команд в
строго определенном порядке. Исполнитель
алгоритма, выполнив очередную команду, должен
точно знать, какую команду он должен выполнить
следующей;
• Массовость – один и тот же алгоритм может
применяться к большому количеству однотипных
объектов.
• Формальность – возможность выполнять
команды механически.

4.

Виды алгоритмов:
• Линейный – алгоритм в котором команды
выполняются последовательно одна за другой;
• «Ветвление» – порядок выполнения шагов
изменяется в зависимости от некоторых условий
(истина или ложь);
• «Выбор» – в данной алгоритмической структуре
выполняется одна или несколько
последовательностей команд при истинности
соответствующих условий;
• «Цикл» – серия команд (тело цикла) выполняется
многократно.

5.

Величины: константы.
Переменные: тип, имя, значение.

6.

Переменная
в
программе
представлена именем и служит для
обращения к данным определенного
типа, конкретное значение которых
хранится в ячейке оперативной
памяти.

7.

Тип переменной определяется типом
данных, которые могут быть значениями
переменной.
Переменные бывают:
А) числового типа (целые, дробные,
положительные, отрицательные т.д.);
б) логического типа (истина или ложь);
в) строкового типа (последовательность
символов);
var - оператор объявления переменных (a,b,c
… и т.д.);
: - какие они (integer -целые, дробные и т.д.);
:= присваивание значения;

8.

Типы переменных в Турбо Паскале
Обозначения типов переменных являются ключевыми
словами языка и поэтому выделяются.

9.

Имя каждой переменной уникально и не может меняться в
процессе выполнения программы. Имя переменной может
состоять из символов, но обязательно должно начинаться с буквы
и не должно включать знак «.».
Объявление переменных происходит через оператора VAR.
Через одного оператора можно присвоить сразу несколько
переменных:
var a,b,c: integer;
Значение переменной может быть задано числом,
строкой или логическим значением, а также может быть
представлено с помощью арифметического, строкового или
логического выражения.

10.

Стандартные функции Pascal:
SQR(x) – возводит число х в квадрат;
SQRT(x) – вычисляет корень квадратный из числа х
Abs(x) – абсолютная величина числа х. Модуль числа х;
Cos(x) – вычисляет косинус аргумента х;
Sin(x) – вычисляет синус аргумента х;
Ln(x) - вычисляет натуральный логарифм аргумента х;
Frac(x) – выделение дробной части числа х;
Trunc(x) – выделение целой части числа х (результат целое
число);
Round(x) – округление до целого вещественного числа х;
Pi – число π =3.141592653;
Random(x) – генерирует значение случайного числа из
диапазона от 0 до х-1;
Randomize – инициация(обновление) базы генератора
случайных чисел;

11.

Алгоритмы «Ветвление» и «Выбор»
«Ветвление» – порядок выполнения
шагов изменяется в зависимости от
некоторых условий (истина или ложь);
«Выбор» – в данной алгоритмической
структуре выполняется одна или
несколько последовательностей команд
при истинности соответствующих
условий;

12.

2.Ветвление
а) Полное ветвление
«Ветвление» – порядок выполнения шагов (команд)
изменяется в зависимости от некоторых условий
(истина или ложь)
Язык программирования
Turbo Pascal
Да
Серия 1
Условие
Нет
Серия 2
Program (имя программы);
(описательная часть, переменные)
begin
If условие then
(серия 1)
else
(серия 2)
еnd.

13.

2. Ветвление
б) Неполное ветвление
Язык программирования
Turbo Pascal
Да
Серия 1
Условие
Нет
Program (имя программы);
(описательная часть, переменные)
begin
If условие then
(серия 1)
еnd.
При ложности условия,
используется сокращенная форма.

14.

Простое и сложное условие
Условие, фигурирующее в условном операторе, может быть как простым, так и
сложным. Простым называется условие, в котором присутствует лишь один
знак отношения. Сложным называется такое условие, которое состоит из
двух и более простых условий соединенных между собой логическими союзами.
Наиболее часто используемые логические союзы – это конъюнкция и
дизъюнкция.
Конъюнкция или логическое умножение соответствует союзу И (AND)
обозначается &
Формула:
С=А&В=АВ
Логический смысл: Сложное условие С будет истинным тогда и только тогда,
когда будут истинным одновременно и условие А и условие В.
Дизъюнкция или логическое сложение соответствует союзу ИЛИ (OR)
обозначается
Формула
С=А В=А+В
Логический смысл: Сложное условие С будет ложным тогда и только тогда,
когда будут ложными одновременно и условие А и условие В.

15.

3.Выбор
«Выбор» – в данной алгоритмической структуре
выполняется одна из несколько
последовательностей команд при истинности
соответствующих условий.
Язык программирования
Да
Нет
Условие 1
Условие 2
Серия 1
Серия 2
Серия 3
Turbo Pascal
Program (имя программы);
(описательная часть)
Begin
Case условие of
Список значений 1: оператор 1


Список значений N: оператор N
Else
оператор
еnd.

16.

Оператор выбора.
Общая форма записи:
CASE <выражение-селектор> OF
<список значений 1> : <оператор 1>;
<список значений 2> : <оператор 2>;
…………………………:………………… ;
<список значений N> : <оператор N>;
ELSE <оператор>;
END;
Принцип работы оператора выбора: вначале вычисляется значение выраженияселектора стоящего после CASE. Затем выбирается тот список значений,
которому принадлежит полученное значение, и выполняется соответствующий
оператор, следующий за двоеточием. Оператор стоящий после
зарезервированного слова ELSE выполняется если ни один из списков значений не
удовлетворил значению выражения-селектора и может отсутствовать. В списках
значений допустимыми являются скалярные типы переменных, которые включают
целые и исключают вещественные типы. Любое заданное значение выраженияселектора может входить в список значений неоднократно, но выполнятся будет
лишь первая подходящая ветвь.

17.

Пример 2. Дано целое число N (0<N<10000).
Определить какое это число (однозначное,
двузначное, трехзначное или четырехзначное).
program ggg;
var n:integer;
begin
write('введите число n=');
readln(n);
case n of
0..9:Writeln(‘число - ’,n,’ -однозначное’);
10..99:Writeln(‘число - ’,n,’ -двузначное’);
100..999:Writeln(‘число - ’,n,’- трехзначное’);
1000..9999:Writeln(‘число - ’,n,’ -четырехзначное’);
Else
Writeln(‘число ’,n,’ больше 10000’);
End;
end.

18.

Оператор div оставляет целую часть от
деления.
Пример: a=15 b=2, при делении а:b=15:2=7,5
оператор div использует значение 7
Оператор mod оставляет остаток от
деления.
Пример: a=15 b=2, при делении а:b=15:2=7,5
(7*2=14; 15-14=1)
оператор mod использует 1
Команды:
(a mod 2=0) - условие чётности числа;
(a mod 2<>0) – условие нечётности числа.

19.

Пример 3. Дано натуральное число N. Преобразовать его в
зависимости от остатка деления числа N на число 17 по
правилу:
если остаток равен 0, то N должно стать равным тоже 0;
если остаток равен 1 или 6, то N должно стать равным -N;
если остаток равен 2,3 или 5, то N должно стать равным 2N;
если остаток равен 4, то N должно стать равным 3N;
в остальных случаях N равняется 5N.

20.

Program Ost;
Var n:word;
Begin
Write(‘Введите число n=’);
Readln(n);
Case n mod 17 of
0:n:=0;
1,6:n:=-n;
2,3,5:n:=2*n;
4:n:=3*n;
Else n:=5*n;
end;
Writeln(‘n=’,n);
End.

21.

Дано целое число K. Если оно четное, то
прибавить к нему 2; если оно нечётное, то
увеличить в 5 раз; иначе заменить его на 0.
Вывести полученное число.

22.

Дано целое число K. Если оно четное, то прибавить к
нему 2; если оно нечётное, то увеличить в 5 раз;
иначе заменить его на 0. Вывести полученное число.
Program ggg1;
var k:integer;
begin
readln(k);
writeln(k);
if (k mod 2=0) then
k:=k+2
else
if (k mod 2<>0) then
k:=k*5
else
k:=0;
writeln(k);
end.

23.

Дано натуральное двузначное число. Найти
сумму, произведение и променять местами
цифры этого числа.
Program My_Program;
Var n, n1, n2, s, p : integer;
Begin
Writeln(n);
Readln(n);
n1:=n div 10;
n2:=n mod 10;

24.

Дано натуральное двузначное число. Найти сумму, произведение и
променять местами цифры этого числа.
Program My_Program;
Var n, n1, n2, s, p : integer;
Begin
Writeln(n);
Readln(n);
n1:=n div 10;
n2:=n mod 10;
s:=n1+n2;
p:=n1*n2;
n:=n2*10+n1;
Writeln(‘s=’,s);
Writeln(‘p=’,p);
Writeln(‘n=’,n);
End.

25.

«Цикл» – серия команд (тело цикла) выполняется
многократно.
2 типа «цикла»:
А) Цикл со счетчиком – тело цикла выполняется
определенное количество раз :
Б) Цикл по условию – тело цикла выполняется, пока
истинно условие.

26.

Общий вид цикла с параметром (for)
For a:=1 to 10 do
<тело цикла>;
при выполнении тела цикла, происходит
увеличение переменной на единицу.
For a:=10 downto 1 do
<тело цикла>;
при выполнении тела цикла, происходит
уменьшение переменной на единицу.

27.

Цикл с предусловием
Вначале проверяется условие стоящие после
слова While. Если оно соблюдается (т.е. истинное),
то выполняется тело цикла (слово do – означает
делать, выполнять) заключённое в операторные
скобки
begin…end;
а
затем
происходит
перепроверка условия. Если оно опять будет
соблюдается, то тело цикла выполнится ещё раз.
Этот процесс будет продолжаться до тех пор, пока
условие будет соблюдаться. Как только условие
перестанет соблюдаться (т.е. станет ложным), цикл
завершит свою работу.

28.

Общий вид цикла с предусловием (While)
While <условие> do
begin
<тело цикла>;
Проверяется условие, если оно
соблюдается, то выполняется тело
цикла.

29.

Цикл с послеусловием
Вначале
выполняется
тело
цикла
следующие после слова Repeat (повторять).
Когда компилятор доходит до слова Until (до)
происходит проверка поставленного условия. Если
оно не соблюдается (т.е. оно ложное), то тело
цикла выполняется ещё раз. Как только условие
станет соблюдаться (т.е. будет истинным) цикл
Repeat…Until завершит свою работу.

30.

Логический цикл с послеусловием
Язык программирования
Pascal
Тело цикла
(Серия команд)
Нет
Условие
Да
Program (имя программы);
(описательная часть, переменные)
begin
Repeat
<тело цикла>
Until <условие >
Writeln ();
еnd.
English     Русский Правила