Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2013, 17:14   #1
Nilip 777
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 22
По умолчанию Построение треугольника в Pascal

Построить треугольник из символов, с вводом координат треугольника(x,y,z). Чтобы треугольник смещался с изменение координат
Nilip 777 вне форума Ответить с цитированием
Старый 05.12.2013, 17:50   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

http://www.programmersforum.ru/showp...66&postcount=2
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.12.2013, 17:56   #3
Nilip 777
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 22
По умолчанию

Это графический, а мне из символов надо
Nilip 777 вне форума Ответить с цитированием
Старый 05.12.2013, 17:58   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Цитата:
Сообщение от Nilip 777 Посмотреть сообщение
Это графический, а мне из символов надо
Меняете режим графический 640х480 на текстовый 80х25 и вместо moveto используете gotoxy
Самая тяжелая проблема нарисовать линию. Можно использовать алгоритм брезенхема.

Вот линия в символьном режиме

Код:
uses
  crt;
const
  symbol = #219;

procedure PutPixel(x,y,color:Integer);
begin
  TextColor(color);
  GotoXY(x,y);
  write(symbol);
end;

procedure line(x1,y1,x2,y2:integer; c:byte);
var
  dx,dy,dn,x,y:integer;

function sgn(n:integer):shortint;
begin
  if n<0 then sgn:=-1
  else if n>0 then sgn:=1
  else sgn:=0;
end;

function inr(a,b,c:integer):boolean;
begin
  inr:=(a>=b)and(a<=c);
end;

begin
  dx:=x2-x1;
  dy:=y2-y1;
  x:=x1; y:=y1;
  if abs(dx)>=abs(dy) then begin
    dn:=abs(dx) div 2;
    while (x<>x2) do begin
      PutPixel(x,y,c);
      x:=x+sgn(dx);
      dn:=dn-abs(dy);
      if dn<=0 then begin
        dn:=dn+abs(dx);
        y:=y+sgn(dy);
      end;
    end;
  end else begin
    dn:=abs(dy) div 2;
    while y<>y2 do begin
      PutPixel(x,y,c);
      y:=y+sgn(dy);
      dn:=dn-abs(dx);
      if dn<=0 then begin
        dn:=dn+abs(dy);
        x:=x+sgn(dx);
      end;
    end;
  end;
  PutPixel(x,y,c);
end;


begin
  clrscr;
  putPixel(10,10,13);
  Line(10,14,55,20,3);
  readln;
end.

Последний раз редактировалось ZX Spectrum-128; 05.12.2013 в 18:48.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.12.2013, 19:37   #5
Nilip 777
Пользователь
 
Регистрация: 06.11.2013
Сообщений: 22
По умолчанию

Мне нужно вот это. Только это программа для ромба
Код:
Program romb;
uses crt;
var x,b,c,i,y:byte; z:char;
begin
clrscr;
writeln('z,y,x');
readln(z,y,x);
clrscr;
if (y mod 2)=0 then y:=y+1;
y:=y div 1;
for i:=1 to y do writeln;
if (x mod 2)=0 then x:=x+1;
x:=x div 1;
for i:=1 to x do write(' ');
writeln(z);
b:=x-1;
for i:=1 to b do write(' ');write(z);
for i:=1 to 1 do write(' ');
writeln(z);
c:=x-2;
for i:=1 to c do write(' '); write(z);
for i:=1 to 3 do write(' ');
writeln(z);
x:=x div 1;
for i:=1 to x do write(' ');
writeln(z);
readln;
end.
Nilip 777 вне форума Ответить с цитированием
Старый 05.12.2013, 19:52   #6
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Ну, раз вам нужно. Желаю удачи в программировании.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 05.12.2013, 20:27   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
uses crt;
var i,j:integer;
begin   clrscr;
 for i:=1 to 5 do begin
  gotoxy(25-i,5+i);
  for j:=1 to 2*i do write('*');
 end;
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры и функции - возможно ли построение треугольника по длинам сторон, вычисление площади треугольника по длинам сторон kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 2 18.05.2012 10:38
(Pascal) Построение треугольника через радиус описанной окружности. Pinosol Помощь студентам 1 23.02.2012 20:29
Построение треугольника. Delphi 7 savraska Помощь студентам 0 15.05.2010 15:15
построение треугольника blackbanny Общие вопросы C/C++ 1 13.10.2009 13:42