Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.05.2010, 17:09
azamatom azamatom вне форума
Прохожий
 
Регистрация: 29.05.2010
Сообщения: 7
Репутация: 10
По умолчанию Укажите ошибки пожалуйста!

1. Определить силу притяжения F между телами массы m1 и m2, нахо-дящимися на расстоянии r друг от друга:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
G:real;//Гравитационная постоянная
m1,m2,R:real;//m1 тела1,m2 тела1,R-расстояние м/у телами.
F:real;//сила притяжения.
begin
G:=6.67;
m1:=StrToFloat(Edit1.Text);
m2:=StrToFloat(Edit2.Text);
R:=StrToFloat(Edit3.Text);
begin
F:=G*(m1*m2)/sqr(R);
end;
Edit4.Text:='Сила притяжения равна  =  '+FloatToStr(F)   +   '* 10^11';
end;
end.

2. Даны действительные числа a, b, c, d.
Если a <= b <= c <= d, то каждое число заменить наибольшим из них;
если a > b > c > d, то числа оставить без изменения; в противном случае все числа заменяются их квадратами.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..4] of real;
max:real;
i:integer;
begin
a:=StrToFloat(StringGrid1.Cells[i-1,0]);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
d:=StrToFloat(Edit4.Text);
if(a<=b) and (b<=c) and (c<=d) then
begin
max:=a;
for i:=2 to 4 do if (max<=a[i]) then max:=a[i];
for i:=1 to 4 do a[i]:=max;
end else
if (a>b) and (b>c) and (c>d) then goto 1
else
for i:=1 to 4 do a[i]:=a[i]*a[i];
for i:=1 to 4 do
Memo1.Cells:=FloatToStr(a[i])+#13;
end;
end.

3. Даны натуральные числа m и n . Найти такие натуральные p и g , не имеющие общих делителей, что p/g = m/n .
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
m,n,p,g:integer;
begin
m:=StrToInt(Edit1.Text);
n:=StrToInt(Edit2.Text);
end;
Label3.Caption:=IntToStrF('Натуральные p и g' = ' p/g = m/n')+#13;
end.

4. Одномерные массивы.
Составить таблицу стоимости порций сыра весом 50, 100, 150, ..., 1000 г (цена 1 кг 3 руб.).
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
x:array[1..10] of integer;
cena:real;//цена за 1 кг=1000г.
begin
cena:=3;
x[i]:=StrToInt(StringGrid1.Cells[i-1,0]);
For i:=1 to 10 do
begin
StringGrid2.Cells[i-1,0]:=IntToStr('Цена за',x[i],'г сыра = ',cena*x[i]/1000');
inc(x[i],50);
end;
end;
end.
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 29.05.2010 в 18:51.
Ответить с цитированием
  #2  
Старый 29.05.2010, 17:16
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Вы уверены, что 10^11? Может 10^-11 ?
и потом постоянная планка = 6.67300
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 29.05.2010, 17:17
azamatom azamatom вне форума
Прохожий
 
Регистрация: 29.05.2010
Сообщения: 7
Репутация: 10
По умолчанию

Да так и есть 10^-11 .А как насчет ошибок?
Ответить с цитированием
  #4  
Старый 29.05.2010, 17:19
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Это пока, то что сразу в глаза бросилось.

Не столько ошибка сколько непонятка. Зачем нужны begin end ?
Цитата:
begin
F:=G*(m1*m2)/sqr(R);
end;

В упор не нашел куда вы программу отсылаете:
Цитата:
f (a>b) and (b>c) and (c>d) then goto 1

А в 4-задаче я из принципа придрался бы, к типу вашего массива. Это частный случай, что у вас без дробной части получается цена за 1 грамм.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 29.05.2010 в 17:30.
Ответить с цитированием
  #5  
Старый 29.05.2010, 17:31
azamatom azamatom вне форума
Прохожий
 
Регистрация: 29.05.2010
Сообщения: 7
Репутация: 10
По умолчанию

Так же по моему не правильно.
1. Определить силу притяжения F между телами массы m1 и m2, нахо-дящимися на расстоянии r друг от друга:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
G:real;//Гравитационная постоянная
m1,m2,R:real;//m1 тела1,m2 тела1,R-расстояние м/у телами.
F:real;//сила притяжения.
begin
G:=6.673;
m1:=StrToFloat(Edit1.Text);
m2:=StrToFloat(Edit2.Text);
R:=StrToFloat(Edit3.Text);
F:=G*m1*m2/sqr(R);
Edit4.Text:='Сила притяжения равна = '+FloatToStr(F) + '* 10^-11';
end;
end.

2.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
a:array[1..4] of real;
max:real;
i:integer;
begin
a:=StrToFloat(StringGrid1.Cells[i-1,0]);
b:=StrToFloat(Edit2.Text);
c:=StrToFloat(Edit3.Text);
d:=StrToFloat(Edit4.Text);
if(a<=b) and (b<=c) and (c<=d) then
begin
max:=a;
for i:=2 to 4 do if (max<=a[i]) then max:=a[i];
for i:=1 to 4 do a[i]:=max;
end else
if (a>b) and (b>c) and (c>d) then goto 1
else
for i:=1 to 4 do a[i]:=a[i]*a[i];
1:for i:=1 to 4 do
Memo1.Cells:=FloatToStr(a[i])+#13;
end;
end.
Admin: Пользуемся тегами!

Последний раз редактировалось Admin, 29.05.2010 в 18:53.
Ответить с цитированием
  #6  
Старый 29.05.2010, 17:33
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

А вы мне можете внятно объяснить, зачем вы F:=G*(m1*m2)/sqr(R); в первоначальном варианте взяли в программные скобки?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025