В наше время создатели офисных приложений стараются сделать все для удобства пользователя. Поэтому даже такая мелочь, как представление на экране списков чисел например, для вывода номеров страниц, должна быть тщательно проработана.
Васе поручили реализовать функцию, которая по заданному набору целых чисел будет формировать строку, являющуюся его самым коротким текстовым представлением. Текстовое представление - строка, состоящая из разделенных запятыми чисел и диапазонов чисел вида , которые используются для записи набора всех чисел от a до b. При этом все числа, входящие в строку, должны быть упорядочены по возрастанию Васе справиться с поручением.
Формат ввода
Первая строка входного файла содержится целое число N (1 ≤ N ≤ 1 000 000) размер набора. Вторая строка содержит N задающих набор целых чисел, по абсолютной величине не превосходящих 1 000 000, разделенных пробелами. Одно число может встречаться в этом описании несколько раз.
Формат вывода
В выходной файл выведите любое из кратчайших текстовых представлений заданного набора чисел. Следите за правильной расстановкой пробелов. Выходные файлы в примерах содержат ровно по четыре пробела.
program pr1;
uses
crt;
const
arr1 : array[1..12] of integer = (5, 4, -3, 1, 0, -4, 0, 25, -8, 0, -17, -1);
type
arr2 = array of integer;
var
arr : arr2;
n : integer;
i, sot, spl, snu : byte;
ch : char;
begin
write('Хотите использовать заданный по умолчанию массив? (y/n): ');
ch := readkey;
writeln(ch);
sot := 0;
spl := 0;
snu := 0;
if ((ch='y') or (ch='Y')) then begin
{ Используем заданный по умолчанию }
for i:=1 to 12 do begin
if arr1[i] > 0 then inc(spl);
if arr1[i] < 0 then inc(sot);
if arr1[i] = 0 then inc(snu);
write(arr1[i], ' ');
end;
writeln;
end
else begin
{ Создаём и заполняем новый массив }
write('Введите желаемый размер массива: ');
readln(n);
setLength(arr, n);
writeln('Введите элементы массива:');
for i:=0 to high(arr) do
readln(arr[i]);
for i:=0 to high(arr) do begin
if arr[i]>0 then inc(spl);
if arr[i]<0 then inc(sot);
if arr[i]=0 then inc(snu);
write(arr[i], ' ');
end;
writeln;
end;
writeln('Количество отрицательных элементов: ', sot);
writeln('Количество нулевых элементов: ', snu);
writeln('Количество положительных элементов: ', spl);
end.
ответ:
подписывайся на меня
какую роль играет для меня информатика, информатика дает нам много информации что изучает что то новое каждый день много програм и приложений, роботов коды для роботов мы люди это эпоха гаджетов что праграмиравоны за счет информации, люди дает мнения а другие используя коменты новое информатика для нас как открытое знание. много в мире професий связанные с информатика если знать от а до я то тогда можно взламывать , создавать, пиидумавать, рисовать и т. д информатика это крутяк.