Н.И.Пивторацкая, учитель информатики Химкинского техникума космического энергомашиностроения

Урок на тему «Использование операторов языка Си в среде разработки KDevelop для вычисления определенных интегралов. Сравнение результатов с вычислениями в оболочке wxMaxima»

Тема урока: Использование операторов языка Си в среде разработки KDevelop для вычисления определенных интегралов. Сравнение результатов с вычислениями в оболочке wxMaxima.

Цели урока:

образовательные:

повторение операторов языка Cи;

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

развивающие:

развитие у учащихся умения обобщать имеющиеся знания;

развитие познавательного интереса;

воспитательные:

воспитание умения слушать учителя;

формирование чувства ответственности за результаты своего труда.

Тип урока: урок обобщения ранее изученного материала.

Методы обучения: объяснительно-иллюстративный.

План урока.

Актуализация опорных знаний.

Объяснение нового материала.

Закрепление нового материала.

Подведение итогов урока.

Ход урока

Актуализация опорных знаний

Беседа с учащимися.

Учитель. Вспомним основные управляющие структуры программы на языке Си.

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

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

Ветвление в языке Си описывается с помощью условного оператора, а повторение — с помощью трех операторов цикла.

Ученик. Имеется две формы условного оператора if:

if (выражение) оператор1

if (выражение) оператор1 else оператор2

Оператор1 выполняется в случае, если выражение принимает ненулевое значение. Если выражение принимает значение 0 (или указатель — NULL), то выполняется оператор2.

Ученик. Оператор условия for имеет вид:

for (оператор1; выражение1; выражение2 ) оператор2

Оператор1 может быть объявлением, пустым оператором или оператором-выражением.

Наиболее распространенным является случай, когда оператор1 и выражение2 являются присваиваниями, а выражение1 — условным выражением.

Ученик. Оператор цикла с предусловием while имеет вид:

while (выражение) оператор

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

Ученик. Оператор цикла с постусловием do-while проверяет условие окончания в конце, после каждого прохода через тело цикла; поэтому тело цикла всегда выполняется по крайней мере один раз. Вид оператора:

do оператор while (выражение)

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

Объяснение нового материала

Учитель. Используем изученные операторы языка Си для вычисления определенных интегралов. Разберем вычисление интеграла по формуле Симпсона.

Для нахождения интеграла необходимо вычислить площадь под графиком функции f(x), являющейся подынтегральным выражением, где а и b — пределы интегрирования. Чтобы использовать формулу Симпсона, разобьем отрезок [а, b] на четное число n более мелких отрезков.

Тогда формула Симпсона имеет вид:

,

где n — четное число делений интервала интегрирования, хi = а+i(b-a)/n.

Алгоритм состоит в циклическом выполнении расчетов f(xi). При этом отдельно рассматриваем случаи для границ интегрирования f(а) и f(b) и учитываем, что при нечетном номере вычисляемого элемента значение функции умножается на 4, при четном — на 2.При конечных значениях отрезка умножение не производится.

Закрепление нового материала

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

Пример. Вычислить интеграл по формуле Симпсона.

I. Напишем программу на языке Си.

#ifdef HAVE_CONFIG_H

#include <config.h>

#endif

#include <cstdlib>

#include <stdio.h>

#include <math.h>

int main()

{

int i,n;

float a,b,x,h,y,s;

printf("Count of lengths: ");

scanf("%d",&n);

a=s=x=0;

b=7.3;

h=(b-a)/n;

for(i=0;i<n;i++)

{

y=(1/(1+sqrt(x)));

x+=h;

if(i%2!=0) s+=4*y;

else if(i==0||i==n) s+=y;

else s+=2*y;

}

s*=h/3;

printf("S = %f\n",s);

return EXIT_SUCCESS;

}

Затем создадим проект в интегрированной среде разработки KDevelop. Создание проекта выполняется при помощи «Мастера приложений», доступного через меню Проект/Создать проект… Весь процесс создания нового проекта разбит на несколько шагов, каждый из которых выполняется на своей странице мастера. Выбираем основные параметры проекта: тип приложения, название проекта, автор проекта. Создаем проект программы.

Теперь перейдем к вводу текста программы, выполняющей вычисление определенного интеграла.

После набора текста программы откомпилируем ее — F8 (или меню Сборка/Собрать проект) и запустим — Shift+F9 (или меню Сборка/Выполнить программу).

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

Пояснения к тексту программы.

Сначала объявляются переменные i и n, а затем переменные a,b,x,h,y,s. Далее выводится на экран приглашение к вводу количества отрезков, а затем количество отрезков вводится с клавиатуры и попадает в переменную n.

Устанавливаем начальные значения

a=s=x=0;

b=7.3;

h=(b-a)/n;

Оператор цикла for работает так:

выполнить выражение i = 0;

проверить условие в выражении i < n, и если оно истинно, выполнится содержимое в фигурных скобках, если значение переменной i окажется равным или превысит n, то цикл завершится;

увеличить значение переменной i на единицу.

Условный оператор if работает так:

проверить истинность условия в круглых скобках i%2!=0;

если условие истинно, то s+=4*y;

если условие ложно, то проверить истинность условия в круглых скобках i==0||i==n;

если условие истинно, то s+=y;

если условие ложно, то выполняется то s+=2*y.

Далее выводится результат программы printf(“Integral=%1.3f”,s).

II. Используем графическую оболочку wxMaxima для проверки результата вычисления определенного интеграла. В окне программы выбираем Анализ/Интегрировать и вводим в появившемся диалоговом окне данные из примера.

Результат интегрирования выводится на экран.

Для построения графика подинтегральной функции в окне программы выбираем График/График 2D и вводим в появившемся окне требуемые данные.

Результат также выводится на экран.

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

Подведение итогов урока

Учитель. Сегодня мы узнали, как используются операторы языка Си для вычисления определенных интегралов, разработали программу в среде программирования KDevelop и смогли проверить правильность результата выполнения программы с помощью оболочки wxMaxima.

Учитель объявляет оценки за урок.

2008-10-19T21:59:36