Скачать презентацию Алгоритм решения задач на персональном компьютере Руководство Скачать презентацию Алгоритм решения задач на персональном компьютере Руководство

OZ_Algoritm_reshenia_zadachi_na_PK_09_06_08.ppt

  • Количество слайдов: 36

Алгоритм решения задач на персональном компьютере Алгоритм решения задач на персональном компьютере

Руководство пользователя Основными элементами обучающей программы являются: Текст: Виды алгоритмов: линейный, циклический и ветвления Руководство пользователя Основными элементами обучающей программы являются: Текст: Виды алгоритмов: линейный, циклический и ветвления Ссылки: Введение Управляющие кнопки: - НАЗАД (переход на предыдущий слайд) Начало - В НАЧАЛО (переход на первый слайд) - ВПЕРЁД (переход на следующий слайд) для продолжения нажмите Пробел

Алгоритм решения задачи на ПК 1. Постановка задачи 2. Формализация её решения 3. Алгоритмизация Алгоритм решения задачи на ПК 1. Постановка задачи 2. Формализация её решения 3. Алгоритмизация процесса решения 4. Программирование 5. Тестирование и отладка программы 6. Компилирование и трансляция 7. Получение результата решения задачи на персональном компьютере

1. Постановка задачи При постановке задачи должно быть сформулировано, что дано и что требуется 1. Постановка задачи При постановке задачи должно быть сформулировано, что дано и что требуется найти, то есть необходимо четко определить полный набор исходных данных и какой результат нужно прямоугольника S, если известны Примеры: 1. Вычислить площадь получить. две его стороны: a=4 см. , b=5 см. S=? 2. Вычислить периметр прямоугольника P, если известны различные значения двух его сторон: a 4 10 15 12, 5 b S 5 25 40 25, 5

2. Формализация решения задачи - перевод ее решения на язык математических формул, уравнений, отношений, 2. Формализация решения задачи - перевод ее решения на язык математических формул, уравнений, отношений, то есть получение соответствующей математической модели описания реального объекта Пример: Для вычисления периметра Р и площади S прямоугольника необходимо использовать формулы: P=2*(a+b) a b P (S) S=a*b Начало

3. Алгоритмизация решения задачи Алгоритм – последовательность действий, выполняя которые пользователь обязательно получит результат 3. Алгоритмизация решения задачи Алгоритм – последовательность действий, выполняя которые пользователь обязательно получит результат решения какой-либо задачи Способы записи алгоритмов: словесный и в виде блок-схемы Словесный способ - все действия представлены в виде перечня команд Блок-схема - это набор геометрических фигур, каждая из которых обозначает определенную функцию. Виды алгоритмов: линейный, циклический, ветвления. Начало

4. Программирование решения задач Программирование – это перевод алгоритмических действий пользователя на специальный язык 4. Программирование решения задач Программирование – это перевод алгоритмических действий пользователя на специальный язык записи команд – язык программирования Языки программирования классифицируются как по использованию возможностей персонального компьютера (машинноориентированные), так и по назначению (программно-ориентированные). Начало

Языки программирования для продолжения выберите ссылку Начало Языки программирования для продолжения выберите ссылку Начало

5. Тестирование и отладка программ Тестирование – это проверка правильности разработанных программ с целью 5. Тестирование и отладка программ Тестирование – это проверка правильности разработанных программ с целью выявления ошибок допущенных при программировании Отладка- устранение ошибок допущенных при программировании. Начало

6. Компилирование и трансляция программ Компилирование – это выявление и устранение синтаксических и семантических 6. Компилирование и трансляция программ Компилирование – это выявление и устранение синтаксических и семантических ошибок Трансляция - переход от программы, записанной на языке высокого уровня к программе, записанной на языке низкого уровня. Начало

7. Получение результата решения задачи Выполнение программы на языке программирования низкого уровня Начало 7. Получение результата решения задачи Выполнение программы на языке программирования низкого уровня Начало

Пример словесной записи алгоритма Алгоритм Площадь прямоугольника Начало: Введите значение стороны a, Введите значение Пример словесной записи алгоритма Алгоритм Площадь прямоугольника Начало: Введите значение стороны a, Введите значение стороны b, Вычислите площадь прямоугольника по формуле: S=a*b, Выведите на экран найденное значение площади прямоугольника S=…. (значение) Конец. Блок-схема Начало

Основные блоки алгоритма Наименование № этапа Изображение Примечание 1 Прерывание Начало и конец алгоритма Основные блоки алгоритма Наименование № этапа Изображение Примечание 1 Прерывание Начало и конец алгоритма Передача 2 данных Ввод или вывод информации 3 Процесс Арифметический блок определяющий действие, которое необходимо выполнить 4 Принятие решения Логический блок, проверяющий истинность или ложность некоторого действия Начало

Линейный алгоритм Линейным называется алгоритм, в котором все процедуры выполняются строго последовательно друг за Линейный алгоритм Линейным называется алгоритм, в котором все процедуры выполняются строго последовательно друг за другом Начало

Блок-схема линейного алгоритма Начало Задача: Вычислить периметр (P) и площадь(S) прямоугольника со сторонами a Блок-схема линейного алгоритма Начало Задача: Вычислить периметр (P) и площадь(S) прямоугольника со сторонами a и b. Ввод а, b P: =2*(a+b) b a S=? S: =a*b; Вывод S Конец Начало Виды

Циклический Алгоритм Циклический – это алгоритм, в котором последовательность действий выполняется многократно, каждый раз Циклический Алгоритм Циклический – это алгоритм, в котором последовательность действий выполняется многократно, каждый раз при новых значениях параметров Начало

Блок-схема циклического алгоритма Начало S=0 k=0 S<=100 да S = S+k*k K=k+1 нет Задача: Блок-схема циклического алгоритма Начало S=0 k=0 S<=100 да S = S+k*k K=k+1 нет Задача: Вычислить количество натуральных чисел, сумма квадратов которых не превышает 100 Пример: S=0+12+22 +…+k 2 Конец Начало Виды

Алгоритм ветвления - это алгоритм, в котором вычисления производятся по одной из параллельных ветвей, Алгоритм ветвления - это алгоритм, в котором вычисления производятся по одной из параллельных ветвей, в зависимости от выполнения условий Начало

Блок-схема ветвящегося алгоритма Начало Задача: Решить систему уравнений, состоящую из двух выражений Ввод X Блок-схема ветвящегося алгоритма Начало Задача: Решить систему уравнений, состоящую из двух выражений Ввод X X<10 S 1 S 2 у= при x < 10 (S 1) при x > 10 (S 2) Вывод y Конец Пример: при х1=2, у1=4 при х2=13, у2=11 Виды

Языки программирования низкого уровня Ассемблер Язык машинных кодов Язык символического кодирования Достоинства: 1. Учитывает Языки программирования низкого уровня Ассемблер Язык машинных кодов Язык символического кодирования Достоинства: 1. Учитывает возможности конкретного ПК. 2. Процесс решения осуществляется с максимальной скорость. Недостатки: 1. Сложность программирования 2. Требуется переобучение программистов при переходе на новый ПК 3. Невозможность применения разработанных программ на других ПК Начало

Языки программирования высокого уровня 1956 г. – Фортран инженерных расчётов 1960 г. – Кобол Языки программирования высокого уровня 1956 г. – Фортран инженерных расчётов 1960 г. – Кобол экономических 1964 г. – Бейсик для начинающих 1967 г. – ПЛ/1 для профессионалов 1969 г. – Алгол-68 для инженерных 1971 г. – Паскаль для решения разных задач Начало

Язык Pascal Назван в честь великого французского учёного XVII века, изобретателя первого в мире Язык Pascal Назван в честь великого французского учёного XVII века, изобретателя первого в мире автоматического устройства, позволяющего складывать числа. Разработчик – Никлас Вирт, специалист по вычислительной технике Института информатики в Цюрихе. Язык включает: алфавит, операторы и служебные слова Начало

Алфавит — это набор символов, с помощью которых можно написать программу на выбранном языке Алфавит — это набор символов, с помощью которых можно написать программу на выбранном языке программирования. Алфавит языка Turbo Pascal включает: 1) 26 букв латинского алфавита: ABCDEFGHIJКLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 2) 10 арабских цифр: 0123456789 3) 20 основных специальных символов: +-*/=<>[]. , (): ; {}^$# Начало

Порядок записи программы на Паскале 1) Program Prim – заголовок программы 2) var a, Порядок записи программы на Паскале 1) Program Prim – заголовок программы 2) var a, b, P, S - задание типов переменных integer – тип переменных (только целые числа) 3) Тела программы, которое включает: BEGIN – начало программы END. – конец программы 4) Операторы: write(‘введите значения a=‘) – вывода данных на экран readln(a, b) – ввод данных в память компьютера (с переводом курсора в начало новой строки) P: =2*(a+b) – вычисление значения S: =a*b writeln(‘P=‘, P) – вывести ответ (значение периметра и площади прямоугольника) Начало

Примеры программирования на Паскале линейных алгоритмов Вычисление периметра Р и площади S по сторонам Примеры программирования на Паскале линейных алгоритмов Вычисление периметра Р и площади S по сторонам а, в прямоугольника Program Prim; b var а, b, P, S: integer; a S=? BEGIN write(‘введите значения a=‘); read(a); write(‘введите значение b=‘); read(b); P: =2*(a+b); S: =a*b; writeln(‘P=‘, P); writeln(‘S=‘, S); END. Начало

Типы переменных: • INTEGER – значениями являются элементы множества целых чисел • Например: 1; Типы переменных: • INTEGER – значениями являются элементы множества целых чисел • Например: 1; -123, 25; +45, - 333 • REAL - значениями являются элементы множества действительных чисел • Например: 0. 123; -0. 025; +0. 144; -1. 25; 0. 314 E 1; 1. 98 E-2 • BOOLEAN – значениями являются логические величины «истина» и «ложь» • Например: true (истинно) и false (ложно) • CHAR – символьный тип, позволяющий работать с символами • Например: ‘A’; ‘ 1 п 2’; ‘ 2’ Начало

Знаки операций + сложение - вычитание и отрицание * умножение / деление с действительным Знаки операций + сложение - вычитание и отрицание * умножение / деление с действительным результатом (25/5=5) DIV деление с целочисленным результатом (5 DIV 2 = 2) MOD получение остатка целочисленного деления (5 MOD 2 = 5) = равно <> не равно > больше чем >= больше или равно < меньше <= меньше или равно Начало

Пример программы ЛВП Даны переменные a и b. Требуется поменять их значения, т. е. Пример программы ЛВП Даны переменные a и b. Требуется поменять их значения, т. е. переменная a должна получить значение b, а b — значение a Начало Ввод a, b Program Primer_1; Var а, b, Dор: integer; BEGIN writeln(а, b); readln(a, b); Dор : = а; а : = b; b: =Dор; DOP: =a a: =b b: =DOP writeln(а, b); readln; Вывод a, b Конец END. Начало

Пример программы ЦВП Начало Задача: Вычислить количество натуральных чисел, сумма квадратов которых не превышает Пример программы ЦВП Начало Задача: Вычислить количество натуральных чисел, сумма квадратов которых не превышает 100 S=0 k=0 S<=100 да S = S+k*k k=k+1 Конец нет Program Sum; Var S, k : integer; BEGIN S: =0; k: =0; while S<=100 do begin S: =S+k*k; k: =k+1; end; writeln(‘Сумма квадратов=‘, S); writeln(‘Количество чисел=‘, k); END. Начало

