Другие языки программирования и технологии
Помогите найти простое решение
На практике задали задачу, я ее решил, но надо как-нибудь укорочить размер решения, есть ли более простое решение? Вот текст program Aibar; Uses graph, crt; var d,m,x,y:integer; begin ClrScr; d:=detect; Initgraph(d,m, ''); If GraphResult<>grOk Then Halt(1); setcolor(2); Line ( 500, 200, 600, 100); Line ( 600, 100, 700, 200); Line ( 700, 200, 650, 200); Line ( 650, 200, 650, 300); Line ( 650, 300, 750, 300); Line ( 750, 300, 750, 250); Line ( 750, 250, 850, 350); Line ( 850, 350, 750, 450); Line ( 750, 450, 750, 400); Line ( 750, 400, 650, 400); Line ( 650, 400, 650, 500); Line ( 650, 500, 700, 500); Line ( 700, 500, 600, 600); Line ( 600, 600, 500, 500); Line ( 500, 500, 550, 500); Line ( 550, 500, 550, 400); Line ( 550, 400, 450, 400); Line ( 450, 400, 450, 450); Line ( 450, 450, 350, 350); Line ( 350, 350, 450, 250); Line ( 450, 250, 450, 300); Line ( 450, 300, 550, 300); Line ( 550, 300, 550, 200); Line ( 550, 200, 500, 200); readln; closegraph; end. Вообщем надо нарисовать вроде объемного крестика со стрелками на конце. Буду благодарен за помощь
В паскале не силен, но можешь сделать что то вроди такого:
Создаешь текстовый (или бинарный - как тебе удобнее) файл в папке с проектом. У него пихаешь столбиком кооррдинаты свои. Например так:
500,200,600,100
600,100,700,200
700,200,650,200
....и т. д.
1. В коде объявляешь массив integer'ов.
2. Далее в коде открываешь этот файл для чтения и добавляешь цикл (вместо кучи Line( ) ' ов) - который считывает вышеоткрытый файл построчно в строковую переменную (каждую итерацию цикла т. е. ) Т. е. на каждой итерации цикла в переменной у тебя будет строка типа "500,200,600,100".
3. Потом парсишь ее в 4 целых числа (тоже циклом) и пишешь их в той последовательности в которой они стояли в вышесозданный массив. Т. е. на протяжении цикла построчного чтения файла заполняешь массив по 4 элемента за итерацию.
4. Потом, когда массив заполнен и файл прочитан до конца, у тебя массив содержит сплошняком все координаты. Потом пишешь еще цикл который будет считывать из массива 4 значения и пихать их в Line( ). Все.
Кстати говоря пункт 4 можешь сделать в 3м этапе - т. е. сразу. Прочел строку, распарсил в 4 integer'а и нарисовал линию. Тогда и массив не нужен
Создаешь текстовый (или бинарный - как тебе удобнее) файл в папке с проектом. У него пихаешь столбиком кооррдинаты свои. Например так:
500,200,600,100
600,100,700,200
700,200,650,200
....и т. д.
1. В коде объявляешь массив integer'ов.
2. Далее в коде открываешь этот файл для чтения и добавляешь цикл (вместо кучи Line( ) ' ов) - который считывает вышеоткрытый файл построчно в строковую переменную (каждую итерацию цикла т. е. ) Т. е. на каждой итерации цикла в переменной у тебя будет строка типа "500,200,600,100".
3. Потом парсишь ее в 4 целых числа (тоже циклом) и пишешь их в той последовательности в которой они стояли в вышесозданный массив. Т. е. на протяжении цикла построчного чтения файла заполняешь массив по 4 элемента за итерацию.
4. Потом, когда массив заполнен и файл прочитан до конца, у тебя массив содержит сплошняком все координаты. Потом пишешь еще цикл который будет считывать из массива 4 значения и пихать их в Line( ). Все.
Кстати говоря пункт 4 можешь сделать в 3м этапе - т. е. сразу. Прочел строку, распарсил в 4 integer'а и нарисовал линию. Тогда и массив не нужен
Посмотрите в сторону процедуры DrawPoly
Вот пример использования из справки
{ Пример программы для процедуры Drawpoly }
Uses Graph;
Const Triangle : Array [1..4] Of PointType = ((X: 50; Y: 100),
(X: 100; Y:100),
(X: 150; Y: 150),
(X: 50; Y: 100));
Var Gd, Gm : Integer;
Begin
Gd:=Detect;
InitGraph(Gd, Gm, 'C:\BP\BGI'); { Путь к BGI драйверам }
If GraphResult <> grOk Then Halt(1);
DrawPoly(SizeOf(Triangle) Div SizeOf(PointType), Triangle);
ReadLn;
CloseGraph;
End.
Программа рисует треугольник.
Вот пример использования из справки
{ Пример программы для процедуры Drawpoly }
Uses Graph;
Const Triangle : Array [1..4] Of PointType = ((X: 50; Y: 100),
(X: 100; Y:100),
(X: 150; Y: 150),
(X: 50; Y: 100));
Var Gd, Gm : Integer;
Begin
Gd:=Detect;
InitGraph(Gd, Gm, 'C:\BP\BGI'); { Путь к BGI драйверам }
If GraphResult <> grOk Then Halt(1);
DrawPoly(SizeOf(Triangle) Div SizeOf(PointType), Triangle);
ReadLn;
CloseGraph;
End.
Программа рисует треугольник.
Похожие вопросы
- Помогите найти простой конструктор сайтов
- Помогите найти, алгоритм нахождения Произведения простых чисел, на С++, или литературу которая поможет разобраться.
- Помогите найти алгоритм вычисления простых чисел
- Помогите с программой, пожалуйста! (Pascal) Или подскажите, где можно найти различные решения задач на Паскале?
- Помогите найти ошибку в решении олимпиадной задаче...
- помогите найти решение этой проблеме
- помогите написать простые программы на Qbasic
- помогите найти. как прога для создание сайта самая простая и эффективная для новичка,без знания языка прог-ния
- Помогите, пожалуйста, с решением задачи из задачника Абрамяна.
- Помогите пожалуйста оптимизировать решение задачи (Зайчик) на C++