Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КУРСОВИК ПО ПРОГРАММИРОВАНИЮ.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
193.39 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ

УНИВЕРСИТЕТ»

Кафедра ___________________________________________________

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по дисциплине ______________________________________________

(наименование дисциплины)

на тему ____________________________________________________

(тема курсовой работы)

Выполнил(а) студент(ка) группы________________________________

____________________________________________________________

(ф.и.о.)

Допущен к защите __________________________________________

Руководитель проекта ________________________________________

Защищен _______________ Оценка ________________________

(дата)

Члены комиссии _____________________________________________ ____________________________________________________________

(подпись, дата, расшифровка подписи)

20__ г.

Нормативные ссылки

В настоящих методических указаниях используются ссылки на следующие нормативные документы:

ГОСТ Р 7.05-2008 – СИБИД. Библиографическая ссылка. Общие требования и правила составления.

ГОСТ 2.105-95 – ЕСКД. Общие требования к текстовым документам.

ГОСТ 7.9-95 – СИБИД. Реферат и аннотация. Общие требования.

ГОСТ 19.701-80 – ЕСПД. Схемы алгоритмов, программ, данных и систем.

Введение

Целью курсовой работы является закрепление теоретического материала, приобретение практических навыков проектирования и отладки консольных приложений написанных на языке высокоуровневого программирования С#, предназначенного для платформы .NET. Данная курсовая работа направлена на подробное изучение методов языка C# и на совместное использование всех базовых конструкций языка. С этой целью будет реализовано программирование математических задач. Знания, полученные на занятиях, заложили фундамент для дальнейшего изучения возможностей C#.

Формулировка задачи

  1. Дано натуральное число N. Определить длину периода 1/n. Период дроби равен периоду в последовательности остатков. Построить график зависимости периода от N.

Спецификация задачи

Входные данные:

- число N.

Выходные данные:

- получить значение частного 1/N;

- определить период в последовательности остатков.

Математическая постановка задачи

Характеристика переменных

Имя переменной

Смысл переменной

Назначение переменной

Ограничения

N

Десятичная число

Исходная

От 1 до ….

S

Десятичное число

Промежуточная

После ввода числа N, производим деление 1 на N, результат которой записываем в переменной S. Потом берем из этого числа остаток от деления и перезаписываем его в переменную S. Далее каждую цифру числа S, мы помещаем в целочисленный массив m. Следом идет ряд условных операторов, определяющих период числа S.

Схема алгоритма. Описание

Схема алгоритма содержит следующие типовые структурные элементы: внутренний цикл, ветвление, внешний цикл. При выполнении внешнего цикла, мы последовательно, начиная с первого элемента, сравниваем их с 0 элементом. Если значение какого-либо элемента равняется 0-ому элементу, мы запоминаем его порядковый номер и записываем в переменную index. В переменную P записываем значение переменной index. Во внутреннем цикле идет сравнение элементов от 0 по inedex – 1 с элементами от index до длины массива m.length – 1. В результате в зависимости от наличия или отсутствия периода выводится, то или иное сообщение.

Код программы и схема алгоритма

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

/*Вариант 2 Дано натуральное число N. Определить длину периода 1/n. Период дроби равен периоду в последовательности

остатков. Построить гра-фик зависимости периода от N. */

int n = Convert.ToInt32(Console.ReadLine());

string s = (1.0 / n).ToString(); // Результат от деления записываем в стороковую переменную s

Console.WriteLine(s);

s = s.Substring(2, s.Length - 2); // Убираем целую часть и запятую и перезаписываем значение в переменную s

Console.WriteLine(s);

int[] m = new int[s.Length];

for (int i = 0; i < s.Length; i++) // Каждую цифру числа, записываем в массив m

{

m[i] = Convert.ToInt32(s.Substring(i, 1));

Console.Write(m[i]);

} Console.ReadLine();

for (int i = 1; i < m.Length; i++) // Сравниваем числа с 0 элементом

{

if (m[i] == m[0])

{

int index = i; // Запоминаем его порядковый номер

int P = index;

for (i = 0; i < index; i++) // Сравниваем числа от 0 до index - 1 с элементами от index до m.length - 1

{

if (m[i] == m[index])

{

if (index < m.Length - 1)

{

index++;

Console.WriteLine("Период равен P=" + P);

Console.ReadLine();

}

}

}

}

else

{

{

Console.WriteLine("Периода нет");

Console.ReadLine();

}

}

}

}

}

}

начало

Введите N

S = 1/N

I =0; i<s.Length; i++

M[i]

I=1; i<m.Length; i++

M[i]==m[0]

Периода нет

Конец

Index = I;

P = index;

1

2

I=0; i<index; i++;

1

2

M[i]==m[index]

Index<m.length-1

Index ++;

P

Результат машинного тестирования программы

При N равное 3, период остатка от деления 1/N будет равняться 1.

Формулировка задачи.

  1. Даны два массива: x[1] ≤… ≤ x[k], y[1] ≤ … ≤ y[l] и число q. Найти сумму вида x[i] + y[j], наиболее близкую к числу q (число действий порядка k + l, дополнительная память – фиксированное число переменных, массивы не изменять).

Спецификация задачи.

Входные данные:

- число q;

- массив x;

- массив y.

Выходные данные:

- значение суммы самой близкой к числу q;

- порядковый номер числа q в массиве.

Математическая постановка задачи.

Характеристика переменных

Имя переменной

Смысл переменной

Назначение переменной

Ограничения

q

Десятичное число

Исходная

k

Размерность массива x

Исходная

x

Одномерный массив

Исходная

l

Размерность массива y

Исходная

y

Одномерный массив

Исходная

z

Одномерный массив

Промежуточная

we

Булева переменная

Промежуточная

nomer

Порядковый номер числа q

Промежуточная

v, v1

Определяют ближайшую сумму к числу q

Результат

Как только ввели число q, начинаем складывать элементы массивов x и y. Результат суммы записываем в массив z. Далее сортируем элементы массива по возрастанию и перезаписываем их. Следующим шагов выполняется ряд условий, которые и находят самую близкую сумму двух массивов x и y к числу q.

Схема алгоритма. Описание

Схема алгоритма содержит следующие типовые структурные элементы: внешний цикл и вложенные друг в друга структуры ветвления. В цикле начинается перебор массива z, до тех пор пока не найдем число q в массиве z. Далее проверяем, если число q - это последний элемент массива, то самой близкой суммой к числу q будет равняться стоящий перед ним элемент. Если же это не так, то в следующем условии проверяем, не является ли число q нулевым элементов массива. Тогда ближайшей к нему суммой будет следующий после него элемент. В конце задаем структуры ветвления, на случай если наше число q стоит в середине массива. В них сравнивается число, стоящее перед и после значения q. В зависимости от их значения, выводится ближайшая сумма элементов массива x и y к числу q.