Глава 11: Създаване и използване на обекти

23 views
Skip to first unread message

Viktor Nonov

unread,
Mar 4, 2011, 10:13:33 AM3/4/11
to Intro C# Book
На страница 364:
Примерният клас Cat дефинира свойствата Name и Color, които пазят
стойността си в скритите (private0 полетата name и color.
Трябва да се поправи на:
Примерният клас Cat дефинира свойствата Name и Color, които пазят
стойността си в скритите (private) полетата name и color.
На страница 376:
След това можем да генерираме случайно число в интервала [0…n) чрез
извикване на метода Next(n). Забележете, че този метод може да върне
нула, но връща винаги случайно число по-малко от зададената стойност
n. Затова, ако искаме да получим число в интервала ----------[0…
49]----------, трябва да използваме израза Next(49) + 1. Следва
примерен изходен код на прог¬рама, която, използвайки класа Random,
генерира 6 случайни числа от TOTO 6/49:
class TOTO649
{
static void Main()
{
Random rand = new Random();
for (int number = 1; number <= 6; number++)
{
int randomNumber = rand.Next(49) + 1;
Console.Write("{0} ", randomNumber);
}
}
}

Тук според мен интервала, който се е имал в предвид е [1..49]:
"След това можем да генерираме случайно число в интервала [0…n) чрез
извикване на метода Next(n). Забележете, че този метод може да върне
нула, но връща винаги случайно число по-малко от зададената стойност
n. Затова, ако искаме да получим число в интервала [1…49],"


A ако искаме да получим [0..49] трябва да използваме да променим
израза Next(49) + 1 на Next(49 + 1)

Dimitar Dimitrov

unread,
Mar 4, 2011, 11:39:22 AM3/4/11
to Intro C# Book
Правилно си е написан израза за случайно число:
Next(49) дава число от 0 до 48. Каквото и да се падне му добавяме 1.
Т,е ако Next върне 0 , то резултата е 1.
Ако върне 48, то се получава 49.

Viktor Nonov

unread,
Mar 5, 2011, 3:50:57 AM3/5/11
to Intro C# Book
Да тази грешка е спорна, но както е написано изречението някой може да
разбере, че Next(49)+1 е в интервала [0..49], а всъщност нула не може
да се получи и интервала трябва да е (0..49]. А това че самият метод
Next(49) връща [0..48] и чрез прибаването на единица се вместваме
точно в условието е ясно.

Viktor Nonov

unread,
Mar 10, 2011, 12:40:03 AM3/10/11
to Intro C# Book
Страница 366:
Имаме създаване на обект и съхраняваме референцията в myBrownCat:
Cat myBrownCat = new Cat("Johny", "brown");, а на картинката по-
надолу, която показва Stack-а променливата трябва да се поправи от
someCat на myBrownCat.

Viktor Nonov

unread,
Mar 10, 2011, 12:55:19 AM3/10/11
to Intro C# Book
Също трябва да се поправи картинката и на страница 367 (от someCat на
myBrownCat),
и може би вече да не съдържа адрес ами null
Reply all
Reply to author
Forward
0 new messages