|
|
Регистрация | << Правила форума >> | 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. |