Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.09.2011, 17:53   #1
lovepsone
Ученый
 
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
lovepsone Хрен знает что...lovepsone Хрен знает что...
По умолчанию переход с паскаляABC на C#

Вот решил заняться программированием, (перед этим изучал php и mysql) начал изучать сразу паскаль, после 2-ух дней читания книги по паскалю и 1-одной недели практики на нем, решил перейти на c# и попробовал конвертировать скрипт квадратного уравнения с паскаля на c#.
Вот код паскаля (может где то ошибся не пинайте сильно)
Код:
program lovepsone;
var x1,x2,x3,a,b,c,d: real;
begin
     writeln('введите числа a,b,c для квадратного уравнения');
     write('a='); readln(a);
     write('b='); readln(b);
     write('c='); readln(c);
     if(a<>0)and(b<>0)and(c<>0)then d:=b*b-4*a*c;
     if(d>0)and (a<>0)and(b<>0)and(c<>0) then
        begin
        x1:=(-b+sqrt(d))/(2*a);
        x2:=(-b-sqrt(d))/(2*a);
        writeln('x1=',x1:2:2);
        writeln('x2=',x2:2:2);
        end
     else if(d=0)and(a<>0)and(b<>0)and(c<>0)then
          begin
          x1:=(-b)/(2*a);
          write('x1=',x1:2:2);
          end
     else if(b=0)and(a<>0)and(c<0)then
          begin
          x1:=sqrt(-c/a);
          x2:=(-sqrt(-c/a));
          writeln('x1=',x1:2:2);
          writeln('x2=',x2:2:2);
          end
     else if(b=0)and(a<>0)and(c>0)then write('Из отрицательного числа квадрат не выделишь')
     else if(c=0)and(a<>0)and(b<>0)then
          begin
          x1:=(-b);
          x2:=0;
          writeln('x1=',x1:2:2);
          writeln('x2=',x2:2:2);
          end
     else if(a=0)then write('"a" не должно ровняться нулю') else write('нет корней в данном уравнении');
end.
на паскале вроде работает все нормально!
вот код на c#
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace equation
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void solution_Click(object sender, RoutedEventArgs e)
        {
            int a = 0, b = 0, c = 0;
            double D = 0, x1 = 0, x2 = 0;
            string str = "";
            try
            {
                a = Convert.ToInt32(textBox_a.Text);
            }
            catch
            {
                output.Items.Clear();
                output.Items.Add("Можно вводить только числовые значения");
                textBox_a.Select(0, textBox_a.Text.Length);
            }
            try
            {
                b = Convert.ToInt32(textBox_b.Text);
            }
            catch
            {
                output.Items.Clear();
                output.Items.Add("Можно вводить только числовые значения");
                textBox_b.Select(0, textBox_b.Text.Length);
            }
            try
            {
                c = Convert.ToInt32(textBox_c.Text);
            }
            catch
            {
                output.Items.Clear();
                output.Items.Add("Можно вводить только числовые значения");
                textBox_c.Select(0, textBox_c.Text.Length);
            }
            if (a != 0 & b != 0 & c != 0) // ставим условие: если коэффициенты 'а,b,c' не ровны 0 то находим дискриминант
            {
                D = (Math.Pow(b, 2)) - (4 * a * c); // находим дискриминант

                if (a == 0) // ставим условие: если 'а=0', то пишем что 'a' не может быть равным нулю
                {
                    output.Items.Clear();
                    output.Items.Add("'a' не может быть равным нулю");
                }
                else if (D < 0) // ставим условие: если 'D<0', уравнение не имеет действительных корней
                {
                    output.Items.Clear();
                    output.Items.Add("Дискриминант d < 0. Решение квадратного уравнения невозможно.");
                }
                else if (D == 0) // ставим условие: если 'D=0', то имеем один корень
                {
                    x1 = -b / 2 * a;
                    output.Items.Clear();
                    str = "D = " + D;
                    output.Items.Add(str);
                    str = "X = " + x1;
                    output.Items.Add(str);
                }
                else if (D > 0) // ставим условие: если 'D>0', то имеем два корня
                {
                    x1 = (-b - (Math.Sqrt(D))) / (2 * a);
                    x2 = (-b + (Math.Sqrt(D))) / (2 * a);
                    output.Items.Clear();
                    str = "D = " + D;
                    output.Items.Add(str);
                    str = "X1 = " + x1;
                    output.Items.Add(str);
                    str = "X2 = " + x2;
                    output.Items.Add(str);
                }
            }
            if (a != 0 & b == 0 & c != 0) // ставим условие: если коэффициенты 'а,c' не ровны 0, но 'b=0',
            {                   // тогда получается не полное квадратное уравнение
                if (a == 0) // ставим условие: если 'а=0', то пишем что 'a' не может быть равным нулю
                {
                    output.Items.Clear();
                    output.Items.Add("'a' не может быть равным нулю");
                }
                else if (c < 0)
                {
                    x1 = (Math.Sqrt(-c / a));
                    x2 = (-(Math.Sqrt(-c / a)));
                    output.Items.Clear();
                    output.Items.Add(str);
                    str = "X1 = " + x1;
                    output.Items.Add(str);
                    str = "X2 = " + x2;
                    output.Items.Add(str);
                }
                else if (c > 0)
                {
                    output.Items.Add("Из отрицацельного числа квадрат не извлечешь");
                }
            }
            if (a != 0 & b != 0 & c == 0) // ставим условие: если коэффициенты 'а,b' не ровны 0, но 'c=0',
            {                   // тогда получается не полное квадратное уровнение
                x1 = -b;
                x2 = 0;
                output.Items.Clear();
                output.Items.Add(str);
                str = "X1 = " + x1;
                output.Items.Add(str);
                str = "X2 = " + x2;
                output.Items.Add(str);
            }
            else if (a == 0) // ставим условие: если 'а=0', то пишем что 'a' не может быть равным нулю
            {
                output.Items.Clear();
                output.Items.Add("'a' не может быть равным нулю");
            }
            else
            {
                output.Items.Clear();
                output.Items.Add("уравнение не имеет решений");
            }
        }
    }
}
Но вот тут то что то не правильно и не могу понять что (выборочно читал книгу по c#)
в общем проблема в том что кода придаю все значения переменным программа пишет что "уравнение не имеет решений". (вот к примеру a=1, b=2,c=-3)
В чем ошибка то ???
__________________
sql-language.ru

Последний раз редактировалось lovepsone; 14.09.2011 в 17:59.
lovepsone вне форума   Ответить с цитированием
Старый 14.09.2011, 21:17   #2
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

"&" двойные надо.
TOM_RUS вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
lovepsone (15.09.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 06:51. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot