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

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

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

 
 Ответить  Открыть новую тему 
> Задачка,кто может,помогите пожалуйста.
сообщение
Сообщение #1





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

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


Помогите,кому не сложно пожалуйста,очень надо!!!!
Использовать подпрограммы(ввода,вывода,обрабатывающей
части).Дан массив целых чисел A[M,N],где
M,N<=10.Удалить все столбцы,в которых первый элемент
больше последнего.
Код не правильный-так мои идейки.
Uses crt;
type
mas=array[1..10,1..10]of integer;
size=1..10;
var
a:mas;
i,j:integer;
n,m:size;
res:integer;
Procedure Inp(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
randomize;
For i:=1 to n do
For j:=1 to m do
a[i,j]:=integer(random(10))-3;
end;
procedure sear(n,m:integer;var a:mas;var res:integer);
var
i,j:integer;
begin
res:=1;
for j:= 1 to m do
if a[1,j]>a[10,j] then res:=j;
end;
Procedure Del(Var a:mas; Var n,m:integer; k1 :
integer);
Var
i, j : integer;
Begin
for j := k1 to m-1 do
for i := 1 to n do
a[i, j] := a[i,j+1];
for i := 1 to n do
a[i, m] := 0;
Dec(m);
End;
Procedure Out(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
For i:=1 to n do begin
For j:=1 to m do
write(a[i,j]:5); writeln;
end;
end;
begin
writeln('Vvedite razmernost'' matricy: ');
readln(n,m);
inp(n,m,a);
writeln('Matrica do udaleniya stolbcov: ');
out(n,m,a);
writeln('Matrica posle udaleniya stolbcov: ');
sear(n,m,a,res);
del(a,n,m,res);
out(n,m,a);
readln;
end.


Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(zAra @ 5.12.2007 23:24) *
Код не правильный-так мои идейки.
Идейки - это замечательно, кроме шуток (большинство приходит без них), но Правила выполнять все же надо.

М
Цитата
1. Заголовок темы должен быть информативным. В противном случае тема удаляется

- приведи заголовок темы в соответствие с этим пунктом. Срочно



М
Цитата
2. Все тексты программ должны помещаться в теги [сode=pas] ... [/сode].

- на этот раз я сам тебе исправлю. Учти на будущее!



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Все в целом неплохо, только у тебя одна ошибка в процедуре Sear была (10 нужно заменить на n), но можно ее не исправлять, поскольку эта процедура совсем не нужна. Я сделал цикл с поиском нужных столбцов в самом теле главной программы, в этом цикле вызывается проседура Del - разберись с этим.

Совет: старайся избегать названий процедур и переменных, которые совпадают с зарезервированными паскалевскими словами. Переименуй процедуру Out. Кстати, самое подходящее название - Show smile.gif.

И обрати внимание на форматирование..
Uses crt;
type
mas=array[1..10,1..10]of integer;
size=1..10;
var
a:mas;
i,j:integer;
n,m:size;

Procedure Inp(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
randomize;
For i:=1 to n do For j:=1 to m do a[i,j]:=integer(random(10))-3;
end;

Procedure Del(Var a:mas; Var n,m:size; k1 :integer);
Var
i, j : integer;
Begin
for j := k1 to m-1 do for i := 1 to n do a[i, j] := a[i,j+1];
for i := 1 to n do a[i, m] := 0;
Dec(m);
End;

Procedure Out(n,m:integer;Var a:mas);
Var
i,j:integer;
begin
For i:=1 to n do begin
For j:=1 to m do write(a[i,j]:5);
writeln;
end;
end;

begin
writeln('Vvedite razmernost'' matricy: ');
readln(n,m);
inp(n,m,a);
writeln('Matrica do udaleniya stolbcov: ');
out(n,m,a);
writeln('Matrica posle udaleniya stolbcov: ');
{sear(n,m,a,res);}
for j:=m downto 1 do if a[1,j]>a[n,j] then del(a,n,m,j);
out(n,m,a);
readln;
end.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
Совет: старайся избегать названий процедур и переменных, которые совпадают с зарезервированными паскалевскими словами. Переименуй процедуру Out.
Зарезервированное слово Out к Турбо-Паскалю не имеет ровно никакого отношения. Введено оно было только в Object Pascal-е (так же как, кстати, и слово Index... Что же теперь, и Index-ом нельзя в TP переменную назвать?)


 К началу страницы 
+ Ответить 

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

 





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