- •Структурное 1
- •Этапы разработки программ
- •Этапы разработки программ
- •Этапы разработки программ
- •Методы проектирования программ
- •Проектирование «снизу вверх»
- •Проектирование «сверху вниз»
- •Структурное программирование
- •Структурное программирование
- •Модуль
- •Оформление текста программы
- •Оформление текста программы
- •Оформление текста программы
- •Проект «Графики функций»
- •Структура программы
- •Разбивка программы на этапы
- •Функции, заданные в неявном виде
- •Полярные координаты
- •Полярные координаты
- •Описание в параметрической форме
- •Системы координат
- •Структура программы
- •Перевод в экранные координаты
- •Оси координат
- •Разметка оси X («черточки»)
- •Разметка оси X (числа)
- •Оси с разметкой (полностью)
- •Задания
- •Построение графика по точкам
- •Вывод точки с проверкой
- •Описание функций
- •Области определения
- •Вывод графика функции
- •Общее расположение
- •Задания
- •Точки пересечения
- •Методы решения уравнений
- •Численные методы
- •Метод прямого («тупого») перебора
- •Есть ли решение на [a, b]?
- •Метод дихотомии (деление пополам)
- •Метод дихотомии (деления пополам)
- •Метод дихотомии (в программе)
- •Метод дихотомии (в программе)
- •Штриховка (две функции)
- •Штриховка (составная нижняя граница)
- •Штриховка (общий случай)
- •Метод (левых) прямоугольников
- •Метод (правых) прямоугольников
- •Метод (средних) прямоугольников
- •Метод трапеций
- •Метод Монте-Карло
- •Метод Монте-Карло
- •Случайное число в заданном интервале
- •Проверка точки (внутри или нет?)
- •Метод Монте-Карло (реализация)
- •Титульный лист
- •Графики функций
- •Как получить копию экрана?
- •Структура программы
- •Текст программы
- •Как включить программу в отчет?
- •Конец фильма
Случайное число в заданном интервале |
61 |
|||
|
|
|||
|
|
|
||
rand() |
целое [0, RAND_MAX) |
|||
rand()/RAND_MAX |
всегда 0!!! |
|||
1.*rand()/RAND_MAX |
[0,1) |
|
|
|
1.*rand()/RAND_MAX + a |
[a,a+1) |
|
|
|
(b-a)*rand()/RAND_MAX + a |
[a,b) |
|
|
|
//----------------------------------------- |
|
|
|
|
// randF – случайное вещественное число |
|
|
||
// |
в заданном интервале |
|
|
|
//----------------------------------------- |
|
|
|
|
float randF ( float a, float b)
{
return (b-a)*rand() / RAND_MAX + a;
}
Проверка точки (внутри или нет?) |
62 |
|
|
|
|
|
|
|
//----------------------------------------- |
|
|
//Inside – определяет, находится ли точка
//внутри фигуры
//Вход: x, y – координаты точки
//Выход: 1, если точка внутри фигуры,
// 0, если точка вне фигуры //-----------------------------------------
int Inside ( float x, float y )
{
if ( Down(x) <= y && y <= Up(x) ) return 1;
else return 0;
}
void Inside ( float x, float y )
{
return (Down(x) <= y && y <= Up(x));
}
Метод Монте-Карло (реализация) |
63 |
|
|
|
|
|
|
|
//----------------------------------------------------
// Area2 – вычисление площади методом Монте-Карло
//----------------------------------------------------
void Area2 () |
длинное число (L = long) |
|
границы |
{ |
|
|
прямоугольника |
long i, N = 200000L, M = 0; |
= 4; |
(у каждого свои!) |
|
float x1 = xc1, x2 = xc2, y1 = 1, y2 |
y2 |
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);
}
y1
x1 x2
если на фигуре, увеличить счетчик
вычисление площади
64
Структурное
программирование на языке Си
Тема 7. Оформление отчета
© К.Ю. Поляков, 2007
Титульный лист |
65 |
||
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Графики функций |
66 |
|
|
|
|
|
|
|
через Редактор формул (Вставка –
Объект – Microsoft Equation)
«скриншот»
(screenshot) –
копия экрана
Как получить копию экрана? |
67 |
|
Для Windows-программ:
1.Клавиша PrtScr (Print Screen – печать экрана) на клавиатуре.
2.В графическом редакторе (Paint): Правка – Вставить.
3.Выделить нужную часть рисунка.
4. Вставить в отчет через буфер обмена. |
только у нас! |
Для DOS-программ: |
|
1.Поменять цвета так, чтобы все линии и текст были
2.Запустить программу.
3.Клавиши Alt-G (программа pcxgrab.exe, уже загруженная в память, записывает рисунок GRAB01.PCX в формате PCX).
4.Открыть GRAB01.PCX в графическом редакторе Paint (в окне выбора файла установить Тип файла = Все файлы).
5.Перевести в черно-белую палитру (Рисунок – Атрибуты – Палитра – Черно-белая).
6.Инверсия (черный ↔ белый), Рисунок – Обратить цвета.
7.Вставить в отчет через буфер обмена.
Структура программы |
68 |
||
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Текст программы |
69 |
|
|
|
|
|
|
|
шрифт Courier New, (моноширинный)
размер 10 пт
Как включить программу в отчет? |
70 |
|
Проблема – комментарии и строки на русском языке (кодировка MS DOS Windows)
•В Word: Сервис – Параметры – Общие –
подтверждать преобразования при открытии
(флажок должен быть отмечен).
•Меню Файл - Открыть. Тип файлов: Все файлы. Выбрать CPP-файл.
•В появившемся окне Преобразование файла выбрать Кодированный текст, затем в следующем окне: MS DOS.
•Выделить текст и вставить в отчет через буфер обмена.