Предмет: Информатика, автор: sophiamyluk8


Працюємо за комп'ютером
Завдання. Створіть проект для розв'язування
задачi: Перед початком повені рівень води у річці
становив н м. Під час повенi кожну годину рiвень
води зростав на Р % від рівня попередньоï години.
Яким буде рiвень води через N годин після
початку повені? (Програма повинна перевіряти
правильність заповнення полів)

Ответы

Автор ответа: mixail0809
0

unit Main;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 { TForm1 }

 TForm1 = class(TForm)

   Button1: TButton;

   Edit1: TEdit;

   Edit2: TEdit;

   Edit3: TEdit;

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Memo1: TMemo;

   procedure Button1Click(Sender: TObject);

 private

   function CalculateWaterLevel(startLevel: Double; growthRate: Double; hours: Integer): Double;

   function ValidateInput(): Boolean;

 public

   { public declarations }

 end;

var

 Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

function TForm1.ValidateInput(): Boolean;

var

 startLevel, growthRate: Double;

 hours: Integer;

begin

 Result := True;

 if not TryStrToFloat(Edit1.Text, startLevel) or (startLevel < 0) then

 begin

   ShowMessage('Please enter a valid starting water level (a non-negative number)');

   Result := False;

   Exit;

 end;

 if not TryStrToFloat(Edit2.Text, growthRate) or (growthRate < 0) then

 begin

   ShowMessage('Please enter a valid growth rate (a non-negative number)');

   Result := False;

   Exit;

 end;

 if not TryStrToInt(Edit3.Text, hours) or (hours < 0) then

 begin

   ShowMessage('Please enter a valid number of hours (a non-negative integer)');

   Result := False;

   Exit;

 end;

end;

function TForm1.CalculateWaterLevel(startLevel: Double; growthRate: Double; hours: Integer): Double;

begin

 Result := startLevel * Power((1 + growthRate / 100), hours);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

 startLevel, growthRate: Double;

 hours: Integer;

 waterLevel: Double;

begin

 if ValidateInput() then

 begin

   startLevel := StrToFloat(Edit1.Text);

   growthRate := StrToFloat(Edit2.Text);

   hours := StrToInt(Edit3.Text);

   waterLevel := CalculateWaterLevel(startLevel, growthRate, hours);

   Memo1.Lines.Add(Format('After %d hours, the water level will be %.2f meters', [hours, waterLevel]));

 end;

end;

end.

Похожие вопросы
Предмет: Информатика, автор: 23039333
ПОМОГИТЕ ДАЮ МНОГО БАЛЛОВ

1. С помощью анализа научных фактов опровергнуть или доказать: 1) что новые сложные и быстродействующие компьютеры смогут вос- произвести все аспекты сознательной личности; 2) что у компьютера могут быть осознанные мысли, эмоции и чувствен- ные восприятия, аналогичные человеческим; 3) мнение Стивена Хокинга о том, что развитие технологий искусствен- ного интеллекта в будущем приведет к гибели человечества; 4) что развитие технологий искусственного интеллекта предполагает исчезновение ряда профессий, однако их использование приведет к бурному развитию других отраслей; 5) что раздел математики - формальная логика - доказывает, что невоз- можно создать компьютер, который смог бы найти ответ на любой вопрос; 7) 6) что компьютер никогда не сможет создать что-либо оригинальное или удивительное, он делает только то, что заложено в его программу; что так как поведение компьютера управляется правилами, то заведо- мо будут существовать ситуации, когда он окажется беспомощен или допустит ошибку; 8) что люди слишком сильно начали доверять искусственному интеллек- ту и перестали пользоваться тем, что дала природа; 9) что изобретатели компьютеров и первые программисты развлека- лись, составляя программы для сочинения музыки, решения голово- ломок и для игр: 10) что появление персональных роботов, призванных облегчить жизнь человеку, а где-то даже одушевить ее, в настоящий момент ждут в си- стеме здравоохранения и в образовательной сфере.​
Предмет: Информатика, автор: bogdanaurina33
Предмет: Английский язык, автор: Аноним