Инфоурок Информатика КонспектыЛекция на тему: "Язык программирования Паскаль"

Лекция на тему: "Язык программирования Паскаль"

Скачать материал

Операторы ветвления

В теории программирования доказано, что программу для решения задачи любой сложности можно составить только из трех структур, называемых следованием, ветвлением и циклом. Следованием называется конструкция, представляющая собой последовательное выполнение двух или более операторов (простых или составных). Ветвление задает выполнение либо одного, либо другого оператора в зависимости от выполнения какого-либо условия. Цикл задает многократное выполнение оператора (рис.1).

Рис. 1.

Следование, ветвление и цикл называют базовыми конструкциями структурного программирования. Их особенностью является то, что любая из них имеет только один вход и один выход, поэтому они могут вкладываться друг в друга. Например, цикл может содержать следование из двух ветвлений, каждое из которых включает вложенные циклы.

Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Язык Паскаль способствует созданию хорошо структурированных программ, поскольку базовые конструкции реализуются в нем непосредственно с помощью соответствующих операторов.

Условный оператор if

Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 2 Формат оператора:

if выражение then оператор_1 [else оператор_2;]
    

Сначала вычисляется выражение, которое должно иметь логический тип. Если оно имеет значение true, выполняется первый оператор, иначе - второй. После этого управление передается на оператор, следующий за условным.

Рис. 2.

Одна из ветвей может отсутствовать (см. рис. 2). Операторы, входящие в состав условного, могут быть простыми или составными. Составной оператор (блок) обрамляется ключевыми словами begin и end. Блок применяют в том случае, когда по какой-либо ветви требуется выполнить несколько операторов.

Пример #1.

if a < 0 then b := 1;                              {1}
 
if (a < b) and ((a > d) or (a = 0)) then inc(b)
else begin
     b := b * a; a := 0
     end;                                             {2}
 
if a < b then
     if a < c then m := a else m := c
else
     if b < c then m := b else m := c;             {3}
 
    

Если требуется проверить несколько условий, их объединяют знаками логических операций. Так, выражение в примере 2 будет истинно в том случае, если выполнится одновременно условие a < b и хотя бы одно из условий a > d и a = 0.

Частая ошибка при программировании условных операторов - неверная запись проверки на принадлежность диапазону. Например, условие 0 < x < 1 нельзя записать непосредственно. Правильный способ: if(0 < x) and (x < 1) then..., поскольку фактически требуется задать проверку выполнения одновременно двух условий: x > 0 и x < 1.

Вторая ошибка - отсутствие блока после else, если на самом деле по этой ветви требуется выполнить более одного действия. Эта ошибка не может быть обнаружена компилятором, поскольку является не синтаксической, а семантической, то есть смысловой.

Пример #2.

 

Программа, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика (рис. 3).

Рис. 3.

Сначала составим описание алгоритма в неформальной словесной форме.

1.      Ввести значение аргумента х.

2.      Определить, какому интервалу из области определения функции оно принадлежит и вычислить значение функции y по соответствующей формуле.

3.      Вывести значения х и y.

Второй пункт алгоритма следует детализировать. Сначала запишем определение функции в виде формул:

Рис. 4.

Теперь в соответствии с формулами опишем последовательность действий словами:

·         если x < -2, то присвоить переменной y значение 0;

·         если -2 <= x < -1, то присвоить переменной y значение -x - 2;

·         если -1 <= x < 1, то присвоить переменной y значение x;

и так далее.

program calc_function_1;
var   x, y : real;
begin
  writeln(' Введите значение аргумента'); readln(x);
  if x < -2 then y := 0;
  if (x >= -2) and (x < -1) then y := -x - 2;
  if (x >= -1) and (x <  1) then y := x;
  if (x >=  1) and (x <  2) then y := -x + 2;
  if x >=  2 then y := 0;
  writeln('Для x = ', x:6:2, ' значение функции y = ', y:6:2);
end.
         

Тестовые примеры для этой программы должны включать по крайней мере по одному значению аргумента из каждого интервала, а для проверки граничных условий - еще и все точки перегиба.

Оператор варианта case

