Сегодня 22 июня, воскресенье ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Мир глазами программиста
Мир глазами программиста
Голосов: 0
Адрес блога: http://nayils.blogspot.com/
Добавлен: 2015-04-15 13:16:48
 

C# ООП: Классы

2015-04-15 05:38:00 (читать в оригинале)

Каждый программист, рано или поздно сталкивается с такой вещью, как "Класс". Так что же это такое?

Класс - логическая структура, которая позволяет создавать свои собственные типы. Внутри класса можно размещать свои функции, переменные и.т.д.
Чтобы все стало понятно, приведем аналогию. Предположим, что у вас есть ящик с инструментами, в нем лежат: плоскогубцы, отвертка и.т.д. Этот ящик имеет свой цвет, размер и.т.д. Так вот этот ящик и есть наш класс. У нас может быть несколько ящиков с разными инструментами, мы сами можем определять, какие инструменты там лежат.

Давайте перейдем от слов к делу, и на этом самом примере продемонстрируем работу классов.


using System;
using System.Collections.Generic;
using System.Linq; using System.Text;
namespace ConsoleApplication4
{
class Toolbox
{
}
}
Студия сама создала нам наш класс, нам остается лишь дописать его. Пусть в нашей коробке будет два инструмента: молоток, который забивает гвозди, и ножовка, которая пилит дерево. Создадим две функции:
 
public void Saw()
{
Console.WriteLine("Пилим");
}

public void Nail()
{
Console.WriteLine("Забить");
}
И одну переменную:
 
public string Color;

Вот что получилось: 
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{

class Toolbox
{
public string Color;

public void Saw()
{
Console.WriteLine("Пилим");
}

public void Nail()
{
Console.WriteLine("Забить");
}
}
}
Класс готов, осталось его использовать.
Переходим в наш Main и в первую очередь создадим экземпляр нашего класса:
 
Toolbox toolbox = new Toolbox();
В переменной toolbox теперь лежит наш созданный класс. Теперь мы можем обращаться к его полям и методом через точку:
 
toolbox.Color = "Синий";
toolbox.Nail();
toolbox.Saw();

Присвоили переменной Color строку "Синий", затем вызвали методы Nail и Saw.
Результат выполнения:
В следующий раз мы рассмотрим такие темы как: конструктор класса и свойства. Это позволит вам более подробнее во всем разобраться. Спасибо за внимание.

Листинг Program.cs:
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Toolbox toolbox = new Toolbox();
toolbox.Color = "Синий";
toolbox.Nail();
toolbox.Saw();

Console.ReadKey();
}
}
}


C# Базовый Курс: Игра "Угадай число"

2015-04-12 08:46:00 (читать в оригинале)

Доброго времени суток, друзья. Приношу извинения за столь долгое отсутствие.
Сегодня хотелось бы показать пример самой простой игрушки. Урок ориентирован для самых начинающих программистов, которые лишь недавно познакомились с программированием. Для тех, кто не знает что такое "функции", "циклы", "переменные" я рекомендую посмотреть мои предыдущие статьи. Итак, начнем.

Правила игры просты: компьютер загадывает число, мы пытаемся его угадать за ограниченное количество попыток. Компьютер дает нам подсказки: больше ли наше число чем его или нет.
Создадим новый консольный проект. Начнем с алгоритма:
1. Компьютер загадывает число. Будем использовать класс Random, для генерации случайного числа.
2. Даем игроку три попытки. Используем цикл for.
3. Получаем число с клавиатуры.
4. Сравниваем с числом компьютера.
5. Если мы угадали, то выходим из цикла и сообщаем о победе.

Random random = new Random();
int computerNumber = random.Next(10);
Класс Random дает нам возможность получить случайное число. В первой строке мы создали экземпляр класса Random, во второй строке вызвали метод Next, который вернул нам случайное число от 0 до 10. Теперь мы знаем, что загадал компьютер.

Идем дальше. Мы знаем что одно и тоже действие происходит несколько раз, давайте создадим цикл.
for (int i = 0; i < 3; i++)
{
}

