§ 16. Тып даных структура (struct)
Практыкаванні
1. Напішыце праграму, якая пераўтварае ўраўненне прамой у адрэзках у агульнае ўраўненне прамой.
2. Напішыце праграму, якая пераўтварае агульнае ўраўненне прамой ва ўраўненне прамой з вуглавым каэфіцыентам. Прадугледзець праверку выпадку, калі гэта зрабіць немагчыма.
3. Напішыце праграму, якая пераўтварае ўраўненне прамой, што праходзіць праз два пункты, ва ўраўненне прамой з вуглавым каэфіцыентам. Калі гэта немагчыма, то атрымаць ураўненне ў выглядзе х = х0.
4. Напішыце праграму, якая вызначыць узаемнае размяшчэнне пункта з каардынатамі (x0, y0) і прамой у = kx + b.
5. Напішыце праграму, якая вызначыць узаемнае размяшчэнне пунктаў з каардынатамі (x1, y1), (x2, y2) і прамой Ax + By + C = 0.
6. Напішыце праграму, якая вызначыць узаемнае размяшчэнне пункта з каардынатамі (x0, y0) і дзвюх паралельных прамых Ax + By + C1 = 0 і Ax + By + C2 = 0.
7. Многавугольнік зададзены спісам сваіх вяршынь у парадку абходу. Для кожнай вяршыні вядомы яе каардынаты на плоскасці. Знайдзіце даўжыню самай кароткай дыяганалі многавугольніка.
8. Многавугольнік зададзены спісам сваіх вяршынь у парадку абходу. Для кожнай вяршыні вядомы яе каардынаты на плоскасці. Атрымайце масіў прамых, зададзеных ураўненнем прамой, якая праходзіць праз два пункты. Кожная прамая праходзіць праз старану многавугольніка. Пераўтварыце кожнае ўраўненне ў агульнае ўраўненне прамой. Выведзіце гэтыя ўраўннні. * Ці ёсць у многавугольніка дзве розныя стараны, якія ляжаць на адной прамой (гэта можа быць у нявыпуклага многавугольніка)?
9. Для праверкі таго, што пункт (x0, y0) ляжыць унутры трохвугольніка, зададзенага вяршынямі (x1, y1), (x2, y2), (x3, y3), можна выкарыстаць наступны алгарытм:
- Правесці прамую праз пункты (x1, y1), (x2, y2).
- Калі пункты (x0, y0) і (x3, y3) ляжаць у розных паўплоскасцях адносна гэтай прамой, то пункт (x0, y0) ляжыць звонку.
- Калі пункты (x0, y0) і (x3, y3) ляжаць у адной паўплоскасці, то выканаць аналагічныя праверкі для астатніх вяршынь.
- Калі для ўсіх трох прамых пункт (x0, y0) і астатняя вяршыня ляжаць у адной паўплоскасці, то пункт (x0, y0) унутры трохвугольніка
Реализовать описанный выше алгоритм.
10*. Напісаць праграму для праверкі, ці ляжыць пункт (x0, y0) унутры выпуклага многавугольніка.
11. Уводзяцца два значэнні часу: гадзіны, мінуты, секунды. Колькі секунд прайшло паміж імі? Час паказаны ў межах адных сутак.
12. Уводзяцца два значэнні часу: гадзіны, мінуты, секунды. Паміж імі магло прайсці больш за суткі (але не больш за двое сутак). Колькі прайшло часу паміж імі? Адказ атрымаць у гадзінах, мінутах і секундах.
13. Уводзіцца дата: дзень, месяц, год. Паменшыць уведзеную дату на t дзён.
14. Дадзена дата. Вывесці, колькі дзён да яе засталося (або колькі дзён прайшло).
15. Уводзіцца дата: месяц, год. Вызначыць дзень тыдня. Для вызначэння дня тыдня можна выкарыстаць наступныя формулы:
a = (14 − месяц) / 12
y = год − a
m = месяц + 12 * a − 2
Дзень Тыдня = (дзень + y + y / 4 − y / 100 + y / 400 + (31 * m) / 12) % 7
Усе дзяленні цэлалікавыя. Вынік: 0 — нядзеля, 1 — панядзелак і г. д.
16. Дадзена дата. Згенерыраваць расклад з гэтай даты на t дзён па такім прынцыпе: суткі праз трое. Калі рабочы дзень прыпадае на нядзелю, то ён пераносіцца на панядзелак. У выніку паказаць даты рабочых дзён.
17*. Дадзены рэжым работы інтэрнэт-магазіна. ПН 9:00 — 21:00, АЎТ 9:00 — 21:00, С 9:00 — 21:00, ЧЦ 9:00 — 21:00, ПТ 9:00 — 21:00, СБ 10:00 — 18:00, Н 10:00 — 18:00. І дадзены дата і час. Вызначыць, ці працуе ў гэты час магазін і колькі мінут да канца рабочай змены.