Автор работы: Пользователь скрыл имя, 26 Марта 2012 в 20:34, курсовая работа
Язык программирования С# был создан в конце 1990-х годов и стал частью общей .NET-стратегии Microsoft. Впервые он увидел свет в качестве b-версии в середине 2000 года. Главным архитектором С# был Андерс Хейлсберг - один из ведущих специалистов в области языков программирования, получивший признание во всем мире. Достаточно сказать, что в 1980-х он был автором весьма успешного продукта Turbo Pascal, изящная реализация которого установила стандарт для всех будущих компиляторов.
Введение
1 ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
2 Работа с массивами на С#
2.1 Работа с многомерными массивами
2.2 Условие задачи
3 Работа с массивами на Delphi
3.1 Работа с многомерными массивами
3.2 Условие задачи
Заключение
Список использованной литературы
Приложение №1
Приложение №2
Приложение №3
Приложение №4
Приложение №5
Приложение №6
Массив - набор элементов одного и того же типа, объединенных общим именем. Массивы в С# можно использовать по аналогии с тем, как они используются в других языках программирования. Однако С# - массивы имеют существенные отличия: они относятся к ссылочным типам данных, более того - реализованы как объекты. Фактически имя массива является ссылкой на область кучи (динамической памяти), в которой последовательно размещается набор элементов определенного типа. Выделение памяти под элементы происходит на этапе инициализации массива. А за освобождением памяти следит система сборки мусора - неиспользуемые массивы автоматически утилизируются данной системой.
Одномерный массив - это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент имеет свой номер. Нумерация элементов массива в С# начинается с нуля, то есть, если массив состоит из 10 элементов, то его элементы будут иметь следующие номера: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Одномерный массив в С# реализуется как объект, поэтому его создание представляет собой двухступенчатый процесс. Сначала объявляется ссылочная переменная на массив, затем выделяется память под требуемое количество элементов базового типа, и ссылочной переменной присваивается адрес нулевого элемента в массиве. Базовый тип определяет тип данных каждого элемента массива. Количество элементов, которые будут храниться в массиве, определяется размер массива.
В общем случае процесс объявления переменной типа массив, и выделение необходимого объема памяти может быть разделено. Кроме того на этапе объявления массива можно произвести его инициализацию.
Многомерные массивы имеют более одного измерения. Чаще всего используются двумерные массивы, которые представляют собой таблицы. Каждый элемент массива имеет два индекса, первый определяет номер строки, второй - номер столбца, на пересечении которых находится элемент. Нумерация строк и столбцов начинается с нуля.
Объявить двумерный массив можно одним из следующих способов:
тип [,] имя__массива;
тип [,] имя__массива = new тип [размер1, размер2];
тип [,] имя__массива={{элементы 1-ой строки}, … , {элементы n-ой строки}};
тип [,] имя__массива= new тип [,]{{элементы 1-ой строки}, … ,{элементы n-ой строки}};
строки}}.
Многомерные массивы можно представить себе в виде многомерной матрицы, в узлах которой хранятся объекты.
На рис. 1 показан пример двумерного массива Array.
Аrrау[0,0] Array [0,1] Array[0,2]
Аrrау[1,0] Array[1,1] Array[1,2]
Аrrау[2,0] Array[2,1] Array[2,2]
Аrrау[3,0] Array[3,1] /Array[3,2]
Аrrау[4,0] Array[4,1] Array[4,2]
Ячейка Аrrау[3,2] строка 3, столбец 2 /
Рис. 1. Двумерный массив Array
Такой массив можно представить себе в виде строк и столбцов. Для адресации ячейки двумерного массива нужно указывать два индекса — индекс строки и индекс столбца.
Чтобы создать двумерный массив, например, целых чисел, используйте конструкцию следующего вида:
int[,] TwoDimArray = new int[2,3];
Здесь при объявлении массива мы использовали запятую для того, чтобы указать компилятору на необходимость создания ссылки TwoDimArray на двумерный массив. Кроме того, в операторе new мы указали количество строк и столбцов создаваемого двумерного массива.
Если нужно объявить многомерный массив, используйте несколько запятых:
int[,,,] MultiDimArray = new int[2,3,7,2];
Количество запятых должно быть равно размерности массива, уменьшенной на единицу. Таким образом, в предыдущем примере мы создали четырехмерный массив. Многомерные массивы можно инициализировать динамически или статически. Ниже приведен пример динамической инициализации двумерного массива:
int[,] TwoDimArray = new int[2,3];
TwoDimArray[0, 0] = 5;
TwoDimArray[1, 0] = 2 ;
TwoDimArray[0, 1] = 15;
TwoDimArray[1, 1] = 5;
TwoDimArray[0, 2] = 52;
TwoDimArray[1, 2] =32;
2.2 Условие задачи
Найти сумму положительных элементов матрицы A [n,m] сформированную случайным образом и сумму отрицательных ее элементов. Эту матрицу транспонировать и вывести на экран.
Скриншоты форм и программные коды приводятся в :
Приложении №1.
Приложении №2.
Приложении №3.
Приложении №4.
3 Работа с массивами на Delphi
Массив - набор элементов одного и того же типа, объединенных общим именем.
Одномерный массив - это фиксированное количество элементов одного и того же типа, объединенных общим именем, где каждый элемент имеет свой номер.
Многомерные массивы имеют более одного измерения. Чаще всего используются двумерные массивы, которые представляют собой таблицы. Каждый элемент массива имеет два индекса, первый определяет номер строки, второй - номер столбца, на пересечении которых находится элемент. Нумерация строк и столбцов начинается с нуля.
Основные операции с массивами:
Вывод массива
Ввод массива
Поиск необходимого элемента массива
Сортировка массива и т.д.
Объявление двумерный массива на Delphi задается следующим образом:
Имя: array[НижняяГраница1..
НижняяГраница2..
Имя – имя массива;
array – слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;
НижняяГраница1, ВерхняяГраница1, НижпяяГраница2, ВерхняяГраница2 – целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;
Тип – тип элементов массива.
Пример:
itog: array [1..12, 1..6] of integer
3.1 Работа с многомерными массивами
Двумерным массивом называется совокупность данных, каждое значение которых зависит от двух чисел, которые можно рассматривать как индекс столбца в матрице.
Формат записи :
<имя>: array [н_индекс_1..в_индекс_1, н_индекс_2 ..в_индекс_2] of <тип>
Var
A: array[1..n,1..m] of integer;
Для того чтобы использовать элемент массива, надо указать имя массива и индекс элемента. Первый индекс соответствует номеру строки, второй – номеру столбца.
Например:
for i:=1 to n do
for j:=1 to n do
a[i,j]:= random (100);
При инициализации двумерных массивов каждая строка заключается в дополнительную пару круглых скобок:
const a:mas= ((2,3,1,0),
(1,9,1,3),
(3,5,7,0));
Над массивами ,в частности двумерными ,можно производить множество действий и операций для решения поставленной задачи необходимо рассмотреть :
1. Транспонирование матрицы – зеркальное отражение ее элементов относительно главной диагонали. Сделать это можно, введя новый массив:
for i:= 1 to n do
for j:= 1 to n do
b[i,j]= a[j,i];
2. Замена столбцов осуществляется следующим образом:
col := matr[i, j];
matr[i, j] := matr[j, i];
matr[j, i] := col;
По мимо матрицы и необходимых столбцов ,создается свободная переменная (соответствующего типа) ,которая приравнивает значение одного из столбцов матрицы.
3.2 Условие задачи
Найти сумму положительных элементов матрицы A [n,m] сформированную случайным образом и сумму отрицательных ее элементов. Эту матрицу транспонировать и вывести на экран.
Скриншоты форм и программные коды приводятся в:
Приложении №5
Приложение №6
Заключение
Становится очевидным, что судьбу языка программирования С# определили запросы пользователей. Его направлял опыт широкого круга пользователей, работающих в разных областях программирования. За шесть лет, отделяющих нас от первого издания описания С#, число пользователей возросло в сотни раз. За эти годы были усвоены многие уроки, были предложены и подтвердили практикой свое право на существование различные приемы программирования.
Язык C# явился мощным и стремительным рывком в развитии программирования. C# в скором будущем будет занимать господствующее положение среди языков программирования в мире. Огромное множество профессиональных программистов использует именно его при разработке разного рода проектов. Очевидно, этот язык будет сохранять свое солидное положение ещё много лет, при этом динамично развиваясь и совершенствуясь.
1. Сивохин А.В., Макурин Ю.Д. Проектирование Windows-приложений в визуальных объектно-ориентированных средах. Описание лабораторных работ. – Пенза, 2010 – 48 с.
2. Visual C#. NET Step by Step, Microsoft Press, 2003.
3. Вилле К. Представляем Си Шарп. ДМК Пресс, 2001. ISBN 5-94074-039-1.
4. Зыков С.В. Современные языки программирования. Ч.I. Функциональный
подход к программированию. М.:МИФИ – 2003, 230 с.
5. Робинсон У. C# без лишних слов. ДМК Пресс, 2002. ISBN 5-94074-177-0
6. Шилдт Г. С#, учебный курс. Питер, 2003.
Приложение №1
Форма Form1.cs
Приложение №2
Программный код формы Form1.cs
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 ANTproject
{
public partial class Form1 : Form
{
public Form2 Form2;
public Form1()
{
InitializeComponent();
}
private void работаСМассивамиToolStripMenuI
{
Form2 = new Form2();
Form2.Visible = true;
}
private void вЫХОДToolStripMenuItem_Click(o
{
Application.Exit();
}
}
}
Приложение №3
Форма Form2.cs
Приложение №4
Программный код формы Form2.cs
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 ANTproject
{
public partial class Form2 : Form
{
public const int n = 2;
public const int m = 4;
ArrayClass ArrayClass;
public Form2()
{
InitializeComponent();
dataGridView1.Rows.Add(3);
dataGridView2.Rows.Add(10);
dataGridView3.Rows.Add(10);
ArrayClass = new ArrayClass(n, m);
}
private void button1_Click(object sender, EventArgs e)
{
ArrayClass.initarray();
ArrayClass.displayarray(
}
private void button2_Click(object sender, EventArgs e)
{
ArrayClass.DrawGraphics(
}
private void button4_Click(object sender, EventArgs e)
{
ArrayClass.clearArray();
ArrayClass.displayarray(
}
private void button3_Click(object sender, EventArgs e)