|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.03.2011, 22:18 | #1 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 29
|
Умножение полиномов (где ошибки?)
проблемы:
1. работает задание коэффициентов только в первом многочлене, второй не реагирует вообще, хотя коды вроде одинаковы, только менял переменные. 2. он как-то слишком странно выводит многочлен в эдит, иногда пропускается, например "*0x^00x^0", "-9x^0-2x^1*3x^23x^2-10x^3", т.е. вообще неверно задается 3. не уверен в том, что правильно написана процедура перемножения unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Button2: TButton; Edit2: TEdit; Button3: TButton; Edit3: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; var a,b,i,j,k: integer; Ab:array[0..5,0..5] of integer; s,t,r:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin randomize; a:=random(5); s:=''; for I:=0 to a-1 do begin randomize; Ab[i,1]:=random(20)-10; if Ab[i,1]>=0 then s:=s+'*'+IntToStr(Ab[i,1])+'x^'+IntToStr(i); s:=s+IntToStr(Ab[i,1])+'x^'+IntToStr(i); end; for j:=i+1 to 3 do begin Ab[j,1]:=0 end; Edit1.Text:=s; end; procedure TForm1.Button2Click(Sender: TObject); begin randomize; b:=random(5); t:=''; for i:=0 to b-1 do begin randomize; Ab[i,2]:=random(20)-10; if Ab[i,2]>=0 then t:=t+'*'+IntToStr(Ab[i,2])+'x^'+IntToStr(i); t:=t+IntToStr(Ab[i,2])+'x^'+IntToStr(i); end; for j := i+1 to 3 do begin Ab[j,2]:=0 end; Edit2.Text:=t; end; procedure TForm1.Button3Click(Sender: TObject); begin r:=''; begin for i:=0 to 3 do if Ab[i,1]=0 then Ab[i,k]:=Ab[i,2] else if Ab[i,2]=0 then Ab[i,3]:=Ab[i,1] else if (Ab[i,2]=0) and (Ab[i,1]=0) then Ab[i,3]:=0 else Ab[i,3]:= Ab[i,1]+Ab[i,1]*Ab[i,2]; if Ab[i,3]>0 then r:=r+'*'+IntToStr(Ab[i,3])+'x^'+IntToStr(i) else if Ab[i,3]<0 then r:=r+IntToStr(Ab[i,3])+'x^'+IntToStr(i) ; end; Edit3.Text:=r; end; end. |
23.03.2011, 11:02 | #2 |
Форумчанин
Регистрация: 21.10.2010
Сообщений: 588
|
Как вариант можно сделать так
Код:
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681 |
23.03.2011, 11:07 | #3 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,883
|
Код оформляйте по правилам (расширенный режим редактирования, кнопочка #)
что вот это за ерунда ? Код:
брать рандомное число и использовать его для цикла занесения в массив, где индекс - это рандомной число - вообще какая-то ересь, непонятно, чего Вы хотите добиться. Само рандомное число легко может быть 0 и взять цикл от 0 до 0-1 это тоже большой косяк Не хочу даже копаться в Вашем коде по умножению и вводу-выводу, ибо надо делать самому форму и т.п. прикрепляйте сразу проект ! и поправьте то о чем я сказал, а также желательно исправить имена переменных на осмысленные, чтобы было читабельно, можете ещё комментов добавить |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
почему у меня програма не работает? Где ошибки? | vova_makarovych | Общие вопросы C/C++ | 4 | 22.09.2010 18:27 |
Где тут ошибки? | серг | Помощь студентам | 3 | 03.11.2009 11:38 |
Задачи на матрицу ... Подскажите,где ошибки | JiLiYa | Помощь студентам | 3 | 10.03.2009 12:09 |
Проверьте плиз где то ошибки | ТРОЯН=) | Помощь студентам | 2 | 06.02.2009 15:10 |
Подскажите где ошибки? Не работает программа на Паскале | ЯншинаВера | Помощь студентам | 1 | 21.05.2008 19:47 |