Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инф_техн_метод_указания_КР_211000(З).DOC
Скачиваний:
5
Добавлен:
16.11.2019
Размер:
2.03 Mб
Скачать

Описание переменных

Идентификатор переменной

Тип данных

Функция, выполняемая в программе

определение

ключевое слово

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, то переходим к тем же действиям со вторым элементом и т.д. Таким образом, будет сформирован вспомогательный массив, отвечающий требованиям поставленной задачи. Далее освобождается память от основного массива, а его указателю присваивается значение указателя вспомогательного массива.