Найти номер строк матрицы, где количество отрицательных и неотрицательных элементов равно - Pascal
Формулировка задачи:
Дан текстовый файл Найти номер строк матрицы где количество отрицательных и неотрицательных элементов равно;
я никак не пойму как это написать
Решение задачи: «Найти номер строк матрицы, где количество отрицательных и неотрицательных элементов равно»
textual
Листинг программы
var j, cn, co: Integer; e: Real;
begin
Assign(input,'input.txt'); Reset(input);
while not EoF do begin
cn:=0; co:=0; Inc(j);
while not SeekEoLn do begin
Read(e); if e<0 then Inc(cn) else Inc(co);
end;
if (cn=co) and (cn+co>0) then Write(' ',j);
end; WriteLn;
Close(input);
end.
Объяснение кода листинга программы
- Объявляются переменные:
j,cnиcoтипа Integer для хранения номера строки, количества отрицательных и неотрицательных элементов соответственно;eтипа Real для хранения текущего элемента матрицы.
- Открывается файл для чтения
input.txt. - Запускается цикл чтения данных из файла до конца файла:
- Записывается начальное значение
cnиcoв 0. - Увеличивается значение
jна 1. - Запускается внутренний цикл чтения элементов строки:
- Читается значение элемента
eиз файла. - Если значение
eменьше 0, увеличивается значениеcnна 1, иначе увеличивается значениеcoна 1.
- Читается значение элемента
- Записывается начальное значение
- Если количество отрицательных и неотрицательных элементов в строке одинаково и больше 0, выводится номер строки.
- Закрывается файл. В результате выводятся номера строк матрицы, в которых количество отрицательных и неотрицательных элементов равно.