Var a,i:integer; mn:set of 0..9; begin write('a = '); readln(a); mn:=[]; while a>0 do begin mn:=mn+[a mod 10]; a:=a div 10; end; writeln('В числе нет следующих цифр:'); for i:=0 to 9 do if not(i in mn) then write(i:2); writeln; end.
Пример: a = 1356 В числе нет следующих цифр: 0 2 4 7 8 9
Векторное представление заключается в описании элементов изображения математическими кривыми с указанием их цветов и заполняемости (например, круг и окружность – разные фигуры). Красный эллипс на белом фоне будет описан всего двумя математическими формулами – прямоугольника и эллипса соответствующих цветов, размеров и местоположения. Очевидно, такое описание займет значительно меньше места, чем в первом случае. Еще одно преимущество – качественное масштабирование в любую сторону. Увеличение или уменьшение объектов производится увеличением или уменьшением соответствующих коэффициентов в математических формулах. К сожалению векторный формат становится невыгодным при передаче изображений с большим количеством оттенков или мелких деталей (например, фотографий). Ведь каждый мельчайший блик в этом случае будет представляться не совокупностью одноцветных точек, а сложнейшей математической формулой или совокупностью графических примитивов, каждый из которых, является формулой. Это приводит к утяжелению файла. Кроме того, перевод изображения из растрового в векторный формат (например, программой Adobe Strime Line или Corel OCR-TRACE) приводит к наследованию последним невозможности корректного масштабирования в большую сторону. От увеличения линейных размеров количество деталей или оттенков на единицу площади больше не становится. Это ограничение накладывается разрешением вводных устройств (сканеров, цифровых фотокамер и др.).
public class Main { public static BufferedReader READER = new BufferedReader(new InputStreamReader(System.in)); public static void main(String[] args) throws IOException { int N = Integer.parseInt(READER.readLine()); int[] array = new int[N]; for(int i = 0; i < array.length; ++i) array[i] = Integer.parseInt(READER.readLine()); System.out.println("Negative: " + Main.function(array)); } public static boolean function(int[] array) { for(int number : array) if(number >= 0) return false; return true; } }
begin
write('a = '); readln(a);
mn:=[];
while a>0 do
begin
mn:=mn+[a mod 10];
a:=a div 10;
end;
writeln('В числе нет следующих цифр:');
for i:=0 to 9 do
if not(i in mn) then write(i:2);
writeln;
end.
Пример:
a = 1356
В числе нет следующих цифр:
0 2 4 7 8 9