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

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

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

 
 Ответить  Открыть новую тему 
> Задача. Матрица + процедура
Jaren
сообщение 20.12.2007 13:24
Сообщение #1





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

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


Faq прочел ( но не смог решить). В поиске похожую тоже не нашел.

Составить программу перестановки четных и нечетных столбцов элементов матрицы. Перестановку столбцов оформить в виде процедуры
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 20.12.2007 13:50
Сообщение #2


Гость






Цитата
В поиске похожую тоже не нашел.
Плохо искал... Описываешь матрицу так, как это сделано здесь:
Программирование с использованием файлов

А потом просто меняешь столбцы с четными и нечетными индексами местами... Вот так:
for i := 1 to (size_col div 2) do begin { size_col - число столбцов !!! }
swap_cols(mx, 2*i - 1, 2*i);
end;
 К началу страницы 
+ Ответить 
Jaren
сообщение 20.12.2007 14:16
Сообщение #3





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

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


volvo спасибо
но... я очень слабоват в Паскале (
я попытался сделать, но не вышло ((
если не сложно - распиши как это сделать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 20.12.2007 14:20
Сообщение #4


Гость






Можно посмотреть, как именно ты пытался сделать? Покажи код, что неправильно - поправим...
 К началу страницы 
+ Ответить 
Jaren
сообщение 20.12.2007 14:24
Сообщение #5





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

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



program smena;
uses crt;
const
size_row = 4;
size_col = 7;
type
trow = array[1..size_row] of integer;
tmatrix = array[1..size_col] of trow;
procedure swap_cols(var mx: tmatrix;
const i; j:integer);
var T: trow;
begin
T:= mx[i]; mx[i] := mx[j]; mx[j] := T
end;
var
mx:tmatrix;
i,j:integer;
n,z :integer;
begin
for i:=1 to (size_col div 2) do begin
swap_cols(mx,2*i-1,2*i);
end.


вот ) как видно - я действительно в нем слабоват ) и даже очень
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 20.12.2007 14:34
Сообщение #6


Гость






Заполнять матрицу надо... А так все очень даже рабочее...

Вот так будет выглядеть основная программа:
begin
for i := 1 to size_col do
for j := 1 to size_row do begin
write('mx[', j:2, i:2, '] = '); readln(mx[i, j]); { <--- матрица вводится по столбцам !!! }
end;

print(mx); { До обмена }

for i:=1 to (size_col div 2) do
swap_cols(mx,2*i-1,2*i);
writeln;

print(mx); { После обмена }
end.

(процедуру Print забери по той же ссылке)
 К началу страницы 
+ Ответить 
Jaren
сообщение 20.12.2007 14:48
Сообщение #7





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

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



program smena;
uses crt;
const
size_row = 4;
size_col = 7;
type
trow = array[1..size_row] of integer;
tmatrix = array[1..size_col] of trow;
procedure swap_cols(var mx: tmatrix;
const i; j:integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;
procedure print(var mxL tmatrix);
var i,j:integer;
begin
for i:=1 tp size_row do
begin
for j:=1 to size_col do
write(mx[j][i]:4);
writeln
end;
end;
var
mx:tmatrix;
i,j:integer;
n,z :integer;
begin
for i:=1 to size_col do
for j:=1 to size_row do begin
write('mx[',j:2,i:2,']=');
readln(mx[i,j];
end;
print(mx);
for i:=1 to (size_col div 2) do
swap_cols(mx,2*i-1,2*i);
writeln;
print(mx);
end.

пишет 26 ошибку в этой строке
T := mx[i]; mx[i] := mx[j]; mx[j] := T

Прикрепил файл программы


Прикрепленные файлы
Прикрепленный файл  123.PAS ( 833 байт ) Кол-во скачиваний: 147
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 20.12.2007 15:26
Сообщение #8


Гость






procedure swap_cols(var mx: tmatrix;
const i, j:integer); { <--- Между I и J должна быть запятая, а не точка с запятой... }


Добавлено через 1 мин.
procedure print(var mx: tmatrix); { а здесь - двоеточие а не L }
Ты что, перепечатываешь вручную текст? Скопировать нельзя было? Ошибки же вносишь...

Сообщение отредактировано: volvo - 20.12.2007 15:28
 К началу страницы 
+ Ответить 
Jaren
сообщение 20.12.2007 15:39
Сообщение #9





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

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


ды в ручную )
Спасибо большое volvo
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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