М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
даниил854
даниил854
21.03.2020 12:11 •  Информатика

Сделать электронный циферблат в паскале.

👇
Ответ:
egorushka55
egorushka55
21.03.2020
Uses Graph, CRT;
   var
       d,r,r1,r2,rr,k,
       x1,y1,x2,y2,x01,y01: Integer;
       Xasp,Yasp : Word;

begin
  {Инициируем графику}
     d := detect;
     InitGraph(d, r, ' ') ;
     k:= GraphResult;
     if k <> grOK then  WriteLn(GraphErrorMSG(k))
  else
begin
{Определяем отношение сторон и размеры экрана}
x1 := GetMaxX div 2;
y1 := GetMaxY div 2;
GetAspectRatio(Xasp, Yasp);

{Вычисляем радиусы:}
 r:= round(3*GetMaxY*Yasp/8/Xasp);
 r1 := round(0.9*r); {Часовые деления}
 r2 := round(0.95*r); {Минутные деления}

{Изображаем циферблат}
 Circle(x1,y1,r); {Первая внешняя окружность}
 Circle(x1,y1,round(1.02*r)); {Вторая окружность}
  
 for k := 0 to 59 do {Деления циферблата}
    begin
       if k mod 5=0 then
           rr := r1 {Часовые деления}
      else
           rr:= r2 ; {Минутные деления}

{Определяем координаты концов делений}
 x01 := x1+Round(rr*sin(2*pi*k/60));
 y01 := y1-Round(rr*Xasp*cos(2*pi*k/60)/Yasp);
 x2 := x1+Round(r*sin(2*pi*k/60));
 y2 := y1-Round(r*Xasp*cos(2*pi*k/60)/Yasp);
 Line(x01,y01,x2,y2) {Выводим деление}
end;

{Готовим вывод стрелок}
 SetWriteMode(XORPut);
 SetLineStyle(SolidLn,0,ThickWidth);
 r := 0; {Счетчик минут в одном часе}

{Цикл вывода стрелок}
 repeat
   for k := 0 to 59 do {k = минуты}
      if not KeyPressed then
         begin
                {Координаты часовой стрелки}
                x2 := x1+Round(0.85*r1*sin(2*pi*r/60/12));
                y2 := y1-Round(0.85*r1*Xasp*cos(2*pi*r/60/12)/Yasp);

                {Координаты минутной стрелки}
                x01:= x1+Round(r2*sin(2*pi*k/60));
                y01:= y1-Round(r2*Xasp*cos(2*pi*k/60)/Yasp);

                {Изображаем стрелки}
                 Line(x1,y1,x2,y2);
                 Line(x1,y1,x01,y01);
                 Delay(100); {Для имитации реального темпа
                                      нужно установить задержку 60000}
                                     {Для удаления стрелок выводим их еще раз!}
                 Line(x1,y1,x01,y01);
                 Line (x1,y1,x01,y01 ) ;

{Наращиваем и корректируем счетчик минут в часе}
inc(r);
if r=12*60  then
 r := 0
end
until KeyPressed;
if ReadKey=#0 then k:=ord(ReadKey);
CloseGraph;
end
end.
4,5(14 оценок)
Открыть все ответы
Ответ:
даша3335
даша3335
21.03.2020

Инструментом Масштабировать можно исправить данные со слегка неверным масштабом - например, если границы земельных участков брались из разных источников. Вы можете использовать инструмент Масштабировать, чтобы изменить размеры участков, для их соответствия имеющимся данным.

3 координаты

Ось х - длина

Ось у - ширина

Ось z - высота

Граф, изображенный на плоскости, называется плоским графом, если его ребра не пересекаются в точках, отличных от вершин графа. Заметим, что данное понятие касается только геометрического изображения графа, но не графа как множества вершин и связей. Часто один и тот же граф может быть изображён как плоский, так и как не плоский.

4,6(77 оценок)
Ответ:
// PascalABC.Net
procedure RectangleSquare;
var
  a,b:double;
begin
  Write('Введите через пробел длины сторон прямоугольника: '); Read(a,b);
  Writeln('Площадь прямоугоьника равна ',a*b)
end;

var
  i:byte;
begin
  for i:=1 to 3 do RectangleSquare
end.

Тестовое решение:
Введите через пробел длины сторон прямоугольника: 3 7
Площадь прямоугоьника равна 21
Введите через пробел длины сторон прямоугольника: 12.4 15.8
Площадь прямоугоьника равна 195.92
Введите через пробел длины сторон прямоугольника: 14 12.5
Площадь прямоугоьника равна 175
4,4(49 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