Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Светофор. Помогите пожалуста ламеру=), Ребят почему не работает else. 
V
    Опции темы
Sh0cK
Дата 4.4.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2009

Репутация: нет
Всего: нет



Код

program graf;
uses crt, graph;
var dr,mo:integer;
var a,i,z:integer;
var x,y:real;
ch:char;
begin
dr:=detect;
mo:=detect;initgraph(dr,mo,'');


setcolor (8);
line (400,400,200,400);
setcolor (8);
line (400,10,400,400);
setcolor (8);
line (200,10,200,400);
setcolor (8);
line (200,10,400,10);

for i:=1 do 150 do begin
a:=i;

if a>2
then
begin
setcolor (4);
circle (300,80,50);
end;
begin
else 
for z:=50 downto 1 do begin
setcolor (8);
circle (300,80,z);
end;

if a>50
then
begin
setcolor (4);
circle (300,200,50);
end;
begin
else 
for z:=50 downto 1 do begin
setcolor (8);
circle (300,80,z);
end;

if a>100
then
begin
setcolor (4);
circle (300,320,50);
end;
begin
else 
for z:=50 downto 1 do begin
setcolor (8);
circle (300,80,z);
end;

PM MAIL   Вверх
mopsa
Дата 4.4.2009, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 11.1.2009
Где: Екатеринбург/Асбе ст

Репутация: нет
Всего: 1



Sh0cK
попробуй так
Код

program graf;
uses crt, graph;
var dr,mo:integer;
var a,i,z:integer;
var x,y:real;
ch:char;

begin
dr:=detect;
mo:=detect;
initgraph(dr,mo,'');

setcolor (8);
line (400,400,200,400);
setcolor (8);
line (400,10,400,400);
setcolor (8);
line (200,10,200,400);
setcolor (8);
line (200,10,400,10);

for i:=1 do 150 do 
 begin
  a:=i;
  if a>2 then
   begin
    setcolor (4);
    circle (300,80,50);
   end
   else
   for z:=50 downto 1 do 
     begin
      setcolor (8);
      circle (300,80,z);
     end;

  if a>50 then
   begin
    setcolor (4);
    circle (300,200,50);
   end
   else
   for z:=50 downto 1 do 
    begin
     setcolor (8);
     circle (300,80,z);
    end;

  if a>100 then
   begin
    setcolor (4);
    circle (300,320,50);
  end
  else 
   for z:=50 downto 1 do 
    begin
     setcolor (8);
     circle (300,80,z);
    end;

PM MAIL   Вверх
hot_man
Дата 4.4.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 5.12.2007
Где: Россия, Тольятти

Репутация: нет
Всего: нет



просто else нужно поменять местами с выше стоящим begin)))
и begin засунуть под for 

Это сообщение отредактировал(а) hot_man - 4.4.2009, 17:20
PM MAIL ICQ   Вверх
Sh0cK
Дата 19.4.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2009

Репутация: нет
Всего: нет



Код

program graf;
uses crt, graph;
var dr,mo:integer;
var a,i,z:integer;
var x,y:real;
ch:char;
begin
dr:=detect;
mo:=detect;initgraph(dr,mo,'');


setcolor(8);
line (400,400,200,400);
setcolor(8);
line (400,10,400,400);
setcolor(8);
line (200,10,200,400);
setcolor(8);
line (200,10,400,10);

for i:=1 to 300 do begin
a:=i;

begin
if (a>2) and (a<50)
then
for z:=50 downto 1 do begin
setcolor(4);
circle (300,80,z);
setcolor(8);
circle (300,200,50);
setcolor(8);
circle (300,320,50);
end;


begin
if (a>50) and (a<100)
then
begin
 for z:=50 downto 1 do begin
 setcolor(6);
 circle (300,200,z);
 end;
begin
 setcolor(8);
 circle (300,80,50);
 for z:=49 downto 1 do begin
 setcolor(0);
 circle (300,80,z);
 end;
 setcolor(8);
 circle (300,320,50);
 end;


begin
if (a>100) and (a<150)
then
begin
 for z:=50 downto 1 do begin
 setcolor(2);
 circle (300,320,z);
 end;
begin
 setcolor(8);
 circle (300,200,z);
 for z:=49 downto 1 do begin
 setcolor(0);
 circle (300,80,z);
 end;
 setcolor(8);
 circle (300,80,50);
 end;




Ребят а почему у меня цикал до конца не доходит? Он на 150 обрываеца. Не могу не как найти ошибку. Помогите пожалуста.
PM MAIL   Вверх
volvo877
Дата 19.4.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Sh0cK, Что может обрываться в программе, которая не компилируется? Приводи программу полностью, а не этот обрывок...
PM MAIL   Вверх
Sh0cK
Дата 20.4.2009, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.4.2009

Репутация: нет
Всего: нет



Ну это не отрывок. В конце только end. 
Не хватает.
PM MAIL   Вверх
DroneZzZ
Дата 20.4.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.4.2009

Репутация: нет
Всего: нет



Я не стал с твоим кодом разбираться. Решил накидать светофор сам. Он работает как в реальной ситуации. Во что получилось:
Код

{Эмуляция светофора на Pascal}

{Выполнено Гадюковым Андреем aka Drone. 19.04.2009}

program trafficlight;

uses graph, crt;

var

gd,gm,i: Integer;

working: Boolean;

BEGIN



 gd:= detect;

 InitGraph(gd, gm,'');

 if GraphResult<>grOK

  then

   Halt(1);



 working:=true;

 SetLineStyle(0,0,3);

 Line(120,84,

      120,230);

 Line(100,230,

      140,230);

 Line(90,10,

      150,10);

 Line(90,84,

      150,84);

 Line(150,10,

      150,84);

 Line(90,10,

      90,84);

 Line(80,10,

      160,10);

 Line(80,10,

      80,20);

 Line(160,10,

      160,20);

 SetColor(red);

 Circle(120,25,10); {красный свет}

 SetColor(white);

 Circle(120,48,10); {желтный свет}

 SetColor(white);

 Circle(120,71,10); {зеленый свет}

 repeat

  while working= true do

   begin

    SetColor(Red);

    Circle(120,25,10);

    Delay(6000);

    SetColor(white);

    Circle(120,25,10);

    SetColor(yellow);

    Circle(120,48,10);

    Delay(3000);

    SetColor(white);

    Circle(120,48,10);

    SetColor(green);

    Circle(120,71,10);

    Delay(6000);

    for i:=1 to 5 do

     begin

    SetColor(white);

    Circle(120,71,10);

    Delay(600);

    SetColor(green);

    Circle(120,71,10);

    Delay(600);

    SetColor(white);

    Circle(120,71,10);

    Delay(200);

     end;

   end;

 until KeyPressed;

 readln;

 CloseGraph;

END.



Это сообщение отредактировал(а) DroneZzZ - 23.4.2009, 11:50
PM MAIL   Вверх
nastysmile2006
Дата 7.6.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 6.6.2009

Репутация: нет
Всего: нет



Ребят,а можно еще блок-схему к этому?!ПОЖАЛУЙСТА!!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.