11828

Лабораторная работа №8. Функции

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

Информатика, кибернетика и программирование

Лабораторная работа №8. Функции 1 Цель и порядок работы Цель работы – изучить возможности языка по организации функций получить практические навыки в составлении программ с их использованием. Порядок выполнения работы: ознакомиться с описанием лабораторной ...

Русский

2013-04-12

175.5 KB

47 чел.


Лабораторная работа №8. Функции

1 Цель и порядок работы

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

Порядок выполнения работы:

  •  ознакомиться с описанием лабораторной работы;
  •  получить задание у преподавателя, согласно своему варианту;
  •  написать программу и отладить ее на ЭВМ;
  •  оформить отчет.

2 Краткая теория

Функция – самостоятельная единица программы, спроектированная для реализации конкретной задачи, представляющая именованную группу операторов и выполняющая законченное действие. Вызов функции приводит к выполнению некоторых действий. К функции можно обратиться по имени, передать ей значения и получить из нее результат. Функции избавляют нас от повторного программирования, позволяют использовать их в различных программах, повышают уровень модульности программы. Функции нужны для упрощения структуры программы. Разбив задачу на подзадачи и оформив каждую из них в виде функций, мы улучшаем понятность и структурированность программы.

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

Подпрограмма имеет ту же структуру, что и монолитная программа. То есть может содержать разделы описания переменных, типов, констант и т.д. Имена объектов, описанных в подпрограмме, считаются известными только в пределах данной подпрограммы.

2.1 Описание функций

Функция может принимать параметры и возвращать значение. Передача в функцию различных аргументов позволяет, записав ее один раз, использовать многократно для разных данных. Чтобы использовать функцию, не требуется знать, как она работает – достаточно знать, как ее вызвать.

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

Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров. Формат простейшего заголовка (прототипа) функции:

[ класс ] тип имя ([ список_формальных_параметров ]);

Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:

[ класс ] тип имя ([ список_формальных_параметров ])

{

  тело функции

}

Выражение, записанное в квадратных скобках, является опциональным и может быть опущено.

Рассмотрим составные части определения.

1. С помощью необязательного модификатора класс можно явно задать область видимости функции, используя ключевые слова extern и static:

- extern – глобальная видимость во всех модулях программы (по умолчанию);

- static – видимость только в пределах модуля, в котором определена функция.

2. Тип возвращаемого функцией значения может быть любым, кроме массива и функции (но может быть указателем на массив или функцию). Если функция не должна возвращать значение, указывается тип void.

3. Список формальных параметров определяет данные, которые требуется передать в функцию при ее вызове. Элементы списка параметров разделяются запятыми. Для каждого параметра, передаваемого в функцию, указывается его тип и имя (в объявлении имена можно опускать), а также значение параметра по умолчанию (при этом все параметры правее данного должны также иметь значения по умолчанию).

Функция активируется с помощью оператора вызова функции, в котором содержатся имя функции и параметры (если это необходимо). Вызов функции приводит к выполнению операторов, составляющих тело функции, и выглядит следующим образом:

имя ([ список_фактических_параметров ]);

В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать. На имена параметров ограничений по соответствию не накладывается, поскольку функцию можно вызывать с различными аргументами, а в прототипах имена компилятором игнорируются (они служат только для улучшения читаемости программы).

Функцию можно определить как встроенную с помощью модификатора inline, который рекомендует компилятору вместо обращения к функции помещать ее код непосредственно в каждую точку вызова. Модификатор inline ставится перед типом функции. Он применяется для коротких функций, чтобы снизить накладные расходы на вызов (сохранение и восстановление регистров, передача управления). Директива inline носит рекомендательный характер и выполняется компилятором по мере возможности. Использование inline-функций может увеличить объем исполняемой программы. Определение функции должно предшествовать ее вызовам, иначе вместо inline-расширения компилятор сгенерирует обычный вызов.

Все величины, описанные внутри функции, а также ее параметры, являются локальными. Областью их действия является функция. При вызове функции, как и при входе в любой блок, в стеке выделяется память под локальные автоматические переменные. Кроме того, в стеке сохраняется содержимое регистров процессора на момент, предшествующий вызову функции, и адрес возврата из функции для того, чтобы при выходе из нее можно было продолжить выполнение вызывающей функции.

При выходе из функции соответствующий участок стека освобождается, поэтому значения локальных переменных между вызовами одной и той же функции не сохраняются. Если этого требуется избежать, при объявлении локальных переменных используется модификатор static.

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

Возврат вычисленного значения организуется следующим образом. В теле функции должен присутствовать оператор return после которого следует выражение, вычисляющее возвращаемое значение. Таких операторов может быть несколько; важно, чтобы хоть один из них срабатывал в процессе выполнения тела функции. Тип выражения в правой части такого присваивания должен быть совместимым с типом функции.

Для вызова функции в простейшем случае нужно указать ее имя, за которым в круглых скобках через запятую перечисляются имена передаваемых аргументов. Вызов функции может находиться в любом месте программы, где по синтаксису допустимо выражение того типа, который формирует функция. Если тип возвращаемого функцией значения не void, она может входить в состав выражений или, в частном случае, располагаться в правой части оператора присваивания.

Пример функции, возвращающей сумму двух целых величин:

#include "stdafx.h"

#include <iostream>

using namespace std;

int sum(int а, int b); // объявление функции

void main()

{

  

  int a = 2, b = 3, c, d;

  c = sum(a, b);             // вызов функции

  cin >> d; 

  cout << sum(c, d) << endl; // вызов функции

  

  a = 3*sum(c, d) - b;       // вызов функции

  cout << a << endl;

  return;

}

int sum(int a, int b) // определение функции

{

  return (a + b);

}

Объявление и определение функции может совпадать, но перед вызовом компилятор должен знать прототип функции, поэтому одновременное объявление и определение должно следовать перед вызовом функции.

Пример функции нахождения максимума двух чисел:

#include "stdafx.h"

#include <iostream>

using namespace std;

int max(int x, int y) // одновременно объявление и определение функции

{

  if (x > y)

      return x;

  else

      return y;

}

void main()

{

  

  int a = 2, b = 3, c, d;

  c = max(a, b);             // вызов функции 

  cout << c << endl;

  cin >> d; 

  cout << max(c, d) << endl; // вызов функции

  return;

}

2.2 Параметры функции

Механизм параметров является основным способом обмена информацией между вызываемой и вызывающей функциями.

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

В описании процедуры или функции задается список формальных параметров. Каждый параметр, описанный в списке формальных параметров, является локальным по отношению к описываемой процедуре или функции, и в теле подпрограммы на него можно ссылаться по его идентификатору.

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

Существует два основных способа передачи параметров в функцию: по значению и по адресу.

При передаче по значению в стек заносятся копии значений аргументов, и операторы функции работают с этими копиями. Доступа к исходным значениям параметров у функции нет, а, следовательно, нет и возможности их изменить.

При передаче по адресу в стек заносятся копии адресов аргументов, а функция осуществляет доступ к ячейкам памяти по этим адресам и может изменить исходные значения аргументов. Данный способ подразделяется на передачу параметров через указатель и по ссылке.

#include "stdafx.h"

#include <iostream>

using namespace std;

void f(int a, int* b, int& c)

{

  a++;

  (*b)++;

  c++;

}

void main()

{

  

  int a = 1, b = 1, c = 1;

  cout << "a b c" << endl;

  cout << a << ' ' << b << ' ' << c << endl;

  f(a, &b, c);

  cout << a << ' ' << b << ' ' << c << endl;

  return;

}

Результат работы программы:

a b c

1 1 1

1 2 2

Первый параметр (a) передается по значению. Его изменение в функции не влияет на исходное значение. Второй параметр (b) передается по адресу с помощью указателя, при этом для передачи в функцию адреса фактического параметра используется операция взятия адреса, а для получения его значения в функции требуется операция разыменования. Третий параметр (c) передается по адресу с помощью ссылки.

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

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

Если требуется запретить изменение параметра внутри функции, используется модификатор const:

int f(const char *); 

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

По умолчанию параметры любого типа, кроме массива и функции (например, вещественного, структурного, перечисление, объединение, указатель), передаются в функцию по значению.

Если в определении функции присутствует параметр со значением по умолчанию, то данный параметр можно опустить при вызове функции. При этом все параметры левее данного должны присутствовать. Значение данного параметра внутри функции будет совпадать со значением параметра по умолчанию.

Рассмотрим пример из предыдущей лабораторной работы, оформив вычисление значения в виде функции:

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

#include "stdafx.h"

#include <iostream>

#include <iomanip>

#include <math.h>

using namespace std;

float ax(float a, float x, float eps = 0.001f)

{

  

  float xn = 1, y, y0;

  

  unsigned int n = 1, nf = 1;

  

  y = 1;

  

  do

  {

      nf *= n;

      xn *= x*log(a);

      y0 = y;

      y += xn/nf;

      n++;

  }

  while (abs(y - y0) > eps);

  

  return y;

}

void main()

{

  setlocale(LC_ALL, "Russian");

  

  const float eps = 0.1f;

  

  float a, x, y;

  

  cout << "Введите a, x:" << endl;

  cin >> a >> x;

  //передаем значение точности вычислений при вызове

  y = ax(a, x, eps);

  

  cout <<\

"Результат вычисления с точностью 0.1 (передается явно): "\

<< setw(8) << setprecision(5) << y <<endl;

  

//значение esp опускается

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

  y = ax(a, x);

  

  cout <<\

"Результат вычисления с точностью 0.001 (по умолчанию): "\

<< setw(8) << setprecision(5) << y <<endl;

  

  //вычисляем при помощи стандартных функций

  y = pow(a, x);

  

  cout <<\

"Результат вычисления с использованием стандартных функций: "\

<< setw(8) << setprecision(5) << y <<endl;

}

Результат выполнения:

Введите a, x:

2.5

3

Результат вычисления с точностью 0.1 (передается явно):    15.591

Результат вычисления с точностью 0.001 (по умолчанию):     15.625

Результат вычисления с использованием стандартных функций: 15.625

2.2 Передача массивов в функцию

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

Рассмотрим пример функции, формирующей вектор, состоящий из максимальных элементов двух исходных векторов.

#include "stdafx.h"

#include <iostream>

using namespace std;

//функция формирует вектор(одномерный массив),

//состоящий из максимальных элементов исходных массивов

//массивы передаются через указатели

void max_vect(int n, int *x, int *y, int *z)

{

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

      z[i] = (x[i]>y[i])?x[i]:y[i];

}

void main()

{

  setlocale(LC_ALL, "Russian");

  

  //определим размерность массива

  const int N=7;

  

  int a[N]={1,4,3,-1,5,6,1};

  int b[N]={7,6,-2,4,3,2,4};

  int c[N];

  

  //получим вектор, состоящий из максимальных элементов

  //исходных массивов

  max_vect(N, a, b, c);

  

  //выведем на экран элементы массива

  for (int i=0; i < N; i++)

      cout << "\t" << c[i];

}

Результат:

7 6 3 4 5 6 4

При передаче многомерных массивов, все размерности, если они не известны на этапе компиляции, должны передаваться в качестве параметров. Внутри функции массив интерпретируется как одномерный, а его индекс пересчитывается в программе.

Рассмотрим пример нахождения суммы элементов двумерного массива.

#include "stdafx.h"

#include <iostream>

using namespace std;

int sum(int *x, const int n, const int m)

{

  int s = 0;

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

      for (int j=0; j < m; j++)

          //здесь производится пересчет индекса массива:

          //перемещение на одну строчку вниз

          //эквивалентно прибавлению длинны строки

          //поэтому x[i*m + j] и x[i][j] будут определять

          //один и тот же элемент

          s += x[i*m + j];

  return s;

}

void main()

{

  setlocale(LC_ALL, "Russian");

  

  int a[2][2]={{1,2},{3,4}};

  //имя массива a напрямую передавать нельзя из-за несоответствия типов

  //поэтому используется конструкция &a[0][0]

  cout << sum(&a[0][0], 2, 2);

}

Для работы с двумерным массивом естественным образом необходимо применить альтернативный способ выделения памяти под массив. При этом память выделяется в два этапа: сначала под столбец указателей на строки матрицы, а затем в цикле под каждую строку. Освобождение памяти должно выполняться в обратном порядке.

Рассмотрим предыдущий пример, но с использованием описанного метода.

#include "stdafx.h"

#include <iostream>

#include <stdlib.h>

using namespace std;

int sum(int **x, const int n, const int m)

{

  int s = 0;

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

      for (int j=0; j < m; j++)

          s += x[i][j];

  return s;

}

void main()

