2 семинар


Запись урока:

Часть 1

[vk]http://vk.com/video_ext.php?oid=-66674957&id=167885989&hash=05201124f4ff1c84&hd=3[/vk]

Часть 2

[vk]http://vk.com/video_ext.php?oid=-66674957&id=167885995&hash=c70bf43c89e43ea0&hd=3[/vk]

Темы занятия:
1. Контроль версий при помощи TortoiseHg.
2. Отличие фундаментальных (int, double и т.д.) типов данных от нефундаментальных (DateTime, TimeSpan). Работа с датой-временем (см. справочник C# DateTime и TimeSpan).
3. Массивы: цель использования, инициализация (стр. 178 Шилдта или см. справочник C# "массивы").
4. Контейнеры list<>: принцип работы, отличие от массивов (см. справочник C# List<>).
5. Работа с файлами (FileStream - стр. 441, StreamReader - стр. 451, или см. доп. файл во вложениях).
6. Создание пользовательского класса.
7. Методы (стр. 155 Шилдта), конструкторы (стр. 166 Шилдта) и свойства класса (стр. 313 Шилдта) (либо по классам см. доп. файл во вложениях).


Домашнее задание:
1. Модифицировать метод SmaIndicator.Add() таким образом, чтобы избавиться от цикла при подсчёте.

2. Изробразить любым доступным способом иерархию классов:
  • List, Set, Dictionary,
  • SortedList, SortedSet, SortedDictionary,
  • LinkedList, Queue, Stack, HashSet

3. Прочитать в книге главу, посвящённую классам (глава 6).

Полезные материалы:
1. Исключения.
2. Оператор цикла foreach - стр. 139 Шилдта

Решение домашней задачи:


Вложения:
Исходные коды

Теги:


Спасибо:


UsilaDobry

Фотография
Дата: 01.04.2013
Ответить


Добрый день!
После отработки кода части первой 2 семинара в проводнике на файле progam.cs появился восклицательный знак. Что это значит?
Спасибо:

IvanB

Фотография
Дата: 01.04.2013
Ответить


Так бывает, если файл переименован или удален.
Можно снова распаковать архив и использовать исходный проект, либо попробовать восстановить проект через восстановление нужного файла в соответствующем каталоге.
Спасибо: UsilaDobry

UsilaDobry

Фотография
Дата: 02.04.2013
Ответить


В данном коде

using (var reader = File.OpenText(@"../../gazp.txt"))
{
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
string[] items = line.Split(';');

}
}


в строке using... при компиляции выдается сообщение "Необработанное исключение типа "System.IO.FileNotFoundException" в mscorlib.dll", у лектора такого нюанса нет. В чем фишка? Пробую запустить отладку построчно через F10, на этой строке ридер не создается, а появляется то же сообщение.
Спасибо:

IvanB

Фотография
Дата: 02.04.2013
Ответить


Исключение System.IO.FileNotFoundException свидетельствует о том, что не найден запрашиваемый файл (msdn).
Спасибо:

UsilaDobry

Фотография
Дата: 02.04.2013
Ответить


Просмотрев 2-ю часть, вынес класс Candle из кода Programm в файл Candle.cs и тут же появились две ошибки в работающем коде:
Код

while (!reader.EndOfStream) //пока не закончился поток
                {
                    string line = reader.ReadLine();        //читать из потока и присваивать переменной line
                    string[] items = line.Split(';');       //разделить переменную line по ; и создать массив items из полученных элементов
                    Candle сandle = new Candle(items);      //создаем объект (экземпляр) класса Candle и получаем свечку
                    candles.Add(candle);                    //Добавление свечку (поля объекта класса Candle) в массив candles
                    Console.WriteLine(Candle.Description());//выводим на консоль значения свечки
                }

При добавлении свечки компилятор сообщает, что элемент candle не существует в текущем контексте, хотя этот элемент выше строчкой объявлен и инициализирован.
Спасибо:

IvanB

Фотография
Дата: 02.04.2013
Ответить


UsilaDobry
Просмотрев 2-ю часть, вынес класс Candle из кода Programm в файл Candle.cs и тут же появились две ошибки в работающем коде:...

Либо сообщите полную информацию по ошибке, либо пришлите архив проекта (iv_qul@list.ru).
Спасибо:

IvanB

Фотография
Дата: 03.04.2013
Ответить


Указаны разные имена в объявлении и использовании, какие-то символы разные латиница/русский.
Скопируйте имя объявления в места использования.
Спасибо: UsilaDobry

Agwan

Фотография
Дата: 12.04.2013
Ответить


Вопрос по ДЗ (домашнему заданию). Вы используете методы _buffer.Enqueue(newValue);
и _buffer.Dequeue();. У меня их нет, хотя стоит Visual Studio 2010 Ultimate, resharper.
Использую .NET Framework 4. Почему я их не вижу?

Еще вопрос - Как вставлять код программы в этом форуме?

PS. Ваш код ДЗ можно сделать короче на одну переменную (Value) и одну операцию умножения (decimal sum = Value * _buffer.Count;), если выполнять деление при return ( return sum / Length;)

Спасибо:

Agwan

Фотография
Дата: 16.04.2013
Ответить


Посмотрел 3 видеосеминар. Вопросы сняты. Они возникли потому, что здесь приведены не все изменения в коде (т.е решение приведено не полностью). Для тех, кто только изучает С# лучше было привести решение полностью или сказать, что полностью решение будет рассмотрено на следующем видеосеминаре.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy