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

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

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

> Задача паскаль
Трям
сообщение 1.03.2012 21:59
Сообщение #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)
sheka
сообщение 1.03.2012 22:05
Сообщение #2


Я.
****

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

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


Я пользуюсь DiagramDesigner. Только составлять надо самому.
Желательно делать отступы в начале строк - более читабельно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Трям
сообщение 11.03.2012 16:29
Сообщение #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

 



- Текстовая версия 20.07.2025 2:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"