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

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

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

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

Добавлен: 09.01.2024

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

Скачиваний: 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, tV= V0- g* tY= 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;BeginEnd. Раздел описанийТело программы

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

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=BX>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 <тело цикла>;При этом шаг изменения -1P, 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; BeginClrscr; S:=0; For i:=1 To 50 Do S:=S+i;