Урок 5. Основы программирования

Урок 5. Основы программирования

Тема 5: Двумерные массивы. Функции.

План:

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

2. Функции

Теоретическая часть

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

Двумерный массив — это одномерный массив, элементами которого являются одномерные массивы.

Как и одномерные массивы двумерные массивы содержат элементы одного типа, но доступ к ним осуществляется по двум индексам. Двумерный массив int a[n,m] можно представить в виде таблицы, состоящей из n строк и m столбцов. К каждому элементу можно обратиться, указав в квадратных скобках номер строки и столбца, в которых он находится:

a[0,0] a[0,1] a[0,2]…a[0,m]

a[1,0] a[1,1] a[1,2]…a[1,m]

……………………………………

a[n,0] a[n,1] a[n,2]…a[n,m]

Алгоритм заполнения двумерного массива изображен на рисунке 1.

Рисунок 1 – Алгоритм заполнения двумерного массива

Реализация алгоритма заполнения в программе.

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

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

    cin>>a[i][j];

Программа, которая заполняет массив и отображает его на экране в виде таблицы.

#include <iоstream>

#include <stdlіb.h>

using namespace std;

int main()

{

int const n=5;

int A[n][n];

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

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

    A[i][j]=rand()%5;

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

{

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

    cout<<A[i][j]<<» «;

cout<<endl;

}

return 0;}

2. Функции

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

Определение функции:

тип_возвращаемого_значения имя_функции (тип имя_переменной1, тип имя_переменной2)

{тело функции;}

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

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

#include <iоstream>

using namespace std;

float a,b, S; //объявление переменных а – длина, b – ширина, S – площадь

float area( float a, float b) /* функция area, которая вычисляет площать квадрата со сторонами a и b и принимает значение типа float */

{

 float s;

 s=a*b;

 return s;

}

int main()

{

cout<< «Длина»;

cin>>а;

cout<< «Ширина»;

cin>>b;

S=area(a,b);

cout<<S;

return 0;

}

Практическое задание

1. Задан двумерный массив А[n][n]. Найти сумму элементов его главной диагонали. Сформировать массив B[n][n], в котором все отрицательные элементы из А[n][n] меняются на противоположные, а положительные остаются без изменений. Использовать функции для вывода массива на экран, для нахождения суммы и для нахождения противоположного числа для отрицательных значений.

#include
#include
#include

using namespace std;

int const n=5;

void output(int arr[5][5])

{

cout<<endl;

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

 {

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

   cout<<arr[i][j]<<» «;

   cout<<endl;

 }

}

int summa(int arr[5][5])

{

int s=0;

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

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

     if (i==j)

      s+=arr[i][j];

return s;

}

int inverse(int k)

{

if (k<0)

  return -k;

if (k>0)

  return k;

}

int main()

{

srand(time(NULL));

int a[n][n];

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

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

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

output(a);

cout<<«Сумма элементов главной диагонали: «<<summa(a);

int b[n][n];

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

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

    b[i][j]=inverse(a[i][j]);

output(b);

return 0;

}

Домашнее задание

1. Дан массив D[n][m], где n=5, m=6, заполненный случайными значениями. Определить произведение элементов в строке S.

 


Учебная программа курса BotBase

Центр робототехники "BOTEON".
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: