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