🗊Презентация Управляющие операторы языка высокого уровня. Лекция 3

Нажмите для полного просмотра!
Управляющие операторы языка высокого уровня. Лекция 3, слайд №1Управляющие операторы языка высокого уровня. Лекция 3, слайд №2Управляющие операторы языка высокого уровня. Лекция 3, слайд №3Управляющие операторы языка высокого уровня. Лекция 3, слайд №4Управляющие операторы языка высокого уровня. Лекция 3, слайд №5Управляющие операторы языка высокого уровня. Лекция 3, слайд №6Управляющие операторы языка высокого уровня. Лекция 3, слайд №7Управляющие операторы языка высокого уровня. Лекция 3, слайд №8Управляющие операторы языка высокого уровня. Лекция 3, слайд №9Управляющие операторы языка высокого уровня. Лекция 3, слайд №10Управляющие операторы языка высокого уровня. Лекция 3, слайд №11Управляющие операторы языка высокого уровня. Лекция 3, слайд №12Управляющие операторы языка высокого уровня. Лекция 3, слайд №13Управляющие операторы языка высокого уровня. Лекция 3, слайд №14Управляющие операторы языка высокого уровня. Лекция 3, слайд №15Управляющие операторы языка высокого уровня. Лекция 3, слайд №16Управляющие операторы языка высокого уровня. Лекция 3, слайд №17Управляющие операторы языка высокого уровня. Лекция 3, слайд №18Управляющие операторы языка высокого уровня. Лекция 3, слайд №19Управляющие операторы языка высокого уровня. Лекция 3, слайд №20Управляющие операторы языка высокого уровня. Лекция 3, слайд №21Управляющие операторы языка высокого уровня. Лекция 3, слайд №22Управляющие операторы языка высокого уровня. Лекция 3, слайд №23Управляющие операторы языка высокого уровня. Лекция 3, слайд №24Управляющие операторы языка высокого уровня. Лекция 3, слайд №25Управляющие операторы языка высокого уровня. Лекция 3, слайд №26Управляющие операторы языка высокого уровня. Лекция 3, слайд №27Управляющие операторы языка высокого уровня. Лекция 3, слайд №28Управляющие операторы языка высокого уровня. Лекция 3, слайд №29Управляющие операторы языка высокого уровня. Лекция 3, слайд №30Управляющие операторы языка высокого уровня. Лекция 3, слайд №31Управляющие операторы языка высокого уровня. Лекция 3, слайд №32Управляющие операторы языка высокого уровня. Лекция 3, слайд №33Управляющие операторы языка высокого уровня. Лекция 3, слайд №34Управляющие операторы языка высокого уровня. Лекция 3, слайд №35Управляющие операторы языка высокого уровня. Лекция 3, слайд №36Управляющие операторы языка высокого уровня. Лекция 3, слайд №37Управляющие операторы языка высокого уровня. Лекция 3, слайд №38Управляющие операторы языка высокого уровня. Лекция 3, слайд №39

Содержание

Вы можете ознакомиться и скачать презентацию на тему Управляющие операторы языка высокого уровня. Лекция 3. Доклад-сообщение содержит 39 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Управляющие операторы языка высокого уровня. Лекция 3, слайд №1
Описание слайда:

Слайд 2





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

Слайд 3





Оператор «выражение»
Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. 
i++;               // выполняется операция инкремента
a *= b + c;     // выполняется умножение с присваиванием
fun( i, k );       // выполняется вызов функции
Описание слайда:
Оператор «выражение» Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. i++; // выполняется операция инкремента a *= b + c; // выполняется умножение с присваиванием fun( i, k ); // выполняется вызов функции

Слайд 4





Пустой оператор
пустой оператор ; используется, когда по синтаксису оператор требуется, а по смыслу — нет:
while ( true );     
Это цикл, состоящий из пустого оператора (бесконечный)
;;;              
Три пустых оператора
Описание слайда:
Пустой оператор пустой оператор ; используется, когда по синтаксису оператор требуется, а по смыслу — нет: while ( true ); Это цикл, состоящий из пустого оператора (бесконечный) ;;; Три пустых оператора

