- •Методические указания к выполнению контрольной работы
- •Задания контрольной работы
- •Пример оформления контрольной работы
- •Содержание
- •А лгоритм решения задачи Листинг программы
- •Алгоритм решения задачи
- •Листинг программы
- •Результаты тестирования программы
- •Список использованных источников
- •Методические указания к выполнению курсовой работы
- •Пример оформления курсовой работы
- •Содержание
- •Задание 1 Условие задачи
- •Метод решения задачи
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Листинг программы
- •Описание переменных
- •Алгоритм решения задачи
- •Алгоритм решения задачи
- •Листинг программы
- •Результаты тестирования программы
- •Список использованных источников
Описание переменных
Идентификатор переменной |
Тип данных |
Функция, выполняемая в программе |
|
определение |
ключевое слово |
||
N, M |
целые константы |
const int |
Задают размер массива |
i, j |
целый |
int |
Индексы текущего элемента массива |
A[i][j] |
вещественный |
float |
Элемент массива |
Max |
вещественный |
floa |
Максимальное значение среди элементов, расположенных выше главной диагонали |
f |
логический |
bool |
Флаг поднимается (становится равным 1), если в столбце встретится элемент, значение которого равно нулю |
kol |
вещественный |
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[])
{
cout<<RUS("*** Курсовая работа. Задание 2 *** \n");
const int N=4, M=4;
float A[N][M], Max;
bool f;
int kol=0;
cout<<RUS("\nВведите матрицу, состоящую из ")<<N;
cout<<RUS(" строк и ")<<M;
cout<<RUS(" столбцов \n");
for(int i=0;i<N;i++) //ввод массива
for(int j=0;j<M;j++)
{cout<<RUS("\nВведите элемент А [ ")<<i<<" ][ "<<j<<" ] = ";
cin>>A[i][j];
}
cout<<RUS("\n***** Введена матрица ***** \n");
cout<<fixed;
for(int i=0;i<N;i++) //вывод массива
{
for(int j=0;j<M;j++)
{cout.width(6);
cout.precision(1);
cout<<A[i][j];}
cout<<"\n";
}
Max=A[0][1]; //поиск максимального значения выше гл.диагонали
for(int i=0;i<N;i++)
for(int j=0;j<M;j++)
if(i<j&&A[i][j]>Max)
Max=A[i][j];
cout<<RUS("\nМаксимальное значения выше гл.диагонали равно: ")<<Max<<"\n";
for(int i=0;i<N;i++) //вывод элементов, равных максимальному значению
for(int j=0;j<M;j++)
if(i<j&&A[i][j]==Max)
{
cout<<RUS("\nЭлемент ")<<"A [ "<<i<<" ][ "<<j<<" ]";
cout<<RUS(" равен максимальному значению\n");
}
for(int j=0;j<M;j++) //задается индекс столбца
{f=0;
for(int i=0;i<N;i++) //поиск нулей в столбце
if(A[i][j]==0)
f=1;
if(f)
for(int i=0;i<N;i++) //подсчет отрицательных элементов в столбце с нулями
if(A[i][j]<0)
kol++;
}
cout<<RUS("\nКоличество отрицательных элементов в столбцах с нулями равно:")<<kol;
cout<<RUS("\nНажмите любую клавишу для завершения программы ...\n");
getch();
return 0;
}
//---------------------------------------------------------------------------
Результаты тестирования программы
ЗАДАНИЕ 3
Условие задачи
С одномерным динамическим массивом, состоящим из n вещественных элементов, выполнить следующее. Удалить из массива одинаковые элементы. Освободившиеся места в конце массива заполнить нулями.
Метод решения задачи
При решении задачи удобно использовать вспомогательный динамический массив. Метод решения заключается в следующем. Создается вспомогательный динамический массив, такой же размерности, как и исходный. Этот массив обнуляется. Из исходного массива выбирается элемент, сравнивается со всеми элементами и вычисляется количество его повторений. Если количество повторений равно 1, этот значение элемента записывается в начало вспомогательного массива. Если количество повторений больше 1, то переходим к тем же действиям со вторым элементом и т.д. Таким образом, будет сформирован вспомогательный массив, отвечающий требованиям поставленной задачи. Далее освобождается память от основного массива, а его указателю присваивается значение указателя вспомогательного массива.