Программирование с использованием 


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



ЗНАЕТЕ ЛИ ВЫ?

Программирование с использованием



Подпрограмм пользователя

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

 

Задания для самостоятельной подготовки:

1. Изучить:

· правила записи подпрограммы (функции) и обращения к ней;

· способы передачи параметров в подпрограмму;

· порядок выполнения программ, использующих подпрограммы.

2. Разработать алгоритм решения в соответствии с заданием.

3. Составить программу решения задачи.

4. Подготовить тестовый вариант исходных данных для проверки работы программы.

 

Задание к работе:

  1. Составить и выполнить на ЭВМ программу, использующую подпрограмму-функцию в соответствии с вариантом задания, указанного в табл. 6.
  2. Проверить правильность выполнения программы с помощью тестового варианта.

Таблица 7

Вариант задания Условия задачи Примечания
  Вычислить большие корни квадратных уравнений x2-ax+b=0 cx2-dx-f=0 Все корни действительные
  Подсчитать число точек, находящихся внутри круга радиусом r с центром в начале координат; координаты заданы массивами X(100), Y(100) Расстояние точки от начала координат вычислять в подпрограмме
  Определить периметры треугольников, заданных координатами их вершин XA (5), XB (5), XC (5) YA (5), YB (J), YC (5) Длину стороны треугольников вычислять в подпрограмме
  Подсчитать число точек, находящихся внутри круга радиусом r с центром в точке с координатами (1,1); координаты заданы массивами X(80), Y(80) Расстояние точки от центра круга определять в подпрограмме
  Вычислить z= , где υ1, υ2, υ3 – объем шаров с радиусами r1, r2, r3 соответственно υ1 вычислять в подпрограмме  
  Вычислить суммы положительных элементов массивов X (N), Y (M), Z (K) N≤60 M≤60 K≤70
  Вычислить z=(s1+s2)/2, где s1 – сумма положительных элементов массива А(10), s2 – сумма отрицательных элементов массива В(8). Сумму элементов вычислять в функции. Ввод элементов массива осуществлять в функции. Обе суммы вычислять в одной подпрограмме
  Вычислить z=(xm1+xm2)/2, где xm1, xm2 – наименьшие элементы массивов А(15), В(10). Ввод элементов массива осуществлять в функции. Наименьшие элементы вычислять в функции

Продолжение таблицы 7

Вариант задания Условия задачи Примечания
  Вычислить суммы положительных элементов каждой строки массивов X(6,4), Y(8,5). Ввод элементов массива осуществлять в функции. Сумму положительных элементов вычислять в функции
  Подсчитать количество элементов массива А(5,6), лежащих в диапазоне [0,1], и количество элементов массива В(3,4), лежащих в диапазоне [-1,0]. Ввод элементов массива осуществлять в функции. Количество элементов вычислять в функции
  Найти средние значения и стандартные отклонения для массивов A(N1), B(N2). Средние значения и стандартные отклонения вычислять в функции. Ввод элементов массива осуществлять в функции. N1<=20 N2<=10
  Определить число положительных элементов до первого отрицательного в массивах X(N), Y(M), Z(K). Число положительных элементов вычислять в функции. Ввод элементов массива осуществлять в функции. N<=20 M<=30 K<=10
  Подсчитать количество элементов массива А(5,6), лежащих в диапазоне [0,5], и количество элементов массива В(3,4), лежащих в диапазоне [-5,0]. Ввод элементов массива осуществлять в функции. Количество элементов вычислять в функции
  Найти средние значения A(15), B(10). Средние значения и стандартные отклонения вычислять в функции. Ввод элементов массива осуществлять в функции.  
  Подсчитать число точек, находящихся внутри круга радиусом r с центром в точке с координатами (1,1); координаты заданы массивами X(80), Y(80) Расстояние точки от центра круга определять в подпрограмме

 

Пример выполнения работы

Подсчитать количество элементов целочисленных массивов А(4,5), кратные 3, и В(3,4), кратные 5, используя для подсчета функцию. Ввод и вывод элементов осуществлять в функциях.

В подпрограммы ввода и вывода элементов массивов необходимо передавать массивы, их размер. Так как массивы передаются по ссылке, эти функции ничего не будут возвращать (тип функции void). В подпрограмму подсчета количества элементов необходимо передавать массивы, их размер и числовое значение (3 или 5), кратность элементов которому нужно определить. В подпрограмме подсчета количества элементов требуется организовать цикл по перебору всех элементов массивов (например, построчно), проверку текущего элемента на кратность соответствующему параметру, и увеличение счетчика чисел на 1, в случае истинности проверки. Функция возвращает один результат – значение счетчика чисел, поэтому тип функции int.

 

Программа решения задачи имеет вид:

 

#include <stdlib.h> //подключение файла

#include <stdio.h> //подключение файла

 

void inparr2 (float X[][5], int N, int M) //заголовок функции inparr2

{

int i,j; // объявление переменных

randomize(); // инициализация датчика случайных чисел

for(i=0;i<N;i++) // цикл по перебору элементов массива по строкам

for(j=0;j<M;j++)

X[i][j]=(random(100)-50)/10.;

//генерация случайного числа и присвоение его элементу массива

return; //завершение функции inparr2

}

 

void outarr2 (float Y[][5], int K, int L) //заголовок функции inparr2

{

int i,j; // объявление переменных

for(i=0;i<K;i++) // цикл по перебору элементов массива по строкам

{ for(j=0;j<L;j++)

printf (“%f”, Y[i][j]); // вывод значения элемента массива

printf (“\n”); //переход на новую строку

}

return; //завершение функции outarr2

}

 

int countsh (float C[][5], int N, int M, int k) //заголовок функции countsh

{

int i,j,coun; // объявление переменных

coun=0; //присвоение начального значения

for(i=0;i<N;i++) // цикл по перебору элементов массива по строкам

for(j=0;j<M;j++)

if(C[i][j]%k= =0) // проверка кратности текущего элемента

coun++; //увеличение счетчика чисел на 1

return coun; //завершение функции countsh

}

 

void main () //заголовок функции main

{

float A[4][5], B[3][5];

int counA,counB; // объявление переменных

inparr2(A,4,5);

inparr2(B,3,4); // вызов функции inparr2

printf (“Массив A\n”);

outarr2(A,4,5); // вызов функции outarr2

printf (“Массив B\n”);

outarr2(B,3,4); // вызов функции outarr2

counA = countsh(A,4,5,3);

counB= countsh(B,3,4,5); // вызов функции countsh

printf (“Количество элементов, кратных 3 в массиве A=%3d\n”, counA);

printf (“Количество элементов, кратных 5 в массиве B=%3d\n”, counB);

//вывод значений переменных

return; //завершение функции main

}

 

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

  1. Указать, при каких условиях целесообразно использование подпрограмм, какие выгоды они предоставляют.
  2. Указать способы передачи параметров в подпрограмму.
  3. Указать, как организовать подпрограмму без параметров, подпрограмму, не возвращающую значение.
  4. От чего зависит тип функции?

Лабораторная работа №10



Поделиться:


Последнее изменение этой страницы: 2017-02-19; просмотров: 240; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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