Лабораторная работа № 1. Программирование последовательных вычислений 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа № 1. Программирование последовательных вычислений



Введение

Алгоритмизация

Таблица 1 –Основные блоки на блок-схемах
Название Фигура Назначение
1. Пуск-останов Начало или конец алгоритма
2. Ввод-вывод Ввод исходных данных или вывод результатов
3. Процесс Выполнение вычислений или группы действий
4. Решение Выбор направления выполнения алгоритма в зависимости от условия
5. Соединитель Связь с другой частью алгоритма
6. Модификация Задание счётчика циклов
7. Предопределён-ный процесс Выполнение описанных ранее действий

Решение многих задач с помощью компьютера включает ряд этапов: содержательная постановка задачи; математическая формулировка задачи; выбор метода решения задачи; разработка модели и алгоритма решения задачи; выбор языка программирования и составление программы; ввод программы и исходных данных в память компьютера; отладка и выполнение программы; получение и анализ результатов; документирование и тестирование программы.

Модель – искусственный аналог объекта исследования, обладающий некоторыми существенными свойствами оригинала.

Алгоритм – конечная последовательность действий, однозначно приводящая к решению задачи.

Алгоритм имеет следующие свойства: дискретность (пошаговость выполнения); результативность (стремление к решению задачи); определённость (однозначность команд); массовость (применимость для класса задач).

Блок-схема – графическое изображение алгоритма. Блок-схема состоит из блоков, представляющих собой геометрические фигуры, соединённые линиями. Основные блоки приведены в таблице 1.

К базовым управляющим структурам алгоритмов относятся: алгоритм линейной структуры (следование), в котором все действия выполняются последовательно; алгоритм разветвляющейся структуры (ветвление), в котором происходит переход к одной из нескольких ветвей алгоритма; алгоритм циклической структуры (повторение), в котором производится многократное повторение однотипных действий.

Автоматизация математических вычислений на компьютере

Для автоматизации математических вычислений на ЭВМ без программирования в технических расчётах обычно используются математические системы. Математическая система – прикладная программа для автоматизации математических вычислений и аналитических преобразований (наиболее распространенные математические системы – Mathcad, MatLab, Maple, Derive, Eureka).

Система Mathcad позволяет проводить линейные, разветвляющиеся (с помощью функции If) и циклические (с помощью ..) вычисления; находить значения функций, производных и интегралов; строить графики; выполнять обработку массивов (индексирование массивов начинается с 0); вычислять характеристики матриц: сумму, произведение, минимальное (функция Min), максимальное (функция Max) и среднее значение (функция Mean); решать уравнения с нулевой правой частью (с помощью функции Root); решать уравнения и системы уравнений с любой правой частью (с помощью функции Find). Главное достоинство программы Mathcad заключается в том, что формулы записываются в виде, приближенном к математической записи, что повышает наглядность и освоение действий в системе Mathcad. Пример расчётов в системе Mathcad приведён на рисунке 1.


Лабораторная работа № 1. Программирование последовательных вычислений

Элементы языка Pascal

Программа на языке Pascal включает: заголовок программы (Program), раздел описания используемых модулей (Uses), раздел описания меток (Label), раздел описания констант (Const), раздел описания типов данных (Type), раздел описания переменных (Var), раздел описания процедур (Procedure), раздел описания функций (Function), раздел операторов (Begin…End.).

К стандартным типам данных в языке Pascal относятся: целочисленный тип integer (целые числа), вещественный тип real (действительные числа), логический тип boolean (логические выражения), символьный тип char (отдельные символы), строковый тип string (строки символов).

В языке Pascal используются следующие операторы (управляющие инструкции): составной оператор begin…end (началоконец), оператор присваивания …:=… (… присвоить …), операторы ввода read(…) (с читывать) и readln(…) (с читывать до новой строки), операторы вывода write(…) (за писывать) и writeln(…) (за писывать до новой строки), оператор безусловного перехода goto… (перейти к …), оператор условного перехода (условный оператор) if…then…else… (еслитоиначе …), оператор варианта (выбора) case…of…else…end (в случаеизиначеконец), оператор цикла с предусловием while…do… (покаделать …), оператор цикла с постусловием repeat…until… (повторятьпока …), операторы цикла с параметром for…:=…to…do… (дляотдоделать …) и for…:=…downto…do… (дляотвниз доделать …), оператор присоединения with…do… (сделать …).

Порядок выполнения

1. Если это необходимо, зайти в Windows.
2. Загрузить систему программирования Borland Pascal. Пуск ►(Мой) Компьютер, ÚÚ Apps (G:), ÚÚ BP, ÚÚ BIN, ÚÚ BP (или ÚÚ Borland Pascal, ОК, найти свою папку, ОК, ОК).
3. Закрыть окно и создать новый пустой файл. Window ►Close (Окно ►Закрыть), File ►New (Файл ►Новый).
4. Набрать программу на языке Pascal для решения следующей задачи № 1: Вычислить . Набрать 1-ю программу (см. примеры программ).
5. Задать диск и папку для хранения файлов. File ►Change dir (Файл ►Сменить директорию), ÚÚ Drives, ÚÚ (H:), ÚÚ на папках преподавателя и группы, ÚÚ на своей папке, ОК.
6. Сохранить программу в файле. File ►Save as (Файл ►Сохранить как), ввести имя файла, ОК.
7. Проверить программу на ошибки (т.е. сделать компиляцию программы). Compile ►Compile (Компиляция ►Компилировать) (или [Alt]+[F9]), ¿, исправить ошибку, далее аналогично.
8. Запустить программу на выполнение и задать исходные данные ( и ; и ). Run ►Run (Выполнение ►Выполнить) (или [Ctrl]+[F9]), ввести 1‑е число, |__|, ввести 2-е число, ¿, далее аналогично.
9. Просмотреть результат, показать преподавателю и записать полученный ответ. Debug ►User Screen (Отладка ►Экран пользователя) (или [Alt]+[F5]), записать информацию, ¿.
10. Сохранить ещё раз программу. File ►Save (Файл ►Сохранить) (или [F2]).
11. Аналогично набрать программу для решения задачи № 2: Ввести и вывести значения переменных a, b, с с использованием разных операторов ввода и вывода. Выполнить п. 3, набрать 2-ю программу.
12. Изменить программу так, чтобы на экране отображался пояснительный текст при вводе и выводе. Далее получить ответ в задаче № 2 (при ; ; ). Изменить программу, выполнить пп. 5-10.
13. Аналогично набрать программу для решения задачи № 3: Найти величину , где катет треугольника , а объем шара . Выполнить п. 3, набрать 3-ю программу.
14. Изменить программу так, чтобы на экране ответ занимал 7 позиций c 2 цифрами в дробной части. Далее получить ответ в задаче № 3 (при ; ; ). Изменить программу, выполнить пп. 5-10.
15. Выйти из системы программирования Borland Pascal. File ►Exit (Файл ►Выход) (или [Alt]+[X]).

Примеры программ на языке Pascal

1-я программа Объяснение каждой строки
Program Lab1a; Программа по имени lab1a
Var Раздел описания переменных
a,b,c:real; Переменные a, b, c – вещественного типа
Begin Начало раздела операторов (или начало составного оператора)
writeln('Введите a,b'); Вывод пояснительного текста 'Введите a,b'
read(a,b); Ввод переменных a, b
c:=a+b; Переменной c присваивается значение выражения a+b
writeln('c=',c:10:3); Вывод пояснительного текста 'c=' и числового значения переменной c, занимающего 10 позиций, в т.ч. 3 цифры после запятой
End. Конец раздела операторов и программы
2-я программа 3-я программа
Program Lab1b; Program Lab1c;
Var Var
a,b,c:integer; a,b,c,R,V,F:real;
Begin Begin
read(a); writeln('Введите b,c,R');
readln(b); read(b,c,R);
read(c); a:=sqrt(sqr(c)-sqr(b));
write(a); V:=4/3*pi*R*R*R;
writeln(b); F:=(exp(0.2*ln(V))+c)/a;
write(c); writeln('F=',F);
End. End.
     

Дополнительное задание

1. Вычислить , где , .

2. Вычислить , где , .

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

1. Какие разделы включает программа на языке Pascal? Как они обозначаются?

2. Какие типы данных в языке Pascal являются стандартными? Как они обозначаются?

3. Какие операторы используются в языке Pascal? Какой вид они имеют и что означают?

4. Какие операции имеются в языке Pascal? Какой приоритет они имеют? Приведите примеры.

5. Какой синтаксис имеют стандартные математические функции и константа p? Приведите примеры.

6. Как зайти в Borland Pascal и выйти оттуда? Как создать новый файл и закрыть окно?

7. Как проверить программу на ошибки и запустить её на выполнение? Как просмотреть ответ и сохранить программу?

8. Напишите программу к одной из задач дополнительного задания.

 


Алгоритм линейной структуры

Алгоритм линейной структуры – алгоритм, в котором все действия выполняются последовательно.

Для реализации этого алгоритма в языке Pascal используются следующие операторы:

1. Составной оператор имеет вид:

begin

Op1;

OpN

end

где begin – начало, end – конец, Op1 – оператор 1-й, OpN – оператор N-й.

Оператор означает, что надо выполнять оператор Op1, и т.д., … выполнять оператор OpN.

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

P:= V

где P – переменная, V – выражение.

Оператор означает, что переменной P присваивается значение выражения V.

3. Операторы ввода имеют вид:

read (P1, …, PN)

readln (P1, …, PN)

где read – читать, readln – читать до новой строки (read-on-line), P1 – переменная 1-я, PN – переменная N-я.

Операторreadпозволяет последовательно вводить значения переменных P1 … PN, а операторreadln, кроме этого, позволяет дополнительно перевести курсор на новую строку.

4. Операторы вывода имеют вид:

write (V1, …, VN)

writeln (V1, …, VN)

где write – писать, writeln – писать до новой строки (write-on-line), V1 – выражение 1-е, VN – выражение N-е.

Операторwrite позволяет последовательно выводить значения выражений V1 … VN, а операторwriteln, кроме этого, позволяет дополнительно перевести курсор на новую строку.

Порядок выполнения

1. Зайти в Borland Pascal.

2. Набрать текст программы для решения задачи № 1 и получить ответ (при и ; и ).

3. Исправить программу так, чтобы она решала задачу без использования слова else.

4. Набрать текст программы для решения задачи № 2 и получить ответ (при ; ; ; ).

5. Исправить программу так, чтобы она решала задачу без использования оператора case.

Примеры задач

Задача 1. Вычислить величину . Задача 2. Вычислить величину , где a и c – целые числа.
Program Lab2a; Program Lab2b;
Var Var a,c:integer;
a,b,c:real; Begin
Begin read(a);
writeln('Введи a,b'); case a of
read(a,b); 0: c:=2;
if a>b 1..10: c:=3;
then c:=(a-b)/(a*b) -1,11: c:=4
else c:=exp(b*ln(a)); else c:=5
writeln('c=',c:10:3); end;
End. writeln(c);
  End.

Дополнительное задание

1. Вычислить

2. Вычислить при

3. Вычислить , где

4. Вычислить где .

5. Вычислить , где

6. Вычислить .

7. Найти

8. Найти

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

1. Что такое алгоритм линейной структуры? Перечислите операторы, реализующие этот алгоритм.

2. Что такое алгоритм разветвляющейся структуры? Перечислите операторы, реализующие этот алгоритм.

3. Какой вид имеют составной оператор и оператор присваивания, а также что они означают?

4. Какой вид имеют операторы ввода и вывода, а также что они означают?

5. Какой вид имеет оператор безусловного и условного перехода, а также что они означают?

6. Какой вид имеет оператор варианта и что он означает?

7. Что такое метка, условие и селектор? К каким типам данных относятся эти понятия?

8. Напишите, что означает каждая строка в вышеприведённых программах.

9. Напишите программу к одной из задач дополнительного задания.


Порядок выполнения

1. Зайти в Borland Pascal.

2. Набрать текст программы для решения задачи № 1 и получить ответ (при ; ; ).

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

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

5. Набрать текст программы для решения задачи № 2 и получить ответ.

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

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


Примеры задач

Задача 1. Вычислить значения функции при x, увеличивающемся от x н до x к с шагом Dx. (Обозначения: ; ; ) Задача 2. Вычислить значения функции при x, изменяющемся от 0 до 10 с шагом 1.
Program Lab3a; Program Lab3b;
Var Var
x,y,xn,xk,dx:real; x,y:real;
Begin Begin
writeln('Введи xn,xk,dx'); x:=0;
read(xn,xk,dx); repeat
x:=xn; y:=sin(x)/cos(x);
while x<=xk do writeln(x,y);
begin x:=x+1;
y:=exp(x); until x>10;
writeln('при x=',x:10:3,' y=',y:10:3); End.
x:=x+dx;  
end;  
End.  

Дополнительное задание

1. Вычислить , где с увеличивается от с н до с к с шагом .

2. Вычислить , где P меняется от P н = 0,3 до P к = 1,5 с шагом DP = 0,2.

3. Вычислить , где y меняется от y н = 1 до y к = 5 с шагом Dy = 0,5.

4. Вычислить где w 0 уменьшается от w н до w к с шагом Dw.

5. Вычислить где n – целое число и меняется от n н = 100 до n к = 10 с шагом Dn = -5.

6. Вычислить , где x увеличивается от x н до x к с шагом Dx.

7. Вычислить , где x увеличивается от x н до x к с шагом Dx.

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

1. Что такое алгоритм циклической структуры? Перечислите операторы, реализующие этот алгоритм.

2. Что такое цикл? Перечислите составляющие и разновидности циклов.

3. Какой вид имеет оператор цикла с предусловием и что он означает?

4. Какой вид имеет оператор цикла с постусловием и что он означает?

5. Какой вид имеет оператор цикла с параметром (при увеличении параметра) и что он означает?

6. Какой вид имеет оператор цикла с параметром (при уменьшении параметра) и что он означает?

7. Что такое параметр цикла? Может ли он быть целым числом, дробным числом?

8. Напишите, что означает каждая строка в вышеприведённых программах.

9. Напишите программу к одной из задач дополнительного задания.


Одномерные массивы

Массив – упорядоченный набор нумерованных величин одинакового типа. Массивы бывают одномерные (вектор-строка, вектор-столбец), двумерные (матрица) и многомерные (тензор).

Вектор-строка имеет вид: .

Пример 1. .

Вектор-столбец имеет вид:

. Пример 2. .

Элемент массива – величина, входящая в состав массива. Индекс – порядковый номер элемента в одномерном массиве (целое число типа integer). Размерность массива – количество элементов в массиве.

Одномерные массивы обычно обозначаются так: ; , где A – массив; n – размерность массива; i – индекс элемента; i ‑тый элемент массива .

Описание одномерного массива в разделе описания переменных (Var) на языке Pascal имеет вид:

Mas: array [ IMin.. IMax ] of T

где array – массив, of – из, Mas – имя массива, IMin – минимальное значение индекса, IMax – максимальное значение индекса, T – тип элементов.

Это означает, что переменная Mas является массивом, который может иметь индексы от IMin до IMax у элементов типа T.

