IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача паскаль
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


Задана матрица (двумерный массив) A размером N x М , состоящая из действительных элементов. Получить новую матрицу путем умножения всех элементов данной матрицы на ее наибольший элемент. Сформировать вектор из элементов главной диагонали и отсортировать его по возрастанию
var 
a:array[1..100,1..100]of integer;
b:array[1..100]of integer;
i,j,n,m,p:integer;
begin
read(n,m);
p:=low(p);
for i:=1 to n do
for j:=1 to m do begin
read(a[i,j]);
if a[i,j]>p then p:=a[i,j];end;
for i:=1 to n do begin
for j:=1 to m do begin
a[i,j]:=a[i,j]*p;
write(a[i,j],' ');end;
writeln;end;
for i:=1 to n do
b[i]:=round(a[i,i]/p);
for i:=1 to n do
for j:=1 to n-1 do
if b[j]>b[j+1] then begin p:=b[j];b[j]:=b[j+1];b[j+1]:=p;end;
for i:=1 to n do
write(b[i],' ');
end.

вот такая задачка, помогите пожалуйста насчет ошибок в решении и с блок схемой(вернее программу чтобы блок схемы составлять посоветуйте пожалуйста)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
сообщение
Сообщение #2


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Я пользуюсь DiagramDesigner. Только составлять надо самому.
Желательно делать отступы в начале строк - более читабельно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Евгения

Репутация: -  0  +


Спасибо за совет wink.gif
и всё таки по программе, есть вот такой вариант
Program Tryam;
var
A:array[1..50,1..50]of integer;
B:array[1..50,1..50]of integer;
C:array[1..50]of integer;
max,d,n,m,s,i,j:integer;
begin
writeln('Введите n,m');
readln(n,m);
writeln(‘Как будем вводить1 – с клавиатуры,2 – генератором случайных чисел');
readln(d);
if d=1 then
begin
for i:=1 to n do
begin
for j:=1 to m do
read(A[i,j]);
readln
end;
end
else
begin
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
A[i,j]:=10-random(20);
end;
writeln;
end;
end;
max:=A[i,j];
for i:=1 to n do
for j:=1 to m do
if(A[i,j]>max)then
max:=A[i,j];
for i:=1 to n do
for j:=1 to m do
B[i,j]:=A[i,j]*max;
for i:=1 to n do
for j:=1 to m do
if i=j then (C[i]=B[i,j])
for i:=1 to n do
for j:=1 to m do
if(C[j]>C[j+1]) then
begin
s:=C[j+1];
C[j]:=s;
end;
writeln('Полученная матрица:');
for i:=1 to n do
begin
for j:=1 to m do
write(B[i,j],' ');
writeln;
end;
writeln('Полученный вектор:');
for i:=1 to n do
write(C[i],' ');
end.

думаю более правильный, только вот с этим s:=C[j+1]; C[j]:=s; что то неправильно, как тут исправить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 30.05.2024 5:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name