В этом цикле мы будем угадывать число. Количество попыток, как мы видим, равно трем.

Теперь нужно считать с клавиатуры наше число. Напишем в цикле:
Console.Write("Введите число:  ");
int playerNumber = int.Parse(Console.ReadLine());
Мы вывели на экран приглашение ввести число и считали это число с клавиатуры. Так как с клавиатуры считывается строка, нам нужно привести её к целому числу с помощью int.Parse().

Предлагаю ввести логическую переменную win, в которой мы будем хранить результат: выиграл ли игрок или проиграл. Перед циклом пишем:
bool win = false;
У нас есть число компьютера и наше число. Теперь мы можем их сравнить:
if (playerNumber < computerNumber)
Console.WriteLine("Мое число больше, чем твое.");
else
if (playerNumber > computerNumber)
Console.WriteLine("Мое число меньше, чем твое.");
else
{
win = true;
break;
}

Все просто. Если число меньше, то выводим "Мое число больше, чем твое.", иначе если число больше, то выводим "Мое число меньше, чем твое.". Если ни одно из этих условий не подошло, значит они равны и игрок победил. Поднимаем флаг (win = true).

Осталось лишь оповестить пользователя о его результатах:
if (win)
Console.WriteLine("Вы победили!");
else
Console.WriteLine("Вы проиграли. Компьютер загадал число: " + computerNumber);
Console.ReadKey();

Вот и все. Спасибо за внимание. Ниже приведу полный код программы.

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

namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
Random random = new Random();
int computerNumber = random.Next(10);
int playerNumber = -1;
bool win = false;

for (int i = 0; i < 3; i++)
{
Console.Write("Введите число: ");
playerNumber = int.Parse(Console.ReadLine());

if (playerNumber < computerNumber)
Console.WriteLine("Мое число больше, чем твое.");
else
if (playerNumber > computerNumber)
Console.WriteLine("Мое число меньше, чем твое.");
else
{
win = true;
break;
}
}

if (win)
Console.WriteLine("Вы победили!");
else
Console.WriteLine("Вы проиграли. Компьютер загадал число: " + computerNumber);
Console.ReadKey();
}
}
}




C# Базовый Курс: Функции. Урок 7

2013-04-12 09:10:00 (читать в оригинале)

Всем привет. Сегодня мы обсудим что такое функции и с чем их едят. Для начала немножко отойдем от программирования и подумаем, что такое функции в реальной жизни? Несомненно большинство из Вас скажут, что функция это способность кого-то или чего-то выполнять определенные действия, и эти люди будут правы. В программировании функции так же нужны для того, чтобы выполнять те или иные действия. Дадим более правильное определение: Функция - подпрограмма, которая может вызываться в коде нашей программы и производить какие-либо действия. Сегодня нам потребуется многое из того что мы изучили. Посмотрим на синтаксис объявления функции:

Модификатор_доступа Возвращаемое_значение Имя_функции(Параметры)
{
     Тело_функции
}
О модификаторах доступа мы будем говорить в следующем уроке, пока что не придавайте этому особого значения. В скобочках указываются параметры функции, с которыми мы будем работать. Вот как будет выглядеть функция, которая складывает два числа, и возвращает целое значение:
public static int Sum(int a, int b)
{
return a+b;
}
Мы назвали функцию Sum, указали что она вернет значение целого типа (т.к. результат от сложения двух целых чисел есть целое число). Далее указали два параметра a и b, это переменные с которыми нам придется работать. В теле функции написали return и указали, то что нам нужно вернуть из этой функции.

Протестируем нашу функцию, вызвав ее в main:
static void Main(string[] args)
{
    int c = Sum(1,2);
    Console.WriteLine(c);
}
Попробуйте передать в качестве параметров разные цифры и убедитесь в правильности результата.

Немного усложним задачу. Напишем функцию, которая будет в качестве первого параметра принимать имя, в качестве второго фамилию, в качестве третьего возраст. Функция должна выводить информацию о человеке. Данные вводятся с клавиатуры.
public static void PeopleInfo(string fname, string sname, int age)
{
    Console.WriteLine("Имя: "+fname);
    Console.WriteLine("Фамилия" + sname);
    Console.WriteLine("Возраст" + age);
}
Вы явно уже заметили наличие слова void в качестве возращаемого значения. Все на самом деле просто: void говорит нам о том, что функция ничего не возвращает, она просто выполняет код который написан в теле функции и завершает свою работу. Попробуйте сами дописать программу.

Давайте напишем еще три функции. Первая заполняет массив цифрами от 0 до 10, вторая считает среднее арифметическое, третья выводит массив на экран.
Вот так выглядит наша первая функция:
public static int[] ArrayFill(int n)
{
     int[] array = new int[n];
     for (int i = 0; i<n;i++)
          array[i] = i;
  return array;
}
В качестве параметра принимается количество элементов в массиве, затем в теле функции создается массив из n элементов и заполняется циклом. Далее возвращаем полученный массив.
Вторая функция:
public static float Average(int[] array)
{
int s = 0;
for (int i = 0; i < array.Length; i++)
s += array[i];

return s / array.Length;
}
На вход подается массив, среднее арифметическое которого мы будет считать. В теле функции уже знакомый нам код. На выход подается результат.
Ну и что может быть проще написания третьей функции:
public static void PrintArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
Console.Write(array[i]+" ");
}
Так как функция ничего не возвращает, то пишем void. Остальное и так понятно. Попробуйте вызвать эти функции так, чтобы для начала массив заполнился, потом вывелся на экран и в конце появилось среднее арифметическое значение.

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

Вот листинг, для тех у кого возникли трудности:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lesson1
{
class Program
{
public static void PrintArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
Console.Write(array[i]+" ");
}

public static int[] ArrayFill(int n)
{
int[] array = new int[n];
for (int i = 0; i<n;i++)
array[i] = i;
return array;
}

public static float Average(int[] array)
{
int s = 0;
for (int i = 0; i < array.Length; i++)
s += array[i];

return s / array.Length;
}

static void Main(string[] args)
{
int[] array = ArrayFill(10);
PrintArray(array);
Console.WriteLine("S " = Average(array));
Console.ReadKey();
}
}
}


C# Базовый Курс: Массивы. Урок 6

2013-03-30 10:56:00 (читать в оригинале)

Массив - это структура данных, содержащая элементы одного типа, к которым можно обратится по их индексу. Например массивом можно назвать список учеников в классе, где каждому ученику соответствует его порядковый номер:
1. Петя Иванов
2. Иван Петров
3. Саша Сидоров

В C# массив объявляется следующим образом:
тип_данных[] имя_массива;
Далее нужно указать размер массива:
имя_массива = new тип_данных[количество_элементов];
Теперь мы можем обращаться к каждому элементу по отдельности (Прошу заметить, отсчет начинается с нуля):
имя_массива[0] = данные_1;
имя_массива[1] = данные_2;
имя_массива[2] = данные_3;
Создадим массив, определяющий список класса:
string[] names = new string[3];
names[0] = "Петя Иванов";
names[1] = "Иван Петров";
names[2] = "Саша Сидоров";
Теперь мы можем обратиться к каждому элементу отдельно, например вывести на экран только Ивана Петрова:
 
Console.WriteLine(names[1]);
Или же сделаем более лучше - пусть пользователь введет номер в журнале, а на экране отобразится имя человека, которому соответствует введенный номеру:
int number = int.Parse(Console.ReadLine());
if (number >= 0 && number <= 2)
Console.WriteLine(names[number]);
else
Console.WriteLine("Человека под данным номером не существует");
Массивы очень удобны для хранения данных. Вам всего лишь нужно хранить один массив в котором будет все что нужно, вместо того чтобы создавать сотни переменных.

Давайте скомбинируем полученные сейчас знания с предыдущим уроком. Попробуем использовать в своем приложении и циклы и массивы. Напишем приложение, в котором считаем 5 чисел с клавиатуры, и найдем их среднее арифметическое. Для этого: создадим массив целого типа, состоящий из 5 элементов. Затем пройдемся по массиву циклом и посчитаем сумму всех элементов. Ну и наконец разделим сумму на количество элементов.
int[] numbers = new int[5];
for (int i = 0; i < numbers.Length;i++)
numbers[i] = int.Parse(Console.ReadLine());

Console.WriteLine("Массив заполнен. Считаем среднее арифметическое.");

int s = 0;
for (int i = 0; i < numbers.Length;i++)
s+=numbers[i];

Console.WriteLine("Среднее арифметическое: " + s / numbers.Length;);
Прошу заметить, numbers.Length содержит длину массива, в нашем случае 5.

Мы рассмотрели одномерные массивы. Но существуют ещё и двумерные. Двумерный массив - это одномерный массив, элементами которого являются одномерные массивы. Двумерный массив так же называют матрицей. Объявляется следующим образом:
тип_данных[,] имя_массива;
Далее нужно указать размер массива:
имя_массива = new тип_данных[количество_строк, количество_столбцов];
Создадим двумерный массив 3х3, и найдем сумму всех его элементов:
int[,] numbers = new int[3,3];
for (int i = 0; i < 3;i++)
for (int j = 0; j < 3;j++)
numbers[i, j] = int.Parse(Console.ReadLine());

Console.WriteLine("Массив заполнен. Считаем сумму всех элементов.");

int s = 0;
for (int i = 0; i < 3;i++)
for (int j = 0; j < 3;j++)
s+=numbers[i, j];

Console.WriteLine("Сумма: " + s);

В дальнейшем мы неоднократно будем использовать массивы, поэтому если что-то не понятно, то постарайтесь в этом разобраться. Спасибо за внимание.


C# Базовый Курс: Циклы. Урок 5.

2013-02-26 11:04:00 (читать в оригинале)

Всем привет. Сегодня у нас очень важный урок. Мы будем проходить циклы. Цикл - это участок кода, который повторяется один или несколько раз, либо до той поры пока не выполнится заданное нами условие. Рассмотрим разные циклы:

1. Цикл for:
Синтаксис следующий:
for (инициализатор; условие; итератор)
    операторы 

Инициализатор - переменная, инициализируемая при первом выполнении цикла.
Условие - выражение, которое проверяется перед каждым выполнением тела цикла
Итератор - шаг, с которым приращается значение переменной.

Пример использования:
 
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Hello!");
}
В данном примере мы выводим 10 раз строку Hello!



Еще пример:
int summ = 0;
for (int i = 0; i < 10; i++)
summ+=i; //Переменной summ прибавляем i

Console.WriteLine(summ);
Здесь мы считаем сумму от 0 до 10 и выводим результат на экран.

2. Цикл whileСинтаксис:
while(условие)
    операторы;

While - цикл с предварительной проверкой условия.
Пример:
            int i = 0, sum = 0;

while (i < 10) //Выполняем цикл до тех пор пока условие i < 10 истинно
{
sum+=i++; //Прибавляем к sum переменную i, и увеличиваем ее значение на 1.
}

Console.WriteLine(sum);
Код аналогичен предыдущему.

3. Цикл do...while
do
{
    операторы;
}
while (условие);

Данный цикл является циклом с пост условием. Он выполняется до тех пор, пока условное выражение истинно. Пример:
            int i = 0, sum = 0;

do
{
sum += i++;
} while (10 > i);

Console.WriteLine(sum);
4. Цикл foreach
foreach (тип_переменной сама_переменная in коллекция)
     операторы;

Тип_переменной и сама_переменная - переменная, которая используется в цикле для итерации.
Коллекция - коллекция, по которой совершаем итерацию.

Когда цикл начинает свою работу, переменной присваивается первое значение коллекции, при каждом шаге итерации, переменной присваивается следующее значение коллекции.
            int[] array = new int[]{1,2,3,4,5,6};

foreach (var i in array)
{
Console.Write(i+" ");
}
Данный пример вам может быть ещё не понятен, его мы разберем в дальнейшем.

Сегодня мы коротко разобрали все циклы в языке c#. В следующий раз мы научимся их применять на практике и узнаем что такое массивы.


Страницы: 1 2 3 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.