Savelyev_Vyacheslav

Kontr_1_2

Sep 27th, 2021 (edited)
955
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. %1.1
  2. % Написать скрипт, в первом блоке которого генерируются случайные координаты двух точек в декартовых осях (в диапазоне от -10 до 10 по каждой координате)
  3. clear
  4. clc
  5. close all % закрывает все графические окна перед запуском нового окна
  6. cordA = floor(rand (1,2)*20-10);
  7. cordB = floor(rand (1,2)*20-10);
  8.  
  9. %построить в графическом окне обе точки и прямую, проходящую через них;
  10. Xstep = (-cordA(1) + cordB(1))/10;
  11. Ystep = (-cordA(2) + cordB(2))/10;
  12. Xpoints  = cordA(1):Xstep:cordB(1);
  13. Ypoints  = cordA(2):Ystep:cordB(2);
  14. grid on % включает сетку
  15. %plot(Xpoints,Ypoints);
  16. hold on % включает наложение графиков
  17. plot([-10:0.01:10],0,'.k'); % ось X
  18. plot(0,[-10:0.01:10],'.k'); % ось Y
  19. text(0,10,'  Y'); % надпись на оси
  20. text(10,0,'  X'); % надпись на оси
  21. plot(Xpoints(1),Ypoints(1), '*r'); % первая точка
  22. text(Xpoints(1),Ypoints(1),'  A'); % надпись на оси A
  23. plot(Xpoints(end),Ypoints(end), '*b'); % вторая точка
  24. text(Xpoints(end),Ypoints(end),'  B'); % надпись на оси B
  25.  
  26. % вывести в командное окно уравнение этой прямой (в виде y = 4*x - 0.75);
  27. tangens = (cordA(2) - cordB(2))/(cordA(1) - cordB(1));
  28. shift = cordA(2) - (cordA(1) * tangens);
  29.  
  30.  
  31. PrX = -10:(0.1):10;
  32. PrY = PrX*(tangens)+shift;
  33. plot(PrX,PrY,'.m-');
  34.  
  35. Mark = '+';
  36. if (shift < 0)
  37.     Mark = '-';
  38. end  
  39. disp(['Уравнение y = ', num2str(tangens),'*x',Mark,num2str(abs(shift))]);
  40.  
  41. %1.2
  42. %Написать функцию (без входных аргументов), которая выводит в командное окно пользователю количество полных месяцев, дней, часов и минут до ближайшего нового года.
  43. clear
  44. clc
  45. close all % закрывает все графические окна перед запуском нового окна
  46.  
  47. TimeToNewYear()
  48.  
  49. function[] = TimeToNewYear()
  50. t = datetime;
  51. t.Format = 'yyyy MM dd HH mm';
  52. febr=28;
  53.     if (~mod(t.Year,4))
  54.         febr=29;
  55.     end
  56. MANTH = [1,31;2,febr;3,31;4,30;5,31;6,30;7,31;8,31;9,30;10,31;11,30;12,31];
  57. manth__= 12-t.Month;
  58. d_ = MANTH(t.Month,2)-t.Day;
  59. h_ = 24 - t.Hour-1; % -1 час это запас для минут
  60. min_ = 60 - t.Minute;
  61.  
  62. disp(['До нового года осталось - ','месяцы=', num2str(manth__),' дни=',num2str(d_),' часы=',num2str(h_),' минуты=',num2str(min_)]);
  63.  
  64. end
RAW Paste Data