Файл: Алгоритмы и исполнители Определение.pptx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.01.2024

Просмотров: 91

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Алгоритмы и исполнители

Определение

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

Свойства алгоритма

Исполнитель

Исполнитель алгоритма – это устройство, приспособление, робот, организация, человек и т.п., способное выполнять определенные действия.

Формальный исполнитель – исполнитель, не выходящий за пределы предписаний алгоритма.

Этапы решения задач на компьютере

Пример

Тело брошено вертикально вверх с начальной скоростью с некоторой высоты.

Определить его местонахождение и скорость в заданный момент времени.

I этап Постановка задачи

Дано: V0 –начальная скорость

H0 –начальная высота

g – ускорение свободного падения (g=9,81 м/с2)

t – время

Надо: V – скорость в данный момент времени

H – высоту в данный момент времени

II этап Создание математической модели

V= V0- g* t, H= H0+ V* t -

III этап Создание алгоритма решения и способа записи (блок-схема)

IV этап Написание программы

Языки программирования и их классификация

Программа (program, routine) – упорядоченная последовательность команд (операторов, инструкций) компьютера для решения задачи.

Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.

Языки программирования

Языки низкого уровня

ACCEMBLER

Разновидности транслятора – компилятор и интерпретатор.

Язык программирования Паскаль

Алфавит языка Pascal

Синтаксис языка Pascal

Служебное слово – набор латинских букв, имеющий единственный смысл и единственную форму написания. (например: PROGRAM, BEGIN, VAR, …). Используется для написания операторов.

Идентификатор – набор латинских букв, цифр, символов, начинающийся с буквы и, не включающий в себя служебное слово. (например: Max_elem, k1[1], …). Используется для обозначения величин, меток.

Структура программы:

Program pr_1;{заголовок программы}

Uses Crt; {модуль подключения очистки экрана}

Var V0, H0, t, g, V, H: real; {раздел описания переменных}

Begin {начало программы}

Clrscr; {очистка экрана}

Write(‘введите начальные скорость,

высоту и время’);

Readln (V0, H0, t);

g:=9.81;

V:= V0- g* t;

H:= H0+ V* t - g*sqr(t)/2;

Writeln(‘скорость=’,V);

Writeln(‘высота=’,H);

Readln; {задержка}

End. {конец программы}

Правила записи выражений

Выражения записываются в одну строку, без надстрочных и подстрочных записей.

Операторы языка Pascal

Классификация типов

1. Простые типы:

скалярные:

Составные типы по определенным правилам строятся из простых.

Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из простых.

Операторы языка Pascal

Оператор присваивания

<переменная>:=<переменная>|<константа>|<выражение>

Например:

a:=b; {переменной a присвоить значение переменной b}

A:=15;

B:=‘Информатика’;

C:=true;

D:=a+12;

Оператор вывода

WRITE;

WRITELN;

Например:

WRITE (a,b);

WRITELN(a);

WRITELN(‘Информатика’);

WRITELN(‘a=‘, a);

Оператор ввода

READ;

READLN;

Например:

READ (a,b);

READLN(a);

Рекомендуется оператор ввода использовать в сочетании с оператором вывода

WRITE(‘Введите Ваше имя’);

READLN(NAME);

Операторы языка Pascal

Условие

Массив

Понятие массива

Понятие массива

Массив представляет собой набор однотипных данных, имеющих общее для всех своих элементов (членов) имя.

Тип «массив» относится к группе структурных (составных) типов.

Элементы массива пронумерованы, и обратиться к каждому из них можно, указав один или несколько индексов. Если речь идет о хранении в массиве таблицы значений, его элементы нумеруются двумя индексами.

Характеристики массива:

Примеры массивов

Примеры массивов

Описание массива

Массив описывается в разделе var с использованием конструкции:

array [n..m] of type; где вместо type должен быть указан общий для всех элементов тип.

Пример описания массива var

mouths : array [1..12] of byte;

Ссылка на 4-ый элемент массива имеет вид: mouths[4]

Одномерные массивы

Графические возможности

Возможности модуля GraphABC – анимация без мерцания

uses GraphABC;

var i: integer;

begin

LockDrawing;

for i:=1 to 500 do

begin

ClearWindow;

SetBrushColor(clGreen);

Ellipse(i,100,i+100,200);

Redraw;

end;

end.

Модуль GraphABC

Модуль GraphABC содержит константы, типы, процедуры и функции для рисования в графическом окне. Они подразделяются на следующие группы:

Графические примитивы

Действия с цветом

Действия с точками и прямоугольниками

Действия с пером

Действия с кистью

Действия со шрифтом

Графические примитивы

SetPixel(x,y,color: integer); Закрашивает один пиксел с координатами (x,y) цветом color.

MoveTo(x,y: integer);

Передвигает невидимое перо к точке с координатами (x,y); эта функция работает в паре с функцией LineTo(x,y).

LineTo(x,y: integer);

Рисует отрезок от текущего положения пера до точки (x,y); координаты пера при этом также становятся равными (x,y).

Графические примитивы

Line(x1,y1,x2,y2: integer);

Рисует отрезок с началом в точке (x1,y1) и концом в точке (x2,y2).

Circle(x,y,r: integer);

Рисует окружность с центром в точке (x,y) и радиусом r.

Ellipse(x1,y1,x2,y2: integer);

Рисует эллипс, заданный своим описанным прямоугольником с координатами противоположных вершин (x1,y1) и (x2,y2).

Графические примитивы

Rectangle(x1,y1,x2,y2: integer);

Рисует прямоугольник, заданный координатами противоположных вершин (x1,y1) и (x2,y2).

RoundRect(x1,y1,x2,y2,w,h: integer);

Рисует прямоугольник со скругленными краями; (x1,y1) и (x2,y2) задают пару противоположных вершин, а w и h – ширину и высоту эллипса, используемого для скругления краев.

Графические примитивы

Стандартные цвета задаются символическими константами:

Действия с пером

Действия с кистью

Вставка текста

TextOut(x,y: integer; s: string);

Выводит строку s в позицию (x,y) (точка (x,y) задает верхний левый угол прямоугольника, который будет содержать текст из строки s).

Например:

TextOut(100,200,’Текст’);

Действия со шрифтом

Модуль ABCObjects – основные классы

Алгоритмы и исполнители

Определение

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


Примеры алгоритмов:

Рецепт, инструкция, технологическая карта, руководство пользователю, программа развития…, программа курса информатики, и т.д.

Свойства алгоритма

  • Понятность
  • Точность
  • Дискретность(последовательность)
  • Массовость (универсальность)
  • Результативность (конечность)

Исполнитель

Исполнитель алгоритма – это устройство, приспособление, робот, организация, человек и т.п., способное выполнять определенные действия.

Формальный исполнитель – исполнитель, не выходящий за пределы предписаний алгоритма.

Этапы решения задач на компьютере

  • Постановка задачи
  • Создание математической (информационной) модели задачи
  • Создание алгоритма решения и способа записи
    • Словесная форма записи (произвольная)
    • Графическая (блок-схема)
  • Перевод алгоритма на язык ЭВМ (составление программы)
  • Отладка и контрольный запуск программы
  • Анализ полученных результатов
  • Отладка программы и корректировка (возврат к пп. 1-5)
  • Запуск программы и ввод исходных данных конкретной задачи

Пример

Тело брошено вертикально вверх с начальной скоростью с некоторой высоты.

Определить его местонахождение и скорость в заданный момент времени.

I этап Постановка задачи

Дано: V0 –начальная скорость

H0 –начальная высота

g – ускорение свободного падения (g=9,81 м/с2)

t – время

Надо: V – скорость в данный момент времени

H – высоту в данный момент времени

  • Тело мало по сравнению с Землей, поэтому считаем материальной точкой
  • Скорость бросания мала, поэтому:
    • Ускорение свободного падения считать постоянной величиной
    • Сопротивлением воздуха можно пренебречь

II этап Создание математической модели

Из курса физики известно, что описанное выше движение является равноускоренным. При заданных начальной скорости (V0), начальной высоте (H0) и ускорении свободного падения (g) зависимость скорости (V) и высоты (H) от времени (t) можно описать следующими мате-матическими формулами:

V= V0- g* t, H= H0+ V* t -

III этап Создание алгоритма решения и способа записи (блок-схема)


начало

Ввод данных

V0, H0, t

V= V0- g* t

Y= H0+ V* t -

Вывод V и H

конец

IV этап Написание программы


Basic

Pascal

CLS

INPUT”введите начальные скорость, высоту и время”; V0, H0,t

g=9.81

V= V0- g* t

H= H0+ V* t - g*t^2/2

PRINT”скорость=”;V

PRINT”высота=”;H

END

Program pr_1;

Uses Crt;

Var V0, H0, t, g, V, H: real;

Begin

Clrscr;

Write(‘введите начальные скорость, высоту и время’);

Readln(V0, H0, t);

g:=9.81;

V:= V0- g* t;

H:= H0+ V* t - g*sqr(t)/2;

Writeln(‘скорость=’,V);

Writeln(‘высота=’,H);

Readln;

End.

Языки программирования и их классификация

Программа (program, routine) – упорядоченная последовательность команд (операторов, инструкций) компьютера для решения задачи.

Язык программирования – формализованный язык для описания алгоритма решения задачи на компьютере.

Языки программирования

Языки низкого уровня

ACCEMBLER


Языки высокого уровня

Узкопрофессиональные

FORTRAN, COBOL

Процедурные

FORTRAN, COBOL, ALGOL, BASIC, PASCAL, C

Универсальные

ALGOL, BASIC, PASCAL, C, PROLOG, DELPHI

Объектно-ориентированные PROLOG, DELPHI, VISUAL BASIC,

- компилятор

- интерпретатор

Разновидности транслятора – компилятор и интерпретатор.

Язык программирования Паскаль

Алфавит языка Pascal

  • 26 букв латинского алфавита
  • 10 арабских цифр
  • 4 знака арифметических операций: +; -; *; /
  • 6 знаков отношений: =; >; <; <>;>=; <=
  • Специальные символы и знаки: ;; :; ‘; (; ); {; }; #; &; _ и т.д.
  • 33 буквы русского алфавита.

Синтаксис языка Pascal

Служебное слово – набор латинских букв, имеющий единственный смысл и единственную форму написания. (например: PROGRAM, BEGIN, VAR, …). Используется для написания операторов.

Идентификатор – набор латинских букв, цифр, символов, начинающийся с буквы и, не включающий в себя служебное слово. (например: Max_elem, k1[1], …). Используется для обозначения величин, меток.


Структура программы:

Program pr_1;

Begin

End.

Раздел описаний

Тело программы

Структура программы:

Program pr_1;{заголовок программы}

Uses Crt; {модуль подключения очистки экрана}

Var V0, H0, t, g, V, H: real; {раздел описания переменных}


Begin {начало программы}

Clrscr; {очистка экрана}

Write(‘введите начальные скорость,

высоту и время’);

Readln (V0, H0, t);

g:=9.81;

V:= V0- g* t;

H:= H0+ V* t - g*sqr(t)/2;

Writeln(‘скорость=’,V);

Writeln(‘высота=’,H);

Readln; {задержка}

End. {конец программы}


Тело

программы

Правила записи выражений

Выражения записываются в одну строку, без надстрочных и подстрочных записей.


= 1/x

= SQR(a)

= a1

= SQRT(x)

Операторы языка Pascal


Простые (линейные)

Составные (с условием)

Операторы: присваивания, ввода, вывода, графики

Развилка

Цикл

Операторы: ветвления, выбора, условного перехода (обхода)

Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром

Система типов языка Паскаль.

Скалярные типы

Паскаль имеет развитую и изощренную систему типов. На основе небольшого числа стандартных типов программист может конструировать данные произвольной структуры и сложности, адекватно отражающие информационную природу задачи.

Все имеющиеся в Паскале типы принято делить на группы. Типы, принадлежащие одной группе, имеют определенное сходство. Выделяют простые, составные, ссылочные и процедурные типы, которые в свою очередь еще подразделяются:

Классификация типов

1. Простые типы:

скалярные:

  • целые;
  • вещественные;
  • символьные;
  • булевский (логический) тип;
  • перечислимые;

    ограниченные;

    2. Составные типы:

    регулярные (массивы);

    комбинированные (записи);

    файловые;

    множественные;

    строковые;

    объекты;

  • Ссылочные типы;
  • Процедурные типы.

Составные типы по определенным правилам строятся из простых.

Ссылочные типы образуются из любых других типов. Составные и ссылочные типы можно считать некоторыми правилами для построения более сложных типов из простых.

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

Название

Идентификатор

Множество допустимых значений

Размер памяти

Целые типы

Короткий целый

Shortint

-128...127

1 байт

Байтовый

Byte

0…255

1 байт

Слово

Word

0…65 535

2 байта

Целый

Integer

-32 768…32 767

2 байта

Длинный целый

Longint

-2147483648 ..2147483647

4 байта

