Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Боглачев_Пр_раб_Процедуры и функции.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
196 Кб
Скачать
☆
  1. Написать программу для нахождения значения функции

х изменяется от -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

  1. Написать программу и процедуру, вызываемую из основной программы для вычисления объема кругового цилиндра и площади его боковой поверхности (V = R2 h, S = 2Rh).

Ответ:

Введите радиус r = 5

Введите высоту h = 10

площадь кругового цилиндра s = 314.00 объем кругового цилиндра v =785.00

№5.

  1. Написать программу для нахождения значения функции

х изменяется от - до  с шагом /12. Вычисление у оформить в виде функции.

Ответ:

x=-3.14 y=0.00

x=-2.88 y=-0.29

x=-2.62 y=-0.57

и т.д.

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

№6.

  1. Написать программу для нахождения значения функции

y = sin x + sin 2x + sin 3x

х изменяется от -2 до 2 с шагом . Вычисление у оформить в виде функции.

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

№7.

  1. Написать программу для нахождения значения функции

х изменяется от 1 до 5 с шагом 0,5. Вычисление у оформить в виде функции.

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

(1 фут = 16 унций = 0,454 кг).

№8.

  1. Написать программу для нахождения значения функции

y = x2 – 2x + 3

х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.

  1. Написать программу и процедуру для вычисления сопротивления цепи из четырех сопротивлений при последовательном и параллельном соединении.

№ 9.

  1. Написать программу для нахождения значения функции

y = x3 – 0.8x + 2

х изменяется от -2 до 4 с шагом 0,5. Вычисление у оформить в виде функции.

  1. Написать программу и процедуру для вычисления скоростей шаров массами m1 и m2 после удара, скорость первого шара – v1, второй шар до удара покоился

№10.

  1. Написать программу для нахождения значения функции

y = (x + 1)2 – 2(x +5)

х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.

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

Оформление отчета:

В отчете должны быть представлены:

  1. Номер и название работы.

  2. Цель работы.

  3. Задание.

  4. Для каждого задания должен быть записан текст программы.

Контрольные вопросы:

  1. Что такое процедура?

  2. Как объявляется процедура?

  3. Как вызывается процедура?

  4. Чем отличается параметр-переменная от простого параметра?

  5. Какие переменные называются локальными?

  6. Какие переменные называются глобальными?

  7. Что такое функция?

  8. Как объявляется функция-программиста?

  9. Как происходит вызов функции?

Практическая работа №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.