Пример 3. Var A:array[1..100] of real;

Это означает, что переменнаяA – массив, который может содержать от 1 до 100 элементов вещественного типа.

Доступ к элементу массива на языке Pascal имеет вид:

Mas [ Ind ]

где Mas – имя массива, Ind – индекс.

Это означает доступ к элементу массива Mas с индексом Ind.

Пример 4. a[1]; b[3]; c[i]; d[n]; f[k+1].

Это означает 1-й элемент массива A и т.д.


Порядок выполнения

1. Зайти в Borland Pascal.

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

3. Исправить программу так, чтобы она находила сумму и количество положительных элементов.

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

5. Исправить программу так, чтобы она находила максимальное и минимальное значение в массиве.

Пример задачи

Задача 1. Дан одномерный массив A из n элементов. Найти сумму элементов массива: . Program Lab4; Var A:array[1..100] of real; i,n:integer; s:real; Begin writeln('Введи n'); read(n); s:=0; writeln('Введи массив A'); for i:=1 to n do begin read(A[i]); s:=s+A[i]; end; writeln('s=',s:10:3); End.
Контрольный пример. Исходные данные: ; . Ручной счёт: . Результат: .
Экран пользователя. Введи n Введи массив A 1 2 3 5 -1 s= 10.000

Дополнительное задание

1. Дан массив L (n). Найти количество элементов, больших корня из суммы положительных элементов.

2. Дан массив G (q). Найти произведение неотрицательных элементов и сумму элементов в диапазоне от 10 до 20.

3. Дан массив A (n). Найти сумму и количество элементов, равных среднему значению.

4. Дан массив C (m). Найти отношение максимального к минимальному элементу.

5. Дан массив D (n). Найти минимальный среди элементов, больших суммы, и найти количество элементов, не равных максимальному.

6. Дан массив A (n). Сформировать новый массив B умножением элементов массива A на 100. В новом массиве переставить местами третий и предпоследний элементы.

7. Дан массив A (n). Положительные элементы массива заменить на их сумму, а отрицательные элементы уменьшить на минимальный.

8. Дан массив A (n). Найти сумму элементов на чётных местах и произведение элементов, кратных 3.

9. Дан массив A (n). У нечётных элементов отбросить дробную часть числа, а у элементов с индексами, дающими остаток 1 при делении на 3, отбросить целую часть числа.

10. Сформировать массив случайных чисел в диапазоне от -10 до 20 и округлить значения элементов, по модулю меньших 1.


Двумерные массивы

Двумерный массив (матрица) – одномерный массив, элементы которого также являются одномерными массивами. Матрица имеет вид:

. Пример 1. .

Элемент массива – величина, входящая в состав массива. Индекс – порядковый номер строки или столбца в двумерном массиве. Двумерные массивы обычно обозначаются так: ;  , где A – массив; m – количество строк; n – количество столбцов; i – индекс строки; j – индекс столбца; aij – элемент массива A в i -й строке и j -м столбце.

Описание двумерного массива в разделе описания переменных (var) на языке Pascal имеет вид:

Mas: array [ IMin.. I Max, JMin.. JMax ] of T

Это означает, что переменная Mas является массивом, который может иметь индексы строк от IMin до IMax, индексы столбцов от JMin до JMax, а также состоит из элементов типа T.

Пример 2. Var A:array[1..10,1..15] of real;

Это означает, что A – массив, который может содержать от 1 до 10 строк и от 1 до 15 столбцов из элементов вещественного типа.

Доступ к элементу двумерного массива на языке Pascal имеет вид:

Mas [ Ind1, Ind2 ]

Это означает доступ к элементу массива Mas с индексом строки Ind1 и индексом столбца Ind2.

Пример 3. a[1,1]; b[i,j].

Это означает элемент массива A в 1-й строке и 1-м столбце, элемент массива B в i-й строке и j-м столбце.

Порядок выполнения

