Закрепление навыков использования процедур и функций.
Практическая работа Составление программ, в которых применяются
Пример: Написать программу для нахождения значения функции , где х изменяется от p/2 до 2p с шагом p/12. Вычисление у оформить в виде функции. { Вычисление значений у} program prac9; var x,y:real;
function f(x:real):real; begin f:=sin(x)-1; end;
begin writeln(' x y'); writeln('------------------------'); x:=pi/2; repeat y:=f(x); writeln(x:6:2,y:15:6); x:=x+pi/12; until x>2*pi; writeln('------------------------'); readln; end. Задание. №1. 1. Написать программу для нахождения значения функции х изменяется от p/2 до 2p с шагом p/12. Вычисление у оформить в виде функции. Program Func_1_1; Const pi=3.14; Var y,x:real; Function f(x:real):real; Begin f:= sin(x)/x; end; Begin x:= pi/2; while x < 2 * pi do Begin y:=f(x); writeln('x = ', (x * 180)/pi:3:2, ' y=',y:3:2); x:=x+pi/12; end; end. x = 90.00 y=0.64 x = 105.00 y=0.53 x = 120.00 y=0.41 x = 135.00 y=0.30 2. Написать программу и процедуру, вызываемую из основной программы для вычисления объема шара и площади его поверхности.
Program Proc_1_2; Const pi=3.14; Var r,P,V:real; Procedure ObS(r:real; var m,n:real); Begin m:= 4/3 *pi * sqr(r); n:= 4/3 * pi *power(r,3); end; Begin write('Введите радиус r = '); read (r); Obs(r, p, v); writeln('p = ',p:3:2, ' v =', v:3:2); end. Введите радиус r = 5 p = 104.67 v =523.33
№2. 1. Написать программу для нахождения значения функции х изменяется от p/2 до 2p с шагом p/12. Вычисление у оформить в виде функции. Program Func_2_1; Const pi=3.14; Var y,x:real; Function f(x:real):real; Begin f:= x * cos(x); end; Begin x:= pi/2; while x <= 2 * pi do Begin y:=f(x); writeln('x = ', (x * 180)/pi:3:2, ' y=',y:3:2); x:=x+pi/12; end; end. x = 90.00 y=0.00 x = 105.00 y=-0.47 x = 120.00 y=-1.04 x = 135.00 y=-1.66 x = 150.00 y=-2.26 2. Написать программу и процедуру, вызываемую из основной программы для вычисления объема параллелепипеда и площади его поверхности (V = abc, P = 2(ab + bc + ac)).
Program Proc_2_2; Var a,b,c,v,p:real; Procedure ObPl(x,y,z:real; var o,s:real); Begin o:= 2*(x*y + y* z + x* z); s:= x*y*z; end; Begin writeln('Введите a,b,c'); read (a,b,c); ObPl(a,b,c,p,v); writeln('площадь параллепипеда p = ',p:3:2, ' объем параллепипеда v =', v:3:2); end. Введите a,b,c 2.1 3.3 6.4 площадь параллепипеда p = 82.98 объем параллепипеда v =44.35 №3. 1. Написать программу для нахождения значения функции х изменяется от -1 до 3 с шагом 0,5. Вычисление у оформить в виде функции. 2. Написать программу и процедуру, вызываемую из основной программы для вычисления объема куба и площади его поверхности (V = a3 , P = 6a2 ). Введите a = 4 площадь куба = 96.00 объем куба v =64.00 №4. 1. Написать программу для нахождения значения функции х изменяется от -15 до 20 с шагом 5. Вычисление у оформить в виде функции. Ответ: 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 2. Написать программу и процедуру, вызываемую из основной программы для вычисления объема кругового цилиндра и площади его боковой поверхности (V = pR2 h, S = 2pRh). Ответ: Введите радиус r = 5 Введите высоту h = 10 площадь кругового цилиндра s = 314.00 объем кругового цилиндра v =785.00
№5. 1. Написать программу для нахождения значения функции х изменяется от -p до p с шагом p/12. Вычисление у оформить в виде функции. Ответ: x=-3.14 y=0.00 x=-2.88 y=-0.29 x=-2.62 y=-0.57 и т.д. 2. Написать программу и процедуру, вызываемую из основной программы для вычисления объема кругового конуса и площади его боковой поверхности
№6. 1. Написать программу для нахождения значения функции y = sin x + sin 2x + sin 3x х изменяется от -2p до 2p с шагом p/8. Вычисление у оформить в виде функции. 2. Написать программу и процедуру, вызываемую из основной программы для вычисления гипотенузы и площади прямоугольного треугольника, если известны его катеты. №7. 1. Написать программу для нахождения значения функции
х изменяется от 1 до 5 с шагом 0,5. Вычисление у оформить в виде функции. 2. Написать программу и процедуру для перевода введенного значения фунтов в унции и килограммы (1 фут = 16 унций = 0,454 кг). №8. 1. Написать программу для нахождения значения функции y = x2 – 2x + 3 х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.
2. Написать программу и процедуру для вычисления сопротивления цепи из четырех сопротивлений при последовательном и параллельном соединении.
№ 9. 1. Написать программу для нахождения значения функции y = x3 – 0.8x + 2 х изменяется от -2 до 4 с шагом 0,5. Вычисление у оформить в виде функции.
2. Написать программу и процедуру для вычисления скоростей шаров массами m1 и m2 после удара, скорость первого шара – v1, второй шар до удара покоился
№10. 1. Написать программу для нахождения значения функции y = (x + 1)2 – 2(x +5) х изменяется от -3 до 3 с шагом 0,5. Вычисление у оформить в виде функции.
2. Написать программу и процедуру для вычисления емкости батареи из четырех конденсаторов при последовательном и параллельном соединении.
Оформление отчета: В отчете должны быть представлены: 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.
Задание №1. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти среднее арифметическое этих массивов, переставить местами первую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций.
№2. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество отрицательных элементов в массивах, переставить местами первый и последний столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №3. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти максимальные элементы массивов, переставить местами первую и вторую строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №4. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество положительных элементов в этих массивах, переставить местами второй и третий столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №5. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество элементов больше среднего в этих массивах, переставить местами первую и предпоследнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №6. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти сумму элементов стоящих на главной диагонали в этих массивах, переставить местами первую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №7. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти сумму положительных элементов этих массивов, переставить местами первый и предпоследний столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №8. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество элементов больше 10 в этих массивах, переставить местами вторую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №9. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти среднее арифметическое всех чисел больше 5 этих массивов, переставить местами первую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций.
№10. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество четных элементов в массивах, переставить местами первый и последний столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №11. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество нулевых элементов массивов, переставить местами первую и вторую строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №12. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти сумму положительных элементов в этих массивах, переставить местами второй и третий столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №13. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти количество элементов меньше 1 в этих массивах, переставить местами первую и предпоследнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №14. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти сумму элементов стоящих на главной диагонали в этих массивах, переставить местами первую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №15. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти произведение элементов, стоящих на главной диагонали этих массивов, переставить местами первый и предпоследний столбики, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций. №16. Написать программу: объявить два двумерных массива, заполнить эти массивы данными, вывести на экран в виде матриц, найти сумму элементов больше 10 в этих массивах, переставить местами вторую и последнюю строки, вывести новые массивы. Все действия с массивами оформить в виде процедур или функций.
Оформление отчета: В отчете должны быть представлены: 1. Номер и название работы. 2. Цель работы. 3. Задание. 4. Для каждого задания должен быть записан текст программы. Контрольные вопросы: 1. Как происходит передача массива в процедуру или функцию? 2. В каком случае применяется процедура, а в каком функция? 3. Где описывается новый, объявляемый пользователем тип? 4. Чем отличается обращение к процедуре от обращения к функции?
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|