Выступление на РГМО 31.01.2012.ppt
- Количество слайдов: 25
Язык программирования Паскаль. Разветвляющие алгоритмы, оператор выбора Макарова И. А. , учитель информатики МБОУ СОШ № 16 г. Балаково Саратовской области
Язык программирования Паскаль • Язык программирования Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623 -1662), был создан как учебный язык программирования в 1968 -1971 годах Никлаусом Виртом в Высшей технической школе (ЕТН) в Цюрихе. • последовательности машинных операций были заменены одним-единственным обозначающим их словом - оператором.
Основные принципы Паскаля таковы: • Структурное программирование. Суть его заключается в оформлении последовательностей команд как замкнутых функций или процедур и в объединении данных, связанных по смыслу, в сложные структуры данных. Благодаря этому повышается наглядность текста и упрощается его отладка. • Проектирование сверху вниз. Программист разбивает свою задачу на несколько более простых, после чего каждая из задач решается по отдельности. Затем компонуются результаты проектирования простых задач и решается задача проектирования сверху вниз.
При записи программы на языке программирования можно пользоваться лишь символами предусмотренными алфавитом языка • • • Алфавит языка Паскаль составляют буквы латинского и русского алфавитов, арабские цифры, знаки операций + – * / = < > , ограничители ) (. , : ; ‘ [ ] Числа записываются в десятичной системе счисления и могут быть целыми и вещественными (действительными), положительными и отрицательными. - Действительные числа изображаются в естественной и показательной формах. Дробная часть отделяется от целой точкой. Строка — это последовательность символов языка, заключенная в апострофы (одиночные кавычки): ‘A’, ‘ 123456’ Имя (идентификатор) служит для обозначения различных объектов и конструкций программы. Имя должно состоять из латинских букв и цифр, но первым символом может быть только буква: A, B 1, Gamma. Имя может быть служебным, стандартным или определяемым пользователем. - Служебные слова используются для обозначения операторов, описаний некоторых операций. Назначение служебных слов строго определено - Назначение стандартных имен также заранее определено, однако программист может переопределить эти имена, но делать это не рекомендуется. Стандартные имена используются при определении стандартных констант, типов переменных, процедур и функций. Постоянные величины, значения которых не меняются в процессе выполнения программы, называются константами. Величины, значения которых меняются в процессе выполнения программы, называются переменными.
Общая структура программы PROGRAM ИМЯ ПРОГРАММЫ ; LABEL МЕТКА 1; …; МЕТКА N; CONST ИМЯ КОНСТАНТЫ = ЗНАЧЕНИЕ; …; TYPE ИМЯ ТИПА= ТИП; …; VAR ИМЯ ПЕРЕМЕННОЙ 1, …, ИМЯ ПЕРЕМЕННОЙ N: ТИП ; …; БЛОК ОПИСАНИЙ ПРОЦЕДУР; БЛОК ОПИСАНИЯ ФУНКЦИЙ; BEGIN ТЕЛО ПРОГРАММЫ END. Программа начинается с заголовка, за ним идет раздел описаний (выделено цветом), в котором должны быть описаны все идентификаторы (константы, переменные, типы, процедуры, функции), которые будут использоваться в программе. После раздела описаний идет тело программы, ограниченное служебными словами BEGIN и END. В этом разделе средствами языка программирования реализуется алгоритм решения поставленной задачи. Операторы в этом разделе отделяются друг от друга точкой с запятой.
Обзор основных операций в Паскаль • • • все операции делятся на: математические операции; логические операции; операции с символами и строками; операции над множествами; операции отношения; операции получения адреса.
В следующей таблице приведен список всех применяемых операций в порядке убывания их приоритета, то есть элементы, имеющие более высокий приоритет, выполняются всегда первыми, имеющие более низкий приоритет - вторыми и т. д. Символ операции Название операции Тип допустимых операндов Операторы, имеющие первый приоритет Тип результата @ Взятие адреса Любой рointer - Унарный минус Целый, вещественный + Унарный плюс Целый, вещественный NOT Поразрядное "НЕ" Целый NOT Логическое "НЕ" Логический
Математические функции
Математические процедуры Inc(X, Y) - увеличивает значение числа X на Y. Процедура Inc(X) (без аргумента Y) увеличивает значение числа X на 1. Dec (X, Y) - уменьшает значение числа X на Y. Процедура Dec(X) (без аргумента Y) уменьшает значение числа X на 1. Randomize - обеспечивает несовпадение последовательностей случайных чисел, генерируемых функцией Random.
Разветвляющие алгоритмы • Разветвляющим алгоритмом называется такой алгоритм, в котором выбирается один из нескольких возможных путей (вариантов) вычислительного процесса. • Ветвью алгоритма называется каждый подобный путь. • Разветвляющие алгоритмы бывают с полным ветвлением и с неполным ветвлениями.
Пример изображения на блок-схеме алгоритма с полным ветвлением
Пример изображения на блок-схеме алгоритма с неполным ветвлением
Логический тип данных в любых языках программирования имеет всего два значения – правда и ложь, соответственно true и false или 1 и 0, таким образом, занимает 1 бит памяти. С этим типом данных возможны логические операции, а также некоторые математические, так как логический тип данных является базовым и порядковым, с ним можно совершать определенный набор этих действий. В таблице ниже приведены логические действия, то есть таблицы истинности для них. exp 1 exp 2 exp 1 and exp 2 exp 1 or exp 2 not exp 1 0 0 1 0 1 1 1 0 0 1 1 1 1 0 В языке Паскаль and - логическое и по-другому конъюнкция, or - логическое или подругому дизъюнкция, not – логическое отрицание по-другому инверсия. Приоритет операций в логическом выражении таков, что сначала выполняется инверсия, потом логическое «И» , а затем только логическое « или» . Скобки меняют порядок выполнения действий: сначала выполняются операции в скобках, если и там необходимо выполнить несколько операций, то действует приоритет выполнения логических операций.
Работа условного оператора Чтобы задать условие в языке программирования, потребуется условный оператор, вот как он выглядит в языке программирования Паскаль. if <условие> (если) then <один_оператор> (тогда) [else <один_оператор>]; (иначе) Обратите внимание, что перед словом else (когда оно присутствует, конечно же) символ "; " не ставится - ведь это разорвало бы оператор на две части. Если стоит два и более оператора, то после then или else, в зависимости от ветки оператора, ставятся операторные скобки begin … end; но если они стоят перед else, то точка с запятой не ставится.
Вложенный условный оператор Часто бывает такое, что одного условия и двух вариантов развития событий программисту может не хватить, и что тогда делать? И тут приходит такой ответ, как использование вложенных условий, то есть таких, чтобы операторы выполнялись только одной из нескольких веток, и вот решение проблемы: If(<условие>) then <операторы> Else if(<условие>) then <операторы> … Else <операторы> Если надо выполнить два и более оператора, то ставятся операторные скобки.
Оператор выбора В языках программирования есть еще такая вещь, как оператор выбора, по смыслу он похож на вложенные условные операторы и даже подчас заменяет их, но чтобы программисту было проще при работе с одной переменной и рядом констант, придумали этот оператор. В нем надо запомнить только синтаксис. Вот он для языка Паскаль: case <переключатель> of <список_констант> : <один_оператор>; [<список_констант> : <один_оператор>; ] [else <один_оператор>; ] end; Вот правила, по которым работает этот оператор: - Переключатель должен относиться только к порядковому типу данных, но не к типу longint. - Переключатель может быть переменной или выражением. - Список констант может задаваться как явным перечислением, так и интервалом или их объединением. - Повторение констант не допускается. - Тип переключателя и типы всех констант должны быть совместимыми
В этой программе показана реализация алгоритма с полной разветвленной структурой • Задача 1. Вывести на экран большее из двух данных чисел. Program z 1; Var x, y : integer; Begin writeln(‘Введите 2 числа ‘); readln(x, y); if x>y then writeln (x) else writeln (y); readln; End.
Пример алгоритма с неполной разветвленной структурой • Задача 2. Составить программу, которая, если введенное число отрицательное, меняет его на противоположное. • Program z 2; Var x : integer; Begin writeln(‘Введите число ‘); readln(x); if x<0 then x: =-x; writeln (x); readln; End.
В этой программе наглядно показано использование вложенных условий, а также постановка операторных скобок, где это требуется. Задача 3. Даны целые числа a, b, c. Если a ≤ b ≤ c, то все числа заменить их квадратами, если a>b>c, то каждое число заменить наибольшим из них, в противном случае заменить знак каждого числа. Program z 3; Var a, b, c : integer; Begin writeln(‘Введите числа a, b, c’); readln(a, b, c); if (a<=b) and (b<=c) then begin a: =sqr(a); b: =sqr(b); c: =sqr(c); end else if (a>b) and (b>c) then begin b: =a; c: =a; end else begin a: =-a; b: =-b; c: =-c; end writeln(a, b, c); readln; End.
Пример программы с использованием оператора выбора, как видите, программа простая, но из-за определенного синтаксиса, который надо запомнить, становится очень громоздкой. Задача 4. Написать программу преобразования цифр в слова. Program z 4; Var a, b, c : integer; Begin writeln(‘Введите цифру ‘); readln(a); case a of 0 : writeln (‘ноль‘); 1 : writeln (‘один‘); 2 : writeln (‘два‘); 3 : writeln (‘три‘); 4 : writeln (‘четыре‘); 5 : writeln (‘пять‘); 6 : writeln (‘шесть‘); 7 : writeln (‘семь‘); 8 : writeln (‘восемь‘); 9 : writeln (‘девять‘) else writeln (‘Это число не является цифрой‘); end; readln; End.
Используемая литература • О. Н. Черненко Информационные технологии в учебном процессе Издательство «Учитель» • А. А. Чернов Информатика Конспекты уроков 9 -11 классы Издательство «Учитель» • http: //school. sgu. ru/ • http: //academy. dviger. com/gallery/work/c_21226. html • http: //programku. my 1. ru/index/urok_3/0 -12
Выступление на РГМО 31.01.2012.ppt