{

  setlocale(LC_ALL, "Russian");

  

  const int N=4, M=3;

//создаем одномерный массив указателей размером N элементов

//(то что это массив указывают квадратные скобки, а то что указателей -*)

  int **a = new int* [N];

  for(int i=0; i < N; i++)

      //динамически создаем одномерный массив размерностью M

      //и присваиваем его адрес элементу массива указателей

      a[i] = new int[M];

  //заполним массив случайными числами и выведем его на экран

  for(int i=0; i < N; i++)

  {

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

      {

       //путем получения остатка (%) зададим числа в диапазоне от 0 до 9

          a[i][j] = rand()%10;

          //здесь по индексу i выбирается указатель на одномерный массив

          //а индексу j - элемент в этом массиве

          cout << a[i][j] << "\t";

      }

      cout << endl;

  }

  

  cout << sum(a, N, M);

  //освобождаем выделенную память в обратном порядке

  for(int i=0; i < N; i++)

      //сначала удаляем одномерные массивы

      delete [] (a[i]);

  //а затем и сам массив указателей

  delete [] a;

}

Схема получившегося массива представлена на рисунке 8.1.

Рисунок 8.1 – Схема двумерного массива для передачи в функцию

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

  1.  Как выглядит определение функции?
  2.  Как выглядит объявление функции?
  3.  Что такое формальный параметр?
  4.  Что такое фактический параметр?
  5.  Как осуществляется вызов функции?
  6.  Как осуществляется передача параметров в функцию?
  7.  Что такое inline-функция?
  8.  Как описать функцию, не возвращающую значения?
  9.  В чем разница передачи параметров по значению от передачи параметров по адресу?
  10.  Как передать параметр по ссылке?
  11.  Как передать параметр через указатель?
  12.  Как задать значения параметра по умолчанию?
  13.  Как передать массив в функцию?
  14.  Как передать многомерный массив в функцию?

4 Задание

  1.  Написать программу в соответствии с вариантом задания из пункта 5.1.
  2.  Отладить и протестировать программу.
    Написать программу в соответствии с вариантом задания из пункта 5.2.
  3.  Отладить и протестировать программу.
  4.  Написать программу в соответствии с вариантом задания из пункта 5.3.
  5.  Отладить и протестировать программу.
  6.  Оформить отчёт.

5 Варианты заданий

5.1 Функции, параметры функций

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

  1.  Вычислить с использованием подпрограммы – функции Z=НОД(a,b)+НОК(a,b), где a, b – целые положительные числа, НОД – наибольший общий делитель, НОК – наименьшее общее кратное.
  2.  Определить функцию нахождения расстояния между точками. Во множестве точек на плоскости найти пару точек с максимальным расстоянием между ними.
  3.  Найти наибольшую из высот треугольника. Известны две стороны треугольника и угол между ними.
  4.  Найти: y=среднее(a,b,c)/min(a,b,c).
  5.  Даны действительные числа s,t. Получить g(1.2,s) + g(t,s) - g(2s-1,st), где
  6.  Вычислить сумму значений функций
  7.  .
  8.  Даны действительные числа s,t. Получить g(1.2,s) + g(t,s) - g(2s-1,st), где
  9.  Составить программу вычисления суммы квадратов простых чисел, лежащих в интервале [M, N].
  10.  Даны отрезки а, в, с и d. Для каждой тройки этих отрезков, из которых можно построить треугольник, напечатать площадь данного треугольника. (Определить функцию, вычисляющую площадь треугольника, если она существует)
  11.  Определить функцию нахождения расстояния между точками. Во множестве точек на плоскости найти пару точек с минимальным расстоянием между ними.
  12.  Найти: y=min(a,b,c)/max(a,b,c).
  13.  Вычислить сумму значений функций
  14.  Даны значения a и b, найти их среднее арифметическое, среднегеометрическое.
  15.  Найти: y=max(a,b,c)+min(a,b,c).
  16.  Вычислить с использованием подпрограммы – функции Z=НОК(a+b,a*b)+НОК(a, b), где a, b – целые положительные числа, НОД – наибольший общий делитель, НОК – наименьшее общее кратное.
  17.  Вычислить среднее геометрическое шести вводимых чисел.
  18.  Вычислить сумму значений функции Z=F(a,b)+F(a2,b2)+F(a2-1,b)+F(a-b,b)
  19.  Даны действительные числа s, t. Получить f(t, -2s, 1.17) + f(2.2,t,s-t), где
  20.  Найти: y=max(a,b,c,d)*min(a,b,c,d).
  21.  Вычислить с использованием процедуры . Каждую сумму вычислять с использованием одной подпрограммы.
  22.  Заданно множество точек на плоскости. Найти сумму длин отрезков между ними.
  23.  Вычислить с использованием функции Z=НОД(a,b)+НОД(a*b,a+b), где a, b – целые положительные числа, НОД – наибольший общий делитель.
  24.  Вычислить сумму значений функции
  25.  Вычислить среднее арифметическое четырех вводимых чисел.

5.2 Передача массивов в функцию (одномерные массивы)

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

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный положительный элемент.

Вычислить сумму элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти максимальный элемент.

Вычислить среднеарифметическое отрицательных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный элемент.

Вычислить произведение не нулевых элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти минимальный положительный элемент.

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

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный положительный элемент.

Вычислить произведение элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти максимальный элемент.

Вычислить сумму четных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный отрицательный элемент.

Вычислить среднеарифметическое положительных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный элемент.

Вычислить среднеарифметическое элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти минимальный элемент.

Вычислить сумму элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный отрицательный элемент.

Вычислить произведение отрицательных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный элемент.

Вычислить среднеарифметическое нечетных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный положительный элемент.

Вычислить сумму четных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный отрицательный элемент.

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

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный отрицательный элемент.

Вычислить среднеарифметическое четных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти максимальный элемент.

Вычислить среднеарифметическое положительных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный положительный элемент.

Вычислить произведение не нулевых элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный отрицательный элемент.

Вычислить сумму отрицательных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти минимальный элемент.

Вычислить сумму положительных нечетных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный положительный элемент.

Вычислить произведение нечетных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти максимальный элемент.

Вычислить среднеарифметическое отрицательных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти максимальный положительный элемент.

Вычислить сумму положительных четных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти минимальный элемент.

Вычислить произведение ненулевых нечетных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти минимальный положительный элемент.

Вычислить среднеарифметическое положительных элементов массива.

Дан одномерный массив, состоящий из N вещественных элементов.

Найти максимальный отрицательный элемент.

Вычислить среднеарифметическое нечетных элементов массива.

Дан одномерный массив, состоящий из N целочисленных элементов.

Найти минимальный отрицательный элемент.

Вычислить сумму несчетных отрицательных элементов массива.

5.3 Передача массивов в функцию (многомерные массивы)

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

  1.  Вычислить с использованием функции наименьшие элементы в строке и сумму номеров строк и столбцов, в которых они расположены, для матрицы A(10,15). Результаты формировать в одномерных массивах M(10) и S(10).
  2.  Дан массив а(8,5). С использованием функции найти среднеквадратичное значение положительных элементов каждой строки массива и сформировать из них одномерный массив b(8).
  3.  Вычислить с использованием функции max элементы каждой строки матрицы A(10,20). Результаты формировать в одномерных массивах C(10) и D(10).
  4.  Даны массивы a(3,4), b(2,5). Найти Z = (Ma+Mb)/(da+db), где  Ma ,Mb - среднеарифметические значения массивов A, B. da, db - максимальные отклонения от среднеарифметических значений.
  5.  Дана матрица A(5,5). Сформировать одномерный массив C(5) из среднегеометрических значений положительных элементов каждого столбца матрицы.
  6.  Вычислить с использованием функции,  где xmax ,xmin ,ymax ,ymin – максимальные и минимальные элементы соответственно массива x(5,2) и массива y(3,4).
  7.  Дана матрица А(4,5), В(5,6). Вычислить сумма максимальных элементов каждой строки матрицы.
  8.  Вычислить с использованием функции min элементы каждой строки матрицы A(10,20). Результаты формировать в одномерных массивах C(10) и D(10).
  9.  Преобразовать массив x(3,3) в y, оставив в нем только положительные элементы. Вместо остальных элементов записать 0.
  10.  Определить количество положительных, отрицательных и нулевых элементов матрицы A(10,15). (Создать три функции для нахождения этих значений).

6 Содержание отчета

  1.  Титульный лист.
  2.  Наименование и цель работы.
  3.  Краткое теоретическое описание.
  4.  Задание на лабораторную работу.
  5.  Схема алгоритма.
  6.  Листинг программы.
  7.  Результаты выполнения программы.


 

А также другие работы, которые могут Вас заинтересовать

54439. Лексикологія. Багатозначність слів, вживання їх у прямому та переносному значеннях, синоніми і антоніми 44.5 KB
  Сухомлинський Мова жива сходинка людського духу Панас Мирний Мова коштовній скарб народу І. Франко Мова життя духовного основа М. Рильский Мова генофонд культури О.Завжди йдуть у парі мова й думка.
54440. Голос рідної природи серцем слухати навчись 84.5 KB
  Полтави Голос рідної природи серцем слухати навчись Мова – найбільший скарб який є у кожного народу. Навчальний процес в початковій школі ми намагаємося організувати так щоб перші кроки до науки маленькі школярі робили на уроках мислення серед природи гортаючи сторінку за сторінкою Книгу рідної землі. Дитина від своєї природи писав Сухомлинський допитливий дослідник відкривач світу. Один із перших кроків наближення дітей до природи розуміння її – це спостереження що проводиться безпосередньо в довкіллі.
54441. ЦІКАВИНКИ РІДНОЇ МОВИ 53 KB
  Закріплювати знання учнів формувати вміння думатислухати. Ви підросли порозумнішали навчилися застосовувати практично наявні знання. Вітаю тих хто не отримав перемогу але показав міцні знання стійкий бійцівський характер.
54442. ЦВІТИ І СМІЙСЯ, РІДНЕ СЛОВО! У СЕРЦІ ЩИРОМУ ЗВУЧИ! 66 KB
  Нам стежку в світ дано топтати Поки в нас рідна мова є Учениця І як гуртом не поодинці Почнемо в світ її нести То й доти будем – українці Поміж народів сміло йти Учень А знехтуємо рідне слово – Земля цього нам не простить То ж сяй над світом рідна мово Тобі в віках судилось жить Учениця Цвіти і смійся рідне слово У серці щирому звучи Моя чарівна рідна мово Лети над світом не мовчи Звучить музика Ведучий. Ведучий. Ведучий. Ведучий.
54443. Соловїна, барвінкова, українська рідна мова 205 KB
  Мета: навчальна поглибити знання учнів про рідну мову її символи традиції впроваджувати елементи естетичного виховання культури спілкування; розвивальна – розвивати українське мовлення культуру поведінки; виховна – виховувати любов і повагу до своєї Батьківщини України її символів традицій обрядів почуття глибокої поваги до предків своїх рідних і близьких творчу самостійність і відповідальність уміння самоорганізовуватись вміння...
54444. Мово моя рідна, не мовчи! 522.5 KB
  А вчителька мовила що якби ваші словасуржики перетворились і справді на страшні дерева та ще на страшніших звірів я б побачила які ви герої Іванко. Багато віків люди засмічували рідну мову то модним словечком яке нічого спільного з рідною мовою не мало то вживали надмірно російські слова на український лад бо свого ліньки було підшукати а рідним словом нехтували цуралися його. Це не просто деревця це ті слова які ви щоденно говорите. А ви щодня сієте словазернятка і не задумуєтеся на тим що з того виросте.
54445. О рідна мовонько, о мово! В тобі від Бога кожне слово 115.5 KB
  Вчити учнів застосовувати набуті знання на практиці; Розвивати командний дух швидкість реакції прагнення перемоги вміння працювати в команді толерантне ставлення до думок інших Виховувати любов до рідної мови гордість за свою Батьківщину прагнення до самовдосконалення ХІД ЗАХОДУ Слово учителя Моя прекрасна українська мово Найкраща пісня в...
54446. Мова, наша мова ― пісня стоголоса! 1.51 MB
  Приспів: Калинова соловїна Вишиванками рясна Наша рідна Україна Розцвіте немов весна У нас на всіх одна надія Одна і радість і біда Ми землю мудрістю засієм Розквітне мова золота. Ви самі побачите яка чудова наша українська мова Багато тисяч літ тому жила в Україні прекрасна дівчина. А називалася ця красуня УКРАЇНСЬКА МОВА.
54447. Розквітай же, рідна українська мово! 183 KB
  А мова українська мов причастя Теплом своїм торкається грудей. ВЕДУЧА Мова це той інструмент який єднає націю народ в єдине ціле. ВЕДУЧИЙ Найбільше і найдорожче добро в кожного народу це його мова ота багата скарбниця в яку народ складає і своє давнє життя і свої сподіванки розум досвід почування писав Панас Мирний. Кожна мова неповторна.