Меню
Разработки
Разработки  /  Информатика  /  Презентации  /  Прочее  /  Программирование типовых операций

Программирование типовых операций

Презентация использовалась на занятиях профессионального модуля в ОПК СТИ НИТУ МИСиС

21.12.2017

Содержимое разработки

Тема 4 Введение в язык программирования С#  Лекция 4.3. Программирование типовых операций.

Тема 4

Введение в язык программирования С#

Лекция 4.3.

Программирование типовых операций.

Литература Основная: Павловская Т.А., Щупако Ю.А. C / C ++. Структурное программирование, Питер, 2005. – 402 с.  Дополнительная: Гросс К. С# 2008: Пер. с. анг. – СПб. БХВ-Петербург, 2009. – 576 с. Троелсен Э. Язык программирования С# 2005 и платформа /NET 2.0:пер. с анг. – М:. ООО «И.Д. Вильямс, 2007. – 1168 с.

Литература

Основная:

Павловская Т.А., Щупако Ю.А. C / C ++. Структурное программирование, Питер, 2005. – 402 с.

Дополнительная:

Гросс К. С# 2008: Пер. с. анг. – СПб. БХВ-Петербург, 2009. – 576 с.

Троелсен Э. Язык программирования С# 2005 и платформа /NET 2.0:пер. с анг. – М:. ООО «И.Д. Вильямс, 2007. – 1168 с.

Вопросы: 1. Программирование разветвлений.  2. Программирование циклов.  3. Преобразование типов данных.

Вопросы:

1. Программирование разветвлений. 2. Программирование циклов. 3. Преобразование типов данных.

1. Программирование разветвлений

1. Программирование разветвлений

b в качестве результата дают логическое значение Обозначение = = = != Значение больше меньше больше или равно меньше или равно равно не равно " width="640"

В языке C# есть тип данных bool , который используется для объявления переменных логических типа. Значения логических переменных: true (истина); false (ложь). Операции сравнения числовых величин а операция b в качестве результата дают логическое значение

Обозначение

=

= =

!=

Значение

больше

меньше

больше или равно

меньше или равно

равно

не равно

Логические операции над булевыми операндами                 Значение р езультата логических операций true или  false . Обозна-чение Пояснение & | ^ ~ && || Логическое И  ( AND ) x & y Логическое ИЛИ (OR)  x|y Отрицание равнозначности Логическое отрицание  Условное логическое И ( x&&y , если x имеет значение false , то y  не вычисляется - операция И имеет значение false вне зависимости от значения y ). Условное логическое ИЛИ ( x||y , если x имеет значение true , y не рассчитывается - результат операции OR является true независимо от значения y ).

Логические операции над булевыми операндами Значение р езультата логических операций true или false .

Обозна-чение

Пояснение

&

|

^

~

&&

||

Логическое И ( AND ) x & y

Логическое ИЛИ (OR) x|y

Отрицание равнозначности

Логическое отрицание

Условное логическое И ( x&&y , если x имеет значение false , то y не вычисляется - операция И имеет значение false вне зависимости от значения y ).

Условное логическое ИЛИ ( x||y , если x имеет значение true , y не рассчитывается - результат операции OR является true независимо от значения y ).

Логические операции & ,  | , ^ выполняются над логическими и над целыми величинами. В случае целых величин операции выполняются над отдельными двоичными разрядами:    1 соответствует true ,  0 – false .  К поразрядным относят операции :  логического сложения | ,  логического умножения & ,  сложения по модулю два ^ (отрицание равнозначности)  логического отрицания ~ .  Например:  7 10 &4 10  это 111 2 &100 2  =  100 2 , т.е. результат равен 4 10 , 5 10 &7 10  равно  2 10 .  Приоритет логических операций ниже арифметических. Старшинство логических операций убывает в следующей последовательности: операции сравнения, равенства и неравенства, & , ^ , |. Операция ~ относится к унарным префиксным операциям.

Логические операции & , | , ^ выполняются над логическими и над целыми величинами. В случае целых величин операции выполняются над отдельными двоичными разрядами: 1 соответствует true , 0 – false . К поразрядным относят операции : логического сложения | , логического умножения & , сложения по модулю два ^ (отрицание равнозначности) логического отрицания ~ . Например: 7 10 &4 10 это 111 2 &100 2 = 100 2 , т.е. результат равен 4 10 , 5 10 &7 10 равно 2 10 . Приоритет логических операций ниже арифметических. Старшинство логических операций убывает в следующей последовательности: операции сравнения, равенства и неравенства, & , ^ , |. Операция ~ относится к унарным префиксным операциям.

= 3)&&( nOzenka ( nOzenka = =5)||( nOzenka = =4) ( y 1=2 && y 1 ) (r3.14) && (r 9 .15) (dValue != 0) Примеры операторов с логическими данными: bool dUsp; dUsp=true; dUsp= ( nOzenka = =5)||( nOzenka = =4) ; " width="640"

Условные логические операции применимы к целым и вещественным величинам Примеры записи операций сравнения (n Ozenka = 3)&&( nOzenka ( nOzenka = =5)||( nOzenka = =4) ( y 1=2 && y 1 ) (r3.14) && (r 9 .15) (dValue != 0) Примеры операторов с логическими данными: bool dUsp; dUsp=true; dUsp= ( nOzenka = =5)||( nOzenka = =4) ;

Оператор безусловного перехода  goto  ;     Метки специально объявлять не надо, они ставятся перед оператором:  goto met 1;  …  met 1: y =1;

Оператор безусловного перехода goto ;   Метки специально объявлять не надо, они ставятся перед оператором: goto met 1; met 1: y =1;

) { операторы 1 ;} else { операторы 2 ;} Условие записывается в круглых скобках, оно представляет собой логическое выражение. Если условие соответствует истинности выполняется операторы 1. В случае ложности выполняется операторы 2. Операторы заканчивается символом " ; ". Пример записи условного оператора if ((a0)&&(a if (d=0) {x1= –a+d; x2= –a–d;} else {x1=0; x2=0.0;} После операторных скобок перед else символ " ; " не ставится. " width="640"

Условный оператор имеет две формы записи – полную и сокращенную. Полная форма if ( условие ) { операторы 1 ;} else { операторы 2 ;} Условие записывается в круглых скобках, оно представляет собой логическое выражение. Если условие соответствует истинности выполняется операторы 1. В случае ложности выполняется операторы 2. Операторы заканчивается символом " ; ". Пример записи условного оператора if ((a0)&&(a if (d=0) {x1= –a+d; x2= –a–d;} else {x1=0; x2=0.0;} После операторных скобок перед else символ " ; " не ставится.

) { операторы 3 ;} Операторы 3 выполняются только в случае истинности условия. Если условие ложно, то условный оператор эквивалентен «пустому» оператору. Перед закрывающей операторной скобкой символ " ; " записывается обязательно. Условные операторы можно вкладывать друг в друга. " width="640"

Сокращенный вариант записи if ( условие ) { операторы 3 ;} Операторы 3 выполняются только в случае истинности условия. Если условие ложно, то условный оператор эквивалентен «пустому» оператору. Перед закрывающей операторной скобкой символ " ; " записывается обязательно. Условные операторы можно вкладывать друг в друга.

) { case i 1: /*действия для случая, когда переменная принимает значение, равное i 1 */ break; case i 2: /* действия для случая, когда переменная принимает значение, равное i 2 */ break ; … //конечно многоточие в программе отсутствует default : // действия для случая, когда переменная принимает значение, отличающееся от перечисленных значений break ; } " width="640"

При необходимости произвести разветвление на несколько ветвей применяют оператор switch : switch ( переменная порядкового типа ) { case i 1: /*действия для случая, когда переменная принимает значение, равное i 1 */ break; case i 2: /* действия для случая, когда переменная принимает значение, равное i 2 */ break ; … //конечно многоточие в программе отсутствует default : // действия для случая, когда переменная принимает значение, отличающееся от перечисленных значений break ; }

Выполнение оператора:  - управление передается оператору case , метка которого совпадает со значением переменной в switch . Оператор switch может включать любое количество экземпляров case , но два оператора case не могут иметь одинаковое значение;  - переменная должна иметь целый, символьный тип или быть строкой символов. Нельзя использовать вещественные числа;  - значения case должны иметь тот же тип, что и переменная;  - после двоеточия за case может стоять один или несколько операторов;  - значения case должны быть константами;  - если ни одно выражение case не совпадает со значением переменной switch , управление передается операторам, следующим за необязательной меткой default . Если метки default нет, то управление передается за пределы оператора switch ;  - оператор break передает управление за пределы конструкции switch .

Выполнение оператора: - управление передается оператору case , метка которого совпадает со значением переменной в switch . Оператор switch может включать любое количество экземпляров case , но два оператора case не могут иметь одинаковое значение; - переменная должна иметь целый, символьный тип или быть строкой символов. Нельзя использовать вещественные числа; - значения case должны иметь тот же тип, что и переменная; - после двоеточия за case может стоять один или несколько операторов; - значения case должны быть константами; - если ни одно выражение case не совпадает со значением переменной switch , управление передается операторам, следующим за необязательной меткой default . Если метки default нет, то управление передается за пределы оператора switch ; - оператор break передает управление за пределы конструкции switch .

int ozenka =0;  . . .  // Пример записи оператора  switch ( ozenka )  {  case 5:   case 4: Console . WriteLine (

int ozenka =0; . . . // Пример записи оператора switch ( ozenka ) { case 5: case 4: Console . WriteLine ("Отл. и хор. успеваемость"); break; case 3: Console.WriteLine("Уд. успеваемость"); break; case 2:Console.WriteLine("Неуд. успеваемость"); break; default: Console.WriteLine(" Недопустимая оценка "); break; }

b?a:b Применение y=ab?a:b " width="640"

Условная трехместная операция:

условие ? операнд1: операнд2

Пример записи условной операции: ab?a:b

Применение

y=ab?a:b

2. Программирование циклов

2. Программирование циклов

Цикл с постусловием  начальные установки  do  {   //тело цикла  ( выполняется хотя бы один раз )  }   while ( условие );   Цикл с предусловием  начальные установки   while ( условие )  {   // тело цикла ( может не выполнится ни разу )  }

Цикл с постусловием начальные установки do { //тело цикла ( выполняется хотя бы один раз ) } while ( условие ); Цикл с предусловием начальные установки while ( условие ) { // тело цикла ( может не выполнится ни разу ) }

; условие ; операторы2 ) { // тело цикла } Операторы break и continue . " width="640"

Цикл типа for for ( операторы1 ; условие ; операторы2 ) { // тело цикла }

Операторы break и continue .

3. Преобразование типов данных

3. Преобразование типов данных

Тип арифметического выражения определяется типом входящих в выражение операндов.  Пусть выражение включает два операнда. Если оба операнда имеют одинаковый тип, то и выражение будет этого же типа. Если операнды имеют различный тип, то тип выражения будет соответствовать «старшему» типу, т.е. система берет на себя преобразование младшего типа к старшему перед выполнением операции. Старшинство типов в порядке возрастания: sbyte , short , int , long , float , double .  Арифметические операции не определены для более коротких, чем int типов. Для таких величин перед выполнением операций осуществляется преобразование в тип int .

Тип арифметического выражения определяется типом входящих в выражение операндов. Пусть выражение включает два операнда. Если оба операнда имеют одинаковый тип, то и выражение будет этого же типа. Если операнды имеют различный тип, то тип выражения будет соответствовать «старшему» типу, т.е. система берет на себя преобразование младшего типа к старшему перед выполнением операции. Старшинство типов в порядке возрастания: sbyte , short , int , long , float , double . Арифметические операции не определены для более коротких, чем int типов. Для таких величин перед выполнением операций осуществляется преобразование в тип int .

Если переменная слева от знака присваивания имеет тот же тип, что и у выражения справа от знака присваивания, то происходит простое присваивание переменной нового значения.  Если переменная слева от знака присвоения имеет более старший тип, чем тип выражения справа, то перед присвоением значения производится автоматическое изменение типа.  Если переменная слева имеет более младший тип, чем выражение справа, то при компиляции выдается сообщение об ошибке. В такой ситуации требуется явное преобразование типа.

Если переменная слева от знака присваивания имеет тот же тип, что и у выражения справа от знака присваивания, то происходит простое присваивание переменной нового значения. Если переменная слева от знака присвоения имеет более старший тип, чем тип выражения справа, то перед присвоением значения производится автоматическое изменение типа. Если переменная слева имеет более младший тип, чем выражение справа, то при компиляции выдается сообщение об ошибке. В такой ситуации требуется явное преобразование типа.

Явное изменение типа выражения для простой числовой переменной осуществляется с помощью операции приведения типа  int n2=123;  double d4= 17.6;  n 1= n 2+( int ) d 4;  n 1=( int )( n 2+ d 4);  Операция приведения типа задается записью в круглых скобках перед переменной или выражением имени нового типа. Язык С# не разрешает простое преобразование любых типов в тип bool или преобразование типа bool в другие типы.   Явное приведение типа можно осуществлять как в сторону повышения, так и в сторону понижения типа.

Явное изменение типа выражения для простой числовой переменной осуществляется с помощью операции приведения типа int n2=123; double d4= 17.6; n 1= n 2+( int ) d 4; n 1=( int )( n 2+ d 4); Операция приведения типа задается записью в круглых скобках перед переменной или выражением имени нового типа. Язык С# не разрешает простое преобразование любых типов в тип bool или преобразование типа bool в другие типы. Явное приведение типа можно осуществлять как в сторону повышения, так и в сторону понижения типа.

Явное преобразование можно осуществлять с помощью специальных команд:  Convert.ToInt32(val)  Convert.ToInt64(val)  Convert.ToDouble(val)  Convert . ToString ( val )  Convert . ToBoolean ( val )  и др. Здесь вместо val может стоять переменная или выражение любого допустимого типа.  Такой способ преобразования применяют при вводе числовой информации с клавиатуры (в этом случае val  представляет собой строку).  Для переменной булевого типа:  true , если val не равно 0;  false , если val равно 0.

Явное преобразование можно осуществлять с помощью специальных команд: Convert.ToInt32(val) Convert.ToInt64(val) Convert.ToDouble(val) Convert . ToString ( val ) Convert . ToBoolean ( val ) и др. Здесь вместо val может стоять переменная или выражение любого допустимого типа. Такой способ преобразования применяют при вводе числовой информации с клавиатуры (в этом случае val представляет собой строку). Для переменной булевого типа: true , если val не равно 0; false , если val равно 0.

В ходе преобразования типа возможны проблемы:  - преобразование из типов int , long в тип  float и из типа long в тип  double может вызвать потерю точности (количество знаков в мантиссе вещественного числа меньше количества разрядов, отводимых для представления целых чисел);  - преобразование вещественных чисел в целые может приводить к возникновению ошибки времени выполнения, так как диапазон вещественных чисел существенно больше диапазона целых величин;  - переменная val может содержать нечисловые данные, набранные пользователем.

В ходе преобразования типа возможны проблемы: - преобразование из типов int , long в тип float и из типа long в тип double может вызвать потерю точности (количество знаков в мантиссе вещественного числа меньше количества разрядов, отводимых для представления целых чисел); - преобразование вещественных чисел в целые может приводить к возникновению ошибки времени выполнения, так как диапазон вещественных чисел существенно больше диапазона целых величин; - переменная val может содержать нечисловые данные, набранные пользователем.

Наряду с обычными значениями вещественных величин в языке присутствуют и два специальных значения: положительная PositiveInfinity  и отрицательная NegativeInfinity бесконечность. Такое значение величина приобретает при превышении допустимого диапазона значений. Например, перемножение чисел 1е200 и 1е210 дает PositiveInfinity , - 1.0/0 дает NegativeInfinity ; «не число» NaN (Not a Number) , т.е. результат выполнения операции является не числом, например результат выполнения  -1.0e200  *  1e200  *  0 . При работе с величинами типа Infinity и NaN используются специальные правила определения типа результата. Чтобы определить, равно ли значение минус бесконечности, используется метод IsNegativeInfinity . Определить это путем сравнения с другим значением, равным NegativeInfinity невозможно. Для величин целого типа значений Infinity не предусмотрено.

Наряду с обычными значениями вещественных величин в языке присутствуют и два специальных значения:

положительная PositiveInfinity и отрицательная NegativeInfinity бесконечность. Такое значение величина приобретает при превышении допустимого диапазона значений. Например, перемножение чисел 1е200 и 1е210 дает PositiveInfinity , - 1.0/0 дает NegativeInfinity ;

«не число» NaN (Not a Number) , т.е. результат выполнения операции является не числом, например результат выполнения -1.0e200 * 1e200 * 0 .

При работе с величинами типа Infinity и NaN используются специальные правила определения типа результата.

Чтобы определить, равно ли значение минус бесконечности, используется метод IsNegativeInfinity . Определить это путем сравнения с другим значением, равным NegativeInfinity невозможно.

Для величин целого типа значений Infinity не предусмотрено.

Результаты  операции z=x*y для вещественных чисел +y +x -y +z -x +0 -z +0 -z -0 +0 +0 +z -0 -0 + ∞ + ∞ -0 -0 -0 - ∞ + ∞ +0 - ∞ + ∞ +0 +0 NaN - ∞ NaN - ∞ - ∞ -0 - ∞ -0 NaN NaN +0 NaN + ∞ NaN + ∞ NaN NaN NaN NaN NaN NaN NaN + ∞ NaN NaN NaN - ∞ NaN - ∞ NaN NaN NaN + ∞ NaN NaN NaN Свои правила образования результатов существуют для других арифметических операций

Результаты операции z=x*y для вещественных чисел

+y

+x

-y

+z

-x

+0

-z

+0

-z

-0

+0

+0

+z

-0

-0

+

+

-0

-0

-0

-

+

+0

-

+

+0

+0

NaN

-

NaN

-

-

-0

-

-0

NaN

NaN

+0

NaN

+

NaN

+

NaN

NaN

NaN

NaN

NaN

NaN

NaN

+

NaN

NaN

NaN

-

NaN

-

NaN

NaN

NaN

+

NaN

NaN

NaN

Свои правила образования результатов существуют для других арифметических операций

Вопросы для самоподготовки Программирование циклов с предусловием и постусловием. Циклы типа for . Структура оператора switch . Изучить постановку задачи на практическое занятие и сформулировать предложения по описанию алгоритма.

Вопросы для самоподготовки

  • Программирование циклов с предусловием и постусловием.
  • Циклы типа for .
  • Структура оператора switch .
  • Изучить постановку задачи на практическое занятие и сформулировать предложения по описанию алгоритма.
Тема № 4 «Введение в язык программирования С#» Занятие № 4.4. «Разработка программы с разветвлениями и циклами»  Задание к практическому занятию Составить программу расчета определенного интеграла для функции, представленной в виде суммы бесконечного знакопеременного, сходящегося ряда  f ( x ) = arctg x = x – при | x |  В качестве исходных данных задаются: значение пределов интегрирования а и b (положительные или отрицательные вещественные величины), абсолютная погрешность вычисления функции E (положительная величина, в диапазоне от 0,000001 до 0,001). Суммированию подлежат члены ряда до тех пор, пока очередное слагаемое не станет меньше, чем заданная погрешность Е .

Тема № 4 «Введение в язык программирования С#»

Занятие № 4.4. «Разработка программы с разветвлениями и циклами»

Задание к практическому занятию

Составить программу расчета определенного интеграла для функции, представленной в виде суммы бесконечного знакопеременного, сходящегося ряда

f ( x ) = arctg x = x

при | x |

В качестве исходных данных задаются:

значение пределов интегрирования а и b (положительные или отрицательные вещественные величины),

абсолютная погрешность вычисления функции E (положительная величина, в диапазоне от 0,000001 до 0,001).

Суммированию подлежат члены ряда до тех пор, пока очередное слагаемое не станет меньше, чем заданная погрешность Е .

-80%
Курсы дополнительного образования

Основы HTML

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Программирование типовых операций (301.5 KB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт

Пользовательское соглашение Политика обработки персональных данных Политика использования файлов cookie
Учителю!
Огромная база учебных материалов на каждый урок с возможностью удаленного управления
Тесты, видеоуроки, электронные тетради