Отрицательные элементы файла записать в массив - Turbo Pascal
Формулировка задачи:
Написал программу, но она почему то неправильная. Бился, бился и все никак. Нужна помощь.
Создать файл f вещественных чисел. Получить из его отрицательных элементов матрицу А(5,3). Матрицу распечатать. Если невозможно сформировать такую матрицу, сделать сообщение.
Решение задачи: «Отрицательные элементы файла записать в массив»
textual
Листинг программы
program p;
const
n=10;
var
f:file of real;
b:array[1..5,1..3] of real;
k,i,j:integer;
a:real;
begin
randomize;
assign(f,'f.dat');
writeln('File:');
rewrite(f);
for i:=1 to 50 do //
begin
a:=-n div 2 + random*n;
write(f,a);
write(a:8:2);
end;
writeln;
close(f);
reset(f);
i:=1; j:=1;
k:=0;
writeln;
while not eof(f) do
begin
read(f,a);
if a<0 then
begin
inc(k);
if k>15 then break;
b[i,j]:=a;
// write(b[i,j]:8:2);
inc(j);
if j>5 then
begin
// writeln;
j:=1;
inc(i);
if i>3 then
i:=1;
end;
end;
end;
Close(f);
if k<=15 then
writeln('Too small :)')
else
begin
WriteLn('Array B:');
for i:=1 to 3 do
begin
for j:=1 to 5 do
Write(b[i,j]:8:2);
WriteLn;
end;
end;
readln;
end.
Объяснение кода листинга программы
- В начале программы объявляются необходимые переменные и константы.
- Задается имя файла для записи и чтения данных.
- Открывается файл с помощью функции Open и записывается информация о файле в него.
- Записывается строка с информацией о файле.
- Запускается цикл, который будет выполняться до тех пор, пока не достигнут конец файла.
- Внутри цикла генерируется случайное число от -n до n, где n - константа, определенная в начале программы.
- Записывается сгенерированное число в файл.
- Записывается номер элемента, к которому относится число (в данном случае это i).
- Проверяется условие, что число меньше нуля. Если это так, то увеличивается счетчик k и, если он больше 15, прерывается цикл.
- Если число меньше нуля, записывается значение числа в массив b.
- Увеличивается значение счетчика j.
- Если значение j больше 5, то сбрасывается счетчик i и j.
- Если значение i больше 3, то сбрасывается счетчик i.
- Закрывается файл с помощью функции Close.
- Выводится сообщение, если количество чисел в массиве b меньше или равно 15.
- Выводится сообщение, если количество чисел в массиве b больше 15.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.
- Выводится сообщение с информацией о массиве b.
- Выводится сообщение с информацией о файле.