Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/32: Рейтинг темы: голосов - 32, средняя оценка - 4.63
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140

Наставничество в изучении С#

20.08.2015, 12:38. Показов 7901. Ответов 95
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаю С# более полугода считаю что знаю на недальнем уровне, хочется развиваться , язык очень нравиться. Из-за того что не очень много практикую многое забывается, а для практики не могу найти интересных задач. Да и во многом проблема в том что когда сам ставлю себе задачу то нет интереса в её решении, но когда кто то другой ставит, есть стремление в решении поставленной задачи. Хотелось что бы кто-то давал задания я делал и присылал решение, для проверки опытным программистом, критиковал ошибки или "быдло код". было бы хорошо получать задание по возрастающей сложности. Кому не сложно и кого это сильно не отвлечет от своих проблем, занятий и жизни просьба помочь.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.08.2015, 12:38
Ответы с готовыми решениями:

Наставничество\каталогизатор
Добрый день, форумчане! Изучаю язык c#, читаю "Герберт Шилдт - Полный справочник по С#", немного шарюсь в библиотеке майкрософта....

Трудности и лень в изучении C#
Уже как полгода назад я приобрел две книги по C#, Шилтда и Эндрю Стиллмена "Изучаем C#". Не знаю зачем две сразу купил, но книга Эндрю...

Нужен напарник в изучении языка
Здравствуйте, изучаю с#.net есть желание работать по данному направлению, хотелось бы изучать с кем-то вместе,ликбо же это будет более...

95
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
21.08.2015, 22:01
Студворк — интернет-сервис помощи студентам
Не все есть ошибка, код верный - оформление грубое,
В ссылке в первом моем сообщениии есть следующий момент -

Замечания

Если x не является числом, функция ПРЕДСКАЗ возвращает значение ошибки #ЗНАЧ!.

Если аргументы "известные_значения_y" и "известные_значения_x" пусты или количество точек данных в этих аргументах не совпадает, функция ПРЕДСКАЗ возвращает значение ошибки #Н/Д.

Если дисперсия аргумента "известные_значения_x" равна 0, функция ПРЕДСКАЗ возвращает значение ошибки #ДЕЛ/0!.

И т.д.

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

То есть нужно придать коду завершенность, полноценность и юзабельность.
0
Жуткая тВарЬ
394 / 329 / 135
Регистрация: 06.02.2015
Сообщений: 962
Записей в блоге: 1
21.08.2015, 22:48
Цитата Сообщение от valun Посмотреть сообщение
думаю для меня это ещё рановато, как то не особо понимаю с чего начать и где искать литературу
Начните с изучения внедрения зависимостей - это основная база сложной архитектуры приложений (патерн стратегия) эта же тема Вас подтолкнет к изучению IOC контейнеров, потом плавно перейдите на MVVM патерн, это точно Вас займет на пару месяцев, а если еще и WPF + Xaml подключить так вообще на год уйдете +))) в писанину проектов и чтение блогов +)
0
8 / 8 / 0
Регистрация: 09.11.2013
Сообщений: 55
21.08.2015, 22:49
Цитата Сообщение от valun Посмотреть сообщение
для практики не могу найти интересных задач
Найдите сборник алгоритмов например... Я специалист в области автоматизации технологических процессов, метрологии и электроники. Свои ещё пока скромные знания в C# пытаюсь воплощать в своей профессиональной деятельности. Может быть и в Вашей работе Вы сможете использовать свои знания в C#.
1
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.08.2015, 08:52
Цитата Сообщение от valun Посмотреть сообщение
для практики не могу найти интересных задач
У меня одна из первых задач была написание бота для браузерной игрушки (для ясности - "гладиаторы", такие продвинутые камень-ножницы-бумага с донатом), где за ежедневный заход давали золото А мне игра надоела, особенно забывал постоянно заходить, поэтому просто написал бота, который каждые 12 часов просто отсылал http-запрос на авторизацию на сайте и всё. Сначала это была примитивная веб-форма скрытая, в веббраузером в качестве отсылальщика запросов, затем превратилась в более законченный вин-сервис на WebRequest. Всё из практики бралось, всё пригодилось.

Сейчас правда игра умерла - онлайн 600 при 2млн зареганых акков, слишком доили игроков, да и программа давно не работает, но код живет и при необходимости может еще помочь
Цитата Сообщение от valun Посмотреть сообщение
впреть постараюсь не допускать столь явных ошибок!

Не по теме:

Иронично :)


Цитата Сообщение от rockandroll Посмотреть сообщение
а вообще можно написать в одну строку:
А вообще это пишется так
C#
1
var x_avg = x.Average();
1
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
22.08.2015, 08:59
valun, Пиши игры (карты, тетрисы, спрайтовые бродилки). Учи алгоритмы и структуры данных, а не только язык. Игру можно писать месяца 2 с твоим уровнем навыка. За это время, изучая C#, ты сможешь увидеть свои ошибки в написании игры и применять изученное постепенно.
Пока у тебя есть энтузиазм к программированию лучше им воспользоваться.
0
 Аватар для rockandroll
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
22.08.2015, 22:55
Цитата Сообщение от Psilon Посмотреть сообщение
А вообще это пишется так
Код C#Выделить код
1
var x_avg = x.Average();
.net такой .net, всегда можно что-то заменить уже реализованным) спасибо, я и забыл про этот метод.
0
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
23.08.2015, 00:27  [ТС]
pro_100_gram, я не знаю с чего начать в написании игр, подскажите немного литературы если можете.

Добавлено через 1 минуту
Извините что долго отсутствовал в теме, работа не позволяла
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
23.08.2015, 10:18
valun, ну у меня первой игрой была змейка. Правда я её по усложненной схеме делал - винформы, со своей ручной отрисовкой и событиями. Но получилось довольно прикольно. Хотя говнокода там полно Но как грится, если через год вам не хочется выкинуть весь старый код, то вы перестали развиваться Так что это норма.
0
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
23.08.2015, 10:50
valun, Вообще необязательно игры, главное чтобы на первых порах задача нравилась и была легкой. Если написание игры доставит удовольствие, то пиши игру.
Начни с простейшего: сделай что-то наподобие марио: заставь спрайт передвигаться в нужных направлениях и давить грибы. и постепенно усложняй задачу. Если подумав час над написанием игры ты не понимаешь с чего нужно начать, то выбери что-то попроще.
0
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
23.08.2015, 10:57  [ТС]
pro_100_gram, Я просто с графикой ещё не сталкивался, но хотелось бы почитать полезной литературы по этой теме.
0
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
23.08.2015, 11:05
valun, ищите статьи в гугле по WindowsForms GDI+
0
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
23.08.2015, 15:16  [ТС]
pro_100_gram, Спасибо за совет.

Добавлено через 3 часа 25 минут
Вот подкорректировал немного код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace Forecast_Win
{
    public partial class Form1 : Form
    {
        static public bool proverka(string X, string Y,string Z)           
        {
            String[] x = X.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            String[] y = Y.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            bool flag=false;
 
            if (x.Length == y.Length)
            {
                flag = true;
            }
            if ((x.Length == 0)|| (Z.Length==0))
            {
                flag = false;
            }
            return flag;
        }
 
        static public double[] massiv(string x)
        {            
            string str = x;
            String[] words = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            double[] mass = new double[words.Length];            
            for (int i = 0; i < words.Length; i++)
                {
                    mass[i] = Double.Parse(words[i].ToString());
 
                }              
            
            return mass;
        }
 
        static public double coefficient(string x)
        {
            double X = Double.Parse(x.ToString());
            return X;
        }
 
        static public double forecast(double[] x, double[] y, double X)
        {
            double forecast = 0;
            double a = 0;
            double b = 0;           
            double Numerator = 0;
            double Denominator = 0;
            //находим среднее x
            var x_avg = x.Average();
            //находим среднее x
            var y_avg = y.Average();
            //находим b
            for (int i = 0; i < x.Length; i++)
            {
                Numerator += (x[i] - x_avg) * (y[i] - y_avg);
                Denominator += Math.Pow((x[i] - x_avg), 2);
            }
            try
            {
                b = Numerator / Denominator;
            }
            catch (System.DivideByZeroException)
            {
                MessageBox.Show("#ДЕЛ/0\nу не должен быть равен нулю");
            }
            //находим а
            a = y_avg - (b * x_avg);
            Console.WriteLine("Находим a= " + a);
            forecast = a + b * X;
            return forecast;
        }
 
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((!Char.IsDigit(e.KeyChar) && e.KeyChar != Convert.ToChar(8)))
                {
                    e.Handled = true;
                }
            if (e.KeyChar == (char)Keys.Space)
                e.Handled = false;
            
 
 
        }
 
        private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((!Char.IsDigit(e.KeyChar) && e.KeyChar != Convert.ToChar(8)))
            {
                e.Handled = true;
            }
            if (e.KeyChar == (char)Keys.Space)
                e.Handled = false;
        }
 
        private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {            
                if ((!Char.IsDigit(e.KeyChar) && e.KeyChar != Convert.ToChar(8)))
                {
                    e.Handled = true;
                }           
            
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (proverka(textBox1.Text, textBox2.Text,textBox3.Text))
            {
         label4.Text =forecast(massiv(textBox1.Text),massiv(textBox2.Text),coefficient(textBox3.Text )).ToString();
            }
            else
            {
                MessageBox.Show("Н/Д \nЗаполните все поля или длинна х не равна длинне у");
            }
        }
    }
}
Но не могу понять в методе forecast почему то не работает обработка исключения деления на ноль.
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.08.2015, 16:17
Цитата Сообщение от valun Посмотреть сообщение
Вот подкорректировал немного код
Ты слишком много наворотил, задача касалась только реализации функции,
а не фильтрации ввода итп, - да и она вместе с проверкой сделана очень плохо.

Извини, но реализация адская просто во всех местах, проще сделать одно замечание чем 10.

Цитата Сообщение от valun Посмотреть сообщение
почему то не работает обработка исключения деления на ноль.
Следует перехватывать исключение так (общий случай):
C#
1
2
3
4
5
6
7
8
            try
            {
                b = Numerator / Denominator;
            }
            catch (Exception ex) //или catch (DivideByZeroException ex)
            {
                MessageBox.Show(ex.Message);
            }

Вообщем, тебе лучше учиться на примерах, правильных более - менее.
Щас накидаю попробую.
0
Фрилансер
735 / 352 / 96
Регистрация: 05.05.2014
Сообщений: 2,621
23.08.2015, 17:01
valun, И еще самое главное учите английский
Цитата Сообщение от valun Посмотреть сообщение
C#
1
static public bool proverka(string X, string Y,string Z)
это плохое название для ф-ции
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.08.2015, 17:52
Не совсем может профессионально и грамотно.
При проверке мы учитываем возможные ошибки в данных.
А при применении ф-ии их перехватываем.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 private void button1_Click(object sender, EventArgs e)
        {
            //double[] x = null;
            //double[] y = null;
            //double X = double.NaN;
 
            //double[] x = new double [] { 20,28,31,38,40 };
            //double[] y = null;
            //double X = double.NaN;
 
            //double[] x = new double[] { 20, 28, 31, 38, 40 };
            //double[] y = new double[] { 6, 7, 9 };
            //double X = 30;
 
            //double[] x = new double [] { 20,28,31,38,40 };
            //double[] y = new double [] { 6, 7, 9, 15, 21 };
            //double X = double.NaN;
 
            //double[] x = new double[] { 0, 0, 0, 0, 0 };
            //double[] y = new double[] { 0, 0, 0, 0, 0 };
            //double X = 0;
 
            double[] x = new double[] { 20, 28, 31, 38, 40 };
            double[] y = new double[] { 6, 7, 9, 15, 21 };
            double X = 30;
            try
            {
              MessageBox.Show("Forecast(30) = " + Forecast(x, y, X).ToString());
            }
            catch (Exception ex) { MessageBox.Show(ex.Message,"Ошибка!"); }
        }
 
 
        public double Forecast(double[] x, double[] y, double X)
        {
 
            if (x == null) throw new ArgumentException("Null parameter!", "x[]");
            if (y == null) throw new ArgumentException("Null parameter!", "y[]");
            if (double.IsNaN(X)) throw new ArgumentException("Not determined parameter!", "X");
            if (x.Length != y.Length) throw new ArgumentException("Different parameter length!", "x[],y[]");
            if (x.Length < 2) throw new ArgumentException("The number of elements must be >2!", "x[]");
            if (y.Length < 2) throw new ArgumentException("The number of elements must be >2!", "y[]");
            
            
            double a = 0;
            double b = 0;
            double x_aver = 0;
            double y_aver = 0;
            double Numerator = 0;
            double Denominator = 0;
 
           
                x_aver = x.Average();
                y_aver = y.Average();
 
                for (int i = 0; i < x.Length; i++)
                {
                    Numerator += (x[i] - x_aver) * (y[i] - y_aver);
                    Denominator += Math.Pow((x[i] - x_aver), 2);
                }
 
                if (Denominator == 0) throw new ArgumentException("Divide by zero!", "Denominator");
                b = Numerator / Denominator;
 
 
                a = y_aver - (b * x_aver);
 
                return a + b * X;
                   
        }
Ввод и фильтрация данных - тема отдельная.
На будущее, - перехват исключений, вывод промежуточных результатов - тебе упростят жизнь, точнее отладку.
0
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
23.08.2015, 18:36  [ТС]
Спасибо за советы.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
23.08.2015, 19:23
Цитата Сообщение от pro_100_gram Посмотреть сообщение
для ф-ции
Цитата Сообщение от Woldemar89 Посмотреть сообщение
при применении ф-ии
Ну раз пошла такая пьянка, то и этих самых ф-ий в C# нет. Есть методы, просто некоторые что-то возвращают, а некоторые - нет(вернее, возвращают void).
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.08.2015, 19:45
Не каждая функция - метод,
но каждый метод - это функция

Отличия методов класса от обычных функций

https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)
1
6 / 6 / 2
Регистрация: 09.12.2014
Сообщений: 140
23.08.2015, 19:47  [ТС]
Woldemar89, А можешь подкинуть ещё задачку?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
23.08.2015, 19:53
Из функции всегда происходит возврат в точку вызова.

Если копать глубже и перевести на Ассемблер,
при void, происходит возврат управления,
а при другом типе - тоже происходит возврат управления,
но при этом результат выполнения хранится в регистре или в нескольких.
Как правило в eax, - например: число, адрес (указатель).

Добавлено через 49 секунд
Цитата Сообщение от valun Посмотреть сообщение
А можешь подкинуть ещё задачку?
Ок, щас подумаю как бы что поинтересней дать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2015, 19:53

Использование сайта Microsoft при изучении
Не подскажете, что можно почитать на сайте? Вот это? https://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx

Изучении языка emenem97 ( общие недопонимания)
Ув. модераторы. Можно создать тему в которой буду задавать элементарные вопросы, которые будут возникать при изучении языка? Чтобы форум...

Нужен человек, который поможет в изучении программирования
С# для чайников, нужен опытный прогер, который качественно объясняет ракам. Я прочитал 2 книги, и несколько сайтов по теме C# только в...

Чему уделить внимание при изучении языка программирования C#?
Изучаю самостоятельно C# winforms. Написал пару программ, сапёр, крестики нолики и с бд (mysql workbeanch) ознакомился подключить и...

Помощь в изучении
Приветствую. Не так давно увлекся программированием (хотя интерес эта область вызывала всегда). Ну, как увлекся, скорее задумался, серьезно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru