Savelyev_Vyacheslav

DZ

Sep 22nd, 2021
962
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(1) - cordB(1))/(cordA(2) - cordB(2));
  28. shift = cordA(2) - (cordA(1) * tangens);
  29. Mark = '+';
  30. if (shift < 0)
  31.     Mark = '-';
  32. end  
  33. disp(['Уравнение y = ', num2str(tangens),'*x',Mark,num2str(abs(shift))]);
  34.  
  35. %1.2
  36. %Написать функцию (без входных аргументов), которая выводит в командное окно пользователю количество полных месяцев, дней, часов и минут до ближайшего нового года.
  37. clear
  38. clc
  39. close all % закрывает все графические окна перед запуском нового окна
  40.  
  41. t = datetime;
  42. t.Format = 'yyyy MM dd HH mm';
  43. febr=28;
  44. if (~mod(t.Year,4))
  45.     febr=29;
  46. end
  47. 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];
  48. manth__= 12-t.Month;
  49. d_ = MANTH(t.Month,2)-t.Day;
  50. h_ = 24 - t.Hour;
  51. min_ = 60 - t.Minute;
  52. disp(['До нового года осталось - ','месяцы=', num2str(manth__),' дни=',num2str(d_),' часы=',num2str(h_),' минуты=',num2str(min_)]);
  53.  
RAW Paste Data