Консультация # 197031: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос: Вычислить количество четных элементов в области ниже строки k и выше главной диагонали....Консультация # 197035: Здравствуйте! (PascalABC) У меня возникли сложности с написанием данной программы: Напечатать в
обратном порядке элементы вещественного файла до элемента, номер которого равен значению серединного элемента другого целочисленного файла. Количество элементов в каждом файле неизвестно. У меня есть наработки ...
var a:array[1..15,1..15] of integer;
n,m,k,i,j,q:integer;
begin
repeat
write('Введите размер матрицы от 3 до 15 n=');
readln(n);
until n in [3..15];
randomize;
writeln('Исходная матрица');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=10+random(90);
write(a[i,j]:3);
end;
writeln;
end;
repeat
write('Введите номер строки от 1 до ',n-2,' k=');
readln(k);
until k in [1..n-2];
q:=0;
for i:=k+1 to n-1 do
for j:=i+1 to n do
if a[i,j] mod 2=0 then inc(q);
write('Количество четных элементов ниже строки ',k,' и выше главной диагонали=',q)
end.
Консультировал: puporev (Профессионал)
Дата отправки: 10.11.2019, 13:02
Здравствуйте! (PascalABC) У меня возникли сложности с написанием данной программы: Напечатать в обратном порядке элементы вещественного файла до элемента, номер которого равен значению серединного элемента другого целочисленного файла. Количество элементов в каждом файле неизвестно. У меня есть наработки
var f:file of real;
g:file of integer;
x,y:real;
a,b,c,n,i,j:integer;
begin
//создадим файлы с неизвестным количеством элементов
//вещественный
assign(f,'fileF');
rewrite(f);
writeln('Вводите в файл вещественные числа, окончание ввода 0');
repeat
readln(x);
if x<>0 then write(f,x);
until x=0;
//целый
assign(g,'fileG');
rewrite(g);
writeln('Вводите в файл целые числа, окончание ввода 0');
repeat
readln(a);
if a<>0 then write(g,a);
until a=0;
writeln('Содержание исходного файла вещественных чисел');
reset(f);
while not eof(f) do
begin
read(f,x);
write(x,' ');
end;
writeln;
writeln('Содержание исходного файла целых чисел');
reset(g);
while not eof(g) do
begin
read(g,a);
write(a,' ');
end;
writeln;
//сортировка файла целых чисел для поиска срединного элемента(медианы)
reset(g);
for i:=0 to filesize(g)-2 do
for j:=i+1 to filesize(g)-1 do
begin
seek(g,i);
read(g,a);
seek(g,j);
read(g,b);
if a>b then
begin
seek(g,i);
write(g,b);
seek(g,j);
write(g,a);
end;
end;
writeln('Содержание отсортированого файла целых чисел');
reset(g);
while not eof(g) do
begin
read(g,a);
write(a,' ');
end;
writeln;
reset(g);
c:=filesize(g)div 2;
if odd(filesize(g))then //если размер файла нечетный
begin
seek(g,c); //медиана равна среднему элементу
read(g,n);
end
else //иначе
begin
seek(g,c);
read(g,a);
seek(g,c-1);
read(g,b);
n:=(a+b) div 2;//медиана равна полусумме двух центральных
end;
writeln('Значение срединного элемента=',n);
close(g);
//печатаем в обратном порядке элеметы после n
reset(f);
if filesize(f)<n-1 then write('В файле вещественных чисел не хватает чисел для печати')
else
begin
writeln('Элементы файла вещественных чисел с конца до номера ',n);
for i:=filesize(f)-1 downto n-1 do
begin
seek(f,i);
read(f,x);
write(x,' ');
end;
end;
close(f);
end.
Консультировал: puporev (Профессионал)
Дата отправки: 11.11.2019, 09:51
5
Спасибо большое, посмотрю вечером на пк ----- Дата оценки: 11.11.2019, 12:33
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!