1. Зайти в Borland Pascal.

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

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

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

5. Исправить программу так, чтобы она находила количество нулевых и среднее значение положительных элементов.

Пример задачи

Задача 1. Дан двумерный массив A (m, n). Найти сумму и произведение всех элементов, а также вычислить минимальный и максимальный элементы. Program lab5; Var A: array [1..10,1..15] of real; i, j, m, n: integer; s, p, min, max: real; Begin writeln('Введи m,n'); read(m,n); writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); s:=0; p:=1; min:=A[1,1]; max:=A[1,1]; for i:=1 to m do for j:=1 to n do begin s:=s+A[i,j]; p:=p*A[i,j]; if A[i,j]<min then min:=A[i,j]; if A[i,j]>max then max:=A[i,j]; end; writeln('s=',s:10:3,' p=',p:10:3, ' min=',min:10:3,' max=',max:10:3); End.
Контрольный пример.
Исходные данные: ; ; .
Результаты: ; ; ; .

Дополнительное задание

1. Дан массив B (m, n). Найти сумму положительных элементов и количество элементов в диапазоне от 10 до 20.

2. Дан массив C (m, n). Найти произведение элементов, больших среднего значения.

3. Дан массив D (m, n). Найти среднее значение среди элементов, не совпадающих с минимальным.

4. Дан массив L (n, n). Найти максимальный среди отрицательных элементов и сумму элементов на главной диагонали.

5. Дан массив P (n, n). Элементы выше главной диагонали заменить на ноль, а ниже главной диагонали – округлить.

6. Сформировать двумерный массив A (m, n), элементы которого вычисляются по формуле: , где R (m, n) – двумерный массив случайных величин.

7. Дан массив R (m, n). Найти произведения элементов в каждой строке и максимальные элементы в каждом столбце.

8. Дан массив W (m, n). Найти суммы элементов в каждом столбце и минимальные элементы в каждой строке.

9. Дан массив S (m, n). Найти массив минимальных элементов в каждой строке, а затем в новом массиве отсортировать элементы по возрастанию.

10. Дан массив T (m, n). Отсортировать столбцы по убыванию их средних значений.


Квадратные матрицы

Матрица называется квадратной, если у неё количество строк равно количеству столбцов ().

Рассмотрим квадратную матрицу: . У ней

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

1. Объясните понятие двумерного массива, его элемента, индекса? Как обозначаются двумерные массивы?

2. Как описываются двумерные массивы и обозначаются их элементы? Приведите примеры.

3. Какие особенности у элементов на главной и побочной диагонали в квадратных матрицах?

4. Чем отличается вычисление характеристик двумерного массива от таких же характеристик одномерного массива?

5. Чем отличаются операции с двумерными массивами от таких же операций с одномерными массивами?

6. Чем отличается вычисление характеристик массива по строкам от аналогичного вычисления по столбцам?

7. Напишите, что означает каждая строка в вышеприведённой программе.

8. Напишите программу к одной из задач дополнительного задания.

Подпрограммы

Подпрограмма – именованный блок операторов, отдельно выделенный в составе программы и не зависящий от других её частей. Подпрограммы бывают 2-х видов:

1. Подпрограмма-функция – это подпрограмма для вычисления функции, которая возвращает какое-либо значение.

2. Подпрограмма-процедура – это подпрограмма для выполнения действий, которая не возвращает никаких значений.

Как правило, описание подпрограммы включает заголовок, разделы описаний и раздел операторов, начинающийся словом begin, а заканчивающийся словом end и точкой с запятой (;).

Формальные параметры – переменные, которые объявляются в заголовке подпрограммы.

Фактические параметры – переменные или значения, которые подставляются вместо формальных параметров в момент конкретного вызова подпрограммы.

Параметры-значения – параметры, значения которых передаются в подпрограмму в момент её вызова.

Параметры-переменные – параметры со словом var, значения которых могут использоваться после выполнения подпрограммы.