Вещественные типы

Вещественный

Real

-1,7*1038.. -2,9*1 039, 2,9*1039.. 1,7*1038

6 байт

С одинарной точностью

Single

-3,4*1038.. -1,5*1045, 1,5*1045..3,4*1038

4 байт

С двойной точностью

Double

-1,7*10308*..-5,0*10-324.. 5,0*10-324.. 1,7*10308

8 байт

С повышенной точностью

Extended

-1,1*104932..-1,9*104951, 1,9*104951.. 1,1*104932

10 байт

Сложный

Comp

-263+1…263-1

8 байт

Операторы языка Pascal


Простые (линейные)

Составные (с условием)

Операторы: присваивания, ввода, вывода, графики

Развилка

Цикл

Операторы: ветвления, выбора, условного перехода (обхода)

Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром

Оператор присваивания

<переменная>:=<переменная>|<константа>|<выражение>

Например:

a:=b; {переменной a присвоить значение переменной b}

A:=15;

B:=‘Информатика’;

C:=true;

D:=a+12;

Оператор вывода

WRITE;

WRITELN;

Например:

WRITE (a,b);

WRITELN(a);

WRITELN(‘Информатика’);

WRITELN(‘a=‘, a);

Оператор ввода

READ;

READLN;

Например:

READ (a,b);

READLN(a);

Рекомендуется оператор ввода использовать в сочетании с оператором вывода

WRITE(‘Введите Ваше имя’);

READLN(NAME);

Операторы языка Pascal


Простые (линейные)

Составные (с условием)

Операторы: присваивания, ввода, вывода, графики

Развилка

Цикл

Операторы: ветвления, выбора, условного перехода (обхода)


Операторы: цикла с предусловием, цикла с постусловием, цикла с параметром

Оператор ветвления

IF <условие> THEN <группа операторов 1> ELSE <группа операторов 2>;

Если условие выполняется товыполняется группа операторов 1

иначе выполняется группа операторов 2

Пример:

Program pr_2; {заголовок программы}

Uses Crt; {модуль подключения очистки

экрана}

Var t: real; {раздел описания переменных}

Begin {начало программы}

Clrscr; {очистка экрана}

Write(‘введите температуру воздуха’); {комментарий ввода}

Readln (t); {вводится значение температуры}

If t<=15 Then Writeln(‘сегодня холодно’)

Else Writeln(‘сегодня тепло’);

End. {конец программы}

<условие>

<Группа1>

<Группа2>

Блок-схема

Полная форма

да

нет

IF <условие> THEN <группа операторов 1> ELSE <группа операторов 2>;

<условие>

<Группа1>

Блок-схема

Сокращённая форма

да

нет

IF <условие> THEN <группа операторов 1>;

Условие


Простое

Составное

A=B

X>1

(x>1) and (x<5)

(x<1) or (x>5)

Операторы цикла

1. Оператор цикла с параметром

FOR P:=Pнач. TO Pкон. DO <тело цикла>;

Где P - параметр цикла (изменяемая переменная),

Pнач - начальное значение параметра цикла,

Pкон - конечное значение параметра цикла.

Тело цикла – группа операторов, выполнение которых необходимо выполнить до достижения Ркон .

ДЛЯ P от Pнач. ДO Pкон. ВЫПОЛНИТЬ <тело цикла>;

Операторы цикла

1. Если Pнач больше чем Pкон

FOR P:=Pнач. DOWNTO Pкон. DO <тело цикла>;

При этом шаг изменения -1

P, Pнач , Pкон

Тело цикла

Блок-схема оператора цикла с параметром

Пример 1: вывести на экран 2005 раз фразу «С Новым Годом!»

Program pr_3; {заголовок программы}

Uses Crt; {модуль подключения очистки экрана}

Var n : integer; {переменная которая изменяется от 1 до

2005}

Begin {начало программы}

Clrscr; {очистка экрана}

For n:=1 To 2005 Do Writeln(‘С Новым Годом!’);

End. {конец программы}

Пример 2: Вычислить сумму натуральных чисел от 1 до 50.

Определим переменные:

i – переменная, являющаяся счетчиком (номером) очередного натурального числа,

S – сумма, которая вычисляется по закону РЕКУРСИИ. (S:=S+ очередное слагаемое).

Program pr_4;

Uses Crt;

Var i, S : integer;

Begin

Clrscr;

S:=0;

For i:=1 To 50 Do S:=S+i;