Консультация № 178174
02.05.2010, 22:55
35.91 руб.
0 5 1
здравствуйте уважаемые эксперты!
Дано задание:
https://rfpro.ru/upload/2257

Нужно подправить недочёты:
https://rfpro.ru/upload/2256

Вот ссылка на всю программу:

https://rfpro.ru/question/177063

Ответ № 259920 от F®ost, Модератор

Обсуждение

давно
Академик
320937
2216
03.05.2010, 02:27
общий
Для тех, кто возьмется делать, текст образца лабораторной (проверял на ABC)
Код:
program lab5;
uses
crt;
const
n=7;
type
matr = array[1..n,1..n] of real;
vect = array[1..n*n] of real;
var
a, b: matr;
c, d: vect;
l, q: integer;

procedure vvod(var x: matr; k: integer);
var
I,j: integer;
begin
for i:= 1 to k do
for j:= 1 to k do
read(x[I,j]);
end;

procedure vyvod(var y: vect; m: integer);
var
i: integer;
begin
for i:= 1 to m do
write(y[i]:6:2);
writeln
end;

procedure form(var x: matr; k: integer;var y: vect; var m: integer);
var
i,j: integer;
begin
m:= 0;
for i:= 1 to k do
for j:= 1 to k do
if x[i,j]<0 then
begin
m:=m+1;
y[m] := x[i,j]
end;
end;

begin
clrscr;
writeln('введите элементы матрицы a(7,7)');
vvod(a,7);
writeln('введите элементы матрицы b(5,5)');
vvod(b,5);
form(a,7,c,l);
writeln('вывод одномерного массива c длиной ', l, ' элементов');
vyvod(c,l);
form(b,5,d,q);
writeln('вывод одномерного массива d длиной ', q, ' элементов');
vyvod(d,q);
end.

давно
Профессор
401888
1232
03.05.2010, 06:53
общий
это ответ
Здравствуйте, sanekvseti!
Поправил Вашу программу. Компилировал в Паскаль АВС.

Приложение:
program lab5;
uses crt;
const max=7;
type
matr = array[1..max,1..max] of real;
vect = array[1..max*max] of real;
var
a, b: matr;
c, d: vect;
l, q: integer;
n,nl,k,kl:integer;
//добавим символьную переменную - имя матрицы
procedure vvod(var x: matr; p: integer;c:char);
var
i,j: integer;
begin
writeln('введите ',p*p,' элементов матрицы ',c);
for i:= 1 to p do
for j:= 1 to p do
read(x[i,j]);
end;
//тоже, имя вектора
procedure vyvod(var y: vect; p: integer;c:char);
var
i: integer;
begin
writeln('Вектор ',c);
for i:= 1 to p do
write(y[i]:6:2);
writeln;
end;
//добавим входные параметры, границы 2х интервалов для поиска,
//матрица входной параметр, но не выходной, она не меняется
procedure form(x: matr; p:integer;n,nl,k,kl:real;var y: vect; var m: integer);
var
i,j: integer;
begin
m:= 0;
for i:= 1 to p do
for j:= 1 to p do
if ((x[i,j]>n)and(x[i,j]<nl))or((x[i,j]>k)and(x[i,j]<kl)) then
begin
m:=m+1;
y[m] := x[i,j]
end;
end;

begin
clrscr;
vvod(a,7,'A');
repeat
writeln('введите первый интервал для поиска nl>n');
readln(n,nl);
until nl>n;
repeat
writeln('введите второй интервал для поиска kl>k');
readln(k,kl);
until kl>k;
form(a,7,n,nl,k,kl,c,l);
vyvod(c,l,'C');
vvod(b,5,'B');
repeat
writeln('введите первый интервал для поиска nl>n');
readln(n,nl);
until nl>n;
repeat
writeln('введите второй интервал для поиска kl>k');
readln(k,kl);
until kl>k;
form(b,5,n,nl,k,kl,d,q);
vyvod(d,q,'D');
end.
Прикрепленные файлы:
Неизвестный
06.05.2010, 18:03
общий
Пупорев Юрий Борисович:
Ваш ответ к сожалению не подшёл!
ПО ходу Ответ № 259920 от F®ost, Модератор преподавателю нравится больше, но там что то не так, можно ли в том варианте что то подправить или добавить?
давно
Профессор
401888
1232
06.05.2010, 18:12
общий
Ваш ответ к сожалению не подшёл!

Думаю что не ответ не подошел, а Ваши ответы на вопросы преподавателя по коду программы.
Неизвестный
06.05.2010, 19:41
общий
Пупорев Юрий Борисович:
меня ничего и не спрашивали,
написали :
задание выполнено неверно, перечитайте задание внимательно


и подчеркнули
if ((x[i,j]>n)and(x[i,j]<nl))or((x[i,j]>k)and(x[i,j]<kl))
Форма ответа