Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 28.05.2012, 18:21   #1 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Листинг, программа

Помогите объяснить каждую команду пожалуйста

Задача 1:
сделать мигающий квадрат.. Т.е в центре экрана появляется квадрат, затем исчезает, затем появляется другой, но уже другого цвета и другого размера, затем исчезает, затем другой и т.д. Это продолжается, пока пользователь не нажмет Esc.

Program pr1;
Uses CRT, graph;
var gd,gm:integer;
n,x1,y1,x2,y2,i:integer;
a:char;

Begin
gd:=0;
Initgraph(gd,gm,'c:\TP7\bgi');

While not keypressed do
begin
n:=random(100);
x1:=320-n;
y1:=240-n;
x2:=320+n;
y2:=240+n;

i:=random(16);
Setcolor(i);
Rectangle(x1,y1,x2,y2);
Delay(200);
Setcolor(0);
Rectangle(x1,y1,x2,y2);
end;

Readkey;
Closegraph;
End.
Altana вне форума   Ответить с цитированием

Старый 28.05.2012, 18:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные ссылки могут раскрыть ваши глаза на решение проблемы

Программа на Си
Нужен листинг программы и блок-схема
Листинг, программа №2
Программа на С

Старый 28.05.2012, 19:24   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Altana Посмотреть сообщение
Помогите объяснить каждую команду пожалуйста
Altana, в чем дело? Ведь только что "по косточкам" разобрали эту эту задачку здесь, и всё вроде было хорошо и понятно, так теперь опять двадцать пять здрасьте приехали?
Vladimir_S вне форума   Ответить с цитированием
Старый 28.05.2012, 20:00   #3 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да да, я это помню, но мой преподаватель сказал переделать эту задачу с другими командами, более простыми... вот что поделать)
Altana вне форума   Ответить с цитированием
Старый 28.05.2012, 20:14   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Altana Посмотреть сообщение
Да да, я это помню, но мой преподаватель сказал переделать эту задачу с другими командами, более простыми... вот что поделать)
Ну хорошо, "более простыми", но что непонятно-то? Алгоритм остался ровно тем же, только что в явном виде заданы длины и координаты... а так...
Vladimir_S вне форума   Ответить с цитированием
Старый 28.05.2012, 20:18   #5 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я отстаивала ту задачу как могла)) Но она у нас оооочень вредная.. -_-
Altana вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 29.05.2012, 12:27   #6 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

поможете, м? пожалуйста) с момента 'while....'
Altana вне форума   Ответить с цитированием
Старый 29.05.2012, 12:47   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Altana Посмотреть сообщение
поможете, м? пожалуйста) с момента 'while....'
Абсолютно не вижу принципиальной разницы с предыдущим вариантом, ну да ладно:
While not keypressed do {Цикл до нажатия любой клавиши}
begin {Начало цикла}
n:=random(100); {Задание полустороны квадрата случайным образом в диапазоне 0..99 пикселов}
x1:=320-n; {Определение X-координаты левого верхнего угла квадрата}
y1:=240-n; {Определение Y-координаты левого верхнего угла квадрата}
x2:=320+n; {Определение X-координаты правого нижнего угла квадрата}
y2:=240+n; {Определение Y-координаты правого нижнего угла квадрата}

i:=random(16); {Выбор цвета квадрата путем случайного задания индекса от 0 до 15}
Setcolor(i); {Установка выбранного цвета}
Rectangle(x1,y1,x2,y2); {Рисование квадрата}
Delay(200); {Задержка на 0.2 секунды}
Setcolor(0); {Установка фонового цвета}
Rectangle(x1,y1,x2,y2); {Рисование того же квадрата фоновым цветом. Квадрат исчезает}
end; {Конец цикла}

Readkey; {В таком варианте - абсолютно лишняя команда. Можете убрать}
Closegraph; {Выход из графического режима}
End. {Глобальное ВСЁ!}
Vladimir_S вне форума   Ответить с цитированием
Старый 29.05.2012, 12:51   #8 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

благодарю вас))
Altana вне форума   Ответить с цитированием
Старый 29.05.2012, 12:53   #9 (permalink)
Altana
Member
 
Аватар для Altana
 
Регистрация: 12.04.2012
Сообщений: 28
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ааа.. можно ещё вопрос))
Почему в начале цикла:
"While not keypressed do"
я не могу написать:
"While ord(a)=27"?
в описании переменных добавила переменную a:char.. что тут не так?
Altana вне форума   Ответить с цитированием
Старый 29.05.2012, 12:56   #10 (permalink)
Daniellos
Хозяин Медной Горы
 
Аватар для Daniellos
 
Регистрация: 01.08.2011
Адрес: Армавир
Сообщений: 12,159
Записей в дневнике: 8
Сказал(а) спасибо: 751
Поблагодарили 88 раз(а) в 27 сообщениях
Репутация: 57416
По умолчанию

Удл. сообщение, т.к. дублирует предыдущее
Daniellos вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:45.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.