Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

написать код на С# к задачи

53K
20 июня 2010 года
pro100saniok
18 / / 15.06.2010
Дана точка А(х, у). Определить, принадлежит ли она треугольнику с вершинами в точках (х1, у1), (х2, у2), (x3, y3).

Цитата:
Алгоритм
Математическая часть - векторное и псевдоскалярное произведения.
Реализация - считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
a=(x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
b=(x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
c=(x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)
Если они одинакового знака, то точка внутри треугольника, если что-то из этого - ноль, то точка лежит на стороне, иначе точка вне треугольника.

1) вводите координаты точек
2) производите математические вычисления
3) проверяете: if((a>=0&&b>=0&&c>=0 )||(a<=0&&b<=0&&c<=0 )) лежит else не лежи

1
20 июня 2010 года
kot_
7.3K / / 20.01.2000
ну пишите. В чем проблема?
53K
20 июня 2010 года
pro100saniok
18 / / 15.06.2010
проблема написать код к задаче .
как вводяться точки ?
если можно полностью код розвязання задачи ))
1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
а ключи від квартиры де гроші є? Не треба?
5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: pro100saniok
проблема написать код к задаче .


Ах, мы вас понимаем... :D

Цитата: pro100saniok

как вводяться точки ?

С клавиатуры, планшета, микрофона, ИК порта, сетевого сокета - всяко можно (ктати слово "вводятся" пишется без мягкого знака).

Цитата: pro100saniok

если можно полностью код розвязання задачи ))

За любую работу нужно платить. Если готов платить - создавай тему во фрилансе.

Цитата: kot_
а ключи від квартиры де гроші є? Не треба?


Кот, брось в бирюльки играть (мне самому охота :D) - доставай банхаммер!

2.1K
21 июня 2010 года
Norgat
452 / / 12.08.2009
коменты писать лень:)

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace forum
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] x = new int[4], y = new int[4];
            for (int i = 0; i < 4; ++i)
            {
                System.Console.Write("Введите (x" * i.ToString() * ",y" * i.ToString() + "): ");
                x = System.Console.Read();
                y = System.Console.Read();
                System.Console.ReadLine();
            }
            int a = (x[1] - x[0]) + (y[2] - y[1]) + (x[2] - x[1]) + (y[1] - y[0]);
            int b = (x[2] - x[0]) + (y[3] - y[2]) + (x[3] - x[2]) + (y[2] - y[0]);
            int c = (x[3] - x[0]) + (y[1] - y[3]) + (x[1] - x[3]) + (y[3] - y[0]);

            if ((a >= 0 || b >= 0 || c >= 0) || (a <= 0 || b <= 0 || c <= 0))
            {
                System.Console.WriteLine("Лежит");
            }
            else
            {
                System.Console.WriteLine("Нифига");
            }
            System.Console.ReadKey();
        }
    }
}


п.с. писал код, чтобы посмотреть как оно в шарпах, ибо нифига их не знаю:D
п.с.с. прикольно... половину кода за меня сама VS написала))
5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat

 
Код:
int[] x = new int[4], y = new int[4];


Так писать точно не стоит. И даже на C\C++.
Обявляйте переменные на разных строках.

2.1K
21 июня 2010 года
Norgat
452 / / 12.08.2009
Цитата: hardcase
Так писать точно не стоит. И даже на C\C++.
Обявляйте переменные на разных строках.



это вопрос личных предпочтений и соображений читабельности в данном конкретном случае.
или есть более объективная причина?

5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat
это вопрос личных предпочтений и соображений читабельности в данном конкретном случае.
или есть более объективная причина?


Это 1) необычно, 2) нечитабельно, 3) затрудняет рефакторинг.

1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
спасибо. автор получает свои заслуженные 15 баллов - следующийм будет бан.
В код внесены некоторые модификации - в теме они не обсуждаются. Едем в студенты.
1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
Цитата: hardcase
Это 1) необычно, 2) нечитабельно, 3) затрудняет рефакторинг.


на самом деле это обычно - но не читаемо. Что соответственно затрудняет.
Но ничего необычного тут нет.

2.1K
21 июня 2010 года
Norgat
452 / / 12.08.2009
Цитата: hardcase
Это 1) необычно, 2) нечитабельно, 3) затрудняет рефакторинг.



думаю таки это основная причина вашего неприятия такой записи))

п.с. в основном да, пишу разбитые на строки объявления переменных... просто в это случае написал код немного необычно, выглядело уж больно забавно:)

5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat
думаю таки это основная причина вашего неприятия такой записи))

Найдите любые гайдайны по написанию кода на C/C++/C# - они в один голос запрещают такую конструкцию. И правильно.


Добавлено позже: SharpDevelop C# Coding Guide, помимо гайда я бы рекомендовал использовать var везде где только можно (ну, это личное предпочетние, ибо это Nemerle-way).

1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
Цитата: Norgat
думаю таки это основная причина вашего неприятия такой записи))

п.с. в основном да, пишу разбитые на строки объявления переменных... просто в это случае написал код немного необычно, выглядело уж больно забавно:)


это вполне таки стандартная запись - причем как бы назвать ее особо нечитаемой - понятно, что удобно - причем лично для вас - использовать в одну строку. Но это абсолютно произвольное требование. Тем более если вспомнить о таком высказывании:
[QUOTE=Примерно по тексту]
Если из распечатанного листинга модуля можно сделать веревку, на которой возможно повесить разработчика - это надо сделать.
[/QUOTE]
что не говори - подобная запись увеличивает шансы утонуть. :)

2.1K
21 июня 2010 года
Norgat
452 / / 12.08.2009
Цитата: hardcase
Найдите любые гайдайны по написанию кода на C/C++/C# - они в один голос запрещают такую конструкцию. И правильно.

Добавлено позже: SharpDevelop C# Coding Guide, помимо гайда я бы рекомендовал использовать var везде где только можно (ну, это личное предпочетние, ибо это Nemerle-way).



pdf'ку пролистал, по большей части пишу код именно так...
но, это как бы один из возможных взглядов на оформление кода, не так ли?)

по самой pdf
в 10.1 примере как бы скобочки фигурные для примера выставлены по разному в одном классе?)
или это таки особый стиль автора мешать в кучу:

 
Код:
func(){
}

и:
 
Код:
func()
{
}

[SIZE="1"]1й вариант фигурных скобок не люблю)[/SIZE]

п.с. про var я не помню вообще, т.к. C# знаю на уровне: пролистал 200 стр. учебника C# как то вечерком)

п.с.с. Торжественно клянусь больше не делать двойных объявлений массивов в одной строке:D

kot_, нуу... если уж извращаться, то С/С++ предоставляют для этого ещё большие возможности))
о некоторых из которых многие мои знакомые вообще не слышали: триграфы... за неделю запись в статусе icq так никто и не разгадал:D а попыток было прилично))
5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat

в 10.1 примере как бы скобочки фигурные для примера выставлены по разному в одном классе?)


Потому что для классов, структур, интерфейсов, пространств имен и методов используется нотация:

 
Код:
XX
{

}
А для перечислений, свойств, и управляющих конструкций:
 
Код:
XX {
}
Цитата: Norgat

п.с. про var я не помню вообще, т.к. C# знаю на уровне: пролистал 200 стр. учебника C# как то вечерком)

var позволяет опускать имя типа переменной при обявлении с инициализатором:

 
Код:
var x = new MyClass(); // x будет иметь тип MyClass
Цитата: Norgat
извращаться, то С/С++ предоставляют для этого ещё большие возможности))
о некоторых из которых многие мои знакомые вообще не слышали: триграфы... за неделю запись в статусе icq так никто и не разгадал:D а попыток было прилично))

Нашел чем напугать. Триграфы - это анахронизм, который торчит в С++ с незапамятных времен, ибо группе стандартизации стремно их выкидывать из языка.

З.Ы. Я мог бы написать тут про Nemerle, что в нем можно сделать с исходным кодом, но не буду этого делать. :D

З.З.Ы. А я люблю

 
Код:
XX {
}

Ибо экономит место на экране без потерь в читабельности.
2.1K
21 июня 2010 года
Norgat
452 / / 12.08.2009
Цитата: hardcase

З.Ы. Я мог бы написать тут про Nemerle, что в нем можно сделать с исходным кодом, но не буду этого делать. :D



присмотрюсь к Nemerle поближе)) как раз у меня проснулся интерес к изучению возможностей различных языков))

