- •Методические указания к выполнению контрольной работы
- •Задания контрольной работы
- •Пример оформления контрольной работы
- •Содержание
- •А лгоритм решения задачи Листинг программы
- •Алгоритм решения задачи
- •Листинг программы
- •Результаты тестирования программы
- •Список использованных источников
- •Методические указания к выполнению курсовой работы
- •Пример оформления курсовой работы
- •Содержание
- •Задание 1 Условие задачи
- •Метод решения задачи
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Алгоритм решения задачи
- •Листинг программы
- •Результаты тестирования программы
- •Список использованных источников
Описание переменных
Идентификатор переменной |
Тип данных |
Функция, выполняемая в программе |
|
определение |
ключевое слово |
||
N |
целый |
int |
Размер массива |
n |
целый |
int |
Индекс текущего элемента массива |
A[n] |
вещественный |
float |
Элемент массива |
I_max |
целый |
int |
Индекс максимального элемента массива |
I_min |
целый |
int |
Индекс минимального элемента массива |
fmax |
логический |
bool |
Флаг поднимается (становится равным 1) , если встретится элемент, значение которого равно максимальному значению |
fmin |
логический |
boo |
Флаг поднимается (становится равным 1) , если встретится элемент, значение которого равно минимальному значению |
f3 |
целый |
int |
Флаг равен -1, если вычисление суммы начинается с элемента, равного минимальному значению, равен +1, если вычисление суммы начинается с элемента, равного максимальному значению, |
S |
вещественный |
float |
Сумма элементов массива |
Алгоритм решения задачи
Листинг программы
//-----------------------------------------------------------------------------------------------------
#pragma hdrstop
//-----------------------------------------------------------------------------------------------------
#include <conio.h> //библиотека подключения функции getch()
#include <iostream.h> //библиотека для cin и cout
#include <malloc.h> //библиотека для динамического выделения памяти
#include <fstream.h> //библиотека для ввода/вывода в файл
#include <windows.h> //библиотека используется в функции RUS
#include <math.h> //библиотека математических функций
#include <ctype.h> // библиотека проверки принадлежности символов
#include <stdlib.h> // библиотека некоторых стандартных функций
#include <string.h> // библиотека функций работы со строками
//
char bufRus[256];
//-----------------------------------------------------------------------------------------------------
char* RUS(const char*text) //функция поддержки русского языка
{
CharToOem(text,bufRus);
return bufRus;
}
//-----------------------------------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
//-------- описание переменных ---------------------------------------------------------------
const int N=10;
int n, I_max=0, I_min=0, f3=0;
float A[N], S=0;
bool fmax=0, fmin=0;
//--------- ввод массива -------------------------------------------------------------------------
cout<<RUS("\nВведите массив из ")<<N;
cout<<RUS("элементов\n");
for(n=0; n<N; n++)
{
cout<<RUS("\nВведите A[ ")<<n<<" ] = ";
cin>>A[n];
}
//---------- поиск индексов минимального и максимального элементов -------------
for(n=1; n<N; n++)
{
if( A[n]<A[I_min])
I_min=n;
if( A[n]>A[I_max])
I_max=n;
}
//-------------вычисление суммы между минимумом и максимумом ------------------
if(A[I_min]!=A[I_max])
{
for(n=0; n<N; n++)
{ if(A[n]==A[I_min])
{
fmin=1;
cout<<RUS("\nИндекс минимального элемента массива = ")<<n;
}
if(A[n]==A[I_max])
{
fmax=1;
cout<<RUS("\nИндекс максимального элемента массива = ")<<n;
}
if(fmin==1&&fmax==0)
{ S+=A[n]; f3=-1;}
if(fmin==1&&fmax==1&&f3==-1)
{S-=A[I_min];
cout<<RUS("\nСумма элементов между минимумом и максимумом = ")<<S;
S=0;
f3=0;
fmin=0;
fmax=0;
}
if(fmin==0&&fmax==1)
{S+=A[n];f3=1;}
if(fmin==1&&fmax==1&&f3==1)
{S-=A[I_max];
cout<<RUS("\nСумма элементов между максимумом и минимумом = ")<<S;
S=0;
f3=0;
fmin=0;
fmax=0;
}
}
if(f3==-1)
cout<<RUS("\nНет максимального элемента массива ");
if(f3==1)
cout<<RUS("\nНет минимального элемента массива ");
}
else
cout<<RUS("\nВсе элементы массива имеют одно значение");
//-----------------------------------------------------------------------------------------------------
cout<<RUS("\nНажмите любую клавишу для завершения программы \n");
getch();
return 0;
}
//---------------------------------------------------------------------------
Результаты тестирования программы
ЗАДАНИЕ 2
Условие задачи
Ввести с клавиатуры вещественную матрицу размерностью 44. Определить:
1) максимальный элемент среди элементов, расположенных выше главной диагонали;
2) количество отрицательных элементов в тех столбцах, которые содержат хотя бы один нулевой элемент.
Метод решения задачи
Для поиска максимального элемента среди элементов, расположенных выше главной диагонали, используется следующий прием. Сначала за максимальный элемент принимается элемент с индексом строки равным 0 и индексом столбца равным 1. Он является первым элементом выше главной диагонали, если рассматривать матрицу с левого верхнего угла. Значение этого элемента записывается в переменную Max. Затем, при поиске, перебираются элементы матрицы, расположенные выше главной диагонали: у них индекс строки меньше индекса столбца. Значение каждого элемента сравнивается со значением Max. Если встретиться элемент, значение которого больше Max, то в Max записывается его значение. Таким образом, находится максимальное значение среди элементов матрицы. Далее опять перебираются элементы матрицы, расположенные выше главной диагонали. Если значение элемента равно значению Max, то выводятся индексы его строки и столбца.
Подсчет количества отрицательных элементов в тех столбцах, которые содержат хотя бы один нулевой элемент, можно выполнить следующим образом. Выбирается первый столбец, т.е. задается его индекс j=0. Далее, перебирая индекс строк i, выполняется поиск элементов в этом столбце, равных нулю. Если такой элемент встретится, поднимается флаг f. После поиска, анализируется состояние флага f. Если он равен 1, то в данном столбце выполняется подсчет отрицательных элементов. Далее, те же действия выполняется для следующего столбца.