Пример программы ВП Вычислить y= при x < 10 при x > 10 Начало Пример программы ВП Вычислить y= при x < 10 при x > 10 Начало Ввод x x<10 да S 1 нет S 2 Вывод y Конец Program Vetv; var x, y: real; BEGIN writeln(x); readln(x); if x<10 then y: =x+2 (S 1) else y: =x-2; (S 2) writeln(y); readln; END. Начало

Простейшие алгоритмы на одномерном массиве Наиболее часто употребляемые алгоритмы на одномерном массиве: • подсчёт Простейшие алгоритмы на одномерном массиве Наиболее часто употребляемые алгоритмы на одномерном массиве: • подсчёт элементов, обладающих заданным свойством; • поиск максимального и минимального элементов; • поиск элементов, обладающих заданным свойством. Начало

Подсчёт элементов, обладающих заданным свойством Задача: Пусть мы имеем одномерный массив с оценками 10 Подсчёт элементов, обладающих заданным свойством Задача: Пусть мы имеем одномерный массив с оценками 10 учеников по информатике. Требуется посчитать, сколько из них имеет оценку 5. Основной блок этой задачи имеет вид: … s: =0; {Подсчёт элементов} for i: =1 to 10 do {равных данному(5)} if a[ i ]=5 then s: =s+1; … Начало

Поиск максимального и минимального элементов Задача: Пусть одномерный массив A[ i ] содержит числа Поиск максимального и минимального элементов Задача: Пусть одномерный массив A[ i ] содержит числа – рост 10 учеников в сантиметрах. Требуется найти рост самого высокого из учеников. Основной блок этой задачи имеет вид: … s: =A[ 1 ]; {Поиск} for i: =2 to 10 do {максимального элемента} if a[ i ]>s then s: =A [ i ]; … Начало

Поиск элементов, обладающих заданным свойством. Задача: Пусть у нас a[ i ] содержит оценки Поиск элементов, обладающих заданным свойством. Задача: Пусть у нас a[ i ] содержит оценки по информатике 10 учеников. Требуется выяснить, имеется ли среди них хоть один ученик, имеющий тройку. Основной блок этой задачи имеет вид: … i: =1; {Поиск элементов} while (i<=10) and a([ i ]<>3) do i: =i+1; {равных данному(3)} if i>10 then writeln (‘ 3 нет’) else writeln (‘первая 3 имеет индекс ’, i); Начало …

Program twirl; uses Dos, Crt; procedure rot (j, k: Integer; color, speed: Word); const Program twirl; uses Dos, Crt; procedure rot (j, k: Integer; color, speed: Word); const line: array [0. . 3] of Char = (‘|’, ‘’, ‘-’, ‘/’); var m: Integer; BEGIN Text. Color(color); Следующая программа выводит на экран m: =0; маленькую вращающуюся стрелку. repeat Имитацию стрелки можно Goto. XY(j, k); write(line[m]); запрограммировать, используя массив Goto. XY(1, 1); состоящий из четырёх символьных Delay(speed); элементов: |, , - и /. Эти символы m: = (m+1) mod 4; последовательно, один за другим и с until Key. Pressed; некоторой задержкой, выводятся в Text. Color(Light. Gray); заданном месте на экран. end; begin Начало rot(40, 30, Yellow, 100); END. Разработка нестандартных алгоритмов и программ

Program Matrix; const n=2; m=3; type mas=array[1. . n, 1. . m] of integer; Program Matrix; const n=2; m=3; type mas=array[1. . n, 1. . m] of integer; Var B, С : mas; i: integer; j: integer; BEGIN writeln(‘введите значения матрицы «В» : ‘); for i: =1 to n do for j: =1 to m do read (B[ i, j ]); for i: =1 to n do for i: =1 to m do R[ i, j ]: = B [ i, j ]*2; writeln(‘значения матрицы «С» : ‘); for i: =1 to n do begin for j: =1 to m do write(R[ i, j ], ‘ ‘: 2); writeln; end; END. Разработка программ с применением двумерных массивов Задача: составить программу для удвоения значений вводимой матрицы. Начало