KostyeFromHelen
10. Сложение одномерных матриц
26.01.2011 09:56:19

В впродолжение темы - простая задача: сложение одномерных матриц.

int[] array = new int[5]; //входной массив
int[] array2 = new int[5]; //входной массив
int[] array3 = new int[5]; //выходной массив

for (int i = 0; i != 5; i++) //заполняем массив
{
Console.WriteLine("Введите {0} элемент массива", i);
array[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i != 5; i++) //заполняем массив
{
Console.WriteLine("Введите {0} элемент массива", i);
array2[i] = Convert.ToInt32(Console.ReadLine());
}
for (int i = 0; i != 5; i++) //складываем массивы
{
array3[i] = array[i] + array2[i];
}

 ну а дальше печатаем массив
Console.WriteLine("Массив состоит из чисел:");
for (int i = 0; i != 5; i++)
{
Console.Write("{0} ", array3[i]);
}

 

Дело 2ух мину. Вместо сложения можно использовать что угодно, умножение, деление и так далее.



Теги: Массивы в C# | матрицы в c# | сложение матриц в c# | сложение массивов

Просмотров: 2609 | Подробнее...


 
KostyeFromHelen
9. Массивы. Нахождение максимального и минимального числа в массиве.
02.01.2011 17:16:21

Давно я ничего не писал, честно говоря просто лень. Ну да ладно. Кстати говоря всех с новым годом! А теперь к делу.

Массивы бывают разные: одномерные массивы, многомерные массивы и масивы масивов(когда элементами массива являются так же массивы).

Важно помнить, что индекс в массивах начинается с 0 и до n-1(а не с 1 до n).

Для примера напишем программу, в которой мы определим одномерный массив и найдём в нём максимальное и минимальное число:

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] array = new int[10]; //объявили одномерный массив из 10 интенджеровских чисел.
int min; // здесь будет храниться минимальное число массива
int max; //ну а здесь максимальное
for (int i = 0; i != 10; i++) сделаем так, чтобы массив заполнял пользователь с клавиатуры.
{
Console.WriteLine("Введите {0} элемент массива", i);
array[i] = Convert.ToInt32(Console.ReadLine());
}
max = array[0];//и максимальное и минимальное значение в начале равно первому элементу массива. Это логично я думаю и понятно всем.
min = array[0];
for (int i = 1; i != 10; i++)
{
if (array[i] > max)//если текущий элемент больше максимального, то он становится максимальным.
{
max = array[i];
}
if (array[i] < min)//если текущий элемент меньше минимального, то он становится минимальным.

{
min = array[i];
}

}
Console.WriteLine("Максимальное число в массиве: {0}", max);
Console.WriteLine("Минимальное число в массиве: {0}", min);

//ну и выводим их.
}
}
}

 

Вот и всё. Я не стал использовать try-catch для отлова ошибок, когда вводишь не int число, а другое. Сделаете это сами, можете прислать в комментарии код исправленный :)



Теги: поиск максимальноозначения в массив | поиск минимального значения в масси | работа с массивами в C# | Массивы в C#

Комментариев 4 | Просмотров: 50945 | Подробнее...


 
KostyeFromHelen
8. Работа с папками и файлами
27.10.2010 16:57:46

Написал мне тут как-то друг, что ему надо создать 1000 папок, в каждой из этих папок ещё 1000 папок. Ручками естественно такое не сделаешь, ну и сделал он это на языке C++.

Ну так извращаться я не решился, но решил просто показать вам как это можно сделать.Наша задача будет создать папку и в ней файлы.

Для начало нам нужно подключить новое пространство имён, для это просто в самый вверх к имеющемуся списку добавим строчку:
using System.IO;

Ну а дальше собственно код:

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string activeDir = @"D: estdir2"; //
просто переменная типа стринг, которая хранит некий путь.
string newFileName;//
ещё одна стринговская переменная, которая будет хранить имя файла, который мы будем создавать.
Directory.CreateDirectory(activeDir);//Эта строчка как раз и создаёт нашу директорию(папку), ключевое слово тут Create.
for (int i = 0; i < 1000000; i++)//цикл мы будем использовать для того, чтобы создать много файлов, а не один.
{

newFileName = Convert.ToString(i+".txt");//
имя файла у нас будет равно просто порядковому числу - i + "txt", чтобы он был текстового формата. Конечно можно и не писать формат, тогда файл будет без формата.
activeDir = Path.Combine(activeDir, newFileName);//В этой строчке ключевым является метод Combine, не трудно догадаться, что он просто соединяет две строки в путь.

StreamWriter sw = new StreamWriter(activeDir);
Этой строчкой создаём новый файл для записи. О классе StreamWriter почитать лучше на msdn.

sw.WriteLine("dddddddd");
//Записываем в файл пару буковок :)
sw.Close();//Закрываем файл(!!!). Не забывайте это делать, распространенная ошибка.

activeDir = @"D: estdir2";//"
Переходим" обратно в корень созданного каталога.
}

}
}
}

Вот и весь код. Как вы видите в цикле у нас написано i<1000000, так мы создадим миллион файлов - не советую :) Но пошутить над кем нибудь можно, только правильно укажите директорию.



Теги: записать в файлC# | открыть файл С# | создать файл C# | создать папку C# | Класс StreamWriter C#

Просмотров: 2128 | Подробнее...


 
KostyeFromHelen
7. Инструкция try-catch и дополнение к 6 уроку.
16.10.2010 16:38:01

Инструкция try-catch отлавливает различные исключения(exception).
На основе решения квадратного уравнения, еак я говорил, нам понадобится эта инструкция в этой часте кода:

Console.WriteLine("Введите первый коэффициент");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй коэффициент");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите третий коэффициент");
int c = Convert.ToInt32(Console.ReadLine());

Попробуйте ввести вместо обычного числа - букву, дабловское число или символ. программа виснет. Оно нам так не надо, по-этому мы и будем использовать инструкцию try-catch. Вот как это будет выглядеть:

int a = 0; //Перепишем определение переменной типа integer таким образом, чтобы не возникло синтексической ошибки.
int n = 0; //Эта перемеренная будет служить нам как счётчик
for (int i = 0; i == n; i++)//Цикл for: расскажу ниже.
{
try
{
Console.WriteLine("Введите первый коэффициент");
a = Convert.ToInt32(Console.ReadLine());
}

catch (Exception e) //Если блок try не смог правильно сработать, то програма идёт в блок Catch. Создаём исключение(exception) e
{
Console.WriteLine(e.Message);//И выводим стандартное сообщение ошибки, можете проверить какое. Конечно можно создать своё сообщение вместо стандартного, используя метод Throw new exception, но нам он не понадобится.
n++;//увеличиваем переменную n на 1.
}
}

P.S с остальными переменными делаем тоже самое.

Быстренько расскажу про цикл for, там ничего сложного. Выглядит примерно так:

for(вводим переменную и даём значение;делаем цикл пока не произойдёт данное условие;в конце цикла делаем то, что здесь написано)
{
Собственно, сам код, выполняемый в цикле.
}

В нашем случаем мы вводим переменную i равную 0; Делаем цикл пока переменная не равна n, а в конце увеличиваем n до тез пор, пока пользователь не введёт корректно число. Таким образом получается, когда пользователь всё сделал правильно - переменная n будет равна переменной i и мы выйдем из цикла и пойдём дальше. Всё легко и просто. И да, кстати, мы увеличиваем в конце так же переменную i на 1.

Теперь расскажу немного о инструкции try-catch, выглядит она:
try
{
Собственно, что мы пробуем сделать.
}
catch(Exceprion e)
{
Если не получилось, то выводим исключение.
}

Ничего сложного. Скажу так, инструкция try-catch полезна и интересна, но в больших программах, при частом использование инструкции она может тормозить программу, по-этому её часто заменяют банальным оператором if. Вам решать :)

 



Теги: for пример | цикл for | квадратное уравнение | try-catch пример | инструкция try-catch

Комментариев 3 | Просмотров: 2396 | Подробнее...


 
KostyeFromHelen
6. Решение квадратного уравнения на C#, убираем ошибки.
05.10.2010 16:17:39

Честно говоря, когда я нашёл время поискать ошибки, которые могут возникать в программе, мне так хотелось спать, что я нашёл только 2 или 3 из них. Смотрим улучшенный код программы по решению квадратного уравнения:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Введите первый коэффициент");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второй коэффициент");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите третий коэффициент");
int c = Convert.ToInt32(Console.ReadLine());
if (a == 0) Ошибка 1
{
Console.WriteLine("Уравнение не является квадратным:{0}*x+{1}=0", b,c );
if (b == 0) Ошибка 2
{
Console.WriteLine("Извините товарищ, но это уже не уравнение!");
}
else
{
double x = 0;
x = -c / b;
Console.WriteLine("x={0}", x);
}
}
else
{
double d;
d = b * b - 4 * a * c;

if (d < 0)
{
Console.WriteLine("Дискриминант отрицательный, корней нет");

}
if (d == 0)
{
double x1 = b / (2 * a);
Console.WriteLine("Дискриминант = 0, x = {0}", x1);

}
if (d > 0)
{
double x1 = (-b + Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a);
Console.WriteLine("Дискриминант = {0}, x1 = {1}, x2 ={2}", d, x1, x2);
}
}
}
}
}

 

В первом случае если коэффициент а равен 0, то  в данной строчке  double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a); мы делим на 0, что недопустимо. По-этому мы  и вставляем код проверки, после которого либо выполняем код дальше, либо решаем уравнение другим, простым методом.

Ошибка 2 возникает если коэффициент а равен 0 и b равен 0. Тогда получается даже не уравнение, что мы и сообщаем пользователю.

Так же есть ошибка, если мы вместо цифр вобьём буквы в переменные a, b и c. Но такую ошибку надо отлавливать с помощью инструкции try-catch, её рассмотрим в следующем уроке.



Теги: C# | реализация квадратного уравнения на | решение квадратного уравнения | .

Комментариев 5 | Просмотров: 16274 | Подробнее...


 
KostyeFromHelen
4. Операторы в C#
25.07.2010 08:14:22

C# обладает большим набором различных операторов:

+ - сложение.

- - вычитание.

* - умножение.

/ - деление.

% - оператор вычисления остатка после деления.

== - сравнение. Возвращает true или false.

!= - оператор неравенства. Возвращает true или false.

> - оператор больше.

< - оператор меньше.

<= - оператор меньше или равно.

>= - оператор больше или равно.

&(&&) - логическое И.

^ - логическое XOR.

|(||) - логическое ИЛИ.

Это далеко не весь список различных операторов в C#. Это минимум, который вы должны знать.



Теги: Операторы в C#

Просмотров: 6955 | Подробнее...


 
KostyeFromHelen
3. Типы данных в C#
20.06.2010 13:44:32

Перечислим все типы данных в C# и как они объявляются:

byte a; может быть целым числом от 0 до 255

int b; int32(От -2 147 483 648 до 2 147 483 647)

short c;
int16(От -32 768 до 32 767)

long d; int64(От -922 337 203 685 477 508 до 922 337 203 685 477 507)

float e; Число одинарной точности с плавающей запятой(От -3,402 823e38 до 3,402 823e38)

double f; Число двойной точности с плавающей запятой(От -1,797 693 134 862 32e308 до 1,797 693 134 862 32e308)

char g; Знак юникода

bool h; Логический тип, принимающий значения true или false

string i; Текст. Даже если вы положите в переменную типа String число 5, оно будет являться строкой, а не числом.

decimal j; Тип данных decimal может хранить не более 38 разрядов, все из которых могут бытьсправа от десятичного разделителя. Тип данных decimal хранит точное представление числа. Нет понятия приближенности для хранимого значения.

object v;
Базовый тип для всех остальных типов

b = 5; Присвоение значение. Когда мы объявляем переменную, мы можем сразу задать ей значение: int b = 5;

Если переменная не была объявлена, то и присвоить ей ничего нельзя.

Что бы проверить правда ли переменной b пресвоилось значение, можно её вывести на экран:

Console.WriteLine(b);

i = "Привет!)";

Чтобы вывести две переменных сразу, нам надо показать, где именно мы хотим, чтоб они вывелись. Делается это с помощью специального обозначение - {0}, {1}, {2} и так далее.

Console.WriteLine("{0}, {1}", b, i);

 

Добавлю, что так же есть типы uint, ulong, sbyte.

Те, которые начанаюся на u отбрасываются отрицательные значения и на столько же увеличивается положительный придел.

У sbyte наоборот, появляются отрицательные значение, заместо половины положительных.

Вот и всё:)



Теги: Типы данных в C# | C# | размеры данных в C#

Просмотров: 10214 | Подробнее...


 
KostyeFromHelen
2. Пишем первую программу, печатающую Hello World
18.06.2010 16:34:21

Открываем C#, создаём консольное приложение и видим:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{


}
}
}


Первые строчки Using - это сборки. Первые 4 вставляются автоматически, их удалять не стоит. Но в некоторых случаях надо будет добавлять и другие.

namespace - это пространство имён в котором мы работаем. К примеру если Дима работает в Санкт-Петербурге, но ещё один Дима работает в Москве, мы не можем сказать, что это один и тот же Дима, так как пространство имён у них разное. Подробнее можете почитать на википедии или других сайтах.

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

Static void Main - это метод, но что выделяет этот метод, это то, что он является входной точкой для всех приложений написанных на C#. В любой программе должен быть метод Main.

Так как же нам напечатать Hello World. Всё очень просто.
За это отвечает метод Console.WriteLine("Hello World"), который печатает на новой строчке. Или просто Console.Write("Hello World"), который будет печатать всё на одной строчке
В итоге код получится таким:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}

 



Теги: напечатать слово в C# | class Main C# | Hello World | C# | пространство имён в C#

Просмотров: 3156 | Подробнее...


 
KostyeFromHelen
1. Вступление.
18.06.2010 09:35:48

C#  — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET.

Чтобы программировать на C# надо скачать Visual C# 2008 Express Edition с официального сайта Майкрософта, хотя уже есть 2010 версия, но у меня стоит 2008, это пока не принципиально.

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



Теги: C# | немного о C Sharp

Просмотров: 2163 | Подробнее...


 
Страница 2 из 2
<< Первая < Предыдущая 1 2 Следующая > Последняя >>
Программируем на C#, интересные статьи, книги, музыка; Костя Карпов.