|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
проблема с константами формата div и mov
задание было такое:
все считалось хорошо, когда u, r, z, k были числами проде 3, 1.5 и тп но задание требует R=55mod7+4 после ввода этих значений начались проблемы. точнее все сломалось по сути. пытался исправить с помощью констант - не помогло. помогите, пожалуйста. я сегодня первый раз вообще чем-то подобным занялся, просидел 6 часов за пк, все понял, практически, кроме того, что делать с числами mov и div вот мой код Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; edt1: TEdit; edt2: TEdit; btn1: TButton; lbl3: TLabel; btn2: TButton; lbl4: TLabel; procedure FormCreate(Sender: TObject); procedure btn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; x, y : Real; a, b : string; implementation {$R *.dfm} const z = '0,512'; k = 3; U = '43 - 13dir3'; R = '55mod7 + 4'; procedure TForm1.FormCreate(Sender: TObject); begin Edt1.Text:='0,512'; Edt2.Text:='3'; lbl1.Caption:='x='; lbl2.Caption:='y='; btn1.Caption:='Ïîñ÷èòàòü'; btn2.Caption:='Ïîñ÷èòàòü'; lbl3.Caption:='0'; lbl4.Caption:='0'; end; procedure TForm1.btn1Click(Sender: TObject); begin x:= StrToFloat(edt1.text); y:= StrToFloat(edt2.text); a:= (u*x/(r+3)+5)/abs(R-y/k); b:= (Sin(z+U))/(2,46+a*R) + power(r; 5)/(25*k); lbl3.Caption:=FloatToStr(a); lbl4.Caption:=FloatToStr(b); end; end. |
#2
|
||||
|
||||
Гхм. У тебя почти все переменные - строки. А теперь возьми листок, ручку, напиши слова "Привет" и "Мир" и попробуй поделить одно на другое. Или умножить, взять синус от какого-нибудь из них, возвести в степень. Получится? А компьютер пытаешься заставить это сделать.
Переменные должны быть числами для арифметических операций. В задании написаны арифметические выражения, которые надо посчитать. Для справки: div и mod - это целочисленное деление и остаток от деления, а не константы. jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 08.09.2012 в 21:46. |
#3
|
|||
|
|||
я же пишу, что до этого переменные были числами. и были записаны не в виде констант.
тогда задам свой вопрос проще: как мне записать и где z, k, U и R??? |
#4
|
|||
|
|||
объявить, там же, где объявлены x,y
присвоить им значения, там же, где вычисляются x,y >woweook< |
#5
|
|||
|
|||
R: = '55mod7 + 4';
так? но именно после этого, вроде как, у меня перестало все работать |
#6
|
||||
|
||||
Код:
R := 55 mod 7 + 4; Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
sycva (09.09.2012)
|
#7
|
|||
|
|||
Цитата:
Так: Код:
var R : Integer; begin R := (55 mod 7) + 4; ЗЫ. Упс... уже опередили |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
sycva (09.09.2012)
|
#8
|
||||
|
||||
Во-первых: Вы не правильно объявили константы. Нужно так:
Код:
const z = 0.512; k = 3; U = 43 - 13 div 3; R = 55 mod 7 + 4; В третьих: в строке Код:
b:= (Sin(z+U))/(2,46+a*R) + power(r; 5)/(25*k); P.S.: как много народу стало :-) Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
Этот пользователь сказал Спасибо Kailon за это полезное сообщение: | ||
sycva (09.09.2012)
|
#9
|
||||
|
||||
Цитата:
Кроме того, что вместо точки с запятой нужно запятая, ещё нужно вместо запятой - точка и возводить не в пятую степень, а в степень 1/5, так как по условию нужно вычислить корень, а не возведение в степень. Итого эта строчка будет такой: Код:
b := (Sin(z+U))/(2.46+a*R) + Power(r, 1/5)/(25*k); |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
sycva (09.09.2012)
|
#10
|
|||
|
|||
спасибо всем огромное! вечером переделаю все! простите за такое кол-во ошибок, вечером голова плохо уже соображала
|
#11
|
|||
|
|||
вроде бы как исправил все ошибки... но все равно ничего не работает
вот эту строку подсвечивает красным Код:
z:= 0,512; [Error] Unit1.pas(55): 'END' expected but ',' found хотя в принципе все 4 строки Код:
z:= 0,512; k:= 3; U:= 43 - (13 dir 3); R:= (55 mod 7) + 4; что я снова не так делаю? такое ощущение, что модуль math не подключается |
#12
|
||||
|
||||
Цитата:
|
#13
|
|||
|
|||
да, я пробовал прописать константы так же, как он советует. но и в этом случае эта строка все равно красной становится
|
#14
|
||||
|
||||
Цитата:
Цитата:
|
#15
|
|||
|
|||
|