Локальные переменные – переменные, используемые только внутри подпрограммы.

Глобальные переменные – переменные, которые могут использоваться в любом месте основной программы,
в т.ч. и в подпрограмме.

Заголовок описания функции имеет вид:

function Func (FormPar1: T1, …): T;

Это означает, что задаётся подпрограмма-функция с именем Func, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также вычисляющая значение типа T.

Вызов функции из основной программы или другой подпрограммы имеет вид:

Func (FaktPar1, …)

Это означает, что вычисляется значение функции Func, зависящей от фактических параметров FaktPar1 и т.д., причём вызов функции может осуществляться в составе выражения.

Заголовок описания процедуры имеет вид:

procedure Proc (FormPar1: T1, …);

Это означает, что задаётся подпрограмма-процедура с именем Proc, зависящая от формальных параметров FormPar1 типа T1 и т.д., а также выполняющая какие-либо действия.

Вызов процедуры из основной программы или другой подпрограммы имеет вид:

Proc (FaktPar1, …);

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

Порядок выполнения

1. Зайти в Borland Pascal.

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

3. Получить ответ для своих исходных данных.

4. Набрать текст программы для решения задачи № 2 и получить ответ для контрольного примера.

5. Получить ответ для своих исходных данных.

Дополнительное задание

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

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

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

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

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

6. В двумерном массиве A из m строк и n столбцов вычислить сумму и среднее значение всех элементов с использованием подпрограммы-процедуры.

7. В двумерном массиве A из m строк и n столбцов вычислить максимальный и минимальный элементы с использованием подпрограммы-процедуры.

8. В двумерном массиве A из m строк и n столбцов вычислить сумму и количество элементов выше главной диагонали с использованием подпрограммы-процедуры.

9. В двумерном массиве A из m строк и n столбцов вычислить произведение и среднее значение элементов на главной диагонали с использованием подпрограммы-процедуры.

10. В двумерном массиве A из m строк и n столбцов вычислить максимальный и минимальный среди элементов ниже главной диагонали с использованием подпрограммы-процедуры.


Примеры задач

Задача 1. Вычислить , а также найти с использованием подпрограммы-функции возведения в степень. Program Lab6a; Var A:array[0..100] of real; B,C,x:real; i,n:integer; Function Step(a,b:real):real; begin Step:=exp(b*ln(a)); end; Begin writeln('Введи n,x'); read(n,x); writeln('Введи массив A'); for i:=0 to n do read(A[i]); B:=Step(2.1,5)+Step(7,0.3); C:=0; for i:=0 to n do C:=C+A[i]*Step(x,i); writeln('B=',B:10:3,' C=',C:10:3); End.
Контрольный пример.
Исходные данные: ; ; .
Результаты: ; .
Задача 2. В двумерном массиве A из 3 строк и 4 столбцов вычислить сумму и произведение отрицательных элементов с использованием подпрограммы-процедуры. Program Lab6b; Const m=3; n=4; Type TT=array [1..m,1..n] of real; Var A:TT; i,j:integer; s,p:real; Procedure SumPro(B:TT; m,n:integer; var s,p:real); var i,j:integer; begin s:=0; p:=1; for i:=1 to m do for j:=1 to n do if B[i,j]<0 then begin s:=s+B[i,j]; p:=p*B[i,j]; end; end; Begin writeln('Введи массив A'); for i:=1 to m do for j:=1 to n do read(A[i,j]); SumPro(A,3,4,s,p); writeln(s,p); End.
Контрольный пример.
Исходные данные: .
Результаты: ; .

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

1. Что такое подпрограмма? Перечислите виды подпрограмм.

2. Какие элементы входят в описание подпрограммы?

3. Что такое формальные и фактические параметры? Чем они отличаются?

4. Что такое параметры-значения и параметры-переменные? Чем они отличаются?



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 1040; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.9.236 (0.217 с.)