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

Ответы на вопрос

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.



To solve the given problem, we need to create a program that calculates the water level in a river after a certain number of hours during a flood. The initial water level in the river is "n" meters, and the water level increases by "R%" every hour.
Here's an example of how you can implement this program in Lazarus:
```pascal program WaterLevelCalculator;
uses SysUtils;
var initialLevel, rate, hours: Integer; finalLevel: Double;
begin // Read the initial water level, rate of increase, and number of hours from the user Write('Enter the initial water level (n): '); Readln(initialLevel);
Write('Enter the rate of increase (R%): '); Readln(rate);
Write('Enter the number of hours (N): '); Readln(hours);
// Calculate the final water level finalLevel := initialLevel * Power(1 + rate / 100, hours);
// Display the final water level Writeln(Format('The water level after %d hours will be %.2f meters.', [hours, finalLevel]));
// Wait for user input before closing the program Readln; end. ```
In this program, we use the `Power` function from the `SysUtils` unit to calculate the exponential growth of the water level. The formula used is `finalLevel = initialLevel * (1 + rate / 100) ^ hours`.
Please note that this is just one possible implementation of the program. You can modify it according to your specific requirements or programming style.
I hope this helps! Let me know if you have any further questions.


Похожие вопросы

Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili