( Вход | Регистрация | Поиск )

Помогите пожалуйста по Delphi..., Программирование
Дата обновления: 11.06.2009 - 12:34, перейти к новому сообщению

·Nattttt
Группа: Пользователи

Сообщений: 7
помогите пожалуйста отладить модифицированную программу "Скорость бега" в 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


Ответов(1 - 9)

·de1ay
Группа: Наши Люди

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

Возможно тебе надо её собрать в .ехе? Если да, то этот процесс называется компиляцией (для дельфи).


·Nattttt
Группа: Пользователи

Сообщений: 7
извините за глупый вопрос.
т.е. надо отладку сделать это надо проверить по написанному коду правильно ли программа выполняется? это можно сделать с помощью Step Over?


·Nattttt
Группа: Пользователи

Сообщений: 7
а как записать правильно условие нахождение 10! (факториала) в делфи?


·de1ay
Группа: Наши Люди

Сообщений: 4.437
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
Группа: Пользователи

Сообщений: 7
вы можете пожалуйста помочь решить задачу (в делфи):

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

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

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

в10=а110 +а210 +...+а2410 .


·Nattttt
Группа: Пользователи

Сообщений: 7
Пожалуйста помогите!!!!!!!!


·Nattttt
Группа: Пользователи

Сообщений: 7
Подскажите пожалуйста в паскале:
Вычислить значение 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
Группа: Наши Люди

Сообщений: 1.264
Скорее всего имелось ввиду, что ты введёшь пять чисел и оформишь таблицу, исходя из них))

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


·charodey_mag
Группа: Пользователи

Сообщений: 147