- Программирование на языке Си

Презентация "Программирование на языке Си" по информатике – проект, доклад

Слайд 1
Слайд 2
Слайд 3
Слайд 4
Слайд 5
Слайд 6
Слайд 7
Слайд 8
Слайд 9
Слайд 10
Слайд 11
Слайд 12
Слайд 13
Слайд 14
Слайд 15
Слайд 16
Слайд 17
Слайд 18
Слайд 19
Слайд 20
Слайд 21
Слайд 22
Слайд 23
Слайд 24
Слайд 25
Слайд 26
Слайд 27
Слайд 28
Слайд 29
Слайд 30
Слайд 31
Слайд 32
Слайд 33
Слайд 34
Слайд 35
Слайд 36
Слайд 37
Слайд 38
Слайд 39
Слайд 40
Слайд 41
Слайд 42
Слайд 43
Слайд 44
Слайд 45
Слайд 46
Слайд 47
Слайд 48
Слайд 49
Слайд 50
Слайд 51
Слайд 52
Слайд 53
Слайд 54
Слайд 55
Слайд 56
Слайд 57
Слайд 58
Слайд 59
Слайд 60
Слайд 61
Слайд 62
Слайд 63
Слайд 64
Слайд 65
Слайд 66
Слайд 67
Слайд 68
Слайд 69
Слайд 70
Слайд 71
Слайд 72

Презентацию на тему "Программирование на языке Си" можно скачать абсолютно бесплатно на нашем сайте. Предмет проекта: Информатика. Красочные слайды и иллюстрации помогут вам заинтересовать своих одноклассников или аудиторию. Для просмотра содержимого воспользуйтесь плеером, или если вы хотите скачать доклад - нажмите на соответствующий текст под плеером. Презентация содержит 72 слайд(ов).

Слайды презентации

Структурное программирование на языке Си. © К.Ю. Поляков, 2007-2009. Теория Проект Графики функций Точки пересечения Штриховка Вычисление площади Оформление отчета
Слайд 1

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

© К.Ю. Поляков, 2007-2009

Теория Проект Графики функций Точки пересечения Штриховка Вычисление площади Оформление отчета

Тема 1. Теория
Слайд 2

Тема 1. Теория

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

Этапы разработки программ

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

Разработка модели данных формальная модель типы данных (массивы, структуры, …) взаимосвязь между данными Разработка алгоритма выбор существующего или разработка нового возможен возврат к шагу 2 Разработка программы Языки: C, C++, Visual Basic, Delphi (Паскаль), `… Отладка программы (поиск и исправле
Слайд 4

Разработка модели данных формальная модель типы данных (массивы, структуры, …) взаимосвязь между данными Разработка алгоритма выбор существующего или разработка нового возможен возврат к шагу 2 Разработка программы Языки: C, C++, Visual Basic, Delphi (Паскаль), `… Отладка программы (поиск и исправление ошибок) debug – извлечение жучков (bug), 1945, MAРK-I отладчик (точки останова, пошаговый режим, просмотр переменных) профайлер (сколько выполняется каждая из процедур)

Тестирование программы (проверка на исходных данных, для которых известен результат) альфа-тестирование: внутри фирмы (тестеры) бета-тестирование: в других организациях, распространение через Интернет Разработка документации справочная система руководство пользователя (User Manual) руководство разра
Слайд 5

Тестирование программы (проверка на исходных данных, для которых известен результат) альфа-тестирование: внутри фирмы (тестеры) бета-тестирование: в других организациях, распространение через Интернет Разработка документации справочная система руководство пользователя (User Manual) руководство разработчика Сопровождение (техническая поддержка) исправление ошибок, найденных заказчиком обучение и консультирование заказчика новые версии по льготной цене

Методы проектирования программ. основная программа. процедуры 1-ого уровня. процедуры 2-ого уровня. снизу вверх сверху вниз
Слайд 6

Методы проектирования программ

основная программа

процедуры 1-ого уровня

процедуры 2-ого уровня

снизу вверх сверху вниз

Проектирование «снизу вверх». сначала составляются процедуры нижнего уровня, из которых затем «собираются» процедуры более высокого уровня. легче начать программировать более эффективные процедуры процедуры необходимо связывать с основной задачей («держать в голове») при окончательной сборке может н
Слайд 7

Проектирование «снизу вверх»

сначала составляются процедуры нижнего уровня, из которых затем «собираются» процедуры более высокого уровня. легче начать программировать более эффективные процедуры процедуры необходимо связывать с основной задачей («держать в голове») при окончательной сборке может не хватить «кубиков» часто программа получается запутанной сложно распределить работу в команде

Проектирование «сверху вниз». метод последовательного уточнения: начинаем с основной программы; она разбивается на подзадачи, для каждой из которых пишется процедура-«заглушка»; реализуем каждую из процедур тем же способом. меньше вероятность принципиальной ошибки (начали с главного) проще структура
Слайд 8

Проектирование «сверху вниз»

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

Структурное программирование. Существовавшие проблемы: увеличилась сложность программ сократилось время на разработку Цели: повысить надежность уменьшить время и стоимость разработки облегчить тестирование и отладку возможность переделки одного модуля улучшить читабельность без переходов на другую с
Слайд 9

Структурное программирование

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

Принципы: абстракции: программу можно рассматривать на любом уровне без лишних подробностей модульности: программа разбивается на отдельные модули, которые могут отлаживаться независимо друг от друга подчиненности: связь между модулями «сверху вниз» локальности: каждый модуль использует только свои
Слайд 10