Слайд 5






Операторы ветвления:
 развилка (if)
 переключатель (switch)
Описание слайда:
Операторы ветвления: развилка (if) переключатель (switch)

Слайд 6





Условный оператор if
if ( a < 0 ) b = 1;
if ( a < b && (a > d || a == 0) )   ++b; 
else {	b *= a; a = 0; }
if ( a < b ) if ( a < c ) m = a;
	      else          m = c;
else	      if ( b < c ) m = b; 
	      else          m = c;
Описание слайда:
Условный оператор if if ( a < 0 ) b = 1; if ( a < b && (a > d || a == 0) ) ++b; else { b *= a; a = 0; } if ( a < b ) if ( a < c ) m = a; else m = c; else if ( b < c ) m = b; else m = c;

Слайд 7





Пример
Описание слайда:
Пример

Слайд 8





Пример 2
Описание слайда:
Пример 2

Слайд 9





Проверка вещественных величин на равенство
Из-за погрешности представления вещественных значений в памяти следует ее избегать, вместо этого лучше сравнивать модуль разности с некоторым малым числом. 
float a, b; …
if  ( a == b ) …                             // не рекомендуется!
if  ( Math.Abs(a - b) < 1e-6 ) …      // надежно!
Значение величины, с которой сравнивается модуль разности, следует выбирать в зависимости от решаемой задачи и точности участвующих в выражении переменных. 
Снизу эта величина ограничена определенной в классах Single и Double константой Epsilon. Это минимально возможное значение переменной такое, что 
1.0 + Epsilon != 1.0
Описание слайда:
Проверка вещественных величин на равенство Из-за погрешности представления вещественных значений в памяти следует ее избегать, вместо этого лучше сравнивать модуль разности с некоторым малым числом. float a, b; … if ( a == b ) … // не рекомендуется! if ( Math.Abs(a - b) < 1e-6 ) … // надежно! Значение величины, с которой сравнивается модуль разности, следует выбирать в зависимости от решаемой задачи и точности участвующих в выражении переменных. Снизу эта величина ограничена определенной в классах Single и Double константой Epsilon. Это минимально возможное значение переменной такое, что 1.0 + Epsilon != 1.0

Слайд 10





Оператор выбора switch
switch ( выражение ){
	case константное_выражение_1: [ список_операторов_1 ]
	case константное_выражение_2: [ список_операторов_2 ]
	
	case константное_выражение_n: [ список_операторов_n ]
	[ default: операторы ]
}
Описание слайда:
Оператор выбора switch switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] case константное_выражение_n: [ список_операторов_n ] [ default: операторы ] }

Слайд 11





Пример: Калькулятор на четыре действия 
using System; namespace ConsoleApplication1
{   class Class1    {   static void Main()        {
         Console.WriteLine( "Введите 1й операнд:" ); 
	    double a = double.Parse(Console.ReadLine());
	    Console.WriteLine( "Введите знак" );
	    char op = (char)Console.Read(); Console.ReadLine();
	    Console.WriteLine( "Введите 2й операнд:" ); 
	    double b = 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 );
        else    Console.WriteLine( "Недопустимая операция" );
}}}
Описание слайда:
Пример: Калькулятор на четыре действия using System; namespace ConsoleApplication1 { class Class1 { static void Main() { Console.WriteLine( "Введите 1й операнд:" ); double a = double.Parse(Console.ReadLine()); Console.WriteLine( "Введите знак" ); char op = (char)Console.Read(); Console.ReadLine(); Console.WriteLine( "Введите 2й операнд:" ); double b = 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 ); else Console.WriteLine( "Недопустимая операция" ); }}}

Слайд 12







Операторы цикла:
 с предусловием - while 
 с постусловием - do
 с параметром - for
 перебора - foreach
Описание слайда:
Операторы цикла: с предусловием - while с постусловием - do с параметром - for перебора - foreach

Слайд 13





Структура оператора цикла
Описание слайда:
Структура оператора цикла

Слайд 14





Цикл с предусловием 
while ( выражение ) оператор
Описание слайда:
Цикл с предусловием while ( выражение ) оператор

Слайд 15





Цикл с постусловием 
do 
    оператор
while  выражение;
Описание слайда:
Цикл с постусловием do оператор while выражение;

Слайд 16





Цикл с параметром 
for ( инициализация; выражение; модификации ) оператор;
int s = 0;
for ( int i = 1; i <= 100; i++ ) s += i; 
for ( int i = 0, j = 20; i < 5 && j > 10; i++, j-- ) …
 


for ( double x = Xn; x <= Xk; x += dX ) { …; …; … }
Описание слайда:
Цикл с параметром for ( инициализация; выражение; модификации ) оператор; int s = 0; for ( int i = 1; i <= 100; i++ ) s += i; for ( int i = 0, j = 20; i < 5 && j > 10; i++, j-- ) … for ( double x = Xn; x <= Xk; x += dX ) { …; …; … }

Слайд 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 <= Xk; x += dX )
            {
                y = t * x;
                Console.WriteLine( "| {0,9} | {1,9} |", x, y );  
            }
        }
    }
}
Описание слайда:
Пример цикла с параметром 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 <= Xk; x += dX ) { y = t * x; Console.WriteLine( "| {0,9} | {1,9} |", x, y ); } } } }

Слайд 18





Рекомендации по написанию циклов
Использовать do-while, если цикл обязательно требуется выполнить хотя бы один раз (например, при проверке ввода);
в остальных случаях, как правило, применять for. 
Не забывать заключать в блок тело цикла, состоящее более чем из одного оператора;
проверять, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла;
предусматривать аварийный выход из итеративного цикла* по достижению некоторого предельно допустимого количества итераций.
------------
* цикл, количество повторений которого невозможно вычислить заранее
Описание слайда:
Рекомендации по написанию циклов Использовать do-while, если цикл обязательно требуется выполнить хотя бы один раз (например, при проверке ввода); в остальных случаях, как правило, применять for. Не забывать заключать в блок тело цикла, состоящее более чем из одного оператора; проверять, изменяется ли в теле цикла хотя бы одна переменная, входящая в условие продолжения цикла; предусматривать аварийный выход из итеративного цикла* по достижению некоторого предельно допустимого количества итераций. ------------ * цикл, количество повторений которого невозможно вычислить заранее

Слайд 19







Передача управления:
 break
 continue
 return
 goto
 throw
Описание слайда:
Передача управления: break continue return goto throw

Слайд 20





Передача управления
оператор break — завершает выполнение цикла, внутри которого записан
оператор continue — выполняет переход к следующей итерации цикла
оператор return — выполняет выход из функции, внутри которой он записан
оператор goto — выполняет безусловную передачу управления
оператор throw — генерирует исключительную ситуацию.
Описание слайда:
Передача управления оператор break — завершает выполнение цикла, внутри которого записан оператор continue — выполняет переход к следующей итерации цикла оператор return — выполняет выход из функции, внутри которой он записан оператор goto — выполняет безусловную передачу управления оператор throw — генерирует исключительную ситуацию.

Слайд 21





Пример: вычисление суммы ряда
Написать программу вычисления значения функции sin с помощью степенного ряда с точностью  ε по формуле:
Описание слайда:
Пример: вычисление суммы ряда Написать программу вычисления значения функции sin с помощью степенного ряда с точностью ε по формуле:

Слайд 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());
Описание слайда:
Пример: вычисление суммы ряда 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());

Слайд 23





Оператор return 
завершает выполнение функции и передает управление в точку ее вызова:
return [ выражение ];
Описание слайда:
Оператор return завершает выполнение функции и передает управление в точку ее вызова: return [ выражение ];

Слайд 24





Обработка ошибок
Возможные действия при ошибке:
прервать выполнение программы;
возвратить значение, означающее «ошибка»;
вывести сообщение об ошибке и вернуть вызывающей программе некоторое приемлемое значение, которое позволит ей продолжать работу;
выбросить исключение.
Исключения генерирует либо система выполнения, либо программист с помощью оператора throw.
Описание слайда:
Обработка ошибок Возможные действия при ошибке: прервать выполнение программы; возвратить значение, означающее «ошибка»; вывести сообщение об ошибке и вернуть вызывающей программе некоторое приемлемое значение, которое позволит ей продолжать работу; выбросить исключение. Исключения генерирует либо система выполнения, либо программист с помощью оператора throw.

Слайд 25





Простая проверка ввода
Описание слайда:
Простая проверка ввода

Слайд 26





Проверка ввода с помощью цикла do-while
using System;
namespace ConsoleApplication1
{   class Program
    {   static void Main()  {
            const int max_attempts = 3;
            int i = 0;
            do
            {
                Console.WriteLine( "Введите  значение > 0:" );
                double a = double.Parse(Console.ReadLine());
                ++i; if ( i >= max_attempts ) { … return; }
            } while ( a <= 0 );
        }
    }            // ограничивать кол-во попыток обязательно!
}
Описание слайда:
Проверка ввода с помощью цикла do-while using System; namespace ConsoleApplication1 { class Program { static void Main() { const int max_attempts = 3; int i = 0; do { Console.WriteLine( "Введите значение > 0:" ); double a = double.Parse(Console.ReadLine()); ++i; if ( i >= max_attempts ) { … return; } } while ( a <= 0 ); } } // ограничивать кол-во попыток обязательно! }

Слайд 27





Рекомендуемая структура обработки ошибок исходных данных
Описание слайда:
Рекомендуемая структура обработки ошибок исходных данных

Слайд 28





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

Слайд 29





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

Слайд 30





Оператор try 
Служит для обнаружения и обработки исключений.
Оператор содержит три части:
контролируемый блок — составной оператор, предваряемый ключевым словом try. В контролируемый блок включаются потенциально опасные операторы программы. Все функции, прямо или косвенно вызываемые из блока, также считаются ему принадлежащими;
один или несколько обработчиков исключений — блоков catch, в которых описывается, как обрабатываются ошибки различных типов;
блок завершения finally, выполняемый независимо от того, возникла ли ошибка в контролируемом блоке.
Описание слайда:
Оператор try Служит для обнаружения и обработки исключений. Оператор содержит три части: контролируемый блок — составной оператор, предваряемый ключевым словом try. В контролируемый блок включаются потенциально опасные операторы программы. Все функции, прямо или косвенно вызываемые из блока, также считаются ему принадлежащими; один или несколько обработчиков исключений — блоков catch, в которых описывается, как обрабатываются ошибки различных типов; блок завершения finally, выполняемый независимо от того, возникла ли ошибка в контролируемом блоке.

Слайд 31





Механизм обработки исключений
Функция или операция, в которой возникла ошибка, генерируют исключение;
Выполнение текущего блока прекращается, отыскивается соответствующий обработчик исключения, ему передается управление.
В любом случае (была ошибка или нет) выполняется блок finally, если он присутствует. 
Если обработчик не найден, вызывается стандартный обработчик исключения.
Описание слайда:
Механизм обработки исключений Функция или операция, в которой возникла ошибка, генерируют исключение; Выполнение текущего блока прекращается, отыскивается соответствующий обработчик исключения, ему передается управление. В любом случае (была ошибка или нет) выполняется блок finally, если он присутствует. Если обработчик не найден, вызывается стандартный обработчик исключения.

Слайд 32





Пример 1: 
try {
		// Контролируемый блок 
}
catch ( OverflowException e ) { 
				// Обработка переполнения
}
catch ( DivideByZeroException ) { 
				// Обработка деления на 0
}
catch { 
		// Обработка всех остальных исключений 
}
Описание слайда:
Пример 1: try { // Контролируемый блок } catch ( OverflowException e ) { // Обработка переполнения } catch ( DivideByZeroException ) { // Обработка деления на 0 } catch { // Обработка всех остальных исключений }

Слайд 33





Иллюстрация генерации исключения
Описание слайда:
Иллюстрация генерации исключения

Слайд 34





Пример 2: проверка ввода 
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( "Неопознанное исключение" );
            }
        }
Описание слайда:
Пример 2: проверка ввода 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( "Неопознанное исключение" ); } }

Слайд 35





Оператор throw 
throw [ выражение ];
Описание слайда:
Оператор throw throw [ выражение ];

Слайд 36





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

Слайд 37





Рекомендации по программированию – 1/2 
Главная цель, к которой нужно стремиться, — получить легко читаемую программу возможно более простой структуры. 
Создание программы начинают с определения ее исходных данных и результатов (тип, диапазон). 
Затем записывают на естественном языке (возможно, с применением обобщенных блок-схем), что именно и как должна делать программа. 
При кодировании необходимо помнить о принципах структурного программирования: программа должна состоять из четкой последовательности блоков — базовых конструкций. 
Имена переменных должны отражать их смысл. Переменные желательно инициализировать при их объявлении. 
Следует избегать использования в программе чисел в явном виде (кроме 0 и 1). 
Программа должна быть «прозрачна». Для записи каждого фрагмента алгоритма используются наиболее подходящие средства языка.
Описание слайда:
Рекомендации по программированию – 1/2 Главная цель, к которой нужно стремиться, — получить легко читаемую программу возможно более простой структуры. Создание программы начинают с определения ее исходных данных и результатов (тип, диапазон). Затем записывают на естественном языке (возможно, с применением обобщенных блок-схем), что именно и как должна делать программа. При кодировании необходимо помнить о принципах структурного программирования: программа должна состоять из четкой последовательности блоков — базовых конструкций. Имена переменных должны отражать их смысл. Переменные желательно инициализировать при их объявлении. Следует избегать использования в программе чисел в явном виде (кроме 0 и 1). Программа должна быть «прозрачна». Для записи каждого фрагмента алгоритма используются наиболее подходящие средства языка.

Слайд 38





Рекомендации по программированию – 2/2 
В программе необходимо предусматривать реакцию на неверные входные данные. 
Необходимо предусматривать печать сообщений или выбрасывание исключения в тех точках программы, куда управление при нормальной работе программы передаваться не должно.
Сообщение об ошибке должно быть информативным и подсказывать пользователю, как ее исправить.  
После написания программу следует тщательно отредактировать.
Комментарии должны представлять собой правильные предложения без сокращений и со знаками препинания.
Описание слайда:
Рекомендации по программированию – 2/2 В программе необходимо предусматривать реакцию на неверные входные данные. Необходимо предусматривать печать сообщений или выбрасывание исключения в тех точках программы, куда управление при нормальной работе программы передаваться не должно. Сообщение об ошибке должно быть информативным и подсказывать пользователю, как ее исправить. После написания программу следует тщательно отредактировать. Комментарии должны представлять собой правильные предложения без сокращений и со знаками препинания.

Слайд 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 = t * x;
    else if ( x >= 10 )               y = 2 * t;
    else                                    y = x;
После знаков препинания должны использоваться пробелы: 
 f=a+b;                    // плохо! Лучше f = a + b;
Описание слайда:
Форматирование программы Вложенные блоки должны иметь отступ в 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 = t * x; else if ( x >= 10 ) y = 2 * t; else y = x; После знаков препинания должны использоваться пробелы: f=a+b; // плохо! Лучше f = a + b;



Похожие презентации
Mypresentation.ru
Загрузить презентацию