Помощь - Поиск - Пользователи - Календарь
Полная версия: Как нарисовать дом
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
P.O.L.L.Y
Люди добрые!
Молю о помощи!!!
11 класс, никогда информатику не учила, а тут пришел злющий препод и права качает! norespect.gif
Пришлось браться за изучение паскаля. Что-то получается, но до нужного уровня еще не догоняю...

Задача очень простая!
Нужно нарисовать дом(квадрат, на нем треугольник - крыша), квадрат закрашен плюсиками, в нем маленькое окошко с рамой. Крыша, т.е. треугольник закрашен диагональными черточками. К тому же сбоку домика есть лестница. Дополнительно: труба, забор...

Для меня самое главное алгоритм!
Начало программы, где нужно код заливки вставлять, где код фигур и т.п.

Заранее спасибо!!!



мисс_граффити
Давай сначала решим один вопрос: ты хочешь РАЗОБРАТЬСЯ или сдать программку и забыть о ней?
Буду писать, ориентируясь на первый вариант.

Сначала просто нарисуем прямоугольничек, чтобы разобраться с частями программы.
program domik; //зарезервированное слово program и название нашей программки
uses graph,crt; //модули, которые мы используем. graph - собственно, для графики. из crt берем лишь readkey (см. ниже)
var gd,gr,err: integer; //переменные понадобятся для инициализации графического режима

begin
//определяем параметры инициализации графического режима
gd:=detect;
gr:=VGAHi;
InitGraph(gd,gr,''); //инициализируем графический режим
err:=GraphResult; //смотрим, не возникло ли ошибки
if err=grOk then //если ошибки не возникло
begin
Rectangle(10,10,100,100); //рисуем прямоугольник.
//первые два числа - координаты верхнего левого угла, вторые - правого нижнего (х и y соответственно)
readkey; //ждем, пока пользователь что-нибудь нажмет
closegraph; //закрываем графический режим
end;
end. //вот и все smile.gif



попробуй набрать (только не скопировать, а именно набрать... чтобы самой почувствовать каждую строчку) все кроме комментариев. и запустить...

по идее, нарисовался белый незакрашенный прямоугольничек. теперь зададим цвет линий и стиль/цвет заливки. Для этого непосредственно перед рисованием прямоугольника вставим такие строки:
  SetColor(2); //устанавливаем цвет для рисования
SetFillStyle(2,4); //задаем стиль (2) и цвет (4) заливки


коды цветов:
черный 0
синий 1
зеленый 2
бирюзовый 3
красный 4
малиновый 5
коричневый 6
светло-серый 7
темно-серый 8
голубой 9
ярко-зеленый 10
ярко-бирюзовый 11
ярко-красный 12
ярко-малиновый 13
желтый 14
белый 15

коды стилей так не могу назвать, но можешь просто сама поэкспериментировать. увидишь, где там сплошная заливка, где вертикальная штриховка....

после рисования прямоугольника сделаем следующее:
  FloodFill(20,20,2); //сама заливка

первые два числа - координата внутри прямоугольника, третье - код цвета границы заливаемой области.

в общем, пробуй...
продолжение следует (при необходимости)
P.O.L.L.Y
МИСС ГРАФФИТИ, Уааааа! Как круто написано!!!
Спасибо больше, что так ответственно подошла к моей проблеме!!!

Конечно хотелось бы разобраться в Паскале, поэтому сразу возникают вопросы)) хоть и примитивные, зато очень важные чисто для понимания дела))

Вот например такой

gd:=detect;
gr:=VGAHi;

Что стоит за этими обозначениями?
Сегодня мои одноклассники поголовно писали так
gd:=9;
gr:=1;


что они именли ввиду, они и сами не знали. Сказала просто ПИШИ ТАК!
а зачем?)))

Остальное вроде бы понятно)))
мисс_граффити
gd - графический драйвер,
gr - графический режим.

gd:=detect - автоматическое определение...
нашла такую таблицу констант, но правильность не гарантирую.
DETECT 0
CGA 1
MCGA 2
EGA 3
EGA64 4
EGAMONO 5
IBM8514 6
HERCMONO 7
ATT400 8
VGA 9
PC3270 10

gr (для VGA-режима) может принимать значения:
VGALo = 0
VGAMed = 1
VGAHi = 2
P.O.L.L.Y
Отлично! Просто замечательно!!!
Я все поняла!!! yes2.gif yes2.gif yes2.gif
Теперь дело за практикой))))
Еще раз ОГРОМЕННОЕ СПАСИБО!!! give_rose.gif good.gif
P.O.L.L.Y
Торжественно объявляю!!!
Здала информатику сегодня ДОМ!
Получила 10!!!!
Уууууууууррррраааааааааа!!!!!!!
мисс_граффити
А у вас скольки балльная система? 10 или 12?
P.O.L.L.Y
10
ыыыыыыы)))))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.