Принципы: абстракции: программу можно рассматривать на любом уровне без лишних подробностей модульности: программа разбивается на отдельные модули, которые могут отлаживаться независимо друг от друга подчиненности: связь между модулями «сверху вниз» локальности: каждый модуль использует только свои локальные переменные, глобальные переменные только в крайних случаях

Модуль. Модуль – это программный блок (процедура или функция), отделенный от кода других модулей, который полностью решает самостоятельную задачу своего уровня. работа модуля не зависит от того, откуда он вызывается, и от того, сколько раз он вызывался до этого размер модуля не более 50-60 строк (1
Слайд 11

Модуль

Модуль – это программный блок (процедура или функция), отделенный от кода других модулей, который полностью решает самостоятельную задачу своего уровня. работа модуля не зависит от того, откуда он вызывается, и от того, сколько раз он вызывался до этого размер модуля не более 50-60 строк (1 страница) модуль имеет один вход и один выход модуль начинается с «шапки»-комментария (входные данные, результаты, какие модули использует) имена переменных – смысловые в одной строке – один оператор «трюки» – долой

Оформление текста программы. Шапка – комментарий в начале процедур и функций. //---------------------------------------- // Sum сумма элементов массива // Вход: A[] – массив целых чисел // n - размер массива // Выход: S = A[0]+A[1]+...+A[n-1] // Вызывает: - //----------------------------------------
Слайд 12

Оформление текста программы

Шапка – комментарий в начале процедур и функций.

//---------------------------------------- // Sum сумма элементов массива // Вход: A[] – массив целых чисел // n - размер массива // Выход: S = A[0]+A[1]+...+A[n-1] // Вызывает: - //---------------------------------------- int Sum ( int A[], float n ) { ... }

Отступы – тело цикла, условного оператора, оператора выбора и т.п. сдвигается вправо на 2-3 символа. for(i=0;i
Слайд 13

Отступы – тело цикла, условного оператора, оператора выбора и т.п. сдвигается вправо на 2-3 символа.

for(i=0;i

for ( i=0; i

легче читать текст программы видны блоки просто найти ошибки со скобками (лишняя, не хватает)

«говорящие» имена функций, процедур, переменных: Sum, ShowMenu, count, speed. пробелы в операторах выделение пустыми строками и комментариями важных блоков. for(i=0;i
Слайд 14

«говорящие» имена функций, процедур, переменных: Sum, ShowMenu, count, speed. пробелы в операторах выделение пустыми строками и комментариями важных блоков

for(i=0;i

// ввод данных printf( "Введите число\n" ); scanf ( "%d", &n ); //вычисления n2 = n*n; // вывод результата printf ( "Его квадрат %d", n2 );

Тема 2. Проект
Слайд 15

Тема 2. Проект

Проект «Графики функций». построить координатные оси и сделать их разметку построить графики заданных функций (по вариантам)
Слайд 16

Проект «Графики функций»

построить координатные оси и сделать их разметку построить графики заданных функций (по вариантам)

найти точки пересечения графиков, используя численные методы заштриховать образованную замкнутую область. x=3,58 y=2,14 x=1,40 y=1,55
Слайд 17

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

x=3,58 y=2,14 x=1,40 y=1,55

вычислить площадь этой области двумя способами оформить отчет по работе. S1=3,014 S2=3,025
Слайд 18

вычислить площадь этой области двумя способами оформить отчет по работе

S1=3,014 S2=3,025

Структура программы. #include #include #include #include main() { initwindow(800,600); getch(); closegraph(); }. глобальные константы и переменные. процедуры и функции
Слайд 19

Структура программы

#include #include #include #include main() { initwindow(800,600); getch(); closegraph(); }

глобальные константы и переменные

процедуры и функции

Разбивка программы на этапы. Axes(); // оси координат Plot(); // графики функций Cross(); // точки пересечения графиков Hatch(); // штриховка Area(); // площадь (способ 1) Area2(); // площадь (способ 2). Основная программа. Процедуры-заглушки. //------------------------------------ // Axes оси коорд
Слайд 20

Разбивка программы на этапы

Axes(); // оси координат Plot(); // графики функций Cross(); // точки пересечения графиков Hatch(); // штриховка Area(); // площадь (способ 1) Area2(); // площадь (способ 2)

Основная программа

Процедуры-заглушки

//------------------------------------ // Axes оси координат //------------------------------------ void Axes() { }

Тема 3. Графики функций
Слайд 21

Тема 3. Графики функций

Функции, заданные в явном виде. y = f (x)
Слайд 22

Функции, заданные в явном виде

y = f (x)

Функции, заданные в неявном виде. f (x, y) = 0. пример: уравнение эллипса
Слайд 23

Функции, заданные в неявном виде

f (x, y) = 0

пример: уравнение эллипса

полюс. Полярные координаты. А(, )  - полярный угол.  - полярный радиус. Примеры: Описание фигур, полученных при вращении объектов.  = f ()  = R окружность  = a ∙ спираль Архимеда O  = a∙sin(2/3) «роза»
Слайд 24

полюс

Полярные координаты

А(, )  - полярный угол

 - полярный радиус

Примеры:

Описание фигур, полученных при вращении объектов.

 = f ()  = R окружность  = a ∙ спираль Архимеда O  = a∙sin(2/3) «роза»

Переход к декартовым координатам
Слайд 25

Переход к декартовым координатам

Описание в параметрической форме. t – независимый параметр («время») Описание фигур, полученных при сложном движении объектов. x = f1 (t) y = f2 (t). Циклоида – траектория точки на ободе колеса при вращении. R y x 0
Слайд 26

Описание в параметрической форме

t – независимый параметр («время») Описание фигур, полученных при сложном движении объектов.

x = f1 (t) y = f2 (t)

Циклоида – траектория точки на ободе колеса при вращении

R y x 0

Системы координат. Математическая Экранная. Преобразование координат: X0, Y0 – экранные координаты точки (0,0) k – масштаб (во сколько раз растягивается единичный отрезок)
Слайд 27

Системы координат

Математическая Экранная

Преобразование координат: X0, Y0 – экранные координаты точки (0,0) k – масштаб (во сколько раз растягивается единичный отрезок)

#include #include #include #include const int X0 = 100, Y0 = 400, // начало координат k = 80; // масштаб main() { initwindow(800, 600); getch(); closegraph(); }. глобальные переменные. основная часть
Слайд 28

#include #include #include #include const int X0 = 100, Y0 = 400, // начало координат k = 80; // масштаб main() { initwindow(800, 600); getch(); closegraph(); }

глобальные переменные

основная часть

Перевод в экранные координаты. //----------------------------------------- // SCREENX – перевод X в координаты экрана //----------------------------------------- int ScreenX (float x) { return X0+k*x; } //----------------------------------------- // SCREENY – перевод Y в координаты экрана //--------
Слайд 29

Перевод в экранные координаты

//----------------------------------------- // SCREENX – перевод X в координаты экрана //----------------------------------------- int ScreenX (float x) { return X0+k*x; } //----------------------------------------- // SCREENY – перевод Y в координаты экрана //----------------------------------------- int ScreenY (float y) { return Y0-k*y; }

Оси координат. void Axes() { line ( X0, 0, X0, 599 ); line ( 0, Y0, 799, Y0 ); }
Слайд 30

Оси координат

void Axes() { line ( X0, 0, X0, 599 ); line ( 0, Y0, 799, Y0 ); }

Разметка оси X («черточки»). (xЭ, Y0−2) (xЭ, Y0+2). Число меток на [0, xmax]: длина 800 – X0 единичный отрезок k. void Axes() { int i, xe; ... for (i = 1; i
Слайд 31

Разметка оси X («черточки»)

(xЭ, Y0−2) (xЭ, Y0+2)

Число меток на [0, xmax]: длина 800 – X0 единичный отрезок k

void Axes() { int i, xe; ... for (i = 1; i <= (800-X0)/k; i++) { xe = ScreenX(i); line ( xe, Y0-2, xe, Y0+2 ); } }

переходим к экранным координатам

Разметка оси X (числа). 1 xЭ. Вывод символьной строки в графическом режиме: outtextxy(x, y, s); void Axes() { char s[5]; ... for (i = 1; i
Слайд 32

Разметка оси X (числа)

1 xЭ

Вывод символьной строки в графическом режиме: outtextxy(x, y, s);

void Axes() { char s[5]; ... for (i = 1; i <= (800-X0)/k; i++) { ... sprintf ( s, "%d", i ); outtextxy ( xe-4, Y0+3, s ); } }

координаты левого верхнего угла

(xЭ-4, Y0+3) 8 на 8

перевести целое число i в строку s

строка: char s[5];

вывести строку s на экран

с запасом…

Оси с разметкой (полностью). void Axes() { int i, xe, ye; char s[5]; line ( X0, 0, X0, 599 ); line ( 0, Y0, 799, Y0 ); for (i = 1; i
Слайд 33

Оси с разметкой (полностью)

void Axes() { int i, xe, ye; char s[5]; line ( X0, 0, X0, 599 ); line ( 0, Y0, 799, Y0 ); for (i = 1; i <= (800-X0)/k; i++) { xe = ScreenX(i); line ( xe, Y0-2, xe, Y0+2 ); sprintf ( s, "%d", i ); outtextxy ( xe-4, Y0+3, s ); } ... }

Задания. «4»: Сделать разметку осей полностью (не только положительной части оси X). «5»: Сделать задание на «4», использовав только 2 цикла (1 цикл для каждой оси).
Слайд 34

Задания

«4»: Сделать разметку осей полностью (не только положительной части оси X). «5»: Сделать задание на «4», использовав только 2 цикла (1 цикл для каждой оси).

Построение графика по точкам. Границы области «видимости»:
Слайд 35

Построение графика по точкам

Границы области «видимости»:

Вывод точки с проверкой. //---------------------------------------- // POINT вывод пикселя с проверкой и // пересчетом координат //---------------------------------------- void Point ( float x, float y, int color ) { int xe, ye; xe = ScreenX(x); ye = ScreenY(y); if ( xe >= 0 && xe < 80
Слайд 36

Вывод точки с проверкой

//---------------------------------------- // POINT вывод пикселя с проверкой и // пересчетом координат //---------------------------------------- void Point ( float x, float y, int color ) { int xe, ye; xe = ScreenX(x); ye = ScreenY(y); if ( xe >= 0 && xe < 800 && ye >= 0 && ye < 600) putpixel(xe, ye, color); }

если точка (xЭ, yЭ) в пределах экрана…

координаты в математической системе

цвет точки

Описание функций. //----------------------------------------- // F1, F2 // Вход: x // Выход: y = f(x) //----------------------------------------- float f1 ( float x ) { return sqrt(x+1); } float f2 ( float x ) { return 4*sin(x-1); }
Слайд 37

Описание функций

//----------------------------------------- // F1, F2 // Вход: x // Выход: y = f(x) //----------------------------------------- float f1 ( float x ) { return sqrt(x+1); } float f2 ( float x ) { return 4*sin(x-1); }

Области определения. //---------------------------------------- // ODZ1 – область определения f1(x) // Вход: x // Выход: 1, если x входит в ОДЗ // 0, если x не входит в ОДЗ //---------------------------------------- int odz1 ( float x ) { return ( x >= -1 ); }. не нужно! if ( x >= -1 ) return
Слайд 38

Области определения

//---------------------------------------- // ODZ1 – область определения f1(x) // Вход: x // Выход: 1, если x входит в ОДЗ // 0, если x не входит в ОДЗ //---------------------------------------- int odz1 ( float x ) { return ( x >= -1 ); }

не нужно!

if ( x >= -1 ) return 1; else return 0;

Вывод графика функции. //---------------------------------------- // PLOT вывод графиков функций //---------------------------------------- void Plot () { float xmin = - 1.* X0 / k, xmax = (800. - X0) / k; float x, h = (xmax - xmin) / 1000; }. чтобы не отбрасывать остаток. границы видимой части. шаг
Слайд 39

Вывод графика функции

//---------------------------------------- // PLOT вывод графиков функций //---------------------------------------- void Plot () { float xmin = - 1.* X0 / k, xmax = (800. - X0) / k; float x, h = (xmax - xmin) / 1000; }

чтобы не отбрасывать остаток

границы видимой части

шаг по x

for ( x = xmin; x <= xmax; x += h) if ( odz1(x) ) Point(x, f1(x), LIGHTRED);

Общее расположение. float f1 ( float x ) { return sqrt( x + 1 ); } int odz1 ( float x ) { return x >= -1; } ... void Point(float x, float y, int color) { ... } ... void Plot() { ... for ( x = xmin; x
Слайд 40

Общее расположение

float f1 ( float x ) { return sqrt( x + 1 ); } int odz1 ( float x ) { return x >= -1; } ... void Point(float x, float y, int color) { ... } ... void Plot() { ... for ( x = xmin; x <= xmax; x += h) if ( odz1(x) ) Point(x, f1(x), LIGHTRED); }

«4»: Построить графики в соответствии с заданием. «5»: Построить графики, соединив точки линиями.
Слайд 41

«4»: Построить графики в соответствии с заданием. «5»: Построить графики, соединив точки линиями.

Тема 4. Точки пересечения
Слайд 42

Тема 4. Точки пересечения

Точки пересечения. f1 (x*) = f2 (x*) a b f1 (x*) – f2 (x*) = 0 f (x*) = 0 Пример: Проблема: уравнение сложно (или невозможно) решить аналитически (получить формулу для x*). Точка пересечения:
Слайд 43

Точки пересечения

f1 (x*) = f2 (x*) a b f1 (x*) – f2 (x*) = 0 f (x*) = 0 Пример:

Проблема: уравнение сложно (или невозможно) решить аналитически (получить формулу для x*)

Точка пересечения:

Методы решения уравнений. f (x) = 0. Точные (аналитические) Приближенные графические численные (методы последовательного приближения): по графику найти интервал [a, b], в котором находится x* (или одно начальное приближение x0) по некоторому алгоритму уточнить решение, сужая интервал, в котором нахо
Слайд 44

Методы решения уравнений

f (x) = 0

Точные (аналитические) Приближенные графические численные (методы последовательного приближения): по графику найти интервал [a, b], в котором находится x* (или одно начальное приближение x0) по некоторому алгоритму уточнить решение, сужая интервал, в котором находится x* повторять шаг 2, пока не достигнута требуемая точность:

b – a < 

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

Численные методы

Применение: используются тогда, когда точное (аналитическое) решение неизвестно или очень трудоемко.

дают хотя бы какое-то решение во многих случаях можно оценить ошибку и найти решение с заданной точностью

решение всегда приближенное, неточное

Метод прямого («тупого») перебора. Задача: найти решение уравнения f (x) = 0 на интервале [a, b] с заданной точностью  (чтобы найденное решение отличалось от истинного не более, чем на ). Алгоритм: разбить интервал [a, b] на полосы шириной  найти полосу [a*, b*], в которой находится x* решение –
Слайд 46

Метод прямого («тупого») перебора

Задача: найти решение уравнения f (x) = 0 на интервале [a, b] с заданной точностью  (чтобы найденное решение отличалось от истинного не более, чем на ).

Алгоритм: разбить интервал [a, b] на полосы шириной  найти полосу [a*, b*], в которой находится x* решение – a* или b*

Есть ли решение на [a, b]? есть решение нет решения
Слайд 47

Есть ли решение на [a, b]?

есть решение нет решения

Метод дихотомии (деление пополам). Найти середину отрезка [a,b]: c = (a + b) / 2; Если f(c)*f(a)
Слайд 48

Метод дихотомии (деление пополам)

Найти середину отрезка [a,b]: c = (a + b) / 2; Если f(c)*f(a)<0, сдвинуть правую границу интервала b = c; Если f(c)*f(a)≥ 0, сдвинуть левую границу интервала a = c; Повторять шаги 1-3, пока не будет b – a ≤ .

Метод дихотомии (деления пополам). простота можно получить решение с любой заданной точностью. нужно знать интервал [a, b] на интервале [a, b] должно быть только одно решение большое число шагов для достижения высокой точности только для функций одной переменной
Слайд 49

Метод дихотомии (деления пополам)

простота можно получить решение с любой заданной точностью

нужно знать интервал [a, b] на интервале [a, b] должно быть только одно решение большое число шагов для достижения высокой точности только для функций одной переменной

Метод дихотомии (в программе). //---------------------------------------------- // Solve находит точку пересечения на [a,b] // Вход: a, b – границы интервала, a < b // eps - точность решения // Выход: x – решение уравнения f1(x)=f2(x) //---------------------------------------------- float Solve (
Слайд 50

Метод дихотомии (в программе)

//---------------------------------------------- // Solve находит точку пересечения на [a,b] // Вход: a, b – границы интервала, a < b // eps - точность решения // Выход: x – решение уравнения f1(x)=f2(x) //---------------------------------------------- float Solve ( float a, float b, float eps ) { float c, fa, fc; while ( b - a > eps ) { c = (a + b) / 2; fa = f1(a) - f2(a); fc = f1(c) - f2(c); if ( fa*fc < 0 ) b = c; else a = c; } return (a + b) / 2; }

float xc1, xc2; ... float Solve ( float a, float b, float eps ) { ... } ... void Cross () { char s[20]; sprintf(s, "x=%.2f", xc1); outtextxy ( 150, 100, s ); sprintf(s, "y=%.2f", f1(xc1)); outtextxy ( 150, 120, s ); ... }. глобальные переменные: абсциссы точек пересечения. найти
Слайд 51

float xc1, xc2; ... float Solve ( float a, float b, float eps ) { ... } ... void Cross () { char s[20]; sprintf(s, "x=%.2f", xc1); outtextxy ( 150, 100, s ); sprintf(s, "y=%.2f", f1(xc1)); outtextxy ( 150, 120, s ); ... }

глобальные переменные: абсциссы точек пересечения

найти решение на интервале [1,2] с точностью 0,0001

xc1 = Solve ( 1, 2, 0.0001 );

вывод на экран через символьную строку

… и значение y!

то же самое для остальных точек

Тема 5. Штриховка
Слайд 52

Тема 5. Штриховка

Штриховка (две функции). xс2 xс1 y = f1 (x) y = f2 (x). void Hatch() { const int N = 10; float x, h = (xc2 - xc1) / (N + 1); int xe, yUp, yDown; for (x = xc1+h; x < xc2; x += h ) { xe = ScreenX ( x ); yUp = ScreenY ( f1(x) ); yDown = ScreenY ( f2(x) ); line ( xe, yUp, xe, yDown ); } }. экранная к
Слайд 53

Штриховка (две функции)

xс2 xс1 y = f1 (x) y = f2 (x)

void Hatch() { const int N = 10; float x, h = (xc2 - xc1) / (N + 1); int xe, yUp, yDown; for (x = xc1+h; x < xc2; x += h ) { xe = ScreenX ( x ); yUp = ScreenY ( f1(x) ); yDown = ScreenY ( f2(x) ); line ( xe, yUp, xe, yDown ); } }

экранная координата x

экранные координаты границ области по оси y

Штриховка (составная нижняя граница). xс3 N линий y = f3 (x). //---------------------------- // Down нижняя граница области //---------------------------- float Down ( float x ) { if ( x < xc2 ) return f2(x); else return f3(x); }
Слайд 54

Штриховка (составная нижняя граница)

xс3 N линий y = f3 (x)

//---------------------------- // Down нижняя граница области //---------------------------- float Down ( float x ) { if ( x < xc2 ) return f2(x); else return f3(x); }

Штриховка (общий случай). float Up ( float x ) { ... } float Down ( float x ) { ... } ... void Hatch() { const N = 10; float x, h = ( ? ) / (N + 1); int xe, yUp, yDown; for ( ? ; x += h ) { xe = ScreenX ( x ); yUp = ScreenY ( ? ); yDown = ScreenY ( ? ); line ( xe, yUp, xe, yDown ); } }. xc3 - xc1 x
Слайд 55

Штриховка (общий случай)

float Up ( float x ) { ... } float Down ( float x ) { ... } ... void Hatch() { const N = 10; float x, h = ( ? ) / (N + 1); int xe, yUp, yDown; for ( ? ; x += h ) { xe = ScreenX ( x ); yUp = ScreenY ( ? ); yDown = ScreenY ( ? ); line ( xe, yUp, xe, yDown ); } }

xc3 - xc1 x = xc1+h; x < xc3; Up(x) Down(x)

Тема 6. Вычисление площади
Слайд 56

Тема 6. Вычисление площади

Метод (левых) прямоугольников. S1 S2 S3 S4. void Area() { float x, S = 0, h=0.001; char out[20]; for ( x = xc1; x < xc2; x += h) S += h*(f1(x) – f2(x)); sprintf ( out, "S=%7.3f", S ); outtextxy ( 300, 300, out ); }. for ( x = xc1; x < xc2; x += h ) S += f1(x) – f2(x); S *= h;
Слайд 57

Метод (левых) прямоугольников

S1 S2 S3 S4

void Area() { float x, S = 0, h=0.001; char out[20]; for ( x = xc1; x < xc2; x += h) S += h*(f1(x) – f2(x)); sprintf ( out, "S=%7.3f", S ); outtextxy ( 300, 300, out ); }

for ( x = xc1; x < xc2; x += h ) S += f1(x) – f2(x); S *= h;

Метод (правых) прямоугольников. void Area() { float x, S = 0, h=0.001; char out[20]; for ( x = xc1; x < xc2; x += h) S += h*(f1(x+h) – f2(x+h)); sprintf ( out, "S=%7.3f", S ); outtextxy ( 300, 300, out ); }. for ( x = xc1; x < xc2; x += h ) S += f1(x+h) – f2(x+h); S *= h;
Слайд 58

Метод (правых) прямоугольников

void Area() { float x, S = 0, h=0.001; char out[20]; for ( x = xc1; x < xc2; x += h) S += h*(f1(x+h) – f2(x+h)); sprintf ( out, "S=%7.3f", S ); outtextxy ( 300, 300, out ); }

for ( x = xc1; x < xc2; x += h ) S += f1(x+h) – f2(x+h); S *= h;

Метод (средних) прямоугольников. for ( x = xc1; x < xc2; x += h ) S += f1(x+h/2) – f2(x+h/2); S *= h; левые (правые): средние
Слайд 59

Метод (средних) прямоугольников

for ( x = xc1; x < xc2; x += h ) S += f1(x+h/2) – f2(x+h/2); S *= h;

левые (правые): средние

Метод трапеций. for ( x = xc1; x < xc2; x += h ) S += f1(x) – f2(x) + f1(x+h) – f2(x+h); S *= h/2; S =( f1(xc1) - f2(xc1) + f1(xc2) - f2(xc2) )/2.; for ( x = xc1+h; x < xc2; x += h ) S += f1(x) – f2(x); S *= h;
Слайд 60

Метод трапеций

for ( x = xc1; x < xc2; x += h ) S += f1(x) – f2(x) + f1(x+h) – f2(x+h); S *= h/2;

S =( f1(xc1) - f2(xc1) + f1(xc2) - f2(xc2) )/2.; for ( x = xc1+h; x < xc2; x += h ) S += f1(x) – f2(x); S *= h;

Метод Монте-Карло. Применение: вычисление площадей сложных фигур (трудно применить другие методы). Требования: необходимо уметь достаточно просто определять, попала ли точка (x, y) внутрь фигуры. Пример: заданы 100 кругов (координаты центра, радиусы), которые могу пересекаться. Найти площадь области
Слайд 61

Метод Монте-Карло

Применение: вычисление площадей сложных фигур (трудно применить другие методы). Требования: необходимо уметь достаточно просто определять, попала ли точка (x, y) внутрь фигуры. Пример: заданы 100 кругов (координаты центра, радиусы), которые могу пересекаться. Найти площадь области, перекрытой кругами.

Вписываем сложную фигуру в другую фигуру, для которой легко вычислить площадь (прямоугольник, круг, …). Равномерно N точек со случайными координатами внутри прямоугольника. Подсчитываем количество точек, попавших на фигуру: M. 4. Вычисляем площадь: Всего N точек На фигуре M точек. Метод приближенный
Слайд 62

Вписываем сложную фигуру в другую фигуру, для которой легко вычислить площадь (прямоугольник, круг, …). Равномерно N точек со случайными координатами внутри прямоугольника. Подсчитываем количество точек, попавших на фигуру: M. 4. Вычисляем площадь:

Всего N точек На фигуре M точек

Метод приближенный. Распределение должно быть равномерным. Чем больше точек, тем точнее. Точность ограничена датчиком случайных чисел.

Случайное число в заданном интервале. //----------------------------------------- // randF – случайное вещественное число // в заданном интервале //----------------------------------------- float randF ( float a, float b) { return (b-a)*rand() / RAND_MAX + a; }. rand() rand()/RAND_MAX 1.*rand()/RAND
Слайд 63

Случайное число в заданном интервале

//----------------------------------------- // randF – случайное вещественное число // в заданном интервале //----------------------------------------- float randF ( float a, float b) { return (b-a)*rand() / RAND_MAX + a; }

rand() rand()/RAND_MAX 1.*rand()/RAND_MAX 1.*rand()/RAND_MAX + a (b-a)*rand()/RAND_MAX + a

целое [0, RAND_MAX] всегда 0!!! [0,1] [a,a+1] [a,b]

Проверка точки (внутри или нет?). //----------------------------------------- // Inside – определяет, находится ли точка // внутри фигуры // Вход: x, y – координаты точки // Выход: 1, если точка внутри фигуры, // 0, если точка вне фигуры //----------------------------------------- int Inside ( float
Слайд 64

Проверка точки (внутри или нет?)

//----------------------------------------- // Inside – определяет, находится ли точка // внутри фигуры // Вход: x, y – координаты точки // Выход: 1, если точка внутри фигуры, // 0, если точка вне фигуры //----------------------------------------- int Inside ( float x, float y ) { if ( Down(x) <= y && y <= Up(x) ) return 1; else return 0; }

int Inside ( float x, float y ) { return (Down(x) <= y && y <= Up(x)); }

Метод Монте-Карло (реализация). //---------------------------------------------------- // Area2 – вычисление площади методом Монте-Карло //---------------------------------------------------- void Area2 () { int i, N = 200000, M = 0; float float x, y, S; char out[20]; for (i=1; i
Слайд 65

Метод Монте-Карло (реализация)

//---------------------------------------------------- // Area2 – вычисление площади методом Монте-Карло //---------------------------------------------------- void Area2 () { int i, N = 200000, M = 0; float float x, y, S; char out[20]; for (i=1; i<=N; i++) { x = randF ( x1, x2 ); y = randF ( y1, y2 ); if ( Inside(x,y) ) M++; } S = (x2-x1)*(y2-y1)*M/N; sprintf(out, "S=%7.3f", S); outtextxy(300, 320, out); }

x1 = xc1, x2 = xc2, y1 = 1, y2 = 4;

границы прямоугольника (у каждого свои!)

S = (x2-x1)*(y2-y1)*M/N;

вычисление площади

если на фигуре, увеличить счетчик

Тема 7. Оформление отчета
Слайд 66

Тема 7. Оформление отчета

Титульный лист
Слайд 67

Титульный лист

Графики функций. «скриншот» (screenshot) – «снимок» экрана. через Редактор формул (Вставка – Объект – Microsoft Equation)
Слайд 68

Графики функций

«скриншот» (screenshot) – «снимок» экрана

через Редактор формул (Вставка – Объект – Microsoft Equation)

Как получить копию экрана? Поменять цвета так, чтобы все линии и текст были белые. Запустить программу (она должна все нарисовать). Нажать клавишу PrtScr (Print Screen – «снимок» экрана) на клавиатуре или комбинацию Alt+PrtScr («снимок» активного окна). В графическом редакторе (Paint): Правка – Вста
Слайд 69

Как получить копию экрана?

Поменять цвета так, чтобы все линии и текст были белые. Запустить программу (она должна все нарисовать). Нажать клавишу PrtScr (Print Screen – «снимок» экрана) на клавиатуре или комбинацию Alt+PrtScr («снимок» активного окна). В графическом редакторе (Paint): Правка – Вставить. Перевести в черно-белую палитру (Рисунок – Атрибуты – Палитра – Черно-белая). Инверсия (черный ↔ белый), Рисунок – Обратить цвета. Выделить нужную часть рисунка. Вставить в отчет через буфер обмена (Ctrl+C, Ctrl+V).

Программирование на языке Си Слайд: 70
Слайд 70
Текст программы. шрифт Courier New, (моноширинный) размер 10 пт
Слайд 71

Текст программы

шрифт Courier New, (моноширинный) размер 10 пт

Конец фильма
Слайд 72

Конец фильма

Список похожих презентаций

Введение в программирование на Java

Введение в программирование на Java

Курс – Объектно-ориентированное программирование Время изучения - 4 курс, 7 семестр Направление подготовки - "230105 - Программное обеспечение вычислительной ...
Влияние компьютера на психику человека

Влияние компьютера на психику человека

ПРОБЛЕМНЫЙ ВОПРОС. Как влияет компьютер на психику человека, и как совместить здоровый образ жизни и работу на компьютере? ЦЕЛЬ РАБОТЫ: Выявление ...
Влияние компьютера на психику человека

Влияние компьютера на психику человека

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

Влияние компьютера и компьютерных игр на здоровье и психику человека

Первая экспериментальная группа:. Вторая экспериментальная группа:. Выводы:. большинство детей и подростков отдают свое предпочтение музыкальным и ...
Влияние компьютерных игр на психику подростков

Влияние компьютерных игр на психику подростков

Интернет – Важнейшее достижение человечества. Цель работы:. Выявить особенности влияния интернет-игр на психику подростков. Поставленные задачи. 1. ...
Автоматизация решения задач ассистента отдела кредитного анализа фирмы ООО «Элемент Лизинг» на базе MS Access

Автоматизация решения задач ассистента отдела кредитного анализа фирмы ООО «Элемент Лизинг» на базе MS Access

Организационная структура предприятия. Организационная структура отдела кредитного анализа. Информационная модель. Информационная модель (продолжение). ...
Влияние компьютера на зрение

Влияние компьютера на зрение

Содержание. О влиянии компьютера на зрение Как защитить ваши глаза Как снять усталость Основные правила Упражнения, регулярная тренировка глаз Массаж ...
Влияние компьютера на здоровье человека

Влияние компьютера на здоровье человека

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

Влияние социальных сетей на подростков

Предыстория. Чтобы получить 50 миллионов пользователей радио потребовалось 40 лет Телевидению – 10 лет Интернету – 4 года iPod – 3 года Социальная ...
Влияние на организм младшего школьника компьютерных игр

Влияние на организм младшего школьника компьютерных игр

Объект исследования: процесс использования компьютера. Предмет исследования: виды компьютерных игр, и влияние их на развитие детей от 7 до 15 лет. ...
Анимация на VBA

Анимация на VBA

Автор презентации «Анимация на VB6» Помаскин Юрий Иванович - учитель информатики МБОУ СОШ№5 г. Кимовска Тульской области. Презентация сделана как ...
Влияние компьютера на человека

Влияние компьютера на человека

Головная боль Утомляемость Резь в глазах. Расстройство памяти. Нарушение сна Выпадение волос Покраснение кожи Аллергия Боли в животе Боли в пояснице ...
Анимация в презентации на примере физических явлений

Анимация в презентации на примере физических явлений

Цели урока:. Повышение интереса к предмету Информатика; Научится создавать анимации встроенную в презентацию; Воспитание информационной культуры учащихся, ...
Анализ отклика на случайное воздействие в MSC

Анализ отклика на случайное воздействие в MSC

Раздел 14. Анализ отклика на случайное воздействие. ТИПЫ ДИНАМИЧЕСКИХ ПРОЦЕССОВ………………………………… 14 - 4 АНАЛИЗ ОТКЛИКА НА СЛУЧАЙНОЕ ВОЗДЕЙСТВИЕ..……...…….. ...
Алгоритмы на примере среды программирования «Паркетчик»

Алгоритмы на примере среды программирования «Паркетчик»

Строка меню «Паркетчик». Основные команды паркетчика. Пример:. Программа { положить(к); Шаг вправо; положить(к); Шаг вправо; положить(к); }. Команды ...
Алгоритмы на графах: определение наличия циклов в графе

Алгоритмы на графах: определение наличия циклов в графе

Домашнее задание. Какое максимальное количество рёбер может быть в ориентированном ациклическом графе с n вершинами? Может ли быть так, что правильным ...
Активизация познавательной активности учащихся на уроках информатики

Активизация познавательной активности учащихся на уроках информатики

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

Влияние компьютерных игр на здоровье детей

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

Ветвления на Паскале

Вопросы:. Какой алгоритм мы называем разветвляющимся? Какие виды ветвления вам известны? С помощью какого оператора на Паскале записывается ветвление? ...
Влияние компьютерных игр на развитие подростка

Влияние компьютерных игр на развитие подростка

Цель работы -. анализ положительных и негативных сторон влияния компьютера и компьютерных игр на развитие подростков. Современные компьютеры повсюду! ...

Конспекты

Линейное программирование на языке TurboPascal

Линейное программирование на языке TurboPascal

Интегрированный урок информатика и экология 7 классе. Тема урока : Линейное программирование на языке TurboPascal. Цель:.  . Сформировать навыки ...
Двумерные массивы на языке Basic

Двумерные массивы на языке Basic

Двумерные массивы на языке Basic. . Тип урока:. урок изучения нового материала. Технология:. личностно-ориентированная. Цели урока:. . ...
Массивы в языке Паскаль

Массивы в языке Паскаль

Тема урока: Массивы в языке Паскаль. Дидактическая цель:. . расширить знания о массивах в языке Паскаль. . углубить знания о массивах в языке ...
Ввод формул. Ссылки на ячейки. Относительные, абсолютные и смешанные ссылки. Функции. Использование стандартных функций

Ввод формул. Ссылки на ячейки. Относительные, абсолютные и смешанные ссылки. Функции. Использование стандартных функций

1. . 8. . класс. . Практическая работа за компьютером на тему:. . Ввод формул. Ссылки на ячейки. . . Относительные, абсолютные и смешанные ...
Использование переменных. Операции над переменными различных типов в языке программирования

Использование переменных. Операции над переменными различных типов в языке программирования

КОНСПЕКТ УРОКА ПО ИНФОРМАТИКЕ В 8 КЛАССЕ. Тема урока:. Решение задач ЕГЭ по информатике по теме «Использование переменных. Операции над переменными ...
Кодирование графической информации . Пространственная дискретизация Растровые изображения на экране монитора. Палитры цветов в системах цветопередачи RGB, CMYK и HSB. Растровые и векторные изображения

Кодирование графической информации . Пространственная дискретизация Растровые изображения на экране монитора. Палитры цветов в системах цветопередачи RGB, CMYK и HSB. Растровые и векторные изображения

ПЛАН-КОНСПЕКТ УРОКА Кодирование графической информации . Пространственная дискретизация Растровые изображения на экране монитора. Палитры цветов в ...
Графика на языке программирования АВС Pascal

Графика на языке программирования АВС Pascal

ПЛАН-КОНСПЕКТ УРОКА. ТЕМА: «. Графика на языке программирования АВС. Pascal. ». Тип урока:. получение. новых знаний. Технология:. системно-деятельностный ...
Графические процедуры на языке Delphi

Графические процедуры на языке Delphi

10 класс. «Графические процедуры на языке Delphi». . Цели:. организовать деятельность учащихся изучению и закреплению знаний и способов действий ...
Графика на языке BASIC

Графика на языке BASIC

Учитель 2 квалификационной категории. . Шамсутдинова Рамиля Ильгизовна. МАОУ «Базарно-Матакская СОШ». Тема: «Графика на языке BASIC. ». Цели:. ...
Влияние компьютерных игр на формирование агрессивных моделей поведения учащихся начальных классов

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

Конспект урока в 4 классе. на тему:. «Влияние компьютерных игр на формирование агрессивных моделей поведения учащихся начальных классов». Выполнила: ...

Советы как сделать хороший доклад презентации или проекта

  1. Постарайтесь вовлечь аудиторию в рассказ, настройте взаимодействие с аудиторией с помощью наводящих вопросов, игровой части, не бойтесь пошутить и искренне улыбнуться (где это уместно).
  2. Старайтесь объяснять слайд своими словами, добавлять дополнительные интересные факты, не нужно просто читать информацию со слайдов, ее аудитория может прочитать и сама.
  3. Не нужно перегружать слайды Вашего проекта текстовыми блоками, больше иллюстраций и минимум текста позволят лучше донести информацию и привлечь внимание. На слайде должна быть только ключевая информация, остальное лучше рассказать слушателям устно.
  4. Текст должен быть хорошо читаемым, иначе аудитория не сможет увидеть подаваемую информацию, будет сильно отвлекаться от рассказа, пытаясь хоть что-то разобрать, или вовсе утратит весь интерес. Для этого нужно правильно подобрать шрифт, учитывая, где и как будет происходить трансляция презентации, а также правильно подобрать сочетание фона и текста.
  5. Важно провести репетицию Вашего доклада, продумать, как Вы поздороваетесь с аудиторией, что скажете первым, как закончите презентацию. Все приходит с опытом.
  6. Правильно подберите наряд, т.к. одежда докладчика также играет большую роль в восприятии его выступления.
  7. Старайтесь говорить уверенно, плавно и связно.
  8. Старайтесь получить удовольствие от выступления, тогда Вы сможете быть более непринужденным и будете меньше волноваться.

Информация о презентации

Ваша оценка: Оцените презентацию по шкале от 1 до 5 баллов
Дата добавления:22 мая 2019
Категория:Информатика
Автор презентации:К.Ю. Поляков
Содержит:72 слайд(ов)
Поделись с друзьями:
Скачать презентацию
Смотреть советы по подготовке презентации