Перейти к содержимому

Как нарисовать треугольник в паскале

  • автор:

Построить треугольник из символов на паскале [закрыт]

Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 6 лет назад .

Задание: пользователь вводит непарное число n >= 5 , а программа строит «ёлку» из треугольников типа: n = 7 ; основа треугольника 7 символов, выше 5 символов еще выше 3 символа а вверху 1. Символ может быть любым(например *).

Отслеживать
3,001 1 1 золотой знак 17 17 серебряных знаков 38 38 бронзовых знаков
задан 23 ноя 2017 в 17:07
1 1 1 бронзовый знак

Вы попытайтесь написать хоть что-то, а мы подскажем как быть. Никто не хочет за Вас решать ваши учебные задания. Возможно кому то из нас потом еще с Вами придется работать 😉

23 ноя 2017 в 17:26

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Ух, «непарное» — дохнуло стариной 🙂 Имеется в виду нечётное. Возможна куча реализаций. Например, так (без проверок ввода на чётность, правильность и т.п. Наверняка не самая оптимальная):

var i,k,j,l,m:integer; s,s1:string; begin readln(k); j:= k div 2; m:=1; for i:=1 to j+1 do begin s:=''; s1:=''; for l:=1 to j do s:=s+ ' '; for l:=1 to m do s1:=s1+'*'; writeln(s,s1,s); inc(m,2); dec(j,1); end; end; 

Ну, а вообще здесь не приветствуются вопросы в стиле «дяденьки, помогите мне решить контрольную», поэтому комментировать свой код я не буду. Если разберётесь, значит, половину задачи сделали сами 🙂

Как нарисовать треугольник в паскале


Khabibulin ( 2006-11-06 14:15 ) [0]

как математически нарисовать треугольник в Паскале? Например, есть сторона А=9,5 см., Б=4 см. и Г=4,8 см. Как это сделать? Помогите пожалуйста.


Array ( 2006-11-06 14:23 ) [1]

LineTo + F1


Percent ( 2006-11-06 14:25 ) [2]

Паскаль не предназначен для рисования треугольников.

Это Паскаль?


Khabibulin ( 2006-11-06 14:27 ) [3]

но мне надо нарисовать его там. варианты то должны быть. верно?


Khabibulin ( 2006-11-06 14:31 ) [4]

с помощью линий то можно, ведь так? самое непонятное как нарисовать их под нужным углом (просщитать это все). вот что мне надо.


Array ( 2006-11-06 14:32 ) [5]

сори, не глянул
line(x1, y1, x2, y2 :integer);


DiamondShark © ( 2006-11-06 14:32 ) [6]


> Например, есть сторона А=9,5 см., Б=4 см. и Г=4,8 см.
> Как это сделать?

никак.
таких треугольников не бывает.
по крайней мере, в евклидовом пространстве.


Khabibulin ( 2006-11-06 14:37 ) [7]

I\
I \
I \
A-> I \
I \ I \
I \
I_____\
^
|
C

допустим A=9,0см, B=13,5см, C=5см. (все приблизительно!).
И что, такого нарисовать вообще не реально.


Percent ( 2006-11-06 14:39 ) [8]

таких треугольников не бывает.]

Но в военное время, говорят.

🙂


Percent ( 2006-11-06 14:40 ) [9]

И что, такого нарисовать вообще не реально.

Да ты ж уже нарисовал. Зачем тебе Паскаль?


Khabibulin ( 2006-11-06 14:41 ) [10]