Оператор варианта (выбора) предназначен для разветвления процесса вычислений на несколько направлений. Стрктурная схема оператора приведена на рис. 5. Формат оператора:

case выражение of
   константы_1 : оператор_1;
   константы_2 : оператор_2;
   *
   константы_n : оператор_n;
   [ else : оператор ]
end;
    

Рис. 5.

Выполнение оператора начинается с вычисления выражения. Затем управление передается на оператор, помеченный константами, значение одной из которых совпало с результатом вычисления выражения. После этого выполняется выход из оператора. Если совпадения не произошло, выполняются операторы, расположенные после слова else, а при его отсутствии управление передается оператору, следующему за case.

Выражение после ключевого слова case должно быть порядкового типа, константы - того же типа, что и выражение. Чаще всего после case используется имя переменной. Перед каждой ветвью оператора можно записать одну или несколько констант через запятую или операцию диапазона, обозначаемую двумя идущими подряд точками, например:

case a of
     4    : writeln('4');
     5, 6 : writeln('5 или 6');
     7..12: writeln('от 7 до 12');
end;
    

ВНИМАНИЕ Если по какой-либо ветви требуется записать не один, а несколько операторов, они заключаются в блок с помощью ключевых слов begin и end.

Пример #3.

 

Программа, определяющая, какая из курсорных клавиш была нажата.

Для объяснения этой программы надо забежать немного вперед и рассказать о том, что в состав оболочек Паскаля входят так называемые модули - библиотеки полезных при программировании ресурсов. В модуле Crt есть функция readkey, позволяющая получить код нажатой клавиши.

Функция readkey работает так: если нажата алфавитно-цифровая клавиша, функция возвращает соответствующий символ. Если нажата клавиша курсора, возвращается символ с кодом 0, а при повторном вызове можно получить так называемый расширенный код клавиши. Для простоты можно считать, что расширенный код - это номер клавиши на клавиатуре. Функция ord позволяет получить числовой код символа.

program cursor_keys;
uses Crt;
var key : char;
begin
   writeln('Нажмите одну из курсорных клавиш ');
   key := readkey;
   if ord(key) <> 0 then writeln('обычная клавиша')
   else begin
        key := readkey;
        case ord(key) of
             77: writeln('стрелка вправо');
             75: writeln('стрелка влево');
             72: writeln('стрелка вверх');
             80: writeln('стрелка вниз');
       else writeln('не стрелка');
        end;
   end;
end.
      

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Лекция на тему: "Язык программирования Паскаль""

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Инструктор по гимнастике

Получите профессию

Менеджер по туризму

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 664 172 материала в базе

Скачать материал

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 08.11.2016 580
    • DOCX 62.5 кбайт
    • Оцените материал:
  • Настоящий материал опубликован пользователем Проскокова Ольга Николаевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Проскокова Ольга Николаевна
    Проскокова Ольга Николаевна
    • На сайте: 8 лет и 7 месяцев
    • Подписчики: 0
    • Всего просмотров: 33978
    • Всего материалов: 25

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Технолог-калькулятор общественного питания

Технолог-калькулятор общественного питания

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Педагогическая деятельность по проектированию и реализации образовательного процесса в общеобразовательных организациях (предмет "Информатика")

Учитель информатики

300 ч. — 1200 ч.

от 7900 руб. от 3650 руб.
Подать заявку О курсе
  • Этот курс уже прошли 20 человек

Курс повышения квалификации

Специфика преподавания информатики в начальных классах с учетом ФГОС НОО

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Сейчас обучается 39 человек из 20 регионов
  • Этот курс уже прошли 284 человека

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4150 руб.
Подать заявку О курсе
  • Сейчас обучается 685 человек из 79 регионов
  • Этот курс уже прошли 1 809 человек

Мини-курс

Нейропсихология в школе: путь к успеху и благополучию детей

6 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 78 человек из 32 регионов
  • Этот курс уже прошли 56 человек

Мини-курс

Занимательное обучение русскому языку: основы орфоэпии и тайны русской орфографии

3 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 35 человек из 21 региона
  • Этот курс уже прошли 34 человека

Мини-курс

Figma: продвинутый дизайн

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 62 человека из 25 регионов