Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР13-С++17-мая-2012.doc
Скачиваний:
13
Добавлен:
15.09.2019
Размер:
1.3 Mб
Скачать

2.4.1.2. Пример для варианта 30

Рассчитать среднюю работу по перемещению заряда в однородном поле для трёх зарядов, если для каждого из них известны величина заряда q, напряжённость E, расстояние между двумя точками d. Работа вычисляется по формуле A = q E d .

2.4.1.3. Программа

Вариант А. Вычисления без использования функций

//Лабораторная работа № 13

//Задание 1

// Вычисления без использования функций

//Вариант 30

//Автор Петрова Мария гр. ИНФО-101

// 12.05.2012

//= = = = = = = = = = = = == = = = == = = = ==

#include <conio.h> // подключение библиотеки функций ввода-вывода

#include <iostream.h> // подключение библиотеки потокового ввода-вывода

#include <iomanip.h> // подключение библиотеки средств манипулирования потоками

int main ()

{

// Объявление переменных

int n,i;

float Asr, s;

float A[10], q[10], E[10], d[10];

cout << "Введите число элементов в массивах (n <= 10): ";

cin >> n;

// Ввод массивов

for (i=0; i<n; i++)

{

cout <<"Введите " << i << "-ые элементы массивов: " << endl;

cout <<"Величина заряда q: "; cin >> q[i];

cout <<"Напряженность E: "; cin >> E[i];

cout <<"Расстояние d: "; cin >> d[i];

}

s = 0;

for (i=0; i<n; i++)

{

s = s + q[i]*E[i]*d[i];

}

Asr = s/n;

cout <<"Средняя работа для " << n << " зарядов Asr = " << Asr << endl;

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

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

//Лабораторная работа № 13

//Задание 1

// Вычисления с использованием функций

//Вариант 30

//Автор Петрова Мария гр. ИНФО-101

// 12.05.2012

//= = = = = = = = = = = = == = = = == = = = ==

#include <conio.h> // подключение библиотеки функций ввода-вывода

#include <iostream.h> // подключение библиотеки потокового ввода-вывода

#include <iomanip.h> // подключение библиотеки средств манипулирования потоками

float A(float q,float E,float d);//Оператор прототипа

int main ()

{

// Объявление переменных

int n,i;

float Asr, s;

float q[10], E[10], d[10];

cout << "Введите число элементов в массивах (n <= 10): ";

cin >> n;

// Ввод массивов

for (i=0; i<n; i++)

{

cout <<"Введите " << i << "-ые элементы массивов: " << endl;

cout <<"Величина заряда q: "; cin >> q[i];

cout <<"Напряженность E: "; cin >> E[i];

cout <<"Расстояние d: "; cin >> d[i];

}

s = 0;

for (i=0; i<n; i++)

{

s = s + A(q[i],E[i],d[i]);

}

Asr = s/n;

cout <<"Средняя работа для " << n << " зарядов Asr = " << Asr << endl;

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

float A(float q,float E,float d)//Описание функции

{

return q*E*d;

}

2.4.1.4. Тестирование

Вариант А. Вычисления без использования функций

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

Сравнивая варианты А и Б можете убедиться, что результаты совпадают.

2.4.2. Задание 2. Функции пользователя при работе с массивами

2.4.2.1. Условие задания

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

Таблица 13.2

Задание

1

Вычислить c = (S1 + S2+ S3)/ (k1 + k2+ k3), где S1 и k1 – сумма и количество положительных элементов массива X(10); S2 и k2 – то же для массива Y(12); S3 и k3 – то же для массива Z(8).

2

Вычисль b = (S1 + S2+ S3)/ (k1*k2*k3), где S1 и k1 – сумма и количество отрицательных элементов массива A(12); S2 и k2 – то же для массива B(10); S3 и k3 – то же для массива C(8).

3

Вычислить и запомнить суммы положительных элементов каждой строки матриц A(6,6), B(5,5) и C(7,7).

4

Найти наименьшие элементы в массивах А(10), B(8), C(11) и их порядковые номера.

5

Вывести на экран элементы целочисленных матриц N(6,8) и M(4,7) и L(5,6) кратные трём.

6

Преобразовать массивы X(10), Y(12) и Z(8), расположив в них подряд только положительные элементы. Вместо остальных элементов записать нули. Вывести преобразованные массивы на экран.

7

Вычислить суммы и количества элементов матриц X(8,6), Y(4,8) и Z(5,4), значения которых находятся в интервале от a до m.

8

Найти наибольшие элементы в массивах X(10), Y(6), Z(11) и их порядковые номера.

9

Вычислить R= (Smax1 + Smax2+ Smax3) - (Smin1 + Smin2+ Smin3), где Smax1 и Smin1 – максимальный и минимальный элементы массива X(10); Smax2 и Smin2 – то же для массива Y(12); Smax3 и Smin3 – то же для массива Z(8). Вычисления выполнить в одной подпрограмме.

10

Найти наименьшие элементы для матриц A(8,6), X(7,9) и Н(5,4), а также номера строк и столбцов, в которых они расположены.

11

Вычислить и запомнить количество отрицательных элементов каждого столбца для матриц A(6,8), X(9,9) и Y(5,4).

12

Для каждой из матриц A(6,6), B(8,8) и C(5,5) вычислить отдельно сумму и количество положительных элементов, расположенных на главной диагонали и выше её.

13

Найти наименьшие элементы и их порядковые номера для массивов X(N), Y(M), Z(K).

14

Найти целочисленные элементы и номера строк и столбцов, в которых они расположены, для матриц A(5,8), B(6,4) и C(3,4).

15

Вычислить среднее значение и суммы диагональных элементов каждой из матриц A(N,N), B(M,M) и C(K,K).

16

Вычислить и запомнить количества и суммы отрицательных элементов каждой строки матриц C(6,6), D(8,8)< E(7,7).

17

Для каждой из целочисленных матриц A(6,8), B(5,7) и C(3,4) вывести на печать количество элементов, кратных шести, и сами эти элементы.

18

Вычислить и запомнить суммы положительных элементов каждого столбца матриц A(10,5), B(6,8) и C(5,4).

19

Для каждой из матриц A(5,5), B(8,8) и C(6,6) вычислить отдельно сумму и количество отрицательных элементов, расположенных на главной диагонали и выше её.

20

Для каждой из матриц A(6,6), B(8,8) и C(5,5) найти сумму элементов главной диагонали и сумму элементов побочной диагонали.

21

Вычислить R= (Smax1 + Smax2+ Smax3)/(Smin1 + Smin2+ Smin3), где Smax1 и Smin1 – максимальный и минимальный элементы массива A(10); Smax2 и Smin2 – то же для массива B(12); Smax3 и Smin3 – то же для массива C(8). Вычисления выполнить в одной подпрограмме.

22

Для каждой из матриц X(8,8), Y(10,10) и Z(9,9) вычислить отдельно сумму элементов, расположенных на главной диагонали и выше её.

23

Для каждой из матриц A(N,N), B(M,M) и C(K,K) найти целочисленные элементы верхней треугольной матрицы.

24

Вычислить Z1=(Xmax + Ymin)/2 и Z2=(Xmin + Ymax)/2, где Xmax и Ymax – максимальные элементы массивов X(10), Y(20); Xmin и Ymin – минимальные элементы этих же массивов (вычисление максимального и минимально элементов массива вычислять в одной подпрограмме).

25

Вычислить и запомнить количества и суммы отрицательных элементов каждого столбца матриц X(10,8), Y(6,8), Z(4,8).

26

Вычислить и запомнить сумму и число положительных элементов каждого столбца матриц A(5,4), B(3,4) и C(4,5).

27

Вычислить и запомнить сумму и число положительных элементов каждой строки матриц A(5,4), B(3,4) и C(4,5).

28

Вычислить и запомнить сумму и число отрицательных элементов каждой строки матриц X(10,8), Y(6,8), Z(4,8).

29

Вычислить SSR = (S1 + S2 + S3)/3, где S1 – сумма положительных элементов массива X(10); S2 – сумма положительных элементов массива Y(20); S3 – сумма положительных элементов массива Z(15).

30

Написать программу решения следующей задачи: Определить число положительных элементов до первого отрицательного в массивах X(6), Y(10), Z(8).