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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

vip210
незнакомец
Сообщения: 2
Зарегистрирован: 13.05.2015 11:37:31

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

Сообщение 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.
Вложения
ракета летит вверх, а потом возвращается снизу и опять летит вверх и так далее)))
ракета летит вверх, а потом возвращается снизу и опять летит вверх и так далее)))
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Ты крут!
MiniQ
новенький
Сообщения: 81
Зарегистрирован: 28.01.2013 16:31:55

Сообщение MiniQ »

:mrgreen:
sign
энтузиаст
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Сообщение sign »

А может, товарища заморозили лет эдак двадцать назад?
А тут разморозили и он спосонок ещё не врубился?
serg_iv
постоялец
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

Сообщение serg_iv »

товарищ учится, и это есть очень хорошо
resident
энтузиаст
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Сообщение resident »

sign писал(а):А может, товарища заморозили лет эдак двадцать назад?

Да не, тогда были бы и Label и Goto, как у одного из товарищей в текущем проекте с соседнем разделе форума :)
viewtopic.php?f=5&t=10281#p85861
viewtopic.php?f=5&t=10281#p85926
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

ух... критОвщики :)))
Единственна критика, которая уместна - оформить код правильнее (тег).

п.с.
Себя ужо, небось, забыли. И "прямоту" кода то же :lol:
dedm0zaj
постоялец
Сообщения: 108
Зарегистрирован: 05.10.2012 19:55:20

Сообщение dedm0zaj »

resident писал(а):Label и Goto

недавно использовал гото как выход из системы циклов. это было реально удобно.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

реально удобно
значит ошибочка реализации, а не удобно. В любом цикле можно и без goto, exit, break. Сугубо мое мнение.

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

Сообщение 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;
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение 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;
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

pupsik, Вы сейчас на полном серьёзе утверждаете, что
(1) увеличив программу с 9 до 18 строк
(2) поменяв простой for-range цикл на repeat-until
(3) внеся новую булевскую переменную для хранения состояния
(4) добавив ещё один if,
Вы улучшили код, исправили ошибку реализации?
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

нет... Это набросок, а не реализация.
Вопрос иного характера.
Но..о, если вы считаете что то что я написал супер выход. Уря...я "Я есть Брут". :mrgreen:
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

А в чём вопрос тогда и что демонстрирует этот код? Чтобы показать, что без Exit можно обойтись? Это и так очевидно, от выбрасывания из языка Exit он не перестаёт быть тьюринг-полным.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

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