|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Напишите программу, запрашивающую у тренера сбор-ной по лыжам время в минутах Добрый день помогите написать программку Что нужно знать для выполнения работы: 1. Компоненты страниц Standard и Additional, их назначение, свойства, методы. 2. Обработка событий. Напишите программу, запрашивающую у тренера сбор-ной колледжа по лыжам время в минутах и секундах (с точностью до сотых долей секунды) трех победителей 10-километровой гонки. Если какие-то результаты различаются меньше, чем на секунду, напечатать: ВОТ ТАК БОРЬБА ШЛА ЗА _________________ МЕДАЛЬ! Изобразите в виде гистограммы время трех призеров. Попробовал через MaskEdit вводить время , но дальше не продвинулся, не знаю как через function MilliSecondsBetween(const ANow, AThen: TDateTime): Int64 ,выводить сообщение о борьбе за 1 или 2-ую медаль Кидаю свои наработки | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Ну, типа: Код: var
  // Результаты 1-3 места
  AResults : Array [1..3] Of TDateTime;
function CheckResults(I, J : Integer; Medal : String) : String;
const
   cMsg = 'ВОТ ТАК БОРЬБА ШЛА ЗА %s МЕДАЛЬ';
begin
  Result := '';
  If MilliSecondsBetween(AResults[i],AResults[J]) < 1000 Then
    Result := Format(cMsg,[Medal]);
end;Использование: Код: WriteLn(CheckResults(1,2,'ЗОЛОТУЮ')); WriteLn(CheckResults(2,3,'СЕРЕБРЯННУЮ')); | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
vincentblake (14.02.2017)
 | ||
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   попробовал использовать ,но что-то ничего не происходит,не выводит сообщение,можешь подсказать что куда правильно распихать? Код: unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series,DateUtils;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Button2: TButton;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Edit4: TEdit;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Button3: TButton;
    Label11: TLabel;
    Label12: TLabel;
    Button4: TButton;
    Chart1: TChart;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Edit7: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Series1: TBarSeries;
    Series2: TBarSeries;
    Series3: TBarSeries;
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
  function CheckResults(I, J : Integer; Medal : String) : String;
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  x,y,z,res:integer;
  AResults : Array [1..3] Of TDateTime;
implementation
{$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
begin
 close;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
 Edit1.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
 Edit4.Text:='';
 Edit5.Text:='';
 Edit6.text:='';
 Label4.Caption:='';
 Label11.Caption:='';
 Label12.Caption:='';
 Edit7.Text:='';
 Edit8.Text:='';
 Edit9.Text:='';
 Series1.Clear;
 Series2.Clear;
 Series3.Clear;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Series1.Clear;
Series2.Clear;
Series3.Clear;
x:=strtoint(edit1.text);        //берем минуты
y:=strtoint(edit6.text);        //берем секунды
z:=strtoint(edit7.text);        //берем милисекунды
res:=x*6000+(y*100)+z;         //переводим все в миллисекунды и пишем в переменную result
Chart1.Series[0].AddXY(0,res);    //добавляем интервал от 0 до result на график
//аналогично для других призеров
x:=strtoint(edit3.text);
y:=strtoint(edit4.text);
z:=strtoint(edit8.text);
res:=x*6000+(y*100)+z;
Chart1.Series[1].AddXY(0,res);
x:=strtoint(edit5.text);
y:=strtoint(edit2.text);
z:=strtoint(edit9.text);
res:=x*6000+(y*100)+z;
Chart1.Series[2].AddXY(0,res);
end;
function TForm1.CheckResults(I, J: Integer; Medal: String): String;
const
   cMsg = 'ВОТ ТАК БОРЬБА ШЛА ЗА %s МЕДАЛЬ';
begin
    Result := '';
  If MilliSecondsBetween(AResults[i],AResults[J]) < 1000 Then
    Result := Format(cMsg,[Medal]);
      WriteLn(CheckResults(1,2,'ЗОЛОТУЮ'));
    WriteLn(CheckResults(2,3,'СЕРЕБРЯННУЮ'));
end;
end.Последний раз редактировалось vincentblake, 14.02.2017 в 21:48. | 
| 
			 
			#4  
			
			
			
			
		 | |||
| 
 | |||
|   мля, конечно не выводит. я ж для консоли сделал. ну и не считая того, что ты просто тупо воткнул мой код даже не подумав. Удивительно, если это вообшще скомпилилось. Ну и вообще, где у тебя заполнение массива? и где вызов функции? | 
| 
			 
			#5  
			
			
			
			
		 | |||
| 
 | |||
|   Цитата: 
 На данном этапе я понятия не имею как сделать вывод сообщения если разница меньше секкунды(знаю что есть функция MilliSecondsBetween)но вот как использовать... | 
| 
			 
			#6  
			
			
			
			
		 | |||
| 
 | |||
|   Ну, например, так что-ли... Код: var
  AResults : Array [1..3] Of Int64;
procedure TForm1.Button2Click(Sender: TObject);
begin
Series1.Clear;
Series2.Clear;
Series3.Clear;
x:=strtoint(edit1.text);        //берем минуты
y:=strtoint(edit6.text);        //берем секунды
z:=strtoint(edit7.text);        //берем милисекунды
res:=x*6000+(y*100)+z;         //переводим все в миллисекунды и пишем в переменную result
AResults[1] := res;
Chart1.Series[0].AddXY(0,res);    //добавляем интервал от 0 до result на график
 
 
 
//аналогично для других призеров
x:=strtoint(edit3.text);
y:=strtoint(edit4.text);
z:=strtoint(edit8.text);
res:=x*6000+(y*100)+z;
AResults[2] := res;
Chart1.Series[1].AddXY(0,res);
 
x:=strtoint(edit5.text);
y:=strtoint(edit2.text);
z:=strtoint(edit9.text);
res:=x*6000+(y*100)+z;
AResults[3] := res;
Chart1.Series[2].AddXY(0,res);
 
    ShowMessage(CheckResults(1,2,'ЗОЛОТУЮ'));
    ShowMessage(CheckResults(2,3,'СЕРЕБРЯННУЮ'));
end;
 
function TForm1.CheckResults(I, J: Integer; Medal: String): String;
const
   cMsg = 'ВОТ ТАК БОРЬБА ШЛА ЗА %s МЕДАЛЬ';
begin
  Result := '';
  If Abs(AResults[i]-AResults[J]) < 1000 Then
    Result := Format(cMsg,[Medal]);
end;1. Поправил тип в массиве 2. Добавил заполнение массива в твою процедуру и вывод сообщений 3. Поправил функцию | 
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
|  
vincentblake (15.02.2017)
 | ||
| 
			 
			#7  
			
			
			
			
		 | |||
| 
 | |||
|  Помогите написать прогу Всем добрый вечер, помогите кому не сложно с задачкой, условие которой звучит так:  Задана матрица В каждом столбце матрицы найти произведение четных элементов, и записать их в одномерный массив, если таких элементов нет , то обнулить всю матрицу. В одномерном массиве определить среднее арифметическое полодительных элементов. Если таких нет, то вывести соответсвующее сообщение. Упорядочить массив по убыванию. Заранее спасибо за помощь) Последний раз редактировалось Nikman, 17.02.2017 в 22:56. |