- •Практическая работа Составление программ, в которых применяются процедуры и функции
- •Задание.
- •Написать программу для нахождения значения функции
- •Написать программу для нахождения значения функции
- •Написать программу для нахождения значения функции
- •Задание
- •Оформление отчета:
- •Контрольные вопросы:
Написать программу для нахождения значения функции
х изменяется от -15 до 20 с шагом 5. Вычисление у оформить в виде функции.
program igor;
Var x,y:real;
Function f(x:real):real;
Begin y:=(1/(x*x))*(x*x+3*x+2);
End;
Begin
x:=-15;
while x<20 do
begin
y:=f(x);
writeln('x= ',x:-3:2, 'y= ',y :2:3);
x:=x+5;
end;
end.
Ответ:
x=-15 y=0.81
x=-10 y=0.71
x= -5 y=0.46
x= 0 y=2.00
x= 5 y=1.62
x= 10 y=1.31
x= 15 y=1.20
Написать программу и процедуру, вызываемую из основной программы для вычисления объема кругового цилиндра и площади его боковой поверхности (V = R2 h, S = 2Rh).
Ответ:
Введите радиус r = 5
Введите высоту h = 10
площадь кругового цилиндра s = 314.00 объем кругового цилиндра v =785.00
№5.
Написать программу для нахождения значения функции
х изменяется от - до с шагом /12. Вычисление у оформить в виде функции.
Ответ:
x=-3.14 y=0.00
x=-2.88 y=-0.29
x=-2.62 y=-0.57
и т.д.
Написать программу и процедуру, вызываемую из основной программы для вычисления объема кругового конуса и площади его боковой поверхности
№6.
Написать программу для нахождения значения функции
y = sin x + sin 2x + sin 3x
х изменяется от -2 до 2 с шагом . Вычисление у оформить в виде функции.
Написать программу и процедуру, вызываемую из основной программы для вычисления гипотенузы и площади прямоугольного треугольника, если известны его катеты.
№7.
Написать программу для нахождения значения функции
х изменяется от 1 до 5 с шагом 0,5. Вычисление у оформить в виде функции.
Написать программу и процедуру для перевода введенного значения фунтов в унции и килограммы
(1 фут = 16 унций = 0,454 кг).
№8.
Написать программу для нахождения значения функции
y = x2 – 2x + 3
х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.
Написать программу и процедуру для вычисления сопротивления цепи из четырех сопротивлений при последовательном и параллельном соединении.
№ 9.
Написать программу для нахождения значения функции
y = x3 – 0.8x + 2
х изменяется от -2 до 4 с шагом 0,5. Вычисление у оформить в виде функции.
Написать программу и процедуру для вычисления скоростей шаров массами m1 и m2 после удара, скорость первого шара – v1, второй шар до удара покоился
№10.
Написать программу для нахождения значения функции
y = (x + 1)2 – 2(x +5)
х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.
Написать программу и процедуру для вычисления емкости батареи из четырех конденсаторов при последовательном и параллельном соединении.
Оформление отчета:
В отчете должны быть представлены:
Номер и название работы.
Цель работы.
Задание.
Для каждого задания должен быть записан текст программы.
Контрольные вопросы:
Что такое процедура?
Как объявляется процедура?
Как вызывается процедура?
Чем отличается параметр-переменная от простого параметра?
Какие переменные называются локальными?
Какие переменные называются глобальными?
Что такое функция?
Как объявляется функция-программиста?
Как происходит вызов функции?
Практическая работа №10.
Закрепление навыков использования процедур и функций.
Цель работы: |
Научиться использовать процедуры и функции при работе с массивами. |
Теоретическая справка
Если необходимо передать в качестве параметра в процедуру или функцию массив, то необходимо в начале программы задать новый тип для массива в разделе TYPE. Это делается следующим образом
type новое_имя_типа [диапазон массива] of тип_массива;
Например:
type mas [1..10] of integer;
это означает, что создан новый тип mas, для одномерных массивов размерности 10, состоящих из целых чисел. Если необходимо будет передать такой массив с именем В в процедуру input, заголовок которой выглядит так:
procedure input(a:mas);
то обращение к процедуре будет выглядеть:
input(B) ;
Также поступают и с двумерными массивами, только их диапазон состоит из количества строк и количества столбцов.
Пример:
Написать программу для ввода двух массивов С и D, вывести эти массивы в виде матриц, найти минимальные элементы, а также суммы этих массивов. Выполнить перестановки: в массиве С переставить последнюю и предпоследнюю строки, в массиве D переставить 1 и 2 строки. Все повторяющиеся действия оформить в виде процедур или функций.
Программа выглядит следующим образом:
program massiv;
uses crt;
const n=3;
m=3;
type mas=array[1..n,1..m] of real;
var C,D:mas;
i,j:integer;
S,buf,min:real;
{Ввод элементов массива}
procedure vvod(var a:mas);
var i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
begin
write(i,',',j,'->');
readln(a[i,j]);
end;
end;
{Ввывод элементов массива в виде матрицы}
procedure vivod(a:mas);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:10:2);
writeln;
end;
end;
{Перестановка в массиве k-той и l-той строк}
procedure perest(var a:mas;k,l:integer);
var buf:real;
i,j:integer;
begin
for j:=1 to m do
begin
buf:=a[k,j];
a[k,j]:=a[l,j];
a[l,j]:=buf;
end;
end;
{Поиск минимального элемента массива}
function min_mas(a:mas):real;
var min:real;
i,j:integer;
begin
min:=a[1,1];
for i:=1 to n do
for j:=1 to m do
if a[i,j]<min then min:=a[i,j];
min_mas:=min;
end;
{Поиск суммы элементов массива}
function sum_mas(a:mas):real;
var S:real;
i,j:integer;
begin
S:=0;
for i:=1 to n do
for j:=1 to m do
S:=S+a[i,j];
sum_mas:=S;
end;
begin
clrscr;
writeln('Введите элементы массива С:');
vvod(C);
writeln;
writeln('Введите элементы массива D:');
vvod(D);
clrscr;
writeln('Массив С:');
vivod(C);
perest(C,n,n-1);
writeln('Массив С после перестановки:');
vivod(C);
S:=sum_mas(C);
min:=min_mas(C);
writeln('Сумма элементов массива С->',S:5:2);
writeln('Минимальный элемент массива С->',min:5:2);
writeln
writeln('Массив D:');
vivod(D);
perest(D,1,2);
writeln('Массив D после перестановки:');
vivod(D);
S:=sum_mas(D);
min:=min_mas(D);
writeln('Сумма элементов массива D->',S:5:2);
writeln('Минимальный элемент массива D->',min:5:2);
readln;
end.
