Задача: и 2-й массив и черно-белое изображение - Turbo Pascal

  1. Самый простой способ представления изображений в памяти компьютера заключается в том, что для каждого пикселя в файл записывается его цвет. То, как этот цвет представляется в памяти компьютера, зависит от выбора цветовой модели изображения. Так, если изображение черно-белое, цвет каждого пикселя может быть представлен всего одним числом, равным нулю, если пиксель белый, и единице, если пиксель черный. Кроме информации о цветах пикселей, в файле с изображением хранятся его размеры (высота и ширина). Известно, что данный вам файл с черно-белым изображением содержал полностью белый прямоугольник из n строчек и m столбцов, в котором ровно один столбец состоял из пикселей черного цвета. К сожалению, информация о исходных размерах изображения утеряна, и вам необходимо ее восстановить, или же выяснить, что вам дан некорректный набор цветов пикселей и восстановить эту информацию невозможно.Формат входного файла В первой строке входного файла input.txt находится одно натуральное число p (2 ≤ p ≤ 1000), равное произведению размеров исходного изображения. В следующей строке перечислены p цветов пикселей самого изображения. Сначала перечислены цвета пикселей первой строки слева направо, затем — второй, и так далее. Цвета пикселей разделены пробелами, каждый цвет является числом, равным 0, если пиксель белый, или 1, если пиксель черный.Формат выходного файла В первой строке выходного файла output.txt требуется вывести два числа n и m таких, что их произведение равно числу p. Кроме этого, после записи данных во входном файле пикселей в таблицу из n строчек и m столбцов, должна получаться таблица, в которой ровно один столбец полностью состоит из единиц, а вся остальная таблица заполнена нулями. В случае, если ответов, отвечающих описанным выше условиям, несколько, выведите любой. В случае, если ни одного ответа не существует, выведите в выходной файл слово Impossible. Пример входных и выходных данныхinput.txt 6 0 1 0 0 1 0output.txt 2 3input.txt 12 0 0 1 0 0 0 1 0 0 0 1 0output.txt 3 4input.txt 12 0 0 1 0 0 0 1 0 0 0 0 0output.txt Impossible


textual

Код:

const InFIle='Input.txt'; OutFile='output.txt';
var
  f : text;
  n,m,p,c : word;
  b,otstup : byte;
  first,error : boolean;
Begin
  assign(f,InFile); reset(f);
  readln(f,p); n:=0; c:=0; first:=true; otstup:=0; error:=false;
  while (not eof(f)) and (not error) do begin
    read(f,b); inc(c); inc(n);
    if b=1 then begin
      if first then begin
        first:=otstup=0;
        otstup:=c;
        m:=n;
      end else begin
        error:=n<>m;
      end;
      n:=0;
    end;
  end;
  close(f);
  n:=n+otstup-m;
  error:=error or (p mod n <> 0) or (p<>c) or (m<>n);
  n:=p div m;
  assign(f,OutFile); rewrite(f);
  if error then writeln(f,'Impossible')
  else writeln(f,n,' ',m);
  close(f);
  writeln('Result in file ',OutFile);
  readln;
End.


Похожие ответы
  1. вывести фамилии, имена и отчества всех студентов мужского пола, старших 18 лет. Должна вводиться информация о студентах(фамилии, имена, отчества, пол, возраст).

  1. Здравствуйте ребят, нужна ваша помощь помогите составить программу: а) Y=е^x –sin(x) при Х=2.312; б) координаты используемой точки: (1.5;0.5). Cкрин задачи

  1. (Фотография текста заменена текстом) Материальная точка движется вдоль плоскости OXY согласно закону Построить траекторию точки.№x(t)y(t)1sin(2t)cos(3t)2sin(3t)cos(4t)3sin(4t)cos(5t)4sin(5t)cos(6t)5sin(6t)cos(7t)6sin(7t)cos(8t)7sin(8t)cos(9t)8sin(9t)cos(10t)9sin(10t)cos(11t)10sin(11t)cos(12t)

  1. Задание собственно такое: Составить программу формирования из вектора A={ai}, i=1/3n вектора B={bi}, i=1/n, очередная компонента которого равна среднему арифметическому очередной тройки компонент вектора. вот сама программа:

  1. Дана матрица 7x7. Определить суммы всех элементов матрицы, лежащих на диагоналях. Помогите сделать, пожалуйста! Заранее спасибо ОГРОМНОЕ!

  1. В массиве A[1..N] найти максимальное число и уменьшить все элементы массива на 5. Вывести полученную последовательность на экран. Помогите пожалуйста!

  1. Пусть дана вещественная матрица размером n*m. Найдите среднее арифметическое наибольшего и наименьшего значений её элементов, расположенных ниже главной диагонали.- это условие. Напиши пожалуйста программу!

  1. Заданы три числа, надо найти минимальное число. Составить программу для вычисления периметра 10 прямоугольников.

  1. Составить программу для вычисления значения функции: y=sh(x) с помощью разложения функции в степенной ряд Помогите пожалуйста решить, пожалуйста!!

  1. Подскажите, наведите на путь, я реально не могу сообразить как она должна работать!! Танк в компьютерной игре может двигаться в одном из четырех направлений, обозначим их числами: 1 — север, 2 — восток, 3 — юг, 4 — запад. Направление движения изменяется тремя командами: 1 — поворот направо, 2 — поворот налево, 3 — поворот кругом. Пользователь вводит начальное направление движения, а затем ряд команд. Программа должна определять и печатать всякий раз новое направление. Выход из цикла — команда 0.