Создание программы для вычисления значения функции

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    59,25 Кб
  • Опубликовано:
    2012-09-26
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание программы для вычисления значения функции

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. БОНЧ-БРУЕВИЧА

ФАКУЛЬТЕТ

ВЕЧЕРНЕГО И ЗАОЧНОГО ОБУЧЕНИЯ









Контрольная работа

по информатике










Архангельск 2009

Задание №1


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

Вычислить значение функции

Рабочий набор исходных данных: а=-1,2, х=4,1

2.       Таблица идентификаторов

обозначение в задании

идентификатор

назначение

а

а

Коэффициент-константа

х

х

Переменная, используемая для задания значения аргумента

у

у

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


3.       Текст программы CRT;                                    {подключение модуля CRT}

const a=-1.2;                           {объявление константы а}

var x,y: real;                            {объявление переменных х и у

                                                        вещественного типа}

begin                                                {начало основной программы}

clrscr;                                     {процедура clrscr очищает экран}

writeln ('Введите x');               {вывод на экран текста ‘Введите х’}

readln (x);                               {считывается значение, введенное c

                                               клавиатуры и присваивается переменной х }

if (x<5) and (sin (x) <>-1)

then y: = (a*sin (x) /cos (x) +5) / (sin (x) +1); {если условие  истинно, то

переменной у присваивается значение

выражения }

if (x>=5) and (x<10) then

y: =sqrt (sqr (x-7)); {если условие  истинно, то

переменной у присваивается значение

выражения }

if (x>=10) and (x<>11)

then y: =a*ln (abs (x-11)); {если условие  истинно, то

переменной у присваивается значение

выражения }

if (x=11) or ( (x<5) and (sin (x) =-1)) writeln (‘Значение функции не существует’)

else writeln ('при x=', x: 5: 2,' y=', y: 5: 2); {если условие х=11 или

истинно, то выводится сообщение ‘Значение функции не существует’, иначе выводятся на экран значения переменных х и у. Под каждое значение выделяется 5 позиций, две из них под дробную часть}

readln; {пустой оператор ввода для задержки информации на экране}

end.

4.       Контрольный расчет

Входные данные (x)

Результат в Pascal (y)

Результат в MathCad (y)

0

5,00

5

7

0,00

0

12

0,00

0

11

Значение функции не существует

Значение функции не существует


Задание №2


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

Вычислить значение функции


Рабочий набор исходных данных: n=3, x=0,71


обозначение в задании

идентификатор

назначение

n

n

Константа, определяющая верхнюю границу изменения счетчика цикла


s,f,m,a

Промежуточные результаты

х

х

Исходные данные

z

z

Значение функции

i

i

Счетчик цикла


j

Счетчик цикла


.        Текст программы CRT; {подключение модуля CRT}

const x=0.71; n=3; {объявление констант х и n}

var z, s,a: extended; {объявление переменных z, s, а вещественного

типа}

i,j: byte; m: integer; {объявление переменных i, j, m и f целого

типа}

f: longint;

begin{начало основной программы}

clrscr; {процедура clrscr очищает экран}

a: =ln (x);

s: =0; m: =-1; f: =1; {присваивание переменным s, f и m начальных

значений}

for i: =1 to n do{цикл выполняется для i от 1 до n}

begin

f: =f*i; {в переменной f будет храниться значение

}

s: =s+m*exp (i*a) *a/f; {в теле внешнего цикла вычисляется сумма

 }

m: =-m; {при нечетных i m=-1, при четных m=1

для вычисления }

end;

z: =sqrt (x) +x*s; {вычисление значения функции z}

writeln ('z=', z: 5: 3); {вывод значения z на экран. Под значение выделяется пять позиций, из них три после запятой}

readln;.

4.       Контрольный расчет

Входные данные

Результат в Pascal (z)

Результат в Math Cad (z)

0,968

0,968


Задание №3


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

Вычислить значение функции  для 8 значений аргумента. Начальное значение хнач=1. Шаг изменения аргумента Δх=0,3, a=4,2.

2.       Таблица идентификаторов

обозначение в задании

идентификатор

назначение

хнач

xn

Исходные данные

N

n


Δх

dk


a

a


х

х

Переменная, используемая для задания значения аргумента

у

у


b

Промежуточный результат


i

Счетчик цикла


.        Текст программы CRT; {подключение модуля CRT}

const xn=1; dx=0.3; a=4.2; n=8; {объявление констант xn, dx, а, n}

var x,y,b: real; {объявление переменных х, у, b

вещественного типа}

i: byte; {объявление переменной i целого типа}

begin{начало основной программы}

clrscr; {процедура clrscr очищает экран}

x: =xn; {переменной х присваивается начальное

значение xn}

writeln ('Таблица значений функции');

writeln ('_____________________');('! x! y! ');('_____________________');: =ln (a+2.3); i: =1 to n do{цикл выполняется для i от 1 до n}

begin{начало тела цикла}

y: =ln (abs (a-x)) / (b+ln (x)); {вычисление значения функции}

writeln ('! ',x: 5: 1,'! ',y: 5: 2,'! '); {вывод на экран значений переменных

х и у}

x: =x+dx; {увеличение значения х на шаг}

end;('______________________');;.

.        Контрольный расчет

Результат в Pascal (y)

Результат в Math Cad (y)

х

у

х

у

1,0

0,62

1,0

0,62

1,3

0,50

1,3

0,50

1,6

0,41

1,6

0,41

1,9

0,33

1,9

0,33

2,2

0,26

2,2

0,26

2,5

0, 19

2,5

0, 19

2,8

0,12

2,8

0,12

3,1

0,03

3,1

0,03


Контрольные вопросы к заданиям 1, 2, 3

1.      Структура программы в Turbo Pascal.

Программа на языке Turbo Pascal состоит из заголовка программы, раздела описаний и раздела операторов.

Структура программы в общем виде:

Program Имя программы; {заголовок программы}

uses {объявление используемых модулей};

{Раздел описаний (деклараций) }

label {описание меток};

const {описание констант};

type {описание типов);

{Описание подпрограмм}

procedure {описание процедур};

function {описание функций};

begin

{Раздел операторов};

end.

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

2.      Что такое идентификатор?

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

3.      Понятие переменной в Turbo Pascal.

Переменная - это ячейка оперативной памяти, которая может хранить данные какого-то одно типа.

Чем переменная отличается от константы?

Константа - это объект, значение которого известно еще до начала работы программы.

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

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

4.      Найти в программах решенных задач декларативную часть. Для чего нужны разделы описаний констант, переменных. Что определяет тип переменной?

Декларативная часть во всех программах находится между директивой uses и первым begin.

Раздел описания констант содержит описания всех констант используемых в программе. Начинается со слова const. Далее указывается имя константы, знак равенства и значение константы.

Раздел описания переменных сообщает компилятору о том, какие переменные и какого типа будут использованы в программе. Начинается со слова var.

Компилятор резервирует для каждой переменой участок памяти в соответствии с указанным типом. Тип каждой переменной определяет диапазон её значений. В зависимости от типа под переменную отводится необходимое количество байт. Тип определяет также множество допустимых операций.

5.      Операторы. Оператор IF. Оператор FOR. Оператор присваивания.

В Turbo Pascal управляющая структура языка, проверяющая выполнение некоторого условия и позволяющая в случае выполнения или невыполнения этого условия произвести ветвление алгоритма, реализуется с помощью условного оператора IF.

Условный оператор IF имеет две формы представления:

1.       Полная

if условиеоператороператор;

2.       Неполная

if условиеоператор;

Условный оператор работает следующим образом:

.        Сначала вычисляется значение условия - это может быть любое выражение, возвращающее значение типа boolean.

2.       Затем, если в результате получена "истина" (true), то выполняется оператор, стоящий после ключевого слова then, а если "ложь" (false) - без дополнительных проверок выполняется оператор, стоящий после ключевого слова else. Если же else-ветвь отсутствует, то не выполняется ничего.

По синтаксису языка после слов then и else может стоять только один оператор. В случае, если необходимо использовать несколько операторов, последние заключаются в операторные скобки begin. end.

Оператор цикла For применяется в тех случаях, когда заранее известно число повторений цикла. Оператор цикла с параметром имеет вид:

For параметр: =A to B do

begin

{тело цикла}

end;

Параметр цикла - переменная порядкового типа (целого, логического, символьного, перечисляемого типа или тип-диапазон). Параметр цикла не может быть вещественного типа. Значение параметра автоматически изменяется на следующее значение. Например, если параметр цикла целого типа, то он увеличивается на 1.

A - это начальное значение параметра цикла, В - конечное значение параметра цикла.

Если в теле цикла содержится один оператор, то begin и end можно не ставить.

Алгоритм работы оператора цикла FOR:

.        Вычисляются и запоминаются начальное и конечное значения параметра цикла

2.       Параметру цикла присваивается начальное значение

.        Выполняются операторы тела цикла

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

.        И так до тех пор, пока параметр цикла меньше или равен конечному значению. В противном случае происходит выход из цикла.

Оператор присваивания имеет вид:

Имя переменной: = Выражение;

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

6.      Процедуры ввода - вывода.

программа функция аргумент идентификатор

Процедуры вывода на экран - write () и writeln (). В скобках указывается список фактических параметров данной процедуры через запятую. Если в качестве фактических параметров используется строка, заключенная в апострофы, то на экран будет выводиться все, что находится внутри апострофов в том виде, в котором это записано в программе. Если в качестве фактических параметров используется переменная, то на экран выведется значение данной переменной. При выводе значений переменных можно задавать формат выводимых значений. Для переменных целого типа формат - это целое число, определяющее количество позиций, которое будет занимать значение на экране. Для переменных вещественного типа формат - это два числа, разделенных двоеточием. Первое задает количество позиций, которое будет занимать значение на экране, второе - количество знаков после запятой. Например, writeln ('y=', y: 5: 3);

Процедуры ввода (чтение с клавиатуры) - read () и readln (). В скобках указывается через запятую список переменных. При выполнении оператора ввода компьютер ждет ввода с клавиатуры какого-либо значения. Пользователь должен ввести с клавиатуры значение и нажать Enter, после чего это значение присвоится переменной, указанной в операторе ввода. Например, readln (x);

Задание №4


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

Дан одномерный массив, состоящий из 6 элементов вещественного типа. Вычислить количество положительных элементов массива.

Дадим имя массиву - А.

А={2.1, - 3.5, 2.8, - 4.3, 7.1, 0.5}

2.       Таблица идентификаторов

обозначение в задании

идентификатор

назначение

A

A

Имя массива

i

i

Индекс элементов массива, счетчик цикла

n

n

Количество элементов массива


s


.        Текст программы CRT; {подключение модуля CRT}

const n=6; {объявление константы n=6}

var A: array [1. n] of real; {объявление массива А, состоящего из n

элементов вещественного типа}

s, i: byte; {объявление переменных s и i целого типа}

begin{начало основной программы}

clrscr; {процедура clrscr очищает экран}

writeln ('Введите элементы массива');i: =1 to n do('A [', i, '] ='); (A [i]); {ввод элементов массива}

end;

s: =0;

{вычисление количества положительных элементов массива}

for i: =1 to n do

{если элемент массива >0, то увеличиваем s на 1}

if A [i] >0 then s: =s+1;

{Если s>0, то выводим значение s, иначе выводим сообщение ‘В массиве нет положительных элементов’}

if s>0 then

writeln ('Количество положительных элементов массива: ', s)

else writeln (‘В массиве нет положительных элементов’);

readln;.

.        Контрольный расчет

Результат в Turbo Pascal: Количество положительных элементов массива: 4

Контрольные вопросы к заданиям 4

.        Определение массива.

Массив - совокупность фиксированного количества пронумерованных однотипных элементов, имеющих общее имя.

2.      Что такое переменная с индексом?

Каждый элемент массива имеет свой порядковый номер (индекс). Например, A [1] или A [i].

3.      Какова связь индексирования элементов массива с параметром цикла For?

Обработка элементов массива производится в цикле. Причем параметр цикла используется для индексирования элементов массива. Например, вывод элементов массива:

for i: =1 to n do('A [', i, '] =', A [i]);

4.      Способы описания массивов. Какой из способов описания массивов может быть использован при передаче массивов в процедуры и функции через список формальных параметров.

Для описания массивов можно использовать два способа:

1) type myarray=array [1.5] of integer;

A: myarray;

В разделе Type определен один конкретный тип. Имя этого типа myarray. Далее в разделе var этот тип применен для объявления массива A.

Тот же самый массив можно объявить так:

2) var A: array [1.5] of integer;

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

4.      Использование оператора цикла For для ввода - вывода и обработки элементов массива.

Так как ввод-вывод элементов массива и их обработка основаны на последовательном переборе всех его элементов, количество которых известно заранее, то при программировании для организации перебора используется оператор цикла FOR.

Пример: ввод элементов массива:

for i: =1 to n do

readln (A [i]);

Пример: вывод элементов массива:

for i: =1 to n do('A [', i, '] =', A [i]);

Похожие работы на - Создание программы для вычисления значения функции

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!