Об игре
Новости
Войти
Регистрация
Рейтинг
Форум
11:48
3962
 online
Требуется авторизация
Вы не авторизованы
   Форумы-->Форум для внеигровых тем-->
1|2

АвторЗадача по дельфи
Нужна помощь.
Задача по циклу.
Рыболовное судно имеет план отлова в размере D тонн. В первый день выловили А тонн рыбы, а в каждый последующий на С тонн больше. Определить в какой день будет выполнен план отлова.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, l, s:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
l:=1;
s:=b+c;
while s>a do
b:=b+c;
l:=l+1;
s:=s+(b+c);
end;
Label4.caption:=inttostr(l);

end;

end.
Где я ошибся?
while s>a do
b:=b+c;


между ними begin, не?
s:=s+(b+c); Кажется здесь
между ними begin, не?
не
Кажется здесь
что именно?
var
но-но, я не при делах!
для Mangecu:
В цикле с вычислением улова пипец какой-то
для Раздетая:
сам знаю. Я ток вчера учил цикл. Пока сам не совсем правильно разобрался. У меня с телом цикла и с началом коряво.
А - это план конечный.
Б - это отлов в 1 день
С - это увеличение отлова в день
Программирую на С++, держи решение, задачка на уровне 5 класса школы любой.))
#include <iostream>
using namespace std;
int main(){
int a,b,c,i,d,k=1;
cin>>a>>b>>c;
i=a; d=a;
while(i<c){
d+=b;
i+=d;
k++;}
cout<<k<<endl;
system("pause");
}

Где: а-вылов за 1 день. b-увеличение вылова. с-нужное кол-во.
s:=b;
while s<a do
b:=b+c;
l:=l+1;
s:=s+b;
end;

Вроде так
только мое решение идет на рассчет того, что на С тонн постоянное увеличение, аля арифметическая прогрессия, если не так, то с цикла просто одна строчка удаляется.
А компилятор не говорит, в чем ты ошибся?
ошибка какого типа: не запускается или считает неверно?
для Cropon:
мне не С++ =)
для Раздетая:
по твоему запросу делфи завис хД
для Gult:
для Falcor:
ошибки по методу Раздетой нету, но дельфи виснет. приходится ctrl+f2 жать...
Все работает теперь =)
while s<a do
тут надо было s>a =)
while s>a do begin
b:=b+c;
l:=l+1;
s:=s+(b+c);
end;

Поверь уж старому паскальщику :)
while А как оперетор читается? Я думала что (Пока s<a выполнять ...)
while s>a do begin
b:=b+c;
l:=l+1;
s:=s+(b+c);
end;
Поверь уж старому паскальщику :)


begin не нужен когда один оператор в цикле.... вроде так
для Раздетая:
Так там-то их три! Был бы один - было бы зацикливание, условие-то от него не меняется. И потом, к чему тогда относится последний end?
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, l, s:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
l:=1;
s:=b;
begin
while s>a do
b:=b+c;
l:=l+1;
s:=s+b;
end;
Label4.caption:=inttostr(l);

end;

end.

Вот как правильно. Пашет все правильно.
для ПсинаАдская:
17 я там с тобой соглашалась, за одно уточняла когда писать begin не надо

для Mangecu:
Попробуй всё таки вот так

procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, l, s:integer;
begin
a:=strtoint(edit1.text);
b:=strtoint(edit2.text);
c:=strtoint(edit3.text);
l:=1;
s:=b;
while s<a do
begin
b:=b+c;
l:=l+1;
s:=s+b;
end;
Label4.caption:=inttostr(l);

end;

end.


Хотя может я в логике оператора while ошибаюсь
1|2
К списку тем
2007-2025, онлайн игры HeroesWM