|
Языки программирования Изучаем С++, Sql, php, Lua, Python |
|
Опции темы | Поиск в этой теме | Опции просмотра |
14.09.2011, 17:53 | #1 |
Ученый
Регистрация: 07.03.2010
Адрес: Беларусь,Брест
Сообщений: 188
Сказал(а) спасибо: 131
Поблагодарили 34 раз(а) в 27 сообщениях
|
переход с паскаля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("уравнение не имеет решений"); } } } } в общем проблема в том что кода придаю все значения переменным программа пишет что "уравнение не имеет решений". (вот к примеру a=1, b=2,c=-3) В чем ошибка то ???
__________________
sql-language.ru Последний раз редактировалось lovepsone; 14.09.2011 в 17:59. |