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

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

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

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

Сообщение vip210 » 13.05.2015 12:47:34

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.
Вложения
ракета.jpg
ракета летит вверх, а потом возвращается снизу и опять летит вверх и так далее)))
vip210
незнакомец
 
Сообщения: 2
Зарегистрирован: 13.05.2015 12:37:31

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

Сообщение zub » 13.05.2015 12:50:23

Ты крут!
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение MiniQ » 13.05.2015 12:55:33

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

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

Сообщение sign » 14.05.2015 07:31:26

А может, товарища заморозили лет эдак двадцать назад?
А тут разморозили и он спосонок ещё не врубился?
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

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

Сообщение serg_iv » 14.05.2015 09:33:59

товарищ учится, и это есть очень хорошо
serg_iv
постоялец
 
Сообщения: 276
Зарегистрирован: 15.10.2005 18:45:46
Откуда: Миасс

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

Сообщение resident » 14.05.2015 15:04:23

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

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

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

Сообщение pupsik » 14.05.2015 17:37:32

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

п.с.
Себя ужо, небось, забыли. И "прямоту" кода то же :lol:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение dedm0zaj » 14.05.2015 18:08:31

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

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

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

Сообщение pupsik » 14.05.2015 21:04:08

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

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

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

Сообщение sign » 15.05.2015 09:05:56

Не понимаю, чего боятся некоторых конструкций языка?

Я вот так всегда пишу, удобно и всё ясно:
Код: Выделить всё
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;
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

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

Сообщение pupsik » 15.05.2015 14:59:45

А кто его знает. Писал на глаз.
Код: Выделить всё
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;
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение Дож » 15.05.2015 17:05:17

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

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

Сообщение pupsik » 15.05.2015 17:46:02

нет... Это набросок, а не реализация.
Вопрос иного характера.
Но..о, если вы считаете что то что я написал супер выход. Уря...я "Я есть Брут". :mrgreen:
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение Дож » 15.05.2015 17:52:56

А в чём вопрос тогда и что демонстрирует этот код? Чтобы показать, что без Exit можно обойтись? Это и так очевидно, от выбрасывания из языка Exit он не перестаёт быть тьюринг-полным.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

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

Сообщение pupsik » 15.05.2015 18:05:50

Хотите пообщаться? Есть лс, можно новую тему создать. В который то раз. Но вот "наезды" на новичка (который, возможно, несколько часов убил на свою ракету), да и на других - не является данной темой ветки.
Написал, выложил - замечательно. А то что я хотел показать в плане вопроса - не важно. Это уже треп и флуд.
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

След.

Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru