Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 05.06.2012
Сообщений: 112
1

Объяснить приведенный код

03.07.2012, 09:02. Показов 864. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Кто может объяснить мне этот код. Что она делает и в каких местах особенно Fixed. Вот код
 Комментарий модератора 
Перечитай правила

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
 public unsafe Complex Dot(Contour c, int shift)
        {
            var count = Count;
            double sumA = 0;
            double sumB = 0;
            fixed (Complex* ptr1 = &array[0])
            fixed (Complex* ptr2 = &c.array[shift])
            fixed (Complex* ptr22 = &c.array[0])
            fixed (Complex* ptr3 = &c.array[c.Count - 1])
            {
                Complex* p1 = ptr1;
                Complex* p2 = ptr2;
                for (int i = 0; i < count; i++)
                {
                    Complex x1 = *p1;
                    Complex x2 = *p2;
                    sumA += x1.a * x2.a + x1.b * x2.b;
                    sumB += x1.b * x2.a - x1.a * x2.b;
 
                    p1++;
                    if (p2 == ptr3)
                        p2 = ptr22;
                    else
                        p2++;
                }
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2012, 09:02
Ответы с готовыми решениями:

Разобрать приведенный код и объяснить его назначение
объясните, что делает этот метод static string NewMas(ref int i, int indexdel, int mas, ref...

Что делает приведенный код
IsInt = Int64.TryParse(Console.ReadLine(), out intvalue); помогите что эта строка дает конвертирует...

Можно ли оптимизировать приведенный код
Понимаю, что нужно создать ещё одно измерение массива, но боюсь, что я уже и в этом запутался. ...

Сделать приведенный код рекурсивным
помогите, пожалуйста, написать рекурсию к этому коду static int Cikl(int n) { ...

2
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
03.07.2012, 10:14 2
Медет, fixed
0
7 / 7 / 4
Регистрация: 20.06.2012
Сообщений: 129
Записей в блоге: 4
04.07.2012, 14:54 3
Пример так называемого "небезопасного кода". Ключевое слово unsafe в объявлении метода как раз на это и указывает. Небезопасный код не выполняется под полным управлением с среде CLR и использует указатели.
Complex* ptr1 - и есть указатель, переменная хранящая в себе не значение, а адрес в памяти этого значения. Модификатор fixed не дает "сборщику мусора" затирать те места в памяти, на которые ссылаются указатели. Как то так.
0
04.07.2012, 14:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2012, 14:54
Помогаю со студенческими работами здесь

Почему приведенный код не запускается
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Как работает приведенный код
Доброго времени суток. Только начинаю учить C#, да и вообще программирование в принципе, учу по...

Сортировка по возрастанию - приведенный код не работает
Помогите начинающему, не могу разобраться ,выдает ошибку не запускается. не сортирует по...

Прокомментировать приведенный код (двумерные массивы)
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru