OZ_Algoritm_reshenia_zadachi_na_PK_09_06_08.ppt
- Количество слайдов: 36
Алгоритм решения задач на персональном компьютере
Руководство пользователя Основными элементами обучающей программы являются: Текст: Виды алгоритмов: линейный, циклический и ветвления Ссылки: Введение Управляющие кнопки: - НАЗАД (переход на предыдущий слайд) Начало - В НАЧАЛО (переход на первый слайд) - ВПЕРЁД (переход на следующий слайд) для продолжения нажмите Пробел
Алгоритм решения задачи на ПК 1. Постановка задачи 2. Формализация её решения 3. Алгоритмизация процесса решения 4. Программирование 5. Тестирование и отладка программы 6. Компилирование и трансляция 7. Получение результата решения задачи на персональном компьютере
1. Постановка задачи При постановке задачи должно быть сформулировано, что дано и что требуется найти, то есть необходимо четко определить полный набор исходных данных и какой результат нужно прямоугольника S, если известны Примеры: 1. Вычислить площадь получить. две его стороны: a=4 см. , b=5 см. S=? 2. Вычислить периметр прямоугольника P, если известны различные значения двух его сторон: a 4 10 15 12, 5 b S 5 25 40 25, 5
2. Формализация решения задачи - перевод ее решения на язык математических формул, уравнений, отношений, то есть получение соответствующей математической модели описания реального объекта Пример: Для вычисления периметра Р и площади S прямоугольника необходимо использовать формулы: P=2*(a+b) a b P (S) S=a*b Начало
3. Алгоритмизация решения задачи Алгоритм – последовательность действий, выполняя которые пользователь обязательно получит результат решения какой-либо задачи Способы записи алгоритмов: словесный и в виде блок-схемы Словесный способ - все действия представлены в виде перечня команд Блок-схема - это набор геометрических фигур, каждая из которых обозначает определенную функцию. Виды алгоритмов: линейный, циклический, ветвления. Начало
4. Программирование решения задач Программирование – это перевод алгоритмических действий пользователя на специальный язык записи команд – язык программирования Языки программирования классифицируются как по использованию возможностей персонального компьютера (машинноориентированные), так и по назначению (программно-ориентированные). Начало
Языки программирования для продолжения выберите ссылку Начало
5. Тестирование и отладка программ Тестирование – это проверка правильности разработанных программ с целью выявления ошибок допущенных при программировании Отладка- устранение ошибок допущенных при программировании. Начало
6. Компилирование и трансляция программ Компилирование – это выявление и устранение синтаксических и семантических ошибок Трансляция - переход от программы, записанной на языке высокого уровня к программе, записанной на языке низкого уровня. Начало
7. Получение результата решения задачи Выполнение программы на языке программирования низкого уровня Начало
Пример словесной записи алгоритма Алгоритм Площадь прямоугольника Начало: Введите значение стороны a, Введите значение стороны b, Вычислите площадь прямоугольника по формуле: S=a*b, Выведите на экран найденное значение площади прямоугольника S=…. (значение) Конец. Блок-схема Начало
Основные блоки алгоритма Наименование № этапа Изображение Примечание 1 Прерывание Начало и конец алгоритма Передача 2 данных Ввод или вывод информации 3 Процесс Арифметический блок определяющий действие, которое необходимо выполнить 4 Принятие решения Логический блок, проверяющий истинность или ложность некоторого действия Начало
Линейный алгоритм Линейным называется алгоритм, в котором все процедуры выполняются строго последовательно друг за другом Начало
Блок-схема линейного алгоритма Начало Задача: Вычислить периметр (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 нет Задача: Вычислить количество натуральных чисел, сумма квадратов которых не превышает 100 Пример: S=0+12+22 +…+k 2 Конец Начало Виды
Алгоритм ветвления - это алгоритм, в котором вычисления производятся по одной из параллельных ветвей, в зависимости от выполнения условий Начало
Блок-схема ветвящегося алгоритма Начало Задача: Решить систему уравнений, состоящую из двух выражений Ввод 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. Учитывает возможности конкретного ПК. 2. Процесс решения осуществляется с максимальной скорость. Недостатки: 1. Сложность программирования 2. Требуется переобучение программистов при переходе на новый ПК 3. Невозможность применения разработанных программ на других ПК Начало
Языки программирования высокого уровня 1956 г. – Фортран инженерных расчётов 1960 г. – Кобол экономических 1964 г. – Бейсик для начинающих 1967 г. – ПЛ/1 для профессионалов 1969 г. – Алгол-68 для инженерных 1971 г. – Паскаль для решения разных задач Начало
Язык Pascal Назван в честь великого французского учёного XVII века, изобретателя первого в мире автоматического устройства, позволяющего складывать числа. Разработчик – Никлас Вирт, специалист по вычислительной технике Института информатики в Цюрихе. Язык включает: алфавит, операторы и служебные слова Начало
Алфавит — это набор символов, с помощью которых можно написать программу на выбранном языке программирования. Алфавит языка Turbo Pascal включает: 1) 26 букв латинского алфавита: ABCDEFGHIJКLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 2) 10 арабских цифр: 0123456789 3) 20 основных специальных символов: +-*/=<>[]. , (): ; {}^$# Начало
Порядок записи программы на Паскале 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 по сторонам а, в прямоугольника 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; -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, а 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 Начало Ввод 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 учеников по информатике. Требуется посчитать, сколько из них имеет оценку 5. Основной блок этой задачи имеет вид: … s: =0; {Подсчёт элементов} for i: =1 to 10 do {равных данному(5)} if a[ i ]=5 then s: =s+1; … Начало
Поиск максимального и минимального элементов Задача: Пусть одномерный массив A[ i ] содержит числа – рост 10 учеников в сантиметрах. Требуется найти рост самого высокого из учеников. Основной блок этой задачи имеет вид: … s: =A[ 1 ]; {Поиск} for i: =2 to 10 do {максимального элемента} if a[ i ]>s then s: =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 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; 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. Разработка программ с применением двумерных массивов Задача: составить программу для удвоения значений вводимой матрицы. Начало