Цитата: hardcase
var позволяет опускать имя типа переменной при обявлении с инициализатором:
 
Код:
var x = new MyClass(); // x будет иметь тип MyClass


а это имеет смысл кроме такого тривиального использования(да ещё и с сомнительной целью)?

5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat

а это имеет смысл кроме такого тривиального использования(да ещё и с сомнительной целью)?


Имеет. Если справа стоит чтото вроде Dictionary<int, List<MyLongStructure>> (конечно, есть и алиасы, но везде с ними не проскочишь), это слово не позволит объявлению уехать куда-то вбок.

Это также имеет смысл когда имеется несколько переменных: их именя перечислены в одном визуальном столбце - это удобно читать. Также var полезен в конструкции типа using().

Ну и основная причина, по которой было это ключевое слово введено в C#: справа стоит конструктор безымянного (анонимного) типа или проекционный LINQ-запрос. Анонимный тип для того и анонимен, что имя ему изобретает компилятор, посему программист указать его ручками не может.

5
21 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Norgat
присмотрюсь к Nemerle поближе)) как раз у меня проснулся интерес к изучению возможностей различных языков)

Мы всегда рады новым людям: http://rsdn.ru/forum/nemerle/, ссылка на статьи у меня в подписи.

1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
а от чего никто не помог студенту в этой теме? Мне бы кстати тоже было бы интересно?
53K
21 июня 2010 года
pro100saniok
18 / / 15.06.2010
Две задачи:
#1
[COLOR="DimGray"]
Код:
tatic void Main(string[] args)
        {
            Console.WriteLine("Введiть розммiр масива i число порiвнювання:");
            Console.Write("n = ");
            int n = Convert.ToInt32(Console.ReadLine());
            double[] arr = new double[n];

            for (int i = 0; i < n; i++)
            {
                double res = 3 * (double)Math.Pow(i, i);
                ulong fact = 1;
                for (int j = 1; j <= i; j++)
                {
                    fact = fact * (ulong)j;
                }
                res = fact / res;
                arr = res;
            }

            Console.Write("e = ");
            double e = Double.Parse(Console.ReadLine());

            double sum = 0;
            for (int i = 0; i < n; i++)
            {
                if (Math.Abs(arr) >= e)
                    sum += arr;
            }

            Console.WriteLine("sum = {0}", sum);
            Console.ReadKey();
        }
[/COLOR]

#2
[COLOR="DimGray"]
Код:
static void Main(string[] args)
        {            Console.WriteLine("Введiть рядок : ");
            string str = Console.ReadLine();
            int a = str.Length;
            Console.WriteLine("Кiлькiсть символiв=" + a);
            var символ =
                    from s in str.ToCharArray()
                    where (s != ' ')  
                    group s by s into группа
                    where (группа.Count() == 1)
                    select группа.First();

            foreach (var c in символ)
            {
                Console.WriteLine(c);
            }
            Console.ReadKey();
 
        }
[/COLOR]
помогите разобраться как работают эти две части кода в задачах 1,2
#1
[COLOR="Black"]
Код:
for (int i = 0; i < n; i++)
            {
                double res = 3 * (double)Math.Pow(i, i);
                ulong fact = 1;
                for (int j = 1; j <= i; j++)
                {
                    fact = fact * (ulong)j;
                }
                res = fact / res;
                arr = res;
            }
[/COLOR]
#2
[COLOR="Black"]
 
Код:
var символ =
                    from s in str.ToCharArray()
                    where (s != ' ')  
                    group s by s into группа
                    where (группа.Count() == 1)
                    select группа.First();
[/COLOR]
307
21 июня 2010 года
Artem_3A
863 / / 11.04.2008
Цитата: kot_
а от чего никто не помог студенту в этой теме? Мне бы кстати тоже было бы интересно?



[offtop]
хаскела ни кто не знает из активных студентов, а ветеранам, наверное, не интересно это писать!:) но если речь идет вообще о функциональном решение, то могу накатать на лиспе!=)))
[/offtop]

1
21 июня 2010 года
kot_
7.3K / / 20.01.2000
Цитата: Artem_3A
[offtop]
хаскела ни кто не знает из активных студентов, а ветеранам, наверное, не интересно это писать!:) но если речь идет вообще о функциональном решение, то могу накатать на лиспе!=)))
[/offtop]


любопытно. давай.

Цитата:

Две задачи:


аффтор и что конкретно тебе не понятно? Или есть желание что бы мало того, что код стырил - так еще и объяснение для препода тебе написали? Иди нах.

53K
22 июня 2010 года
pro100saniok
18 / / 15.06.2010
Цитата: kot_


аффтор и что конкретно тебе не понятно? Или есть желание что бы мало того, что код стырил - так еще и объяснение для препода тебе написали? Иди нах.



если можно хотя бы эту части помогите разобраться

Цитата: pro100saniok
Две задачи:


#1
[COLOR="Black"]
Код:
for (int i = 0; i < n; i++)
            {
                double res = 3 * (double)Math.Pow(i, i);
                ulong fact = 1;
                for (int j = 1; j <= i; j++)
                {
                    fact = fact * (ulong)j;
                }
                res = fact / res;
                arr = res;
            }
[/COLOR]
#2
[COLOR="Black"]
 
Код:
var символ =
                    from s in str.ToCharArray()
                    where (s != ' ')  
                    group s by s into группа
                    where (группа.Count() == 1)
                    select группа.First();
[/COLOR]



p.s.[FONT="Arial Black"]kot_[/FONT] для чего посылать, я только хотел разобраться (((

1
22 июня 2010 года
kot_
7.3K / / 20.01.2000
если бы хотел разобраться - уже бы давно разобрался. А ты хочешь что бы тебе разжевали и в рот положили.
307
22 июня 2010 года
Artem_3A
863 / / 11.04.2008
Цитата: kot_
любопытно. давай.



вот первые 6, остальные вечером приду допишу, сейчас не когда да и голова как то не варит!!!:)

Код:
;
;Task 1
;

(defun rek_tpl (l n)
    (if (eql n 25)
        l
        (rek_tpl (append l (list (expt 2 n))) (1+ n))
    )
)

(defun two_pow_list ()
    (rek_tpl nil 0)
)

;
;Task 2
;

(defun rek_sp (r l1 l2)
    (cond
        ((equal l1 nil) (append r l2))
        ((equal l2 nil) (append r l1))
        (t (if (< (car l1) (car l2))
                (rek_sp (append r (list (car l1))) (cdr l1) l2)
                (rek_sp (append r (list (car l2))) l1 (cdr l2))
            ))
    )
)

(defun sort_append (l1 l2)
    (if (and (listp l1) (listp l2))
        (rek_sp nil l1 l2)
        nil
    )
)

;
;Task 3
;
(defun rek_ff (l x n)
    (if (equal l nil)
        nil
        (if (equal x (car l))
            n
            (rek_ff (cdr l) x (1+ n))
        )
    )
)

(defun find_first(l x)
    (if (listp l)
        (rek_ff l x 1)
        nil
    )
)

;
;Task 4
;

(defun rek_ic (l x)
    (if (equal l nil)
        nil
        (if (equal (car l) x)
            t
            (rek_ic (cdr l) x)
        )
    )
)

(defun it_contain (l x)
    (if (and (listp l) (numberp x))
        (rek_ic l x)
        nil
    )
)

;
;Task 5
;

(defun rek_onm (r l)
    (if (equal l nil)
        r
        (if (= (rem (car l) (car r)) 0)
            (rek_onm r (cdr l))
            (rek_onm (append r (list (car l))) (cdr l))
        )
    )
)

(defun onlu_not_mult (l)
    (if (and (listp l) (not (equal l nil)))
        (rek_onm (list (car l)) (cdr l))
        nil
    )
)

;
;Task 6
;

(defun is_not_in (l x)
    (if (equal l nil)
        t
        (if (equal (car l) x)
            nil
            (is_not_in (cdr l) x)
        )
    )
)

(defun rek_rc (r l)
    (if (equal l nil)
        r
        (if (is_not_in r (car l))
            (rek_rc (append r (list (car l))) (cdr l))
            (rek_rc r (cdr l))
        )
    )
)

(defun remove_copy (l)
    (if (listp l)
        (rek_rc (list (car l)) (cdr l))
        nil
    )
)


зы: писалось на вскидку, так что есть весьма не хилая вероятность, что существуют гораздо более элегантные решения!=)))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог