Создание программы для вычисления значения функции
Вычисление значения функции с помощью программирования. Рабочий набор исходных данных. Таблица идентификаторов, текст программы, контрольный расчет. Подключение модуля, объявление константы и переменных вещественного типа. Шаг изменения аргумента.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 28.09.2012 |
Размер файла | 118,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
12
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ТЕЛЕКОММУНИКАЦИЙ им. проф. М.А. БОНЧ-БРУЕВИЧА
ФАКУЛЬТЕТ
ВЕЧЕРНЕГО И ЗАОЧНОГО ОБУЧЕНИЯ
Контрольная работа
по информатике
Архангельск 2009
Задание №1
1. Постановка задачи
Вычислить значение функции
Рабочий набор исходных данных: а=-1,2, х=4,1
2. Таблица идентификаторов
обозначение в задании |
идентификатор |
назначение |
|
а |
а |
Коэффициент-константа |
|
х |
х |
Переменная, используемая для задания значения аргумента |
|
у |
у |
Переменная, используемая для хранения значения вычисляемой функции |
3. Текст программы
uses 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))
then 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
2. Таблица идентификаторов
обозначение в задании |
идентификатор |
назначение |
|
n |
n |
Константа, определяющая верхнюю границу изменения счетчика цикла |
|
s,f,m,a |
Промежуточные результаты |
||
х |
х |
Исходные данные |
|
z |
z |
Значение функции |
|
i |
i |
Счетчик цикла |
|
j |
Счетчик цикла |
3. Текст программы
uses 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;
end.
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 |
Счетчик цикла |
3. Текст программы
uses 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 ('_____________________');
writeln ('! x! y! ');
writeln ('_____________________');
b: =ln (a+2.3);
for 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;
writeln ('______________________');
readln;
end.
4. Контрольный расчет
Результат в 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 {описание типов);
var {описание переменных};
{Описание подпрограмм}
procedure {описание процедур};
function {описание функций};
begin
{Раздел операторов};
end.
Заголовок программы не обязателен и может отсутствовать. Порядок размещения разделов описаний произвольный.
2. Что такое идентификатор?
Для именования различных программных объектов служат языковые конструкции, называемые идентификаторами. Идентификатор определяется как последовательность букв, цифр и символов подчеркивания, начинающаяся с буквы. Идентификатор не может содержать пробелов.
3. Понятие переменной в Turbo Pascal.
Переменная - это ячейка оперативной памяти, которая может хранить данные какого-то одно типа.
Чем переменная отличается от константы?
Константа - это объект, значение которого известно еще до начала работы программы.
Константы необходимы для оформления наглядных программ, незаменимы при использовании в тексте программы многократно повторяемых значений, удобны в случае необходимости изменения этих значений сразу во всей программе.
Значение переменной определяется в процессе выполнения программы и может многократно меняться.
4. Найти в программах решенных задач декларативную часть. Для чего нужны разделы описаний констант, переменных. Что определяет тип переменной?
Декларативная часть во всех программах находится между директивой uses и первым begin.
Раздел описания констант содержит описания всех констант используемых в программе. Начинается со слова const. Далее указывается имя константы, знак равенства и значение константы.
Раздел описания переменных сообщает компилятору о том, какие переменные и какого типа будут использованы в программе. Начинается со слова var.
Компилятор резервирует для каждой переменой участок памяти в соответствии с указанным типом. Тип каждой переменной определяет диапазон её значений. В зависимости от типа под переменную отводится необходимое количество байт. Тип определяет также множество допустимых операций.
5. Операторы. Оператор IF. Оператор FOR. Оператор присваивания.
В Turbo Pascal управляющая структура языка, проверяющая выполнение некоторого условия и позволяющая в случае выполнения или невыполнения этого условия произвести ветвление алгоритма, реализуется с помощью условного оператора IF.
Условный оператор IF имеет две формы представления:
1. Полная
if условие
then оператор
else оператор;
2. Неполная
if условие
then оператор;
Условный оператор работает следующим образом:
1. Сначала вычисляется значение условия - это может быть любое выражение, возвращающее значение типа boolean.
2. Затем, если в результате получена "истина" (true), то выполняется оператор, стоящий после ключевого слова then, а если "ложь" (false) - без дополнительных проверок выполняется оператор, стоящий после ключевого слова else. Если же else-ветвь отсутствует, то не выполняется ничего.
По синтаксису языка после слов then и else может стоять только один оператор. В случае, если необходимо использовать несколько операторов, последние заключаются в операторные скобки begin. end.
Оператор цикла For применяется в тех случаях, когда заранее известно число повторений цикла. Оператор цикла с параметром имеет вид:
For параметр: =A to B do
begin
{тело цикла}
end;
Параметр цикла - переменная порядкового типа (целого, логического, символьного, перечисляемого типа или тип-диапазон). Параметр цикла не может быть вещественного типа. Значение параметра автоматически изменяется на следующее значение. Например, если параметр цикла целого типа, то он увеличивается на 1.
A - это начальное значение параметра цикла, В - конечное значение параметра цикла.
Если в теле цикла содержится один оператор, то begin и end можно не ставить.
Алгоритм работы оператора цикла FOR:
1. Вычисляются и запоминаются начальное и конечное значения параметра цикла
2. Параметру цикла присваивается начальное значение
3. Выполняются операторы тела цикла
4. Значение параметра цикла увеличивается на единицу. Если новое значение параметра цикла меньше или равно конечному значению, выполняется тело цикла.
5. И так до тех пор, пока параметр цикла меньше или равен конечному значению. В противном случае происходит выход из цикла.
Оператор присваивания имеет вид:
Имя переменной: = Выражение;
С помощью оператора присваивания переменной, стоящей в левой части оператора присваивается значение выражения, стоящего в правой части оператора присваивания. В правой части присваивания может находиться переменная, константа, арифметическое выражение или вызов функции.
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 |
Количество положительных элементов массива |
3. Текст программы
uses CRT; {подключение модуля CRT}
const n=6; {объявление константы n=6}
var A: array [1. n] of real; {объявление массива А, состоящего из n
элементов вещественного типа}
s, i: byte; {объявление переменных s и i целого типа}
begin{начало основной программы}
clrscr; {процедура clrscr очищает экран}
writeln ('Введите элементы массива');
for i: =1 to n do
begin
write ('A [', i, '] =');
readln (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;
end.
4. Контрольный расчет
Результат в Turbo Pascal: Количество положительных элементов массива: 4
Контрольные вопросы к заданиям 4
1. Определение массива.
Массив - совокупность фиксированного количества пронумерованных однотипных элементов, имеющих общее имя.
2. Что такое переменная с индексом?
Каждый элемент массива имеет свой порядковый номер (индекс). Например, A [1] или A [i].
3. Какова связь индексирования элементов массива с параметром цикла For?
Обработка элементов массива производится в цикле. Причем параметр цикла используется для индексирования элементов массива. Например, вывод элементов массива:
for i: =1 to n do
writeln ('A [', i, '] =', A [i]);
4. Способы описания массивов. Какой из способов описания массивов может быть использован при передаче массивов в процедуры и функции через список формальных параметров.
Для описания массивов можно использовать два способа:
1) type myarray=array [1.5] of integer;
var
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
writeln ('A [', i, '] =', A [i]);
Размещено на Allbest.ru
Подобные документы
Написание модуля на языке Ассемблер для вычисления значения выражения. Составление программы корректного ввода исходных данных в таблицу и вывода результата в виде таблицы. Создание модуля для обработки строк и программы корректного ввода исходных данных.
курсовая работа [36,8 K], добавлен 18.09.2010Разработка модуля для вычисления значения функции, который впоследствии подключается к программе ввода исходных данных с контролем допусимого значения в таблицу. Проектирование модуля для работы со строками и для обработки массивов текстовой информации.
курсовая работа [17,8 K], добавлен 24.09.2010Составление программы для вычисления по двум формулам одной и той же переменной "X". Создание программы, которая по введенному значению аргумента вычислят значение функции, заданной в виде графика. Вывод на экран значения функции, заданной графически.
курсовая работа [4,9 M], добавлен 14.03.2014Ввод данных, построение графиков, встроенные функции БС и ПС для вычисления будущей стоимости с помощью формулы простых процентов (MS Excel). Синтаксис функции БС, вычисление будущего значения единой суммы. Вычисление текущего значения суммы (функция ПС).
лабораторная работа [1,8 M], добавлен 12.12.2010Общая характеристика языка программирования Турбо Паскаль: операторы, циклы, файлы. Процедуры и функции модуля Crt. Структурная и функциональная схема программы учета учащихся, таблица идентификаторов. Список и описание использованных подпрограмм.
курсовая работа [702,9 K], добавлен 29.01.2011Методика разработки и листинг программы для вычисления значений функции F(x) на отрезке [а, Ь] с заданным шагом. Вычисление значения выражения по формуле. Расчет параметров равностороннего треугольника. Порядок формирования квадратной матрицы порядка.
контрольная работа [425,1 K], добавлен 10.03.2014Исследование понятия алгоритма, особенностей линейных и разветвляющихся алгоритмов. Свойства алгоритма: понятность, точность, дискретность, массовость и результативность. Составление программы для вычисления значения функции и построение её графика.
контрольная работа [278,0 K], добавлен 25.03.2013Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.
лабораторная работа [124,7 K], добавлен 09.01.2012Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.
курсовая работа [240,6 K], добавлен 17.06.2013Особенности применения компьютерных программ Pascal, Excel, MathCAD и Delphi для вычисления значения функции y(x) с заданным промежутком и шагом. Виды результатов вычислений, их сравнение и вывод. Изображение блок-схемы алгоритма решения задания.
контрольная работа [760,0 K], добавлен 08.03.2011