Страница 1 из 2

ракета(да она ещё и летает!)!

СообщениеДобавлено: 13.05.2015 12:47:34
vip210
program graf_raketa;
uses crt,graph;
var
d,m,x,y:integer;
k:char;
procedure raketa(x,y:integer);
begin
circle(x,y-15,10);
circle(x,y+15,10);
rectangle(x-20,y-40,x+20,y+40);
line(x-20,y-40,x,y-70);
line(x,y-70,x+20,y-40);
end;
begin
INITGRAPH(d,m,' ');
x:=500;
y:=700;
raketa(x,y);
repeat
setcolor(3);
raketa(x,y);
delay(100);
setcolor(0);
raketa(x,y);
y:=y-5;
if y=-70 then y:=770;
until keypressed;
readln;
end.

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 13.05.2015 12:50:23
zub
Ты крут!

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 13.05.2015 12:55:33
MiniQ
:mrgreen:

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 07:31:26
sign
А может, товарища заморозили лет эдак двадцать назад?
А тут разморозили и он спосонок ещё не врубился?

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 09:33:59
serg_iv
товарищ учится, и это есть очень хорошо

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 15:04:23
resident
sign писал(а):А может, товарища заморозили лет эдак двадцать назад?

Да не, тогда были бы и Label и Goto, как у одного из товарищей в текущем проекте с соседнем разделе форума :)
viewtopic.php?f=5&t=10281#p85861
viewtopic.php?f=5&t=10281#p85926

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 17:37:32
pupsik
ух... критОвщики :)))
Единственна критика, которая уместна - оформить код правильнее (тег).

п.с.
Себя ужо, небось, забыли. И "прямоту" кода то же :lol:

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 18:08:31
dedm0zaj
resident писал(а):Label и Goto

недавно использовал гото как выход из системы циклов. это было реально удобно.

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 14.05.2015 21:04:08
pupsik
реально удобно
значит ошибочка реализации, а не удобно. В любом цикле можно и без goto, exit, break. Сугубо мое мнение.

п.с.
Намедни писал мини-прогу на 2 к строк полезного кода. Единственный exit и то из-за собственной лени: влом if менять было (да и не существенный этот exit, да и заказчик не против :)).
п.с. п.с.
Хотя, уберу и его. А то карма испортится :mrgreen:

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 09:05:56
sign
Не понимаю, чего боятся некоторых конструкций языка?

Я вот так всегда пишу, удобно и всё ясно:
Код: Выделить всё
function TSheet.IconFocus: TIBase;
var i: Integer;
begin
  for i := 0 to FSBox.ControlCount-1 do
    if (FSBox.Controls[i] is TIBase) and (TIBase(FSBox.Controls[i]).Status=csFocus)
    then Exit(TIBase(FSBox.Controls[i]));
  Result := nil;
end;

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 14:59:45
pupsik
А кто его знает. Писал на глаз.
Код: Выделить всё
function TSheet.IconFocus: TIBase;
var
   i: Integer;
  a_a : boolean;
begin
  Result := nil;
  i := 0;
  a_a := False;
  repeat
    if FSBox.Controls[i] is TIBase) and (TIBase(FSBox.Controls[i]).Status=csFocus then
      a_a := True;
    inc(i);
  until a_a or i := FSBox.ControlCount-1;
if not a_a then
  Result := nil
    else
     Result := TIBase(FSBox.Controls[i]);
end;

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 17:05:17
Дож
pupsik, Вы сейчас на полном серьёзе утверждаете, что
(1) увеличив программу с 9 до 18 строк
(2) поменяв простой for-range цикл на repeat-until
(3) внеся новую булевскую переменную для хранения состояния
(4) добавив ещё один if,
Вы улучшили код, исправили ошибку реализации?

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 17:46:02
pupsik
нет... Это набросок, а не реализация.
Вопрос иного характера.
Но..о, если вы считаете что то что я написал супер выход. Уря...я "Я есть Брут". :mrgreen:

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 17:52:56
Дож
А в чём вопрос тогда и что демонстрирует этот код? Чтобы показать, что без Exit можно обойтись? Это и так очевидно, от выбрасывания из языка Exit он не перестаёт быть тьюринг-полным.

Re: ракета(да она ещё и летает!)!

СообщениеДобавлено: 15.05.2015 18:05:50
pupsik
Хотите пообщаться? Есть лс, можно новую тему создать. В который то раз. Но вот "наезды" на новичка (который, возможно, несколько часов убил на свою ракету), да и на других - не является данной темой ветки.
Написал, выложил - замечательно. А то что я хотел показать в плане вопроса - не важно. Это уже треп и флуд.