// PascalABC.NET 3.2, сборка 1447 от 22.05.2017 // Внимание! Если программа не работает, обновите версию!
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество колонок в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(5); Writeln(5*a.ColCount*'-'); a.Cols.Select(x->Format('{0,5}',x.Where(y->y<0).Sum)).Print(''); Println(' - суммы отрицательных'); end.
Существует два основных вида компьютерной графики - векторная и растровая. растровый рисунок представляет из себя сетку пикселей, разность цветов этих пикселей образует графический образ, воспринимаемый человеческим глазом как единая картина. векторный же рисунок состоит из отдельных сущностей: линии, многоугольники, эллипсы и т.п. фигуры, отрисовкой этих фигур попиксельно занимается просмотрщик изображения (например браузер). основным преимуществом векторного рисунка является то, что такой рисунок может как угодно трансформироваться и масштабироваться без потери качества. каждая фигура перед выводом на экран рассчитывается по формулам и может быть перерисована (перерассчитана) за доли секунды, если это потребуется. естественно, это дает преимущество и в конечном размере файла, так как нет необходимости описывать каждый пиксель, все пиксели отрисовываются, исходя из инструкций. однако в векторном формате можно создавать лишь достаточно примитивные изображения. представьте себе красочную фотографию, где присутствует пляж, закат, пальмы, туристы, птицы. представили? а теперь подумайте, сколько нужно усилий, чтобы эту фотографию сделать из фигур, сколько формул применить, сколько маленьких участков залить цветом и каким образом реализовать плавный переход от синего моря до желтого пляжа. наверное, вам стало страшно, именно поэтому основным способом хранения для фотографий является растровый формат jpeg с большой степенью сжатия. вектор идеально подходит для создания схем, простых образов без сложного перехода цветов. векторное изображение: растровое изображение:растровое изображение пример сложной векторной графики: сложная векторная графика как видите, каждая из веток графики содержит свои плюсы и минусы. было бы глупо не найти способ объединить эти виды в единое целое, поэтому большинство форматов векторной графики сегодня позволяют смешивать себя с растровой графикой. растровая картинка в векторном формате является такой же единой сущностью, как и другие фигуры. например, в svg растровые картинки можно подключать из отдельного файла и выводить на любом участке холста.
// Внимание! Если программа не работает, обновите версию!
begin
var n:=ReadInteger('Количество строк в массиве:');
var m:=ReadInteger('Количество колонок в массиве:');
Writeln('*** Исходный массив [',n,',',m,'] ***');
var a:=MatrRandom(n,m,-99,99);
a.Println(5); Writeln(5*a.ColCount*'-');
a.Cols.Select(x->Format('{0,5}',x.Where(y->y<0).Sum)).Print('');
Println(' - суммы отрицательных');
end.
Пример
Количество строк в массиве: 5
Количество колонок в массиве: 9
*** Исходный массив [5,9] ***
-43 -96 34 82 3 92 -59 31 35
65 94 76 66 90 -39 26 -24 83
73 -92 94 -94 44 -35 -66 87 -46
90 56 -37 -60 -9 94 9 -76 -58
-16 97 65 -21 -86 64 -20 46 -26
-59 -188 -37 -175 -95 -74 -145 -100 -130 - суммы отрицательных