- •ОбрабоТка строк Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •1 Вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, строка вводится без пробелов внутри.
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, строка вводится с пробелами внутри.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка одномерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •ОбрабоТка двумерных числовых массивов
- •2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
- •Контрольные вопросы и задания
- •Задание
- •Функции с одним результатом Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции с несколькими результатами Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и строки Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и одномерные числовые массивы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Функции и матрицы Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
- •Шаблоны функций Цель работы
- •Порядок написания программы
- •Примеры написания программ
- •Контрольные вопросы и задания
- •Задание
ОбрабоТка двумерных числовых массивов
(на примере матриц)
Цель работы
1. Научиться:
–объявлять матрицу в программе статически и динамически;
– вводить матрицу или объявлять с инициализацией;
– писать стандартный цикл обработки матрицы;
–обращаться к элементам матрицы по имени и через адрес.
2. Составить, выполнить и протестировать указанную задачу с помощью компьютера.
Порядок написания программы
1. Выделить память под матрицу статически или динамически.
2. Ввести матрицу с клавиатуры или заполнить случайными числами.
3. Провести указанную обработку матрицы.
4. Вывести на экран матрицу в матричном виде.
5. Вывести результат обработки.
6. Освободить динамическую память (если она выделялась).
Примеры написания программ
Задача. Вычислить количество положительных элементов произвольного столбца целочисленной матрицы.
Этапы решения задачи:
- объявить матрицу;
-заполнить матрицу числами с клавиатуры;
-вывести матрицу в матричном виде;
-вычислить количество положительных элементов произвольного столбца матрицы;
-вывести результат.
.
Примечание. Вызов функцииRusперед строками-константами с русским текстом осуществляйте самостоятельно.
1 вариант решения – обращение к элементу массива идет через имя элемента массива, память выделяется статически, массив заполняется с клавиатуры.
Программа будет строиться в виде проекта.
Текст функции main будет выглядеть так:
//содержимое файла main.cpp
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include<iomanip> //для форматированного вывода матрицы
#include "Rus.h" //прототип функции русификации
#define STR 3 //задаем количество строк в массиве
#define STLB 4 //задаем количество столбцов в массиве
#define NSTLB 2 //задаем номер анализируемого столбца
int main(void)
{
int matr[STR][STLB]; //объявляем массив
int kol=0; //переменная под количество
int i, j, J;
//заполнения двумерного массива числами с клавиатуры;
cout<<"\nВведите массив";
for(i=0; i<STR; i++) //перебор элементов массива построчно
for(j=0; j<STLB; j++)
cin>>matr[i][j]);
//вывода двумерного массива;
cout<<"\nИсходный массив: ";
for(i=0; i<STR; i++) //перебор элементов массива построчно
{
for(j=0; j<STLB; j++)
cout<<setw(8)<< matr[i][j]); //выводим элемент массива
cout<<endl; //переводим курсор на след строку
}
//вычисление количества положительных элементов произвольного //столбца матрицы;
J= NSTLB-1; //номер столбца превращаем в индекс
for(i=0; i<n; i++) // перебор строк одного столбца с индексом J
if matr[i][ J]>0) // если элемент массива положительный
kol++; //количество увеличиваем на 1
cout<< "\nКоличество равно" << kol<<endl;
return 0;
}
2 Вариант решения – обращение к элементу массива идет через адрес элемента массива, память выделяется динамически, заполняется массив с клавиатуры.
#include<iostream> //подключение системных средств для
using namespace std; //возможности использовать потоки ввода-вывода
#include<iostream> //для форматированного вывода матрицы
#include "Rus.h" //прототип функции русификации
#define STR 3 //задаем количество строк в массиве
#define STLB 4 //задаем количество столбцов в массиве
#define NSTLB 2 //задаем номер анализируемого столбца
int main(void)
{
int *matr=new int[STR*STLB];//объявляем массив
int kol=0; //переменная под количество
int i, j, J;
int *p=matr; //адрес первого элемента в матрице.
//заполнения двумерного массива числами с клавиатуры;
cout<<"\nВведите массив";
for(i=0; i<STR; i++) //перебор элементов массива
for(j=0; j<STLB; j++)
cin>>*( p+i*STLB+j);
//вывода двумерного массива;
cout<<"\nИсходный массив: ";
for(i=0; i<STR; i++) //перебор элементов массива
{
for(j=0; j<STLB; j++)
cout<<setw(8)<< *(p+i*STLB+j); //выводим элемент массива
cout<<endl; //переводим курсор на след строку
}
//вычисления количества положительных элементов произвольного //столбца матрицы;
J=NSTLB-1; //номер столбца превращаем в индекс
for(i=0; i<n; i++) // перебор строк одного столбца с индексом J
if(*(p+i*STLB+J)>0) // если элемент массива положительный
kol++; //количество увеличиваем на1
cout<< "\nКоличество равно "<< kol<<endl;
return 0;
}