Твой софтовый форум > Тематические форумы > Программирование

Помогите пожалуйста по Delphi...

Дата публикации: 11.06.2009 - 12:34
Nattttt
помогите пожалуйста отладить модифицированную программу "Скорость бега" в Delphi.
ПОЖАЛУЙСТА ОЧЕНЬ НАДО!
Заранее огромное спасибо!

вот код:

unit vrun1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// щелчок на кнопке Вычислить
procedure TForm1.Button1Click(Sender: TObject);
var
dist : integer; // дистанция, метров
t: real; // время, как дробное число

min : integer; // время, минуты
sek : integer; // время, секунды

v: real; // скорость
begin
// получить исходные данные из полей ввода
dist := StrToInt(Edit1.Text);
t := StrToFloat(Edit2.Text);

// предварительные преобразования
min := Trunc(t); // кол-во минут - это целая часть числа t
sek := Trunc(t*100) mod 100; // кол-во секунд - это дробная часть числа t

// вычисление
v := (dist/1000) / ((min*60 + sek)/3600);

// вывод результата
label4.Caption := 'Дистанция: '+ Edit1.Text + ' м' + #13 +
'Время: ' + IntToStr(min) + ' мин ' +
IntToStr(sek) + ' сек ' + #13 +
'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

// щелчок на кнопке Завершить
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;

// нажатие клавиши в поле Дистанция
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// Key - символ, соответствующий нажатой клавише.
// Если символ недопустимый, то процедура заменяет его
// на символ с кодом 0. В результате этого символ в поле
// редактирования не появляется и у пользователя создается
// впечатление, что программа не реагирует на нажатие некоторых
// клавиш.
case Key of
'0'..'9': ; // цифра
#8 : ; //
#13 : Edit2.SetFocus ; //

// остальные символы - запрещены
else Key :=Chr(0); // символ не отображать
end;
end;



procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
'0'..'9': ; // цифра

',','.' :
// точка или запятая
begin
if Key = '.' then Key := ','; // подменим точку запятой
// проверим, есть ли в поле Edit2 запятая
if Pos(',',Edit2.Text) <> 0 // запятая уже есть
then Key:=Char(0); // вторую запятую не отображать
end;

#8 : ; //

// остальные символы - запрещены
else Key :=Chr(0); // символ не отображать
end;
end;

end.
ohmy.gif ohmy.gif
de1ay
Цитата | Quote(Nattttt @ 22.12.2008 - 12:18)
отладить
*
"Отладка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки." wiki.
Ошибки в синтаксисе тебе дельфи укажет, ошибки в логике отладчик. Слишком специфические задачи, если не быть автором программы и знать как она должна работать.

Возможно тебе надо её собрать в .ехе? Если да, то этот процесс называется компиляцией (для дельфи).
Nattttt
извините за глупый вопрос.
т.е. надо отладку сделать это надо проверить по написанному коду правильно ли программа выполняется? это можно сделать с помощью Step Over?
Nattttt
а как записать правильно условие нахождение 10! (факториала) в делфи?
de1ay
Nattttt, step over - отладка без захода в процедуры, step into - отладка с заходом в процедуры. Почитать можно здесь:


Цитата | Quote
а как записать правильно условие нахождение 10! (факториала) в делфи?


В виде функции:

Code
function FacIterative(n: Word): Longint;
var
f: LongInt;
i: Integer;
begin
f := 1;
for i := 2 to n do f := f * i;
Result := f;
end;


В виде модуля:

Code
unit factr;
interface
uses Math, Ap, Sysutils;

function Factorial(const N : Integer):Integer;

implementation

(****************
Функция вычисляет N!
****************)
function Factorial(const N : Integer):Integer;
var
   I : Integer;
begin
   i := 1;
   Result := 1;
   repeat
       Result := Result*i;
       i := i+1;
   until  not (i<=n);
end;


end.
Nattttt
вы можете пожалуйста помочь решить задачу (в делфи):

Даны действительные числа а1,...,а24. Получить последовательность в1,...,в10, где

в1=а1+а2+...а24,

в2=а12 +а22 +...+а242 , ...

в10=а110 +а210 +...+а2410 .
Nattttt
Пожалуйста помогите!!!!!!!!
Nattttt
Подскажите пожалуйста в паскале:
Вычислить значение f(x)=x+ln(x). Вывести на печеть таблицу из 5 значений функции.
Я написала код программы для первой части, вот он:

function Inln(x:real):real;

begin
Inln:=ln(x);
end;

var
a,x,y:real;
begin
writeln('Vvedite x');
readln(x);
a:=ln(x);
y:=x+a;
writeln('LN',a:6:3);
writeln('f(x)', y:6:3);

readln;
end.

Подскажите пожалуйста как вывести на печать таблицу из 5 значений функции? Что здесь имеется введу? Из одного введенного числа или надо вводить пять значений х и оформить их в виде таблицы?
x-foby
Скорее всего имелось ввиду, что ты введёшь пять чисел и оформишь таблицу, исходя из них))

То есть если, к примеру, записывать аргументы и значения в массивы Arg и Res соответственно, то саму таблицу выводить просто в цикле с пятью итерациями, где индекс элементов массивов - значение параметра цикла))
charodey_mag


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке: Помогите пожалуйста по Delphi...
SoftoRooM © 2004-2024