logo
Методичка 2 Программирование

Примеры написания программ

Задача. Найти количество положительных элементов произвольного столбца целочисленной матрицы.

Напишите функции:

-заполнения двумерного массива числами с клавиатуры;

-вывода двумерного массива;

-вычисления количества положительных элементов произвольного столбца матрицы.

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

Для определения характеристик каждой функции ответим на три вопроса.

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

Функция вывода массива на экран монитора:

Функция вычисления количества положительных элементов произвольного столбца матрицы:

Программа будет строиться в виде проекта.

Текст функций пользователя будет выглядеть так:

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

void InMatr(int *p, int n, int m)

{

int i, j;

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

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

cin>>*( p+i*m+j);

return;

}

void OutMatr(int *p, int n, int m)

{

int i, j;

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

{

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

cout<<setw(5)<< *(p+i*m+j); //выводим элемент массива

cout<<endl; //переводим курсор на след строку

}

return;

}

int KolMatr(int*p, int n, int m, int J)

{

int i;

int kol=0; //вычисление количества начинается с 0

J--; //номер столбца превращаем в индекс

for(i=0; i<n; i++) // перебор строк одного столбца с индексом J

if(*(p+i*m+J)>0) // если элемент массива положительный

kol++; //количество увеличиваем на1

return kol; // завершаем функцию и передаем результат из kol

}

Текст заголовочного файла mas2.h будет выглядеть так:

#ifndef MAS2_H

#define MAS2 _H

void InMatr(int *p, int n, int m); //прототипы функций

void OutMatr(int *p, int n, int m);

int KolMatr(int*p, int n, int m, int J);

#endif

Текст функции main будет выглядеть так:

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include " Mas2.h"

#include "Rus.h" //прототип функции русификации

#define STR 3 //задаем количество строк в массиве

#define STLB 4 //задаем количество столбцов в массиве

int main(void)

{

int matr[STR][STLB]; //объявляем массив

int kol; //переменная под количество

cout<<"Введите массив"<<endl;

InMatr(matr[0],STR, STLB); //вводим массив

cout<<"Исходный массив: ";

OutMatr(matr[0],STR, STLB); //выводим массив на экран

kol=KolMatr(matr[0], STR, STLB, 1);//кол-во в первом столбце

cout<< "Количество равно "<< kol<<endl;

return 0;

}