Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Методические указания





Учреждение образования

“ВЫСШИЙ ГОСУДАРСТВЕННЫЙ КОЛЛЕДЖ СВЯЗИ”

кафедра ПОСТ

 

 

ПОСТРОЕНИЕ ТАБЛИЦ ФУНКЦИЙ

МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе № 11

по дисциплине

"ПРОГРАММИРОВАНИЕ"

для студентов специальностей

2-45 01 02 – Системы радиосвязи, радиовещания и телевидения

2-45 01 03 – Сети телекоммуникаций

Минск 2006

 

 

Составитель Балаш А.Н.

Издание утверждено на заседании кафедры ПОСТ

Протокол № 5 от "28" января 2006г.

Зав. кафедрой ПОСТ А.А.Прихожий

 

 

ПОСТРОЕНИЕ ТАБЛИЦ ФУНКЦИЙ

ЦЕЛЬ РАБОТЫ

 

1.1 Изучить возможности языка программирования для реализации приема программирования - табулирования функции от одного аргумента.

1.2 Научиться наглядно оформлять получаемые результаты в виде таблиц при решении циклических задач.

 

ЛИТЕРАТУРА

 

2.1 А.Н.Вальвачев, В.С.Крисевич. Программирование на языке ПАСКАЛЬ для персональных ЭВМ ЕС.- Минск: Вышэйшая школа,1989. С.43..47.

2.2 Н.Д.Васюкова, В.В.Тюляева. Практикум по основам программирования. Язык Паскаль.- М.: Высшая школа,1991. С.28..32, 34..35.

 

ДОМАШНЕЕ ЗАДАНИЕ

 

3.1 Повторить по [2.1], [2.2] возможности языка программирования для реализации вычислительных процессов циклической структуры.

3.2 Начертить блок-схему алгоритма решения и написать программу вычисления значений функции lg(x2+3x+0,1) при изменении x от -4 до -2,5 с шагом 0,2. Результаты напечатать в виде таблицы значений x и y.

3.3 Подготовить бланк отчета.

 

ТСО И НАГЛЯДНОСТЬ

 

4.1 ПЭВМ IBM PC.

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

 

5.1 Проверка домашнего задания и подготовки студентов к занятию.

5.2 Подготовка ПЭВМ к работе.

5.3 Получение у преподавателя и выполнение индивидуального задания.

5.4 Оформление отчета по лабораторной работе.

 

СОДЕРЖАНИЕ ОТЧЕТА

 

6.1 Наименование и цели лабораторной работы.

6.2 Ответы на контрольные вопросы.

6.3 Постановка задачи.

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

6.5 Результаты решения.

 

КОНТРОЛЬНЫЕ ВОПРОСЫ

 

7.1 Какие элементы могут использоваться в списке вывода?

7.2 Алгоритм табулирования функции.

7.3 Какие средства языка целесообразно использовать для реализации алгоритма табулирования функции?

7.4 Как организовать печать горизонтальных линий?

7.5 Как задать константу символьного типа?

7.6 Чем обеспечивается вывод вертикальных линий таблицы?

 

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

 

При решении задач на ЭВМ важное значение имеет наглядность и удобство дальнейшего использования выводимых результатов. Одним из способов наглядного представления результатов является построение таблиц функций.

8.1 Построение таблиц. Чтобы вывести результаты в виде таблицы, нужно уметь вывести на экран горизонтальные и вертикальные линии, разделяющие графы, напечатать шапку таблицы, т.е. содержание граф.

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

1) в разделе описания констант задать константу символьного типа T='---...---', которая используется в качестве элемента списка в операторах WRITELN(T). Количество символов '-' должно соответствовать ширине таблицы. Можно использовать другие символы, имеющиеся на клавиатуре, например, '*';

2) в подпрограмме-процедуре с помощью оператора

FOR I:=1 TO N DO

WRITE('-');

WRITELN;

где N - ширина таблицы. Последний оператор WRITELN, не содержащий списка вывода, обеспечивает переход к следующей строке.

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

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

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

В список вывода допускается включать выражения и переменные, символьные строки и указатели формата вывода данных. Например, WRITELN('!',X,'!',Y,'!');

Одним из средств улучшения восприятия выводимых результатов является отсечение при печати незначащих цифр, появляющихся в процессе вычислений. Это обеспечивается использованием оператора WRITELN, в списке вывода которого задана необходимая ширина поля вывода. Например, WRITELN('!',X:5:2,'!',Y:8:2,'!');

8.2 Табулирование функции. Требуется вычислить функцию

y=f(x) на отрезке [a,b] с шагом h.

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

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

Это задача на организацию цикла с известным числом повторений n, поэтому программу можно реализовать с помощью оператора FOR.

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

 
 

 

 

 
 

8.3 Пример. Составить программу расчета и печати таблицы значений функции

при изменении аргумента X от значения Xn до значения Хк с шагом h. Вывод горизонтальных линий осуществить с помощью символьной константы.

Program PR1;

Const T='-------------------';

(*ширина таблицы 20 символов*)

Var

N,I: integer;

X,Y,Xn,Xk,h:real;

begin

writeln('введите xn,xk,h');

readln(xn,xk,h);

n:=trunc((xk-xn)/h)+1;

x:=xn;

writeln(t); (*печать заголовка таблицы *)

writeln('!','x':4,'!':4,'y':5,'!':6);

writeln(t);

for I:=1 to n do

begin

y:=(x*x*x-4*x+1)/(abs(x)+1);

writeln('!',x:5:1,'!':3,y:7:2:,'!':4);

x:=x+h

end;

wirteln(t);

readln (*задержка результата на экране *);

end.

8.4 Пример. Составить программу вычисления и вывода на экран таблицы значений функции

при значении x, изменяющемся от 0 до 2 с шагом 0.1. Вывод горизонтальной черты оформить в подпрограмме.

Program PR2;

Const N=20;

Var a,x,y:real;

Procedure L;

Var

I:byte;

Begin

For I:=1 to N Do

Write('-');

Writeln

End;

Begin

Writeln('введите а');

Readln(a); x:=0;

L; (* Вызов процедуры *)

Writeln('!','X':4,'!':4,'Y':5,'!':6);

L; (* Вызов процедуры *)

Repeat

y:=a*a*a/(a*a+x*x); Writeln('!',X:4:1,'!':3,'Y':7:2,'!':4);

x:=x+0.1;

Until x>2;

L; (* Вызов процедуры *)

Readln

End.

8.5 Пример. Составить программу вычисления значений функции

при изменении x от xn до xk с шагом dx. Результаты напечатать ввиде таблицы значений x и y.

Входные данные: xn - начальное значение x; xk - конечное значение x; dx - шаг изменения x.

Выходные данные: значения функции y для различных значений аргументов x.

Введем обозначения: XN - начальное значение x; XK - конечное значение x; DX - шаг изменения величины x; X - текущее значение величины X; Y - значение функции y.

Все указанные переменные вещественного типа. Так как в языке Паскаль нет функции десятичного логарифма, в программе эта функция выражена через функцию натурального логарифма.

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

Y:=(5-20*X)*LN(10)/LN(10*X*X-12*X+2.7);

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

Рассмотрим вариант программы, в которой учитывается область определения функции, а для организации цикла применен оператор WHILE. Схема алгоритма приведена на рис. 2.

Program PRIM1;

Const

TAB='*************************************';

Var

XN:Real; (* начальное значение аргумента x *)

XK:Real; (* конечное значение аргумента x *)

DX:Real; (* шаг изменения аргумента x *)

X:Real; (* текущее значение x *)

Y:Real; (* вычисленное значение функции *)

R:Real; (* вспомогательная переменная *)

Begin

Writeln('ВВЕДИТЕ ЧЕРЕЗ ПРОБЕЛ ЧИСЛ. ЗНАЧ. XN,XK,DX ');

Readln(XN,XK,DX);

(* печать заголовка таблицы *)

Writeln(' ',TAB);

Writeln(' * X * Y *');

Writeln(' ',TAB);

X:=XN; (* задание начального значения x *)

While X<=XK Do (* начало цикла *)

Begin (* операторы, выполняемые в цикле *)

R:=10*X*X-12*X+2.7; (* выч. аргумента логарифм. функ. *)

If R>0 Then

Begin

Y:=(5-20*X)*LN(10)/LN(R);

Writeln(' *',' ':5,X:5:1,' ':5,'*',' ':5,Y:9:3,' ':5,'*');

End

Else

Writeln(' *',' ':5,X:5:1,' ':5,'* Ф-ЦИЯ НЕ ОПРЕД. *);

X:=X+DX; (* изменение значения x *)

End; (* конец цикла *)

Writeln(' ',TAB);

Readln

End.

 

 

Результат выполнения программы:

ВВЕДИТЕ ЧЕРЕЗ ПРОБЕЛ ЧИСЛ. ЗНАЧ. XN,XK,DX

-1.5 2 0.3

**********************************

* x * y *

**********************************

* -1.5 * 21.400 *

* -1.2 * 19.355* *

* -0.9 * 17.236 *

* -0.6 * 15.040 *

* -0.3 * 12.830 *

* 0.0 * 11.591 *

* 0.3 * Ф-ЦИЯ *

* * НЕ ОПРЕД.*

* 0.6 * Ф-ЦИЯ *

* * НЕ ОПРЕД.*

* 0.9 * 1.963 *

* 1.2 * -44.046 *

* 1.5 * -29.160 *

* 1.8 * -27.426 *

**********************************

Пояснение к программе. Подчеркнем отличительные особенности использования оператора WHILE по сравнению с Repeat:

после служебного слова WHILE записывается условие продолжения цикла (X<=XK);

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

по правилам записи оператора WHILE после служебного слова DO может быть выполнен только один оператор. Поэтому если в цикле нужно выполнить несколько операторов, то их необходимо заключить в операторные скобки Begin...End.

Для выбора направления дальнейших вычислений в зависимости от результата проверки значения аргумента R:=10*X*X-12*X+2.7 функции LN(R) использован условный оператор IF.

Если проверяемое значение R>0, то после служебного слова THEN выполняется оператор вычисления значения функции Y при заданном значении X и оператор вывода на печать соответствующих значений X и Y. По правилам записи условного оператора IF после служебных слов THEN и ELSE выполняется только один оператор, однако он может быть составным. Поэтому операторы вычисления и вывода на печать заключаются в операторные скобки Begin...End.


Далее выполняется оператор X:=X+DX, следующий за условным оператором IF. Если проверяемое условие не выполняется (значение R окажется меньше или равно нулю), то в этом случае на печать выдается сообщение "ФУНКЦИЯ НЕ ОПРЕДЕЛЕНА" и далее выполняется следующий после IF оператор X:=X+DX.

 

9. ТРЕБОВАНИЯ К ЗНАНИЯМ И УМЕНИЯМ СТУДЕНТОВ

 

В результате выполнения лабораторной работы студенты должны уметь:

- применять операторы цикла при решении циклических задач;

- оформлять получаемые результаты в виде таблиц.


 

План 2002/2003, поз. 134

 

Балаш Алла Николаевна

 

 

Date: 2015-07-25; view: 325; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию