KostyeFromHelen |
20. Программа |
15.05.2014 12:33:26 | |
Составить программу, которая подсчитывает общее количество целых четырёхзначных чисел, которые удовлетворяют условиям: a) abcd – четырехзначное число; b) a, b, c, d - разные цифры; c) ad - cd = a + b + c + d; В ответе укажите только число.
Хитровымученный способ:
class Program
if (a != b & a != c & a != d & b != c & b != d & c != d)
x = Convert.ToInt32(e) - Convert.ToInt32(g);
}
Теги: Просмотров: 2760 | Подробнее... |
19. Шифрование SHA на C# |
23.03.2012 07:10:11 | |
using System.Security.Cryptography;
Теги: SHA на C# | шифрование на C# Просмотров: 4342 | Подробнее... |
18. Шифр Цезаря на C# |
03.03.2012 14:48:46 | |
Шифр Цезаря - это шифр, когда-то каждая буква в тексте заменяется другой, сдвинутой по алфавиту на некоторый шаг. Форма выглядит так: В ЛистБокс мы будем помещать новый алфавит, для наглядности. В текстовые поля вбивать текст и шаг. Один метод будет шифровать другой расшифровывать. Собственно код: private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); textBox3.Text = ""; int move = 0; string[] array = new string[] { "а", "б", "в", try { move = Convert.ToInt32(textBox1.Text); } catch { MessageBox.Show("Установите шаг шифрования!"); return; } string[] array2; array2 = array.Skip(move).Concat(array.Take(move)).ToArray(); foreach (string element in array2) { listBox1.Items.Add(element.ToString()); //добвляем { textBox3.Text += " "; break; } } } } }Несложное шифрование, если не использовать какие-то дополнительные алгоритмы. Теги: шифрование на C# | шифр цезаря на C# Комментариев 4 | Просмотров: 23956 | Подробнее... |
17. Отправить письмо на C# |
28.12.2011 09:26:58 | |
Напишем программку, которая будет отправлять письмо на почтовый ящик. Для этого нам понадобится следующая ссылка на сборку: using System.Net.Mail; И для того, чтобы можно было использовать потоки: using System.Threading; Напишу вам код, который я использовал на одном сайте. Письмо отправлялось пользователю, когда он добавлял статью на сайт, а так же отправлялось мне, чтобы я знал, что на сайт кто-то добавил статью. string mailBody = string.Format("Здравсвуйте {0}, вы добавили статью на сайт Земля для тебя! За что мы вас благодарим. Если ваша статья проходит по требованиям, то вскором времени вы сможете увидеть её на нашем сайте. Спасибо!", author); // это текст письма. Ничего необычного. Переменная author = TextBox1.Text; String smtpHost = "SMTP.mail.RU"; //Адрес SMTP-сервера. Я использовал smtp сервер mail.ru int smtpPort = 25; //Порт SMTP-сервера. Стандартный для mail.ru String smtpUserName = "****@mail.ru"; //Логин. Моя ящик, от лица которого будет приходить письмо. String smtpUserPass = "*******"; //Пароль к моему ящику. SmtpClient client = new SmtpClient(smtpHost, smtpPort);//Создание подключения client.Credentials = new NetworkCredential(smtpUserName, smtpUserPass); //Дословно - удостоверение личности. Мол подходит ли пароль к ящику и так далее. String msgFrom = "*****@mail.ru"; //Адрес для поля "От" String msgTo = email; //Адрес для поля "Кому" (адрес получателя). Переменная email, это тоже textbox, где написал ящик автора. String msgSubject = "Спасибо за статью!"; //Тема письма String msgBody = mailBody; //Текст письма, который писали выше(для удобства) MailMessage message = new MailMessage(msgFrom, msgTo, msgSubject, msgBody); //Создание сообщения автору. MailMessage message2 = new MailMessage(msgFrom, msgFrom, "Добавлена статья", "На earth4you.ru добавлена статья"); //Создание сообщение самому себе, чтобы узнать, что кто-то добавил статью. try { //Отсылаем сообщение, если всё удачно. client.Send(message); Thread.Sleep(1000); // Между сообщениями ждём 1 секунду client.Send(message2); } catch { Label2.Text = "Письмо не отправлено."; //Если по каким-то причинам произошёл сбой. }
Вот и всё, ничего сложного. Куда сложнее отправлять письма напрямую через прокси :)
Теги: письмо на C# | C# | smtpmail Просмотров: 6137 | Подробнее... |
16. Разработка налогового калькулятора на C# |
18.11.2011 07:28:34 | |
Давайте более профессионально разберём как создаются программы на C#, а именно, мы ответим на следующие вопросы:
Ну и пока хватит, более точное задание можно скачать по ссылке. Советую всем скачать, ибо полное задание очень большое.
И так начнём.
Теги: модели жизненного цикла | налоговый калькулятор | календарный план Просмотров: 10357 | Подробнее... |
15. Листы, foreach, goto - поиск простых чисел |
12.05.2011 05:32:49 | |
Читал недавно одну книгу про простые числа. Это числа, которые делятся только на себя и на единицу. Все остальные числа составные, их можно представить как произведение простых чисел.Вот и решил написать программу, чтобы она искала простые числа. static void Main(string[] args) Лист представляет собой строго типизированный список объектов. В лист prCh будем добавлять найденные простые числа. Алгоритм такой: мы каждое число делим на простые числа в листе, если ни на одно из чисел не делится, значит наше число простое. Для этого добавим первое простое число в лист. Это число 2. Мы будем использовать цикл foreach, этот цикл используется только для чтения. Мы не можем изменять наш лист в цикле, поэтому добавление нового числа(prCh.Add(i);) мы вынесли за цикл. Поэтому, если наше текущее число не является простым, мы должны перепрыгнуть строчку добавления. Для этого мы используем конструкцию goto L; L - это любая метка в коде, на которую мы перепрыгиваем. Около метки стоит ключевое слово continue, которое говорит о том, что мы перейдём к следующей итерации нашего основного цикла for. В самом конце мы просто выводим все объекты нашего листа. P.S. Знак % вычисляет остаток от деления. Теги: List C# | goto C# | поиск простых чисел C# | foreach C# Комментариев 11 | Просмотров: 3980 | Подробнее... |
5. Оператор if в C# и реализация решения квадратного уравнений (перезалито, см. по номерам) |
06.05.2011 08:46:47 | |
Оператор if мы будем рассматривать прямо в ходе реализации решения квадратного уравнения. Квадратное уравнение, это уравнение вида a*x^2 + b*x + c = 0, где a,b,c коэффициенты при иксах.(^2 - возведение в квадрат) Чтоб найти корни квадратного уравнения, надо найти дискриминант. Обозначим его буквой d: d = b^2 - 4*a*c Так же как мы помним из школьной программы, если дискриминант меньше 0, то решений нет. Если равен 0, то имеется одно решение, если больше 0, то имеем 2 корня. Корни находятся по формуле: x = (-b ± √d)/(2*a) И так код нашей программы будет выглядеть так: using System; namespace ConsoleApplication1 double d; if (d < 0) } Я думаю тут всё ясно, как-раз таки кроме оператора if: if(d<0), оператор if дословно переводится как "если". В скобках написано условие. То есть Если d меньше 0 и дальше в { } мы пишем, что надо делать если условие выполняется. Так же существует оператор else(иначе) и else if, он выполняется, если условие в if не выполняется, то выполняется else. Программно это выглядит так: if(условие) Ну вот и всё. Следующие несколько уроков мы будем работать над этой задачей, улучшать её программный код, так как он на данный момент не идеальный. Теги: Комментариев 2 | Просмотров: 12038 | Подробнее... |
14. Несколько видов сортировок массивов |
20.04.2011 08:29:49 | |
int[] a = { 1, 5, 3, 6, 2, 4 }; //сортировка выборомfor (int i = 0; i < a.Length; i++) }
|
13. Тренинг. Вывод комплексных чисел. |
11.04.2011 07:20:53 | |
Любое комплексное число может быть представлено как формальная сумма x + iy, где x и y — вещественные числа, i — мнимая единица. [сслыка] Задача: написать класс, который будет в зависимости от значения x и y выводить комплексное число. Например, если оба значения равны нулю, то мы должны вывести ноль, а не 0 + 0i, если значение x = 0, а y = 5, то мы должны вывести 5i, а не 0 + 5i, и так далее. Решение: Создадим отдельный класс Complex: class Complex { {
Сноска 1. Если и x и y равны нулю, то нам просто надо вывести ноль. Поэтому не долго думая, приравниваем переменной s текстовое значение равно "0". Сноска 2. Иначе, если оба значения меньше нуля, то x мы оставляем так же, а у переменной y меняем знак на +, и в нашем шаблоне x + yi - меняем + на -. Это сделано для того, чтобы выражение не получилось вида x + - yi и не было перегружено лишними знаками. Сноска 3. Иначе, если оба выражения больше нуля, то мы всё оставляем как есть. Сноска 4. Если x равен нулю, а y не равен нулю, то мы просто убираем x и выводим только y. Сноска 5. Если же x не равен нулю, а y равен нулю, то мы оставляем только x. Заметьте, что мы поставили else if, а не просто if. Иначе мы будет проходить по всем 5 if, для чего будет задействовано лишне время. Для нас это конечно не критично, но всё же. Ну а в main просто перебираем и смотрим, что получается. Complex a = new Complex(2, 3); Console.WriteLine(a.toString());//toString название метода класса Complex, а не преобразование типов. Теги: комплексные числа C# Просмотров: 4856 | Подробнее... |
12. Классы, конструкторы, методы в C#. Транспонирование матриц. |
20.03.2011 14:28:01 | |
В этом уроке быстренько пробежимся по классам, конструкторам классов и методов. Класс — это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. Ссылка. Если говорить человеческим языком, класс это что-то наподобие шаблона, в котором мы описываем его внутренние переменные. Потом мы сможем создать любое кол-во экземпляров класса, что позволит нам по сто раз не писать одно и то же, а использовать всего один шаблон. Класс содержит в себе конструктор, который называется по названию класса. Если мы имеем public class myClass, то и конструктор , будет выглядить так же: public myClass(int arg) {...}. Конструктор может не принимать переменных, а может принимать и ни одну. Ничто не мешает нам создать множество различных конструкторов.
public class myClass
Метод представляет собой блок кода, содержащий набор инструкций. Программа инициирует выполнение операторов, вызывая метод и задавая необходимые аргументы метода. Ссылка. В отличие от конструктора, метод может возвращать значение, для этого используется ключевое слово return; Разберём всё это на простом примере. Задание: создадим класс, который будет содержать конструктор и 3 метода. Конструктор будет заполнять нашу матрицу. Первый метод будет печатать матрицу, второй метод будет транспонировать матрицу, третий метод будет считать сумму элементов на диагонали матрицы и выдавать нам это значение. public class matrica //создаём класс matrica { private int n; private double[ , ] a; public matrica(int n) //конструктор примает значение n, которое является размерностью. { this.n = n; a = new double[n, n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i,j] = i+2*j+(i*j); //заполняем матрицу с помощью простого линейного уравнения } } }
public void print() //первый метод, который печатает матрицу. { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write(" {0}",a[i, j]); } Console.WriteLine(); } } public void transp()//второй метод, который транспонирует матрицу. { double tmp; for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { tmp = a[i, j]; a[i, j] = a[j, i]; a[j,i] = tmp; }
} } public double diag()//третий метод, который возвращает сумму элементов ноа диагонали. { double s = 0; for (int i = 0; i < n; i++) { s = s + a[i, i]; } return s;//не забываем ключевое слово return. } } Ну вот и весь код класса matrica. Теперь заполним основной класс Program: class Program { static void Main(string[] args) { matrica a = new matrica(4); //создаём экземпляр класса, передаём размер - 4 на 4. a.print();//печатаем матрицу, смотрим. a.transp();//транспонируем матрицу. Console.WriteLine();//выводим пустую строчку, чтоб данные слитно неписались a.print();//печатаем матрицу, смотрим. Console.WriteLine();//печатаем пустую линию. Console.WriteLine(a.diag());//печатаем сумму элементов на диагонали. } }
Вот и всё. Прошу прощения, что код выглядит не совсем структурировано. Технические проблемы:) Теги: транспонирование матрицы на C# | конструкторы в C# | методы в C# | классы в C# Комментариев 1 | Просмотров: 24648 | Подробнее... |
11. Открыть\закрыть CD-ROM на C#. |
14.02.2011 13:20:54 | |
Управление дисководом дело не хитрое. Только стоит немного разобраться, что тут да как. [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi)] //подключаем библиотеку, которая позволяет управлять CD-ROM'om. Функция mciSendStringA позволяет отправлять мудьтимидийным устройствам сообщения. static void Main(string[] args) int result = mciSendString("set cdaudio door open", null, 0, IntPtr.Zero); //шлём команду открыться
Вы наверно подумаете, как это можно знать, как это учить. Скажу вам, что это просто надо понимать. И в нужный момент иметь на вооружение. Теги: закрыть CD-ROM | открыть CD-ROM | C# Просмотров: 5781 | Подробнее... |
10. Сложение одномерных матриц |
26.01.2011 09:56:19 | |
В впродолжение темы - простая задача: сложение одномерных матриц. int[] array = new int[5]; //входной массив for (int i = 0; i != 5; i++) //заполняем массив ну а дальше печатаем массив
Дело 2ух мину. Вместо сложения можно использовать что угодно, умножение, деление и так далее. Теги: Массивы в C# | матрицы в c# | сложение матриц в c# | сложение массивов Просмотров: 4391 | Подробнее... |
9. Массивы. Нахождение максимального и минимального числа в массиве. |
02.01.2011 17:16:21 | |
Давно я ничего не писал, честно говоря просто лень. Ну да ладно. Кстати говоря всех с новым годом! А теперь к делу. Массивы бывают разные: одномерные массивы, многомерные массивы и масивы масивов(когда элементами массива являются так же массивы). Важно помнить, что индекс в массивах начинается с 0 и до n-1(а не с 1 до n). Для примера напишем программу, в которой мы определим одномерный массив и найдём в нём максимальное и минимальное число: namespace ConsoleApplication1 { } //ну и выводим их.
Вот и всё. Я не стал использовать try-catch для отлова ошибок, когда вводишь не int число, а другое. Сделаете это сами, можете прислать в комментарии код исправленный :) Теги: поиск максимальноозначения в массив | поиск минимального значения в масси | работа с массивами в C# | Массивы в C# Комментариев 4 | Просмотров: 74615 | Подробнее... |
8. Работа с папками и файлами |
27.10.2010 16:57:46 | |
Написал мне тут как-то друг, что ему надо создать 1000 папок, в каждой из этих папок ещё 1000 папок. Ручками естественно такое не сделаешь, ну и сделал он это на языке C++. Ну так извращаться я не решился, но решил просто показать вам как это можно сделать.Наша задача будет создать папку и в ней файлы. Для начало нам нужно подключить новое пространство имён, для это просто в самый вверх к имеющемуся списку добавим строчку: Ну а дальше собственно код: namespace ConsoleApplication1 Вот и весь код. Как вы видите в цикле у нас написано i<1000000, так мы создадим миллион файлов - не советую :) Но пошутить над кем нибудь можно, только правильно укажите директорию. Теги: записать в файлC# | открыть файл С# | создать файл C# | создать папку C# | Класс StreamWriter C# Просмотров: 3863 | Подробнее... |
7. Инструкция try-catch и дополнение к 6 уроку. |
16.10.2010 16:38:01 | |
Инструкция try-catch отлавливает различные исключения(exception). Console.WriteLine("Введите первый коэффициент"); Попробуйте ввести вместо обычного числа - букву, дабловское число или символ. программа виснет. Оно нам так не надо, по-этому мы и будем использовать инструкцию try-catch. Вот как это будет выглядеть: int a = 0; //Перепишем определение переменной типа integer таким образом, чтобы не возникло синтексической ошибки. Быстренько расскажу про цикл for, там ничего сложного. Выглядит примерно так: for(вводим переменную и даём значение;делаем цикл пока не произойдёт данное условие;в конце цикла делаем то, что здесь написано) В нашем случаем мы вводим переменную i равную 0; Делаем цикл пока переменная не равна n, а в конце увеличиваем n до тез пор, пока пользователь не введёт корректно число. Таким образом получается, когда пользователь всё сделал правильно - переменная n будет равна переменной i и мы выйдем из цикла и пойдём дальше. Всё легко и просто. И да, кстати, мы увеличиваем в конце так же переменную i на 1. Теперь расскажу немного о инструкции try-catch, выглядит она: Ничего сложного. Скажу так, инструкция try-catch полезна и интересна, но в больших программах, при частом использование инструкции она может тормозить программу, по-этому её часто заменяют банальным оператором if. Вам решать :)
Теги: for пример | цикл for | квадратное уравнение | try-catch пример | инструкция try-catch Комментариев 3 | Просмотров: 4430 | Подробнее... |
6. Решение квадратного уравнения на C#, убираем ошибки. |
05.10.2010 16:17:39 | |
Честно говоря, когда я нашёл время поискать ошибки, которые могут возникать в программе, мне так хотелось спать, что я нашёл только 2 или 3 из них. Смотрим улучшенный код программы по решению квадратного уравнения: using System;
В первом случае если коэффициент а равен 0, то в данной строчке double x2 = (-b - Math.Sqrt(Convert.ToDouble(d))) / (2 * a); мы делим на 0, что недопустимо. По-этому мы и вставляем код проверки, после которого либо выполняем код дальше, либо решаем уравнение другим, простым методом. Ошибка 2 возникает если коэффициент а равен 0 и b равен 0. Тогда получается даже не уравнение, что мы и сообщаем пользователю. Так же есть ошибка, если мы вместо цифр вобьём буквы в переменные a, b и c. Но такую ошибку надо отлавливать с помощью инструкции try-catch, её рассмотрим в следующем уроке. Теги: C# | реализация квадратного уравнения на | решение квадратного уравнения | . Комментариев 5 | Просмотров: 27915 | Подробнее... |
4. Операторы в C# |
25.07.2010 08:14:22 | |
C# обладает большим набором различных операторов: + - сложение. - - вычитание. * - умножение. / - деление. % - оператор вычисления остатка после деления. == - сравнение. Возвращает true или false. != - оператор неравенства. Возвращает true или false. > - оператор больше. < - оператор меньше. <= - оператор меньше или равно. >= - оператор больше или равно. &(&&) - логическое И. ^ - логическое XOR. |(||) - логическое ИЛИ. Это далеко не весь список различных операторов в C#. Это минимум, который вы должны знать. Теги: Операторы в C# Просмотров: 9293 | Подробнее... |
3. Типы данных в C# |
20.06.2010 13:44:32 | |
Перечислим все типы данных в C# и как они объявляются: byte a; может быть целым числом от 0 до 255 int b; int32(От -2 147 483 648 до 2 147 483 647) Что бы проверить правда ли переменной b пресвоилось значение, можно её вывести на экран: Console.WriteLine(b); i = "Привет!)"; Чтобы вывести две переменных сразу, нам надо показать, где именно мы хотим, чтоб они вывелись. Делается это с помощью специального обозначение - {0}, {1}, {2} и так далее. Console.WriteLine("{0}, {1}", b, i);
Добавлю, что так же есть типы uint, ulong, sbyte. Те, которые начанаюся на u отбрасываются отрицательные значения и на столько же увеличивается положительный придел. У sbyte наоборот, появляются отрицательные значение, заместо половины положительных. Вот и всё:) Теги: Типы данных в C# | C# | размеры данных в C# Просмотров: 16055 | Подробнее... |
2. Пишем первую программу, печатающую Hello World |
18.06.2010 16:34:21 | |
Открываем C#, создаём консольное приложение и видим:
using System;
namespace - это пространство имён в котором мы работаем. К примеру если Дима работает в Санкт-Петербурге, но ещё один Дима работает в Москве, мы не можем сказать, что это один и тот же Дима, так как пространство имён у них разное. Подробнее можете почитать на википедии или других сайтах. Класс - это конструктор, который позволяет создавать свои собственные пользовательские типы путем группирования переменных других типов, методов и событий. К примеру если описывать человека, то можно выделить фамилию, имя, возраст и прочие свойства. А можно всё это объединить в один класс, так будет намного удобнее. Static void Main - это метод, но что выделяет этот метод, это то, что он является входной точкой для всех приложений написанных на C#. В любой программе должен быть метод Main. Так как же нам напечатать Hello World. Всё очень просто.
using System;
Теги: напечатать слово в C# | class Main C# | Hello World | C# | пространство имён в C# Просмотров: 4880 | Подробнее... |
1. Вступление. |
18.06.2010 09:35:48 | |
C# — объектно-ориентированный язык программирования. Разработан в 1998—2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Теги: C# | немного о C Sharp Просмотров: 3583 | Подробнее... |