Автор работы: Пользователь скрыл имя, 23 Марта 2014 в 15:20, курсовая работа
Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки. Различают технологии, используемые на конкретных этапах разработки или для решения отдельных задач этих этапов, и технологии, охватывающие несколько этапов или весь процесс разработки. В основе первых, как правило, лежит ограниченно применимый метод, позволяющий решить конкретную задачу. В основе вторых обычно лежит базовый метод или подход, определяющий совокупность методов, используемых на разных этапах разработки, или методологию.
ВВЕДЕНИЕ..............................................................................………………….3
1. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
1.1. Алфавит языка С#...............................................……………..........……….5
1.2. Операторы языка С#...........................……………….................................. 6
1.3. Понятие классов и объектов...........………………………........................ 7
1.4. Структура программного модуля на С# ……............................................10
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1. Выполнение задания № 1 курсовой работы..............................................12
2.2. Выполнение задания № 2 курсовой работы....................................……..14
2.3. Выполнение задания № 3 курсовой работы …………………...………..15
ЗАКЛЮЧЕНИЕ..........................................................................……………….17
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ.............................………..18
ПРИЛОЖЕНИЯ...........................................................................………………19
1.4 Структура программного модуля на С#.
Это означает, что объекты конкретного класса доступны по ссылке, в отличие от значений простых типов, доступных непосредственно. Но иногда прямой доступ к объектам как к значениям простых типов оказывается полезно иметь, например, ради повышения эффективности программы. Ведь каждый доступ к объектам (даже самым мелким) по ссылке связан с дополнительными издержками на расход вычислительных ресурсов и оперативной памяти.
Для разрешения подобных затруднений в С# предусмотрена структура, которая подобна классу, но относится к типу значения, а не к ссылочному типу данных. Т.е. структуры отличаются от классов тем, как они сохраняются в памяти и как к ним осуществляется доступ (классы — это ссылочные типы, размещаемые в куче, структуры — типы значений, размещаемые в стеке), а также некоторыми свойствами (например, структуры не поддерживают наследование). Из соображений производительности вы будете использовать структуры для небольших типов данных. Однако в отношении синтаксиса структуры очень похожи на классы.
Главное отличие состоит в том, что при их объявлении используется ключевое слово struct вместо class. Ниже приведена общая форма объявления структуры:
struct имя : интерфейсы {
// объявления членов
}
где имя обозначает конкретное имя структуры.
Как и у классов, у каждой структуры имеются свои члены: методы, поля, индексаторы, свойства, операторные методы и события. В структурах допускается также определять конструкторы, но не деструкторы. В то же время для структуры нельзя определить конструктор, используемый по умолчанию (т.е. конструктор без параметров). Дело в том, что конструктор, вызываемый по умолчанию, определяется для всех структур автоматически и не подлежит изменению. Такой конструктор инициализирует поля структуры значениями, задаваемыми по умолчанию. А поскольку структуры не поддерживают наследование, то их члены нельзя указывать как abstract, virtual или protected.
Объект структуры может быть создан с помощью оператора new таким же образом, как и объект класса, но в этом нет особой необходимости. Ведь когда используется оператор new, то вызывается конструктор, используемый по умолчанию. А когда этот оператор не используется, объект по-прежнему создается, хотя и не инициализируется. В этом случае инициализацию любых членов структуры придется выполнить вручную.
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1. Выполнение задания
№ 1 курсовой работы.
Рассчитать сумму кубов элементов матрицы, больших 12 и меньших 57. Количество нулевых элементов. Количество нулевых элементов матрицы, которые имеют сумму индексов – четное число.
1) Алгоритм реализуется с
2) Определяем массив a с 10 столбцами и 10 строками - int[,] a = new int[10, 10].
3) Организуем цикл перебора
4) Внутрь этого цикла вложен
цикл перебора столбцов с
5) Внутри этих вложенных циклов
перебора реализованы две
if (i >= j)
{
if (i == 9)
a[i, j] = 100;
else
a[i, j] = Convert.ToInt32((i+1).
}
else a[i, j] = 0;
6) Инициализируем переменную с плавающей точкой skem, две целочисленные переменные - knem, sicc - и строковую переменную s:
double skem = 0;
int knem = 0;
int sicc = 0;
string s = "i= \\ j= \t";
7) Организуем цикл перебора
8) Для каждой строки i инициализируем переменную s - s = s + "\n" + i.ToString() + "\t".
9) Внутрь этого цикла вложен
цикл перебора столбцов с
10) Отбираем ячейки согласно условию задачи - if (a[i, j] > 12 && a[i, j] < 57).
11) Для отобранных ячеек
skem = skem + a[i, j]*a[i, j]*a[i, j]
12) Записываем полученное
13) Если значение текущей ячейки равно 0, то увеличиваем значение переменной knem на 1 - knem++.
14) Если сумма индексов ячейки равно четному числу, то увеличиваем переменную sicc на 1 - if ((i + j) % 2 == 0) sicc++.
15) Добавляем в строку символ завершения строки - s = s + "\n".
16) Выводим на экран результаты:
richTextBox1.Text = s;
richTextBox1.AppendText("\
richTextBox1.AppendText("\
richTextBox1.AppendText("\
2.2. Выполнение задания
№ 2 курсовой работы
Составить программу нахождения первого члена последовательности, большего 1: an = , где n=1,2,3,… Вывести его значение и номер. Найти значение логарифма (ln) последнего члена последовательности, меньшего 1.
1) Алгоритм реализуется с
2) Инициализируем значения
double n = 1;
double an = n / 12.0;
3) Организуем цикл с условием выхода, когда значение переменной an станет меньше либо равно 1 - while (an <= 1).
4) Внутри цикла производим вывод на экран значения переменных и вычисляем очередной член последовательности:
richTextBox1.AppendText("a"+n.
n++;
an = n / 12;
5) Выводим на экран остальную
информацию, а также вычисляем
логарифм для значения
richTextBox1.AppendText("
richTextBox1.AppendText("a"+n.
richTextBox1.AppendText("
richTextBox1.AppendText("ln(a" + (n-2).ToString() + ") = " + Math.Log(an));
2.3. Выполнение задания № 3 курсовой работы
Составить программу для решения следующей задачи: дана последовательность из 40 символов. В ней есть слова, которые отделяются друг от друга пробелами. Длина слов от 3 до 7 символов, считается, что длиннее 7 символов слов нет, между словами может быть от одного до трех пробелов. Преобразовать слова последовательности таким образом: у всех слов поменять местами последние и первые буквы местами. Вывести на экран исходную и преобразованную строку символов.
1) Алгоритм реализуется с
2) Инициализируем переменные:
string stroka = textBox1.Text;
int LL = stroka.Length;
int r = LL / 3;
string[] slovo = new string[r];
int Isl = -1;
int i = 0;
3) Организуем цикл перебора
4) Внутри этого цикла записываем в каждый элемент массива slovo[] пустую строку - slovo[i] = "".
5) Обнуляем значение переменной i - i = 0.
6) Организуем цикл с условием - while (i < LL).
7) Внутри цикла проверяем
if (stroka[i] != ' ') Isl++.
8) Организуем вложенный цикл с условием:
while (stroka[i] != ' ')
9) Внутри этого вложенного цикла выполняем слияние строк и выход, увеличиваем на 1 значение переменной I, и завершаем этот вложенный цикл, если вышли за пределы массива:
slovo[Isl] = slovo[Isl] + stroka[i];
i++;
if (i >= LL) break;
10) Увеличиваем счетчик внутри цикла i - i++.
11) Инициализируем строковые
12) Организуем цикл перебора строк с параметром i, от начального значения 0 до конечного значения равного размеру массива slovo.Length, с шагом изменения 1 - for (i=0;i<slovo.Length;i++).
13) Внутри цикла выполняем
sl=slovo[i];
if (sl != "")
{
ps =sl[sl.Length - 1] + sl.Substring(1, sl.Length - 2) + sl[0] ;
}
if (sl!="" && ps!="")
stroka = stroka.Replace(sl, ps);
14) Результат выводим на экран - textBox2.Text = stroka.
Заключение
Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Технология программирования представляет собой набор технологических инструкций, включающих: указание последовательности выполнения технологических операций; перечисление условий, при которых выполняется та или иная операция; описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т.п. Выделяют следующие этапы развития технологий программирования: «стихийное» программирование, структурный подход, объектный подход к программированию, компонентный подход и CASE-технологии. Программные системы обычно являются иерархическими, что позволяет применять блочно-иерархический подход к их исследованию или созданию. Этот подход предполагает сначала создавать части таких объектов (блоки, модули), а затем собирать из них сам объект. Жизненным циклом программного обеспечения называют период от момента появления идеи создания некоторого программного обеспечения до момента завершения его поддержки фирмой-разработчиком или фирмой, выполнявшей сопровождение. Процесс жизненного цикла определяется как совокупность взаимосвязанных действий, преобразующих некоторые входные данные в выходные. На протяжении последних тридцати лет в программировании сменились три модели жизненного цикла программного обеспечения; каскадная, модель с промежуточным контролем и спиральная. CASE-технологии представляют собой совокупность методологий анализа, проектирования, разработки и сопровождения сложных программных систем, основанных как на структурном, так и на объектном подходах, которые поддерживаются комплексом взаимосвязанных средств автоматизации.
Список литературы
Приложения
Задание 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int[,] a = new int[10, 10];
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
if (i >= j)
{
if (i == 9)
a[i, j] = 100;
else
a[i, j] = Convert.ToInt32((i+1).
}
else a[i, j] = 0;
}
}
double skem = 0;
int knem = 0;
int sicc = 0;
string s = "i= \\ j= \t";
for (int j = 0; j < 10; j++)
s = s + j.ToString() + "\t";
s = s + "\n";
for (int i = 0; i < 10; i++)
{
s = s + "\n" + i.ToString() + "\t";
for (int j = 0; j < 10; j++)
{
if (a[i, j] > 12 && a[i, j] < 57)
skem = skem + a[i, j]*a[i, j]*a[i, j];
s = s + a[i, j].ToString() + "\t";
if (a[i, j] == 0)
{
knem++;
if ((i + j) % 2 == 0) sicc++;
}
}
s = s + "\n";
}
richTextBox1.Text = s;
richTextBox1.AppendText("\
richTextBox1.AppendText("\