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


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

Содержание

ПланЛекция 6ПланПара заданий для самопроверкиЗадача о разложении функцииЗадача о площади пересечения прямоугольников

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

Слайд 1Примеры разработки программ
Алтайский государственный университет Математический факультет Кафедра информатики
Барнаул 2013

Примеры  разработки программАлтайский государственный университет Математический факультет Кафедра информатикиБарнаул 2013

Слайд 2План
Лекция 6
План
Пара заданий для самопроверки
Задача о разложении функции
Задача о площади

пересечения прямоугольников

ПланЛекция 6ПланПара заданий для самопроверкиЗадача о разложении функцииЗадача о площади пересечения прямоугольников

Слайд 3Пара заданий для самопроверки

Пара заданий  для самопроверки

Слайд 4Пара заданий для самопроверки
Задание «Циклы»
Что выведет программа?
#include

void main(){
int

i=0;
for(;i

Пара заданий для самопроверкиЗадание «Циклы»Что выведет программа?#include void main(){ int i=0; for(;i

Слайд 5Пара заданий для самопроверки
Задание «Циклы»
Что выведет программа?
#include

void main(){
int

x;
for(x=1;x

Пара заданий для самопроверкиЗадание «Циклы»Что выведет программа?#include void main(){ int x; for(x=1;x

Слайд 6Задача о разложении функции
Постановка задачи
Алгоритм
Программа 1
Замечание об эффективности
Программа 2

Задача о  разложении функцииПостановка задачиАлгоритмПрограмма 1Замечание об эффективностиПрограмма 2

Слайд 7Задача о разложении функции
Разложение функции: постановка задачи
Необходимо численно убедиться в

справедливости равенства, то есть сравнить результаты вычисления значения функции для

заданного значения аргумента, полученные двумя способами:
вычислением с использованием стандартных математических функций;
путем разложения функции с заданной точностью  .
При вычислении разложения необходимо выяснить количество шагов разложения, потребовавшееся для достижения точности .
Задача о разложении функцииРазложение функции: постановка задачиНеобходимо численно убедиться в справедливости равенства, то есть сравнить результаты вычисления

Слайд 8Задача о разложении функции
Разложение функции: суть
Sn
f(x)

n*

Задача о разложении функцииРазложение функции: сутьSnf(x)n*

Слайд 9Задача о разложении функции
Разложение функции: алгоритм
Начало
Конец
x, eps
n = 0;


Sn = 1;
S = Sn;
fabs(fx-S)>eps
S = S + Sn;
fx,

S, n
Задача о разложении функцииРазложение функции: алгоритмНачалоКонецx, eps n = 0; Sn = 1; S = Sn;fabs(fx-S)>epsS =

Слайд 10Задача о разложении функции
Разложение функции: программа 1
ДЕМО

Задача о разложении функцииРазложение функции: программа 1ДЕМО

Слайд 11Задача о разложении функции
Разложение функции: программа 1
// Основной цикл
while(fabs(fx-S) >

eps) {
n++; // Следующее слагаемое

// Знак

z=pow(-1.0,n);

// Числитель
a=1;
for(i=1; i<=n; i++)
a*=(3*i-2);

// Факториал
f=1;
for(p=1; p<=n; p++)
f*=p;

// Знаменатель
b=pow(3.0,n)*fact(n);

Sn =(z*a/b)*pow(x,3.0*n);
S += Sn;
}

#include
#include

void main() {
double x,fx,Sn,S,eps,z,b;
int n,i,a,p,f;

printf(“ x=”);
scanf(“%lf”,&x);
printf(“eps=”);
scanf(“%lf”,&eps);

fx=1/pow(1+x*x*x,1./3.);
n=0; Sn=1; S=Sn;

// Сюда вставить основной цикл

printf(“ fx=%12.10lf\n”,fx);
printf(“ S=%12.10lf\n”,S);
printf(“ n=%d\n”,n);
}

Очевидное, но плохое решение

Задача о разложении функцииРазложение функции: программа 1// Основной циклwhile(fabs(fx-S) > eps) {  n++; // Следующее слагаемое

Слайд 12Задача о разложении функции
Разложение функции: суть
Нетрудно заметить:

Задача о разложении функцииРазложение функции: сутьНетрудно заметить:

Слайд 13Задача о разложении функции
Разложение функции: программа 2
ДЕМО

Задача о разложении функцииРазложение функции: программа 2ДЕМО

Слайд 14Задача о разложении функции
Разложение функции: программа 2
#include
#include
#define MAX_ITER

1000.0
void main() {
double x,fx,Sn,S,eps,n;
printf(“x=”); scanf(“%lf”,&x);
printf(“eps=”);

scanf(“%lf”,&eps);
fx=1/pow(1+x*x*x,1./3.);
Sn=1; S=Sn; n=0;
while(fabs(fx-S) > eps && n < MAX_ITER) {
Sn*=-(3*n+1)*x*x*x/(3*n+3);
S+=Sn;
n+=1;
}
printf(“fx=%12.10lf\n”,fx);
printf(“ S=%12.10lf\n”,S);
printf(“ n=%1.0lf\n”,n);
}

Хорошее решение

Задача о разложении функцииРазложение функции: программа 2#include #include #define MAX_ITER 1000.0void main() {  double x,fx,Sn,S,eps,n; printf(“x=”);

Слайд 15Задача о площади пересечения прямоугольников
Постановка задачи
Алгоритм
Программа

Задача о  площади пересечения прямоугольниковПостановка задачиАлгоритмПрограмма

Слайд 16Задача о площади пересечения прямоугольников
Площадь пересечения прямоугольников: постановка задачи
В программу

последовательно поступают габариты прямоугольников a, b, c, d (a ≤

x ≤ b, c ≤ y ≤ d). Требуется, не запоминая габаритов всех прямоугольников, найти площадь их пересечения.

Если A < B и C < D, то
S = (B – A) ·(D – C),
иначе
S = 0.

A = max(ai)

B = min(bi)

C = max(ci)

D = min(di)

Задача о площади пересечения прямоугольниковПлощадь пересечения прямоугольников: постановка задачиВ программу последовательно поступают габариты прямоугольников a, b, c,

Слайд 17Задача о площади пересечения прямоугольников
Площадь пересечения прямоугольников: алгоритм
Начало
Конец
a,b,c,d
A = min(max(a,A),B);
B

= max(min(b,B),A);
C = min(max(c,C),D);
D = max(min(d,D),C);
a!=0 || b!=0 || c!=0

|| d!=0

S

A=a; B=b;
C=c; D=d;

S = (B-A)*(D-C);

1-ый прямоугольник?

нет

да

да

нет

Задача о площади пересечения прямоугольниковПлощадь пересечения прямоугольников: алгоритмНачалоКонецa,b,c,dA = min(max(a,A),B);B = max(min(b,B),A);C = min(max(c,C),D);D = max(min(d,D),C);a!=0 ||

Слайд 18Задача о площади пересечения прямоугольников
Площадь пересечения прямоугольников: программа
ДЕМО

Задача о площади пересечения прямоугольниковПлощадь пересечения прямоугольников: программа ДЕМО

Слайд 19Задача о площади пересечения прямоугольников
Площадь пересечения прямоугольников: программа
#include
#define min(x,y)

((x)(y))?(x):(y)

void main() {
float a,b,c,d,A,B,C,D,S=0;
int

first=1;
do {
printf(“a, b, c, d:\n”); scanf(“%f%f%f%f”,&a,&b,&c,&d);
if (first) {
A=a; B=b; C=c; D=d; first=0;
} else {
A = min(max(a,A),B);
B = max(min(b,B),A);
C = min(max(c,C),D);
D = max(min(d,D),C);
}
}while(a!=0 || b!=0 || c!=0 || d!=0);
S = (B-A)*(D-C);
printf(“S = %f\n”,S);
}
Задача о площади пересечения прямоугольниковПлощадь пересечения прямоугольников: программа#include #define min(x,y) ((x)(y))?(x):(y)void main() {  float a,b,c,d,A,B,C,D,S=0;

Слайд 20Вопросы и ответы
Вопросы?
Задача о разложении функции
Постановка задачи
Алгоритм
Программа 1
Замечание об эффективности
Программа

2
Задача о площади пересечения прямоугольников
Постановка задачи
Алгоритм
Программа
Дубовая роща. Девочка и банан

Вопросы и ответыВопросы?Задача о разложении функцииПостановка задачиАлгоритмПрограмма 1Замечание об эффективностиПрограмма 2Задача о  площади пересечения прямоугольниковПостановка задачиАлгоритмПрограммаДубовая

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика