Презентация на тему "Управляющие операторы языка высокого уровня"

Презентация: Управляющие операторы языка высокого уровня
1 из 40
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
3.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


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

Аннотация к презентации

Скачать презентацию (0.28 Мб). Тема: "Управляющие операторы языка высокого уровня". Предмет: информатика. 40 слайдов. Для студентов. Добавлена в 2016 году. Средняя оценка: 3.0 балла из 5.

Содержание

  • Презентация: Управляющие операторы языка высокого уровня
    Слайд 1

    Управляющие операторы языкавысокого уровня

    1 ©Павловская Т.А. (СПбГУ ИТМО) Реализуют логику выполнения программы: следование ветвление цикл передача управления

  • Слайд 2

    Блок (составной оператор)

    ©Павловская Т.А. (СПбГУ ИТМО) 2 Блок — последовательность операторов, заключенная в операторные скобки: begin end – в Паскале { } - в С-подобных языках Блок воспринимается компилятором как один оператор и может использоваться всюду, где синтаксис требует одного оператора, а алгоритм — нескольких. Блок может содержать один оператор или быть пустым.

  • Слайд 3

    Оператор «выражение»

    ©Павловская Т.А. (СПбГУ ИТМО) 3 Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. i++; // выполняется операция инкремента a *= b + c; // выполняется умножение с присваиванием fun( i, k ); // выполняется вызов функции

  • Слайд 4

    Пустой оператор

    ©Павловская Т.А. (СПбГУ ИТМО) 4 пустой оператор ; используется, когда по синтаксису оператор требуется, а по смыслу — нет: while ( true ); Это цикл, состоящий из пустого оператора (бесконечный) ;;; Три пустых оператора

  • Слайд 5

    5 ©Павловская Т.А. (СПбГУ ИТМО) Операторы ветвления: развилка (if) переключатель (switch)

  • Слайд 6

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

    ©Павловская Т.А. (СПбГУ ИТМО) 6 if ( a d || a == 0)) ++b; else { b *= a; a = 0; } if ( a

  • Слайд 7

    Пример

    ©Павловская Т.А. (СПбГУ ИТМО) 7 -2 -2 1 -2 -2 2 x y using System; namespace ConsoleApplication1 { class Class1 { static void Main() { Console.WriteLine( "Введите координату x" ); double x = Convert.ToDouble(Console.ReadLine() ); Console.WriteLine( "Введите координату у" ); double y = double.Parse(Console.ReadLine() ); if ( x * x + y * y = - x – 2 ) Console.WriteLine( " Точка попадает в область " ); else Console.WriteLine( " Точка не попадает в область " ); }}}

  • Слайд 8

    Пример 2

    ©Павловская Т.А. (СПбГУ ИТМО) 8 2 -2 x y 1 -1 if ( x = -2 && x = -1 && x = 1 && x = 2 ) y = 0; if ( x -2 ) y = -x - 2; if ( x > -1 ) y = x; if ( x > 1 ) y = -x + 2; if ( x > 2 ) y = 0;

  • Слайд 9

    Проверка вещественных величин на равенство

    ©Павловская Т.А. (СПбГУ ИТМО) 9 Из-за погрешности представления вещественных значений в памяти следует ее избегать, вместо этого лучше сравнивать модуль разности с некоторым малым числом. float a, b; … if ( a == b ) … // не рекомендуется! if ( Math.Abs(a - b)

  • Слайд 10

    Оператор выбора switch

    ©Павловская Т.А. (СПбГУ ИТМО) 10 switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] case константное_выражение_n: [ список_операторов_n ] [default: операторы ] }

  • Слайд 11

    Пример: Калькулятор на четыре действия

    ©Павловская Т.А. (СПбГУ ИТМО) 11 using System;namespace ConsoleApplication1 { class Class1 { static void Main() { Console.WriteLine( "Введите 1й операнд:" ); doublea = double.Parse(Console.ReadLine()); Console.WriteLine( "Введите знак" ); char op = (char)Console.Read(); Console.ReadLine(); Console.WriteLine( "Введите 2й операнд:" ); doubleb = double.Parse(Console.ReadLine()); double res = 0; bool ok = true; switch (op) {case '+' : res = a + b; break; case '-' : res = a - b; break; case '*' : res = a * b; break; case '/' : res = a / b; break; default : ok = false; break; } if (ok) Console.WriteLine( "Результат: " + res ); elseConsole.WriteLine( "Недопустимая операция" ); }}}

  • Слайд 12

    12 ©Павловская Т.А. (СПбГУ ИТМО) Операторы цикла

  • Слайд 13

    Структура оператора цикла

    ©Павловская Т.А. (СПбГУ ИТМО) 13 Усл-е Начальные значения Тело цикла Модиф-я параметра Усл-е Начальные значения Тело цикла Модиф-я параметра

  • Слайд 14

    Цикл с предусловием

    ©Павловская Т.А. (СПбГУ ИТМО) 14 while( выражение ) оператор using System; namespace ConsoleApplication1 { class Class1 { static void Main() { double Xn = -2, Xk = 12, dX = 2, t = 2, y; Console.WriteLine( "| x | y |" ); double x = Xn; while ( x

  • Слайд 15

    Цикл с постусловием

    ©Павловская Т.А. (СПбГУ ИТМО) 15 do оператор while выражение; using System; namespace ConsoleApplication1 { class Program { static void Main() { char answer; do { Console.WriteLine( "Купислоника, а?" ); answer = (char) Console.Read(); Console.ReadLine(); } while( answer != 'y' ); } } } Удобно использовать для проверки ввода

  • Слайд 16

    Цикл с параметром

    ©Павловская Т.А. (СПбГУ ИТМО) 16 for ( инициализация; выражение; модификации ) оператор; int s = 0; for ( inti = 1; i

  • Слайд 17

    Пример цикла с параметром

    ©Павловская Т.А. (СПбГУ ИТМО) 17 using System; namespace ConsoleApplication1 { class Class1 { static void Main() { double Xn = -2, Xk = 12, dX = 2, t = 2, y; Console.WriteLine( "| x | y |"; for ( double x = Xn; x

  • Слайд 18

    Рекомендации по написанию циклов

    ©Павловская Т.А. (СПбГУ ИТМО) 18 не забывать о том, что если в теле циклов whileи for требуется выполнить более одного оператора, нужно заключать их в блок; убедиться, что всем переменным, встречающимся в правой части операторов присваивания в теле цикла, до этого присвоены значения, а также возможно ли выполнение других операторов; проверить, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла; предусматривать аварийный выход из итеративного цикла по достижению некоторого предельно допустимого количества итераций.

  • Слайд 19

    19 ©Павловская Т.А. (СПбГУ ИТМО) Передача управления

  • Слайд 20

    Передача управления

    ©Павловская Т.А. (СПбГУ ИТМО) 20 оператор break — завершает выполнение цикла, внутри которого записан оператор continue — выполняет переход к следующей итерации цикла оператор return — выполняет выход из функции, внутри которой он записан оператор goto — выполняет безусловную передачу управления оператор throw — генерирует исключительную ситуацию.

  • Слайд 21

    Пример: вычисление суммы ряда

    ©Павловская Т.А. (СПбГУ ИТМО) 21 Написать программу вычисления значения функции sin с помощью степенного ряда с точностью ε по формуле:

  • Слайд 22

    ©Павловская Т.А. (СПбГУ ИТМО) 22 using System; namespace ConsoleApplication1 { class Class1 { static void Main() { double e = 1e-6;const int iterLimit = 500; Console.WriteLine( "Введитеаргумент:" ); double x = Convert.ToDouble(Console.ReadLine()); bool error = false; // признак ошибки double c = x, y = c;// член ряда и сумма ряда for ( int n = 1; Math.Abs(c) > e; n++ ) { c *= -x * x / ((2 * n ) * ( 2 * n + 1 )); y += c; if ( n > iterLimit ) { error = true; break; } } if ( error ) Console.WriteLine( "Ряд расходится" ); else Console.WriteLine( "Сумма ряда - " + y ); }}}end.

  • Слайд 23

    Оператор return

    ©Павловская Т.А. (СПбГУ ИТМО) 23 завершает выполнение функции и передает управление в точку ее вызова: return [ выражение ]; Оператор goto goto метка; В теле той же функции должна присутствовать ровно одна конструкция вида: метка: оператор; goto case константное_выражение; goto default;

  • Слайд 24

    Обработка ошибок

    ©Павловская Т.А. (СПбГУ ИТМО) 24 Возможные действия при ошибке: прервать выполнение программы; возвратить значение, означающее «ошибка»; вывести сообщение об ошибке и вернуть вызывающей программе некоторое приемлемое значение, которое позволит ей продолжать работу; выбросить исключение. Исключения генерирует либо система выполнения, либо программист с помощью оператора throw.

  • Слайд 25

    Простая проверка ввода

    ©Павловская Т.А. (СПбГУ ИТМО) 25 // пример проверки формата: double a; if (! double.TryParse(Console.ReadLine(), out a)) {Console.WriteLine(" Неверный формат "); return; } // при вводе более 1 значения предпочтительнее // использовать механизм исключений // пример проверки допустимости значения: doublea = double.Parse(Console.ReadLine()); ... if ( a

  • Слайд 26

    Проверка ввода с помощью цикла do-while

    using System; namespace ConsoleApplication1 { class Program { static void Main() { const intmax_tries = 5; inti = 0; do { Console.WriteLine( "Введите значение > 0:" ); doublea = double.Parse(Console.ReadLine()); ++i; if ( i >= max_tries ) { … return; } } while( a

  • Слайд 27

    Рекомендуемая структура обработки ошибок исходных данных

    ©Павловская Т.А. (СПбГУ ИТМО) 27 ошибка 1? ввод данных сообщение 1 ошибка 2? сообщение 2 основной поток вычислений ...

  • Слайд 28

    Обработка исключений

    28 ©Павловская Т.А. (СПбГУ ИТМО) Исключительная ситуация, или исключение — это возникновение непредвиденного или аварийного события, которое может порождаться некорректным использованием аппаратуры. Например, это деление на ноль или обращениепо несуществующему адресу памяти. Исключения позволяют логически разделить вычислительный процесс на две части — обнаружениеаварийной ситуации и ее обработка.

  • Слайд 29

    Некоторые стандартные исключения

    ©Павловская Т.А. (СПбГУ ИТМО) 29

  • Слайд 30

    Оператор try

    ©Павловская Т.А. (СПбГУ ИТМО) 30 Служит для обнаружения и обработки исключений. Оператор содержит три части: контролируемый блок — составной оператор, предваряемый ключевым словом try. В контролируемый блок включаются потенциально опасные операторы программы. Все функции, прямо или косвенно вызываемые из блока, также считаются ему принадлежащими; один или несколько обработчиков исключений — блоков catch, в которых описывается, как обрабатываются ошибки различных типов; блок завершения finally, выполняемый независимо от того, возникла ли ошибка в контролируемом блоке. Синтаксис оператора try: try блок [ catch-блоки ] [ finally-блок ]

  • Слайд 31

    Механизм обработки исключений

    ©Павловская Т.А. (СПбГУ ИТМО) 31 Обработка исключения начинается с появления ошибки. Функция или операция, в которой возникла ошибка, генерируют исключение; Выполнение текущего блока прекращается, отыскивается соответствующий обработчик исключения, и ему передается управление. В любом случае (была ошибка или нет) выполняется блок finally, если он присутствует. Если обработчик не найден, вызывается стандартный обработчик исключения.

  • Слайд 32

    Пример 1:

    ©Павловская Т.А. (СПбГУ ИТМО) 32 try { // Контролируемый блок } catch ( OverflowException e ) { // Обработка переполнения } catch ( DivideByZeroException ) { // Обработка деления на 0 } catch { // Обработка всех остальных исключений }

  • Слайд 33

    Иллюстрация генерации исключения

    поиск АААА!!! ©Павловская Т.А. (СПбГУ ИТМО) 33 что-нибудь вызов метода что-нибудь еще ... что-нибудь вызов другого метода что-нибудь еще Блок try обработчик 1 обработчик 2 … обработчик всех Блоки catch генерация исключения

  • Слайд 34

    Пример 2: проверка ввода

    ©Павловская Т.А. (СПбГУ ИТМО) 34 static void Main() { try { Console.WriteLine( "Введите напряжение:" ); double u = double.Parse( Console.ReadLine() ); Console.WriteLine( "Введите сопротивление:" ); double r = double.Parse(Console.ReadLine() ); double i = u / r; Console.WriteLine( "Силатока - " + i ); } catch ( FormatException) { Console.WriteLine( "Неверный формат ввода!" ); } catch// общий случай { Console.WriteLine( "Неопознанноеисключение" ); } } if (u

  • Слайд 35

    Оператор throw

    ©Павловская Т.А. (СПбГУ ИТМО) 35 throw [ выражение ]; Пример: throw new DivideByZeroException(); Параметр должен быть объектом, порожденным от стандартного класса System.Exception. Этот объект используется для передачи информации об исключении его обработчику.

  • Слайд 36

    Базовые конструкции структурного программирования

    ©Павловская Т.А. (СПбГУ ИТМО) 36 Целью использования базовых конструкций является получение программы простой структуры. Такую программу легко читать, отлаживать и при необходимости вносить в нее изменения. Особенностью базовых конструкций является то, что любая из них имеет только один вход и один выход, поэтому конструкции могут вкладываться друг в друга

  • Слайд 37

    Рекомендации по программированию

    ©Павловская Т.А. (СПбГУ ИТМО) 37 Главная цель, к которой нужно стремиться, — получить легко читаемую программу возможно более простой структуры. Создание программы надо начинать с определения ее исходных данных и результатов. Следующий шаг — записать на естественном языке (возможно, с применением обобщенных блок-схем), что именно и как должна делать программа. При кодированиинеобходимо помнить о принципах структурного программирования: программа должна состоять из четкой последовательности блоков — базовых конструкций. Имена переменных должны отражать их смысл. Переменные желательно инициализировать при их объявлении Следует избегать использования в программе чисел в явном виде. Программа должна быть «прозрачна». Для записи каждого фрагмента алгоритма необходимо использовать наиболее подходящие средства языка.

  • Слайд 38

    ©Павловская Т.А. (СПбГУ ИТМО) 38 В программе полезно предусматривать реакцию на неверные входные параметры. Необходимо предусматривать печать сообщений или выбрасывание исключения в тех точках программы, куда управление при нормальной работе программы передаваться не должно. Сообщение об ошибке должно быть информативным и подсказывать пользователю, как ее исправить. После написания программу следует тщательно отредактировать Комментарии должны представлять собой правильные предложения без сокращений и со знаками препинания

  • Слайд 39

    Форматирование программы

    ©Павловская Т.А. (СПбГУ ИТМО) 39 Вложенные блоки должны иметь отступ в 3–5 символов Форматируйте текст по столбцам везде, где это возможно: string buf = "qwerty"; double ex = 3.1234; int number = 12; byte z = 0; ... if ( done ) Console.WriteLine( "Суммаряда - " + y ); else Console.WriteLine( "Рядрасходится" ); ... if ( x >= 0 && x = 10 ) y = 2 * t; elsey = x; После знаков препинания должны использоваться пробелы: f=a+b; // плохо! Лучше f = a + b;

  • Слайд 40

    ©Павловская Т.А. (СПбГУ ИТМО) 40 "Вопрос «Как писать хорошие программы на С++?» напоминает вопрос «Как писать хорошую английскую прозу?». Есть два совета: «Знай, что хочешь сказать» и «Тренируйся. Подражай хорошему стилю». Оба совета годятся как для С++, так и для английской прозы, и обоим одинаково сложно следовать." Б. Страуструп

Посмотреть все слайды

Сообщить об ошибке