Professional Documents
Culture Documents
Звіт до курсової роботи
Звіт до курсової роботи
Кафедра ЕОМ
Курсова робота
З дисципліни «Програмування»
групи КІ-17-1
Кількість балів:________
Національна шкала:________
Оцінка ECTS:________
Дніпро
2018
1. Завдання на курсову роботу
Варіант 7.
1. Функція Position(s,s1). Призначення: пошук позиції останнього входження
підрядку s1 в рядок s.
2. Знайти мінімальне з чисел, що зустрічається у матриці більше одного разу.
3. Скласти функцію, що переставляє півбайти в двійковому представленні
символу (символ, що містить до перестановки значення 0х3f, після
перестановки повинен містити 0хf3). Застосувати цю функцію до всіх
символів заданого рядку. Результати представити у символьному,
шістнадцятковому та двійковому вигляді.
4. Є матриця m*k, де m і k – цілі числа, слів довжиною 6. Упорядкувати слова у
її діагоналі за спаданням методом мінімумів. Методами послідовного та
бінарного пошуку знайти в упорядкованій діагоналі задане слово. Дані
вводяться з файлу.
2. Анотація
RESUME
The term project of the 1-st year student Grechka D.S. (DNU, Faculty
of Physics, Electronics and Computer Systems, Department of
Electronic Computing Systems) deals with designing algorithms and
programs using programming language C for 4 tasks. They are
processing symbol strings, processing matrics, operations with
separate bits, and the applications of sorting and searching methods.
The block diagrams and listings are presented.
3. Зміст
5)
Блок-схема
Виклик та завантаження програми
Виклик та завантаження програми здійснюється в середовищі Visual Studio
шляхом натиснення на кнопку «Старт» чи методом відкриття .exe файлу в
каталозі Debug в папці проекту.
2) s=”Hello”, s1 = “Hello”
Результати тестування
2) size = 4
Результати тестування
Мал 1. size=10
Мал 2. size = 4
11)
Блок-схема
Виклик та завантаження програми
Виклик та завантаження програми здійснюється в середовищі Visual Studio
шляхом натиснення на кнопку «Старт» чи методом відкриття .exe файлу в
каталозі Debug в папці проекту.
Результати тестування
Результати тестування
Мал 1. Ім’я вхідного файлу = “1.txt”, ім’я вихідного файлу “2.txt”, word = "
Mretrt"
Мал 2. Ім’я вхідного файлу = “1.txt”, ім’я вихідного файлу “2.txt”, word = "
NoWord"
Аналіз одержаних результатів
Програма захищена від аномальних випадків, таких як неіснуючий вхідний
файл чи пустий, та неіснуюче ім’я файлу чи таке ім’я, яке неможливо задати
для вихідного файлу
void main()
{
setlocale(LC_ALL, "Russian");
char * mainStr = (char*)malloc(100 * sizeof(char)); //Cтрока
char * str = (char*)malloc(100 * sizeof(char)); //Подстрока
char * mainPtr = mainStr, ptr = str;//Указатели на строки
printf("Введите главную строку: ");
gets(mainStr);
free(mainStr); free(str);
printf("Программа завершена, для выхода нажмите любую кнопку!\n");
_getch();
}
Завдання №2
Текст програми
#include <locale.h>
#include <stdio.h>
#include <time.h>
#include <stdbool.h>
//Генерирование матрицы
int ** GenerateMatrix(int size)
{
srand(time(NULL));
int **matrix = (int**)malloc(size * sizeof(int*));//Выделяем память на
матрицу
for (int i = 0; i<size; i++)
matrix[i] = (int*)malloc(size * sizeof(int));//Выделяем память на
каждую её строку
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
matrix[i][j] = rand() % 100;//Заполняем рандомными числами
return matrix;//Возвращаем сгенерированную матрицу
}
void main()
{
setlocale(LC_ALL, "Russian");
int ** matrix = NULL;
int size;
while (true)
{
printf("Введите размерность матрицы [6;10]: ");
rewind(stdin); scanf_s("%d", &size);
if (size >= 6 && size <= 10)
break;
}
printf("Сгенерированная матрица:\n");
matrix = GenerateMatrix(size);
Print(matrix, size);
Task(matrix, size);
fclose(file);//Закрываем подключение
return mas;//Возвращаем указатель на массив
}
//Конвертируем в символ
void SymbolConvert(int number)
{
if (number < 256)
printf("%c", number);
else
printf("Символа с таким кодом нет!");
}
void main()
{
setlocale(LC_ALL, "Russian");
int * mas = NULL;
char * input = (char*)malloc(100 * sizeof(char));
char * output = (char*)malloc(100 * sizeof(char));
mas = ReadFile(input);
printf("ИСХОДНЫЙ МАССИВ:\n");
Print(mas);
SaveToFile(mas, output);
//Структура слово
struct Word
{
char word[7];
};
if (count > 0)
{
if ((int)sqrt(count) == sqrt(count))
{
fseek(file, 0, 0);//Устанавливаем указатель на начало файла
//Линейный поиск
bool LineSearch(struct Word ** matrix, char * word)
{
for (unsigned int i = 0; i < size; i++)//Проходим по диагонали
if (Simile(matrix[i][i].word, word) == 0)//Если находим совпадение
return true;
return false;
}
//Бинарный поиск
bool BinarySearch(struct Word ** matrix, char * word)
{
int average_index = 0, // переменная для хранения индекса среднего
элемента массива
first_index = 0, // индекс первого элемента в массиве
last_index = size - 1; // индекс последнего элемента в массиве
//------------------------------------------------
--------
void main()
{
setlocale(LC_ALL, "Russian");
if (LineSearch(matrix, word))
printf("Линейный поиск: слово найдено\n");
else
printf("Линейный поиск: слово не найдено\n");
if (BinarySearch(matrix, word))
printf("Бинарный поиск: слово найдено\n");
else
printf("Бинарный поиск: слово не найдено\n");
Save(matrix, write);
for (unsigned int i = 0; i < size; i++)
free(matrix[i]);
free(matrix); free(read); free(write);
printf("Программа завершена, для выхода нажмите любую клавишу ");
_getch();
}
Блок-схеми