day & night

Помогите пожалуйста по Delphi..., Программирование
Дата обновления: , перейти к новому сообщению
#1
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


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

Ответов(1 - 9)
22.12.2008 - 14:04
#2
de1ay



профи!
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 4.437
Регистрация: 14.10.2005
Из: EU
Пользователь №: 1.010


Респектов: 613
-----XXXX-




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

Возможно тебе надо её собрать в .ехе? Если да, то этот процесс называется компиляцией (для дельфи).
User is offline
Go topGo end
22.12.2008 - 14:14
#3
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


извините за глупый вопрос.
т.е. надо отладку сделать это надо проверить по написанному коду правильно ли программа выполняется? это можно сделать с помощью Step Over?
User is offline
Go topGo end
22.12.2008 - 14:35
#4
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


а как записать правильно условие нахождение 10! (факториала) в делфи?
User is offline
Go topGo end
22.12.2008 - 14:46
#5
de1ay



профи!
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 4.437
Регистрация: 14.10.2005
Из: EU
Пользователь №: 1.010


Респектов: 613
-----XXXX-




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.
User is offline
Go topGo end
22.12.2008 - 15:25
#6
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


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

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

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

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

в10=а110 +а210 +...+а2410 .
User is offline
Go topGo end
22.12.2008 - 16:38
#7
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


Пожалуйста помогите!!!!!!!!
User is offline
Go topGo end
22.12.2008 - 19:40
#8
Nattttt



Новичок


Группа: Пользователи
Сообщений: 7
Регистрация: 22.12.2008
Пользователь №: 1.219.405


Респектов: 0
----------


Предупреждений:


Подскажите пожалуйста в паскале:
Вычислить значение 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 значений функции? Что здесь имеется введу? Из одного введенного числа или надо вводить пять значений х и оформить их в виде таблицы?
User is offline
Go topGo end
17.01.2009 - 7:54
#9
x-foby



Здесь моя Интернет-Родина
[SoftoRooMTeaM] Group Icon

Группа: Наши Люди
Сообщений: 1.264
Регистрация: 26.07.2006
Из: Анапа, Россия
Пользователь №: 20


Респектов: 286
-----XX---




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

То есть если, к примеру, записывать аргументы и значения в массивы Arg и Res соответственно, то саму таблицу выводить просто в цикле с пятью итерациями, где индекс элементов массивов - значение параметра цикла))
User is offline
Go topGo end
11.06.2009 - 12:34
#10
charodey_mag



Опытный юзверь
**

Группа: Пользователи
Сообщений: 147
Регистрация: 15.02.2007
Из: Opera
Пользователь №: 335.462


Респектов: 22
-----X----


Предупреждений:


User is offline
Go topGo end

Topic Options
Сейчас: 28.04.2024 - 20:55
Мобильная версия | Lite версия