5.1 Алгоритмизация и программирование..ppt
- Количество слайдов: 21
Формализация, алгоритмизация и программирование
Этапы подготовки и решения задач на ЭВМ · постановка задачи; · математическое описание и выбор метода; · разработка алгоритма решения; · составление программы; · тестирование и отладка программы; · эксплуатирование программы. Постановк а задачи Математи ческое описание Алгоритм решения Программи рование Отладка програм мы Эксплуа тация
Понятие алгоритма, его свойства Алгоритм – это точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату. Это конечный набор правил, однозначно раскрывающих содержание и последовательность выполнения операций для систематического решения определенного класса задач за конечное число шагов. Свойства: · детерминированность, · массовость, · результативность, · дискретность.
Способы записи алгоритма Словесный способ описания алгоритма отражает содержание выполняемых действий средствами естественного языка. Формально-словесный способ описания алгоритма основан на записи содержания выполняемых действий с использованием изобразительных возможностей языка математики, дополненного с целью указания необходимых пояснений средствами естественного языка. Графический способ описания алгоритмов представляет собой изображение логико-математической структуры алгоритма, при котором все этапы процесса обработки данных представляются с помощью определенного набора геометрических фигур (блоков), имеющих строго определенную конфигурацию в соответствии с характером выполняемых действий.
Графический способ записи алгоритмов Начало, конец Данные (ввод/вывод) Процесс (вычисления) Проверка условия
Алгоритмы линейной структуры Линейный алгоритм - это такой, в котором все операции выполняются последовательно одна за другой
Пример 1 Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника. Пусть a, b, c - длины сторон треугольника. Необходимо найти S - площадь треугольника, P - периметр. Для нахождения площади можно воспользоваться формулой Герона: где r - полупериметр. Входные данные: a, b, c. Выходные данные: S, P. Блок-схема алгоритма представлена на рисунке
Пример 2 Известны плотность и геометрические размеры цилиндрического слитка, полученного в металлургической лаборатории. Найти объем, массу и площадь основания слитка. Входные данные: R - радиус основания цилиндра, h - высота цилиндра, ρ- плотность материала слитка. Выходные данные: m - масса слитка, V - объем, S - площадь основания. Блок-схема представлена на рис
Алгоритмы разветвленной структуры применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие. В блок-схемах разветвленные алгоритмы изображаются так, как показано на рис
Пример 3 Известны коэффициенты a, b и с квадратного уравнения. Вычислить корни квадратного уравнения. Входные данные: a, b, c. Выходные данные: x 1, x 2. Блок-схема представлена на рис.
Алгоритмы циклической структуры Циклом называют повторение одних и тех же действий (шагов). Последовательность действий, которые повторяются в цикле, называют телом цикла. Условные С постусловием Безусловные С предусловием
Условные циклические алгоритмы
Безусловные циклические алгоритмы
Пример 4 Вычислить, сколько раз выполнится тело цикла, заданного алгоритмом. Входные данные: Р. Выходные данные: n. Решение: n=0, P=1 ТЦ n=1, P=2*1=2 Проверка условия: 2>7? Нет ТЦ n=2, P=2*2=4 Проверка условия: 4>7? Нет ТЦ n=3, P=2*4=8 Проверка условия: 8>7? Да конец Ответ n=3,
Языки программирования высокого уровня Неструкт урные (BASIC, Fortran) Структу рные (Pascal, Algol) Объектноориентированные (Smalltalk, C++, Object Pascal, Delphi, Java) Логические (Prolog, Simula) Функциональ ные (Lisp, ЛОГО) Языки программир ования баз данных (SQL, Oracle) Языки программиро вания для Интернет (HTML, Perl, Vrml)
Структура программы на языке Турбо Паскаль Program Имя; Const Описание констант Var Описание переменных Begin Исполнительная часть. End.
Основные операторы языка ТР Операторы ввода Read(<Список ввода>); Readln(<Список ввода>); и вывода информации Write(<Список вывода>); Writeln(<Список вывода>); Пример 5 Program Inteface; Var R, S : Real; Begin Write('Введите радиус круга '); {Печать на экране просьбы о вводе} Readln(R); {Ввод значения в переменную R с клавиатуры} S: =4*ARCTAN(1)*SQR(R); {Вычисление площади круга (p. R 2)} Writeln('Площадь круга радиусом ', R, ' равна ', S) End.
Основные операторы языка ТР Условный оператор Если <усл. > {Если выполняется условие} то <действие 1> {то выполнить действие № 1 } иначе <действие 2> {иначе - выполнить действие № 2 } все Формат условного оператора на языке Паскаль: If <условие> Then <оператор 1> Else <оператор 2> Или: If <условие>Then Begin <группа операторов 1> end Else Begin < группа операторов 2> end;
Пример 6 "Из двух чисел выбрать наибольшее". Program Example; Var A, B, C : Real; {A, B - для хранения аргументов, C - результат} Begin Writeln('Введите два числа'); Readln(A, B); {Вводим аргументы с клавиатуры} If A>B Then C: =A Else C: =B; {Если A>B, то результат - A, иначе результат - B} Writeln(C); {Выводим результат на экран} End.
Циклы Цикл for. . do. С увеличением счетчика: For <И. П. >: =<Н. З. > To <К. З. > Do <оператор>; С уменьшением счетчика. For <И. П. >: =<Н. З. > Downto <К. З. > Do <оператор>; Цикл while. . do While <условие> Do <оператор> Цикл repeat. . until Repeat <оператор #1>; <оператор #2>; <оператор #3>; . . . Until <условие>; Пример 6 Program Ex 2; Var A : Integer; S : Longint; Begin A: =1; S: =0; Repeat S: =S+A*A; A: =A+1 Until A>100; Writeln(S) End.
Массивы Одномерный Var <имя массива>: Array [<диапазоны индексов>] of <Тип>. Var Mas: Array[1. . 10] of Integer; Двумерный I. Var A : Array [1. . 20] Of Array [1. . 30] Of Integer; II. Var A : Array [1. . 20, 1. . 30] Of Integer;


