![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
JoB |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Реальное имя: Григорий Репутация: ![]() ![]() ![]() |
я ее уже сделал, но в ней есть какая-то ошибка, пожалусто посмотрите...
И еще мне необходимо изменить процедуру вывода таким образом, что бы она выводила матрицу m на p и распологала ее по центру. (по любому с помощью goto, наверное надо взять сначало центральный эллимент матрици и уже от него отталкиваться) Задача: даны три матрици по пять строк и четыре эллимента в каждой 1) Заполнить матрици случайными числами; 2) переставить строки матрици , что бы эллименты шли от меньшего к большему 3) вывести на экран исправленную матрицу с задаными номером.
uses crt;
const n=3;
m=5;
p=4;
type aaaa = array [1..p] of byte;
aaa = array [1..n] of aaaa;
aa= array [1..n] of aaa;
var i,j,s,d: byte;
a:aa;
procedure ran (var b:aaa);
var i,j:byte;
z:aaaa;
begin
for i:=1 to m-1 do
for j:=1+i to m do
if b[i,1] > b[j,1] then begin
z:=b[i];
b[i]:=b[j];
b[j]:=z;
end;
end;
procedure vivod (b:aaa) ;
var i, j: byte;
begin
for j:=1 to p do
write (b[i,j]);
writeln;
end;
begin
clrscr;
randomize;
for i:=1 to n do
for j:=1 to m do
for s:=1 to p do
a[i,j,s]:= random (100);
writeln ('isxod matr');
for i:=1 to n do
begin
for s:= 1 to p do
write (a[i,j,s]:5);
writeln
end;
for i:=1 to n do
ran (a[i]);
write ('nomer davay');
readln (d);
writeln ('isxodnai matrica');
vivod (a[d]);
readln
end.
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата я ее уже сделал, но в ней есть какая-то ошибка, пожалусто посмотрите... Ты бы задание-то не хотел показать? Чего программа делать должна??? Зачем, например, число вводить? |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Все, предыдущий вопрос снят...
Вот так? uses crt;
const
n=3;
m=5;
p=4;
type
vector = array[1 .. p] of byte;
matrix = array[1 .. m] of vector;
arr_matrix = array[1 .. n] of matrix;
var
i,j,s,d: byte;
a: arr_matrix;
procedure ran(var mx: matrix);
var
i, j: byte;
T: vector;
begin
for i:=1 to m-1 do
for j:=1+i to m do
if mx[i][1] > mx[j][1] then begin
T:=mx[i]; mx[i]:=mx[j]; mx[j]:=T;
end;
end;
procedure vivod(b: matrix);
var
i, j: byte;
begin
for i := 1 to m do begin
for j := 1 to p do
write (b[i,j]:5);
writeln;
end;
end;
begin
clrscr;
randomize;
for i:=1 to n do
for j:=1 to m do
for s:=1 to p do
a[i][j][s]:= random (100);
writeln ('isxod matr');
for i:=1 to n do begin
writeln('#', i:2);
vivod(a[i]);
end;
for i:=1 to n do
ran(a[i]);
write ('nomer davay'); readln (d);
writeln ('result:');
vivod (a[d]);
readln
end.
|
JoB |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Реальное имя: Григорий Репутация: ![]() ![]() ![]() |
Классно, теперь все работает, СПС, но только матрица не в центре экрана... .
Цитата А мне не необходимо изменить процедуру вывода таким образом, что бы она выводила матрицу m на p и распологала ее по центру |
GoodWind |
![]()
Сообщение
#5
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
проще всего методом тыка пододвинуть ближе к центру таблицу, куда матрица будет выводиться, а потом позиционироать вывод в её ячейки...
-------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
=Volvo= |
![]()
Сообщение
#6
|
Гость ![]() |
GoodWind,
Я бы слова "метод тыка" вообще не применял ![]() JoB, исправь процедуру Vivod на такую: procedure vivod(b: matrix);
var
i, j: byte;
space: byte;
begin
space := 75 div p;
for i := 1 to m do begin
for j := 1 to p do
write (b[i,j]:space);
writeln;
end;
end;
|
JoB |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Реальное имя: Григорий Репутация: ![]() ![]() ![]() |
спс
Сообщение отредактировано: JoB - 7.12.2005 22:47 |
=Volvo= |
![]()
Сообщение
#8
|
Гость ![]() |
А так:
procedure vivod(b: matrix);
var
i, j: byte;
space: byte;
begin
space := (76 - p*5) div 2;
for i := 1 to m do begin
write('':space);
for j := 1 to p do
write (b[i,j]:5);
writeln;
end;
end;
? |
GoodWind |
![]()
Сообщение
#9
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
Цитата К сожадению так не пойдет... Сам так сделал, препод сказал делай нормально... =) xcuse me... а это разве ненормально ?! ![]() -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
JoB |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Пользователи Сообщений: 28 Пол: Мужской Реальное имя: Григорий Репутация: ![]() ![]() ![]() |
Извените парни реально не заметил... и огромное спасибо за програмку...
![]() Сообщение отредактировано: JoB - 7.12.2005 23:17 |
Guest |
![]()
Сообщение
#11
|
Гость ![]() |
JoB, пост №8 читал?
![]() |
GoodWind |
![]()
Сообщение
#12
|
![]() Автооответчик ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 188 Пол: Мужской Реальное имя: Александр Репутация: ![]() ![]() ![]() |
считаю решение, представленное Volvo в 8-мом посте правильным.
Дальнейшее рассусоливание темы вывода по центру рассчитывается как флейм и будет удалено! ---- Виновные будут соответствующим образом наказаны. Сообщение отредактировано: GoodWind - 7.12.2005 22:56 -------------------- Неадекватная чушь может быть адекватным ответом на неадекватный вопрос. Понятно или разжевать?
|
![]() ![]() |
![]() |
Текстовая версия | 18.08.2025 5:14 |