Алфавит языка С#

Автор работы: Пользователь скрыл имя, 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 файл

Курсовая по программированию.doc

— 148.00 Кб (Скачать документ)

1.4 Структура программного модуля на С#.

Это означает, что объекты конкретного класса доступны по ссылке, в отличие от значений простых типов, доступных непосредственно. Но иногда прямой доступ к объектам как к значениям простых типов оказывается полезно иметь, например, ради повышения эффективности программы. Ведь каждый доступ к объектам (даже самым мелким) по ссылке связан с дополнительными издержками на расход вычислительных ресурсов и оперативной памяти.

Для разрешения подобных затруднений в С# предусмотрена структура, которая подобна классу, но относится к типу значения, а не к ссылочному типу данных. Т.е. структуры отличаются от классов тем, как они сохраняются в памяти и как к ним осуществляется доступ (классы — это ссылочные типы, размещаемые в куче, структуры — типы значений, размещаемые в стеке), а также некоторыми свойствами (например, структуры не поддерживают наследование). Из соображений производительности вы будете использовать структуры для небольших типов данных. Однако в отношении синтаксиса структуры очень похожи на классы.

Главное отличие состоит в том, что при их объявлении используется ключевое слово struct вместо class. Ниже приведена общая форма объявления структуры:

struct имя : интерфейсы {

// объявления членов

}

где имя обозначает конкретное имя структуры.

Как и у классов, у каждой структуры имеются свои члены: методы, поля, индексаторы, свойства, операторные методы и события. В структурах допускается также определять конструкторы, но не деструкторы. В то же время для структуры нельзя определить конструктор, используемый по умолчанию (т.е. конструктор без параметров). Дело в том, что конструктор, вызываемый по умолчанию, определяется для всех структур автоматически и не подлежит изменению. Такой конструктор инициализирует поля структуры значениями, задаваемыми по умолчанию. А поскольку структуры не поддерживают наследование, то их члены нельзя указывать как abstract, virtual или protected.

Объект структуры может быть создан с помощью оператора new таким же образом, как и объект класса, но в этом нет особой необходимости. Ведь когда используется оператор new, то вызывается конструктор, используемый по умолчанию. А когда этот оператор не используется, объект по-прежнему создается, хотя и не инициализируется. В этом случае инициализацию любых членов структуры придется выполнить вручную.

 

2. ПРАКТИЧЕСКАЯ ЧАСТЬ

2.1. Выполнение задания 

№ 1 курсовой работы.

Рассчитать сумму кубов элементов матрицы, больших 12 и меньших 57. Количество нулевых элементов. Количество нулевых элементов матрицы, которые имеют сумму индексов – четное число.

1) Алгоритм реализуется с помощью  одной процедуры  void button1_Click(object sender, EventArgs e).

2) Определяем массив a с 10 столбцами  и 10 строками - int[,] a = new int[10, 10].

3) Организуем цикл перебора строк  с параметром i, от начального  значения 0 до конечного значения 10 с шагом изменения 1  -  for (int i = 0; i < 10; i++).

4) Внутрь этого цикла вложен  цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 10 с шагом изменения 1 - for (int j = 0; j < 10; j++).

5) Внутри этих вложенных циклов  перебора реализованы две проверки  условия, которые в зависимости  от местоположения элемента, присваивают  ему соответствующее значение.

if (i >= j)

{

     if (i == 9)

        a[i, j] = 100;

     else

        a[i, j] = Convert.ToInt32((i+1).ToString() + (i+1).ToString());

}

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) Организуем цикл перебора строк  с параметром i, от начального  значения 0 до конечного значения 10 с шагом изменения 1  -  for (int i = 0; i < 10; i++).

8) Для каждой строки i инициализируем переменную s - s = s + "\n" + i.ToString() + "\t".

9) Внутрь этого цикла вложен  цикл перебора столбцов с параметром j, от начального значения 0 до  конечного значения 10 с шагом  изменения 1 - for (int j = 0; j < 10; j++).

10) Отбираем ячейки согласно условию задачи - if (a[i, j] > 12 && a[i, j] < 57).

11) Для отобранных ячеек выполняем  расчет суммы кубов значений:

skem = skem + a[i, j]*a[i, j]*a[i, j]

12) Записываем полученное значение  в строковую переменную - s = s + a[i, j].ToString() + "\t".

13) Если значение текущей ячейки  равно 0, то увеличиваем значение  переменной knem на 1 - knem++.

14) Если сумма индексов ячейки  равно четному числу, то увеличиваем  переменную sicc  на 1 - if ((i + j) % 2 == 0) sicc++.

15) Добавляем в строку символ завершения строки - s = s + "\n".

16) Выводим на экран результаты:

richTextBox1.Text = s;

richTextBox1.AppendText("\nCумма кубов элементов  матрицы, больших 12 и меньших 57 " + skem.ToString());

richTextBox1.AppendText("\nКоличество нулевых  элементов  " + knem.ToString());

richTextBox1.AppendText("\nКоличество нулевых  элементов матрицы, которые имеют  сумму индексов - чётное число  " + sicc.ToString()). 

2.2. Выполнение задания

№ 2 курсовой работы

Составить программу нахождения первого члена последовательности, большего 1: an = , где n=1,2,3,… Вывести его значение и номер. Найти значение логарифма (ln) последнего члена последовательности, меньшего 1.

1) Алгоритм реализуется с помощью  одной процедуры  void button1_Click(object sender, EventArgs e).

2) Инициализируем значения переменных n и an:

double n = 1;

double an = n / 12.0;

3) Организуем цикл с условием  выхода, когда значение переменной an станет меньше либо равно 1 - while (an <= 1).

4) Внутри цикла производим вывод  на экран значения переменных и вычисляем очередной член последовательности:

richTextBox1.AppendText("a"+n.ToString()+" = "+an.ToString()+"\n");

n++;

an = n / 12;

5) Выводим на экран остальную  информацию, а также вычисляем  логарифм для значения переменной an:

richTextBox1.AppendText("Первое значение большее единицы с номером: "+n.ToString()+" \n");

richTextBox1.AppendText("a"+n.ToString()+" = "+an.ToString()+"\n");

richTextBox1.AppendText("Значение логарифма  последнего члена последовательности, меньшего 1: " + (n-2)/12.0+ " \n");

richTextBox1.AppendText("ln(a" + (n-2).ToString() + ") = " + Math.Log(an));

 

2.3. Выполнение задания № 3 курсовой работы

Составить программу для решения следующей задачи: дана последовательность из 40 символов. В ней есть слова, которые отделяются друг от друга пробелами. Длина слов от 3 до 7 символов, считается, что длиннее 7 символов слов нет, между словами может быть от одного до трех пробелов. Преобразовать слова последовательности таким образом: у всех слов поменять местами последние и первые буквы местами. Вывести на экран исходную и преобразованную строку символов.

1) Алгоритм реализуется с помощью  одной процедуры  void button1_Click(object sender, EventArgs e).

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) Организуем цикл перебора строк  с параметром i, от начального  значения 0 до конечного значения r с шагом изменения 1  - for (i = 0; i < r; i++).

4) Внутри этого цикла записываем  в каждый элемент массива slovo[] пустую строку - slovo[i] = "".

5) Обнуляем значение переменной i - i = 0.

6) Организуем цикл с условием - while (i < LL).

7) Внутри цикла проверяем условие, что текущая строка не содержит  только один пробел и в случае, если не содержит, то увеличиваем значение переменной Isl на 1:

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) Инициализируем строковые переменные sl и ps - string sl=""; string ps = "";

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. Аляев, Ю.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: учеб.-справ. пособие /Ю.А. Аляев, О.А. Козлов. – М.: Финансы и статистика, 2002. – 319 с.
  2. Баррон, Д. Введение в языки программирования = An Introduction to the Study of Programming Languages /Д. Барон; пер. с англ. В.А. Серебрякова; под. ред. Ю.М. Баяковского. – М.: Мир, 1980. – 190 с.
  3. Бен-Ари, М. Языки программирования = Understanding Programming Language: практический сравнительный анализ: учебник /М. Бен-Ари; пер. с англ. В.С. Штаркмана[и др.]; под. ред. В.С. Штаркмана. – Мир, 2000. – 266 с.
  4. Голицына, О.Л. Языки программирования: учеб. пособие /О.Л. Голицына, Т.Л. Партыка, И.И. Попов. – М.: ФОРУМ, 2010. – 397 с.
  5. ГОСТ 22558-89 (СТ СЭВ 6184-88; ИСО 1989-85). Язык программирования КОБОЛ. Ч. 1-7. – Введ. 01.01.91, 1991. – 448 с.
  6. ГОСТ 22558-89 (СТ СЭВ 6184-88; ИСО 1989-85). Язык программирования КОБОЛ. Ч. 8-17. – Введ. 01.01.91, 1991. – 359 с.
  7. ГОСТ 23056-78. Языки программирования. Фортран и базисный Фортран: [Сб.]: ГОСТ 23056-78, ГОСТ 23057-78. – 47 с.
  8. ГОСТ 27831-88 (ИСО 8652-87). Язык программирования Ада. – Введ. 01.07.89. – М.: Изд-во стандартов, 1989. – 264 с.

 

Приложения

Задание 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).ToString() + (i+1).ToString());

          }

          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("\nCумма  кубов элементов матрицы, больших 12 и меньших 57 " + skem.ToString());

      richTextBox1.AppendText("\nКоличество  нулевых элементов  " + knem.ToString());

Информация о работе Алфавит языка С#