блин, я серьезно, а вы. :(((((


Anatoly Podgoretsky © ( 2006-11-06 14:42 ) [11]

Вообще то LineTo, а остальное не относится к Дельфи, это в школу, предмет называется геометрия.


Anatoly Podgoretsky © ( 2006-11-06 14:46 ) [12]

> Khabibulin (06.11.2006 14:41:10) [10]
> блин, я серьезно, а вы. :(((((

Вполне серьезно, таких небывает, а не евклидовское пространство видимо рано для тебя.


DiamondShark © ( 2006-11-06 14:53 ) [13]

И мы серьёзно.

Введём систему координат, такую, что одна из вершин лежит в начале СК, а одна из сторон лежит на оси Ox:

тогда координаты вершин будут (0,0), (A,0), (x,y)

Задача: найти x, y.
Чётвёртый класс, если не ошибаюсь.


Khabibulin ( 2006-11-06 15:06 ) [14]

да я в курсе. :)))) но геометрия мне не дана. а ж самому стыдно.


KilkennyCat © ( 2006-11-06 15:14 ) [15]

Предлагаю сначала найти площадь треугольника.


DiamondShark © ( 2006-11-06 15:29 ) [16]


> но геометрия мне не дана

даже в объёме теоремы Пифагора?!

| x^2 + y^2 = B^2
| (A-x)^2 + y^2 = C^2

подозреваю, что алгебра в объёме систем квадратных уравнений тоже 🙁

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

| w + v = B^2
| u + v = C^2
| u + w = A^2

x интересует только неотрицательный.


Anatoly Podgoretsky © ( 2006-11-06 15:43 ) [17]

> Khabibulin (06.11.2006 15:06:14) [14]
А почему бы не попросить предподователся провести маленький ликбез, купить учебник по геометрии за начальные классы, там уже есть готовые формулы и разъяснения.А на форумах над этим будут только шутить, особенно если ты заявишь про свой знаменитый трехугольник, у которого одна сторона длиннее суммы двух других.— С уважением,Анатолий Подгорецкий «Khabibulin» wrote in message news:1162811723.14@delphimaster.ru. Khabibulin (06.11.2006 15:06) [14] да я в курсе. :)))) но геометрия мне не дана. а ж самому стыдно. ——=_NextPart_000_0112_01C701B1.EB7570D0

Помогите пожалуйста нарисовать треугольник в Pascal ABC

EFI Shell version 2.31 [4.653) Current running mode 1.1.2 Device mapping table fso :HardDisk — Alias hd28d65535a1 blko PciRoot (0x0)/Pci (0x1f,0x2)/Sa … ta (0x3, 0x0)/HD (1, MBR, Oxacad3655, 0x800, Oxaea86800) :HardDisk blko Alias hd28d65535a1 fso PciRoot (0x0)/Pci (0x1f,0x2)/Sata (0x3, 0x0)/HD (1, MBR, Oxacad3655, 0x800, Oxaea86800) blk1 :BlockDevice Alias (null) PciRoot (0x0)/Pci (0x1f,0x2)/Sata (0x2,0x0) Alias (null) PciRoot (0x0)/Pci (0x1f,0x2)/Sata (0x3, 0x0) blk3 :Removable BlockDevice — Alias (null) — blk2 :BlockDevice — — PciRoot (0x0)/Pci (Oxid, 0x0)/USB (0x1, 0x0)/USB (0x5,0x0) Press ESC in 1 seconds to skip startup.nsh, any other key to continue. Shell> люди подскажите пожалуйста что делать как жить пиз*** ли это что вписывать? ​

Моторная лодка движется по течению реки и проходит путь из пункта A в пункт B за T часов. За какое время лодка вернётся обратно? ИНФОРМАТИКА ПАСКАЛЬ A … BC

Определить возможность существования треугольника по сторонам

Вводятся длины трех сторон предполагаемого треугольника. Определить, может ли существовать треугольник с такими сторонами при условии что, треугольник существует только тогда, когда ни одна его сторона не превышает сумму двух других.

Примеры выполнения программы

Длины сторон: 5 7 3 Треугольник существует.
Длины сторон: 10 5 3 Треугольник не существует.

Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

Ниже приведены решения задачи на языке программирования Паскаль двумя способами. В первом случае все стороны проверяются в одном операторе if ; во втором случае каждая сторона проверяется отдельно, а программа содержит вложенные операторы if-else .

var a, b, c: integer; begin write('Длины сторон: '); readln(a, b, c); if (a < b+c) and (b < a+c) and (c < a+b) then writeln('Треугольник существует.') else writeln('Треугольник не существует.'); end.

В условии if проверяется, что каждая из сторон меньше суммы других. Если хотя бы одна будет больше, то все логическое выражение вернет ложь ( false ). В таком случае сработает ветка else .

В программе ниже существование треугольника проверяется поэтапно.

  1. Если первое условие возвращает ложь, то поток выполнения программы переходит к ветке else , которая соответствует внешнему if (находится в самом конце).
  2. Если первое условие соблюдено, то поток выполнения программы оказывается у вложенного if . Здесь проверяется уже второе условие.
  3. Если оно возвращает ложь, то программа переходит к предпоследнему else .
  4. Если и второе логическое выражение возвращает истину ( true ), то программа идет к третьему условию. При его соблюдении выполняется тело самого вложенного оператора if . При его несоблюдении сработает самое вложенное else .

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

var a, b, c: integer; begin write('A: '); readln(a); write('B: '); readln(b); write('C: '); readln(c); if a < b + c then if b < a + c then if c < a + b then writeln ('Треугольник существует.') else writeln ('Треугольника нет. Сторона C слишком большая.') else writeln ('Треугольника нет. Сторона B слишком большая.') else writeln ('Треугольника нет. Сторона A слишком большая.'); end.

Примеры выполнения программы:

A: 4 B: 5 C: 6 Треугольник существует.
A: 10 B: 5 C: 4 Треугольника нет. Сторона A слишком большая.
A: 3 B: 3 C: 7 Треугольника нет. Сторона C слишком большая.
A: 6 B: 12 C: 4 Треугольника нет. Сторона B слишком большая.

Примечание. В обоих вариантах решения задачи мы не учитываем случай вырожденного треугольника, когда сторона может быть равна сумме двух других. Чтобы учитывать такие треугольники оператор сравнения "меньше" надо поменять на "меньше или равно" (

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *