🗊Презентация ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере

Нажмите для полного просмотра!
ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №1ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №2ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №3ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №4ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №5ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №6ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №7ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №8ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №9ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №10ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №11ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №12ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №13ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №14ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №15ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №16ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №17ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №18ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №19ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №20ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №21ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №22ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №23ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №24ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №25ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №26ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере, слайд №27

Содержание

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

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


Слайд 1





ПЯВУ. Лекция 3.
Основы программирования.
А.М. Задорожный
Описание слайда:
ПЯВУ. Лекция 3. Основы программирования. А.М. Задорожный

Слайд 2





Контрольные вопросы
Какой составной оператор (оператор, включающий другие операторы) мы рассмотрели на прошлой лекции? Что он позволяет делать?
Какие типы данных встречались в лекциях?
Что такое литерал в тексте программы? Привести примеры.
Описание слайда:
Контрольные вопросы Какой составной оператор (оператор, включающий другие операторы) мы рассмотрели на прошлой лекции? Что он позволяет делать? Какие типы данных встречались в лекциях? Что такое литерал в тексте программы? Привести примеры.

Слайд 3





Содержание
Понятие цикла
Оператор while
Представление целых чисел в компьютере
Побитовые операции над целыми
Действительные числа и их представление в компьютере (числа с плавающей точкой)
Описание слайда:
Содержание Понятие цикла Оператор while Представление целых чисел в компьютере Побитовые операции над целыми Действительные числа и их представление в компьютере (числа с плавающей точкой)

Слайд 4





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

Слайд 5





Оператор while
while (<булевское выражение>)	 // Условие продолжения цикла
{
	<инструкции> 	// Тело цикла
}
Порядок выполнения цикла:
Вычисляется условие.
Если условие истинно, выполняется тело цикла
Если условие ложно, оператор цикла заканчивается. Выполнение передается следующему за ним оператору.
Описание слайда:
Оператор while while (<булевское выражение>) // Условие продолжения цикла { <инструкции> // Тело цикла } Порядок выполнения цикла: Вычисляется условие. Если условие истинно, выполняется тело цикла Если условие ложно, оператор цикла заканчивается. Выполнение передается следующему за ним оператору.

Слайд 6





Пример. 
Сумма ряда
Задача: найти сумму первых N натуральных чисел.
N – входные данные.
int i = 1, sum = 0;	// sum – аккумулятор, i - счетчик
while(i <= N)
{
	sum = sum + i;	// прибавляем к sum очередное число
	i = i + 1;		// переходим к следующему числу
}
// В переменной sum содержится искомая сумма.
Console.WriteLine(sum);
Описание слайда:
Пример. Сумма ряда Задача: найти сумму первых N натуральных чисел. N – входные данные. int i = 1, sum = 0; // sum – аккумулятор, i - счетчик while(i <= N) { sum = sum + i; // прибавляем к sum очередное число i = i + 1; // переходим к следующему числу } // В переменной sum содержится искомая сумма. Console.WriteLine(sum);

Слайд 7





Пример.
Проверка простоты числа
Задача: Выяснить, является ли натуральное число N простым.
N – входные данные
int i = 2;			// i – счетчик
bool prim = true; 		// сначала считаем простым
while(i <= Math.Sqrt(N) && prim)
{
	if(N %  i == 0) prim = false;
	i = i + 1;
}
// Выходные данные – переменная prim.
// Если prim истинно, то N простое. Иначе – составное.
Описание слайда:
Пример. Проверка простоты числа Задача: Выяснить, является ли натуральное число N простым. N – входные данные int i = 2; // i – счетчик bool prim = true; // сначала считаем простым while(i <= Math.Sqrt(N) && prim) { if(N % i == 0) prim = false; i = i + 1; } // Выходные данные – переменная prim. // Если prim истинно, то N простое. Иначе – составное.

Слайд 8





Контрольные вопросы
Что такое Цикл в программировании?
Какой оператор C# позволяет организовать цикл?
Обязательно ли присутствуют круглые скобки в записи оператора цикла?
Что указывается в круглых скобках оператора while?
Описание слайда:
Контрольные вопросы Что такое Цикл в программировании? Какой оператор C# позволяет организовать цикл? Обязательно ли присутствуют круглые скобки в записи оператора цикла? Что указывается в круглых скобках оператора while?

Слайд 9





Представление целых чисел в компьютере
Целое – 4 байта (32 бита)
Сложение в двоичной системе. Для 8 бит: пусть x = 11111111.
	11111111
	00000001
	---------------
	00000000
Тогда x + 1 = 0 => x = -1!
В компьютере обычно старший бит числа определяет знак: 
	Если он 1, то число отрицательное, 
	если 0 – положительное.
Остальные биты определяют модуль числа.
Описание слайда:
Представление целых чисел в компьютере Целое – 4 байта (32 бита) Сложение в двоичной системе. Для 8 бит: пусть x = 11111111. 11111111 00000001 --------------- 00000000 Тогда x + 1 = 0 => x = -1! В компьютере обычно старший бит числа определяет знак: Если он 1, то число отрицательное, если 0 – положительное. Остальные биты определяют модуль числа.

Слайд 10





Представление целых чисел в компьютере
Задачи. 
Сколько различных значений может принимать величина типа int? (int занимает 4 байта)
Сколько различных отрицательных значений может принимать величина типа int? Какое значение минимально?
Сколько положительных значений может принимать величина типа int? Каково максимальное значение?
Описание слайда:
Представление целых чисел в компьютере Задачи. Сколько различных значений может принимать величина типа int? (int занимает 4 байта) Сколько различных отрицательных значений может принимать величина типа int? Какое значение минимально? Сколько положительных значений может принимать величина типа int? Каково максимальное значение?

Слайд 11





Целые числа и побитовые  операции
Бит – логическое значение (0 или 1)
В C# существуют побитовые операции |, &, ~ и ^.
Побитовые операции применяются независимо к каждому биту числа.
В отличие от логических, они обозначаются одинарными значками.
Описание слайда:
Целые числа и побитовые операции Бит – логическое значение (0 или 1) В C# существуют побитовые операции |, &, ~ и ^. Побитовые операции применяются независимо к каждому биту числа. В отличие от логических, они обозначаются одинарными значками.

Слайд 12





Целые числа и побитовые  операции
| – побитовое ‘или’
0001
0010
0011
& – побитовое ‘и’
1001
1010
1000
^ – побитовое ‘исключающее или’ (XOR)
1001
1010
0011
~ – побитовое отрицание
~1001
  0110
Описание слайда:
Целые числа и побитовые операции | – побитовое ‘или’ 0001 0010 0011 & – побитовое ‘и’ 1001 1010 1000 ^ – побитовое ‘исключающее или’ (XOR) 1001 1010 0011 ~ – побитовое отрицание ~1001 0110

Слайд 13





Побитовое представление числа
Задача. Вывести двоичное представление числа на консоль.
int m = 128, k = …; 			// k не больше 255
if(k & m != 0) Console.Write(1);  
else Console.Write(0);
m = m/2;
if(k & m != 0) Console.Write(1);
else Console.Write(0);
m = m/2;
…
И так 8 раз.
Описание слайда:
Побитовое представление числа Задача. Вывести двоичное представление числа на консоль. int m = 128, k = …; // k не больше 255 if(k & m != 0) Console.Write(1); else Console.Write(0); m = m/2; if(k & m != 0) Console.Write(1); else Console.Write(0); m = m/2; … И так 8 раз.

Слайд 14





Двоичное представление с циклом
Задача. Вывести двоичное представление числа на консоль.
int m = 1024 * 1024 * 1024; 	// 2^30
if (x < 0)				//Обработать знаковый бит
	Console.Write(1);
else
	Console.Write(0);
while (m != 0)
{
if ((x & m) != 0)
	Console.Write(1);
else
	Console.Write(0);
m = m / 2;			//Смещаем 1 вправо на 1 разряд
}
Описание слайда:
Двоичное представление с циклом Задача. Вывести двоичное представление числа на консоль. int m = 1024 * 1024 * 1024; // 2^30 if (x < 0) //Обработать знаковый бит Console.Write(1); else Console.Write(0); while (m != 0) { if ((x & m) != 0) Console.Write(1); else Console.Write(0); m = m / 2; //Смещаем 1 вправо на 1 разряд }

Слайд 15





Упражнения
Входные данные – целочисленная переменная x.
int m=1;		// раньше было 2^30
while(m != 0)
{
             if((x & m)  !=  0)
                    Console.Write(1);
             else
                    Console.Write(0);
             m = 2*m; 	//Смещаем 1 на 1 разряд влево. Раньше смещали вправо  - m = m / 2
} 
Почему цикл закончится?
Сколько символов будет выведено на консоль?
Что изменится, если условие цикла m != 0 заменить на условие m > 0? Почему? 
Выполните программу, задав начальное значение x = int.MinValue. Обратите внимание на полученный результат.
Описание слайда:
Упражнения Входные данные – целочисленная переменная x. int m=1; // раньше было 2^30 while(m != 0) { if((x & m) != 0) Console.Write(1); else Console.Write(0); m = 2*m; //Смещаем 1 на 1 разряд влево. Раньше смещали вправо - m = m / 2 } Почему цикл закончится? Сколько символов будет выведено на консоль? Что изменится, если условие цикла m != 0 заменить на условие m > 0? Почему? Выполните программу, задав начальное значение x = int.MinValue. Обратите внимание на полученный результат.

Слайд 16





Действительные числа
Целых чисел на практике мало. Нужны действительные числа.
В компьютере действительным числам соответствуют числа с плавающей точкой (запятой).
double x = 0.5; // int x = 1; bool f = true;
Описание слайда:
Действительные числа Целых чисел на практике мало. Нужны действительные числа. В компьютере действительным числам соответствуют числа с плавающей точкой (запятой). double x = 0.5; // int x = 1; bool f = true;

Слайд 17





Свойства чисел с плавающей точкой
Диапазон от 10200 до 10-200
+, -, *, / - операция деления выполняется обычным образом, т.е. в результате получается дробное число.
Библиотека математических функций: Math.Abs(x), Math.Cos(x)/ Math.Sin(x), Math.Exp(x), Math.Log10(x), Math.Pow(x, y), Math.Sqrt(x), …
Описание слайда:
Свойства чисел с плавающей точкой Диапазон от 10200 до 10-200 +, -, *, / - операция деления выполняется обычным образом, т.е. в результате получается дробное число. Библиотека математических функций: Math.Abs(x), Math.Cos(x)/ Math.Sin(x), Math.Exp(x), Math.Log10(x), Math.Pow(x, y), Math.Sqrt(x), …

Слайд 18





Особенности double
Double – не действительные числа. (В компьютере только целые числа - коды)
Double занимают 8 байт. Их диапазон огромен, но их число ограничено! 
Вычисления выполняются приближенно!
double x = 1.1, y = 1, z = 0.1;
(x – (y + z)) != ((x - y) – z)
Различие составляет ~ 8.33*10-17
Описание слайда:
Особенности double Double – не действительные числа. (В компьютере только целые числа - коды) Double занимают 8 байт. Их диапазон огромен, но их число ограничено! Вычисления выполняются приближенно! double x = 1.1, y = 1, z = 0.1; (x – (y + z)) != ((x - y) – z) Различие составляет ~ 8.33*10-17

Слайд 19





Представление с плавающей точкой
X = m*10exp
m – мантисса
exp – экспонента
А так же знаковый бит.
Диапазон определяется экспонентой;
Точность определяется мантиссой;
Описание слайда:
Представление с плавающей точкой X = m*10exp m – мантисса exp – экспонента А так же знаковый бит. Диапазон определяется экспонентой; Точность определяется мантиссой;

Слайд 20





Умножение и сложение с плавающей точкой
Умножение
M = m1*m2         здесь количество знаков увеличится
Exp = exp1+exp2
Нормализация  здесь мантисса переводится в нужный диапазон и обрезается, а экспонента компенсирует сдвиг мантиссы

Сложение
Выравнивание порядков
M = m1+m2         здесь количество знаков увеличится
Нормализация  здесь мантисса переводится в нужный диапазон и обрезается, а экспонента компенсирует сдвиг мантиссы
Описание слайда:
Умножение и сложение с плавающей точкой Умножение M = m1*m2 здесь количество знаков увеличится Exp = exp1+exp2 Нормализация здесь мантисса переводится в нужный диапазон и обрезается, а экспонента компенсирует сдвиг мантиссы Сложение Выравнивание порядков M = m1+m2 здесь количество знаков увеличится Нормализация здесь мантисса переводится в нужный диапазон и обрезается, а экспонента компенсирует сдвиг мантиссы

Слайд 21





Смешанные выражения и =
Смешанные выражения - выражения, в которых присутствуют различные числовые типы.
int n = 4;
double x = 3;
double y = n * x;
int m = n * x;	// Синтаксическая ошибка
Описание слайда:
Смешанные выражения и = Смешанные выражения - выражения, в которых присутствуют различные числовые типы. int n = 4; double x = 3; double y = n * x; int m = n * x; // Синтаксическая ошибка

Слайд 22





“Ловушки” в выражениях
Порядок вычислений
3/4*2.0  		// == 0
2.0*3/4		// == 1.5
Вид операции /
2.0/4*3		// это не 2/12, а 6/4
2.0/(4*3)
Описание слайда:
“Ловушки” в выражениях Порядок вычислений 3/4*2.0 // == 0 2.0*3/4 // == 1.5 Вид операции / 2.0/4*3 // это не 2/12, а 6/4 2.0/(4*3)

Слайд 23





Скобки и оптимизация
Как упростить выражение для компьютера?
3*x*x +4*x+ 2. // Умножений – 3, сложений – 2.
(3*x + 4)*x +2. // Умножений  - 2, сложений  - 2.
3*x*x*x+2*x*x+3*x + 4 = > ((3*x+2)*x+3)*x + 3
Cохранение промежуточных результатов
(3x3+2x2+3x + 4)*(3x3+2x2+3x + 4) 
y = ((3*x+2)*x+3)*x + 3.
y*y.
Описание слайда:
Скобки и оптимизация Как упростить выражение для компьютера? 3*x*x +4*x+ 2. // Умножений – 3, сложений – 2. (3*x + 4)*x +2. // Умножений - 2, сложений - 2. 3*x*x*x+2*x*x+3*x + 4 = > ((3*x+2)*x+3)*x + 3 Cохранение промежуточных результатов (3x3+2x2+3x + 4)*(3x3+2x2+3x + 4) y = ((3*x+2)*x+3)*x + 3. y*y.

Слайд 24





Пример.
Площадь треугольника
double a = 2, b = 3, c = 4.
Формула Герона S = (p(p-a)(p-b)(p-c))1/2.
double p = (a + b + c) / 2;
double S = Math.Sqrt(p*(p-a)*(p-b)*(p-c));
Описание слайда:
Пример. Площадь треугольника double a = 2, b = 3, c = 4. Формула Герона S = (p(p-a)(p-b)(p-c))1/2. double p = (a + b + c) / 2; double S = Math.Sqrt(p*(p-a)*(p-b)*(p-c));

Слайд 25





Пример.
cos угла между двумя векторами
x = (x1, x2, x3),  y = (y1, y2, y3)
cos(xy) = (x*y)/(|x|*|y|)
doube xy = x1*y1+x2*y2+x3*y3;
double mx = Math.Sqrt(x1*x1+x2*x2+x3*x3), 	    my = Math.Sqrt(y1*y1+y2*y2+y3*y3);
double cosXY = xy/(mx*my);
Описание слайда:
Пример. cos угла между двумя векторами x = (x1, x2, x3), y = (y1, y2, y3) cos(xy) = (x*y)/(|x|*|y|) doube xy = x1*y1+x2*y2+x3*y3; double mx = Math.Sqrt(x1*x1+x2*x2+x3*x3), my = Math.Sqrt(y1*y1+y2*y2+y3*y3); double cosXY = xy/(mx*my);

Слайд 26





Число Pi
Вычислить Pi как сумму ряда Pi=4/1-4/3+4/5-4/7+… с точностью eps = 0.00001.
double pi = 0, eps = 0.00001;
double i = 1, alpha = 4/i - 4/(i+2);
while (alpha > eps)
{
	pi = pi + alpha;
	i = i + 4;
	alpha = 4 / i - 4 / (i + 2);
}
Почему цикл закончится?
Где аккумулятор?
Описание слайда:
Число Pi Вычислить Pi как сумму ряда Pi=4/1-4/3+4/5-4/7+… с точностью eps = 0.00001. double pi = 0, eps = 0.00001; double i = 1, alpha = 4/i - 4/(i+2); while (alpha > eps) { pi = pi + alpha; i = i + 4; alpha = 4 / i - 4 / (i + 2); } Почему цикл закончится? Где аккумулятор?

Слайд 27





Контрольные вопросы
Каким типом в C# представляются действительные числа?
Почему этот тип не представляет действительных чисел в математическом смысле?
Как записываются литералы, представляющие тип double?
Почему ограничен диапазон double? Почему ограничена точность?
Могут ли в одном выражении участвовать числовые данные разных типов?
Можно ли переменной типа double присвоить значение типа int? А наоборот?
Описание слайда:
Контрольные вопросы Каким типом в C# представляются действительные числа? Почему этот тип не представляет действительных чисел в математическом смысле? Как записываются литералы, представляющие тип double? Почему ограничен диапазон double? Почему ограничена точность? Могут ли в одном выражении участвовать числовые данные разных типов? Можно ли переменной типа double присвоить значение типа int? А наоборот?



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