Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2010, 18:52   #1
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию Массив(Паскаль).Только подправить!

Короче прогу я сделал!!!!!Но нужна помощь!!!СРОЧНО!!!!!
Вот условие - Дана матрица размера 5 X 10.Найти мин,макс значение в каждой строке.Препод подкапался до того что когда я ввожу эл-ты массива,они должны распологаться во так:

2 3
1 2
Вот я сделал её:

Код:
program Lab5_2;
var a:array[1..5,1..10] of integer;
i,j,n,m,min,max,k,t:integer;
begin
write('vvedite razmernost massiva n-m>'); readln(n,m);
for i:=1 to n do
for j:=1 to m do begin
write('a[',i,',',j,']='); readln(a[i,j]);
end;
max:=a[1,1];
min:=a[1,1];
for i:=1 to n do begin
min:=a[i,1];max:=a[i,1];k:=0;
for j:=1 to n do begin
k:=k+1;
if a[i,j]> max then max:=a[i,j];
if a[i,j]< min then min:=a[i,j];
if k=n then writeln ('min=',min,'  max=',max,'');
end;
end;
for j:=1 to m do begin
min:=a[1,j];max:=a[1,j];t:=0;
for i:=1 to m do begin
t:=t+1;
if a[i,j]> max then max:=a[i,j];
if a[i,j]< min then min:=a[i,j];
if t=m then writeln ('min=',min,'  max=',max,'');
end;
end;
end.
Вот рез-ат:
vvedite razmernost massiva n-m>2
2
a[1,1]=2
a[1,2]=3
a[2,1]=1
a[2,2]=2
min=2 max=3
min=1 max=2
min=1 max=2
min=2 max=3



Препод подкапался до того что когда я ввожу эл-ты массива,они должны распологаться во так:

2 3
1 2

ПОМОГИТЕ ПЛЗ!!!!!!!!!!!!Заранее СПАСИБО!!!!!!!!!!

Последний раз редактировалось Stilet; 20.12.2010 в 20:39.
Cas01 вне форума Ответить с цитированием
Старый 20.12.2010, 19:20   #2
KEA0301
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 28
По умолчанию

Ну вообще, если ты хочешь чтобы вводить нужно было так:
vvedite razmernost massiva n-m>2
2
vvedite matricu:
2 3
1 2

То ввод будет примерно таким:
write('vvedite matricu:');
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);

А еще избавься от переменных K и T а writeln вынеси за вложенный цикл.
KEA0301 вне форума Ответить с цитированием
Старый 20.12.2010, 19:23   #3
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

KEA0301 а ты не мог бы написать целиком прогу исправленную,а я потом разберусь что куда!!!!Просто оч очень срочно надо!!!!

ПЛЗ!!!!!!!
Cas01 вне форума Ответить с цитированием
Старый 20.12.2010, 20:10   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

модератору на удаление

Последний раз редактировалось Базиля; 20.12.2010 в 20:24.
Базиля вне форума Ответить с цитированием
Старый 20.12.2010, 20:20   #5
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

т.е. мне заменять вот этот фрагмент?
write('vvedite razmernost massiva n-m>'); readln(n,m);
for i:=1 to n do
for j:=1 to m do begin
write('a[',i,',',j,']='); readln(a[i,j]);
Cas01 вне форума Ответить с цитированием
Старый 20.12.2010, 20:24   #6
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

черт, я туплю. Заменяй свой ввод на
Код:
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
и все будет норм. Вводишь прям в строку элементы строки. Напрмер
2 3 4 5 6
2 3 4 5 7
3 4 5 6 9
Цитата:
т.е. мне заменять вот этот фрагмент?
write('vvedite razmernost massiva n-m>'); readln(n,m);
for i:=1 to n do
for j:=1 to m do begin
write('a[',i,',',j,']='); readln(a[i,j]);
общий вид у тебя будет
Код:
program Lab5_2;
var a:array[1..5,1..10] of integer;
i,j,n,m,min,max,k,t:integer;
begin
write('vvedite razmernost massiva n-m>'); readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
max:=a[1,1];
min:=a[1,1];
for i:=1 to n do begin
min:=a[i,1];max:=a[i,1];k:=0;
for j:=1 to n do begin
k:=k+1;
if a[i,j]> max then max:=a[i,j];
if a[i,j]< min then min:=a[i,j];
if k=n then writeln ('min=',min,' max=',max,'');
end;
end;
for j:=1 to m do begin
min:=a[1,j];max:=a[1,j];t:=0;
for i:=1 to m do begin
t:=t+1;
if a[i,j]> max then max:=a[i,j];
if a[i,j]< min then min:=a[i,j];
if t=m then writeln ('min=',min,' max=',max,'');
end;
end;
end.
И еще я заметил что ты зачем-то ищешь макс и мин в каждом столбце, когда тебе по условию требуется только в строке.

Последний раз редактировалось Базиля; 20.12.2010 в 20:35.
Базиля вне форума Ответить с цитированием
Старый 20.12.2010, 20:32   #7
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

Спасибо огромное!!!!!!!
А не посмотришь анологичную ситуацию,я не допираю как тут сделать тоже самое:
Даны 3 символьные матрицы.Ту матрицу,где есть хотя бы одна глассныя-транспонировать
В той ,на главной диоганали которой все цифры,найти наим. и удалить соотв. строку.
Program LAB_9;
Const Z=['А','а','Е','е','Ё','ё','И','и','О' ,'о','У','у','Ы','ы','Э','э','Ю','ю ','Я','я'];
VAR a,b,c:array[1..5,1..5] of char;
i,j,n,p,at,bt,ct,h:integer;
procedure Transp(ji,ij:char;Var jit,ijt:char);
Var f:char;
begin f:=ij; ij:=ji; ji:=f; jit:=ji; ijt:=ij; end;

BEGIN
writeln('Введите размер матриц a,b,c (nxn) <=5:');
write ('n='); readln(n);
at:=0; bt:=0; ct:=0;
for p:=1 to 3 do begin
if (p=1)then writeln('Заполните массив А');
if (p=2)then writeln('Заполните массив B');
if (p=3)then writeln('Заполните массив C');
for i:=1 to n do begin
for j:=1 to n do begin
if (p=1)then begin readln(a[i,j]); if (a[i,j]in Z) then at:=1;end;
if (p=2)then begin readln(b[i,j]); if (b[i,j]in Z) then bt:=1;end;
if (p=3)then begin readln(c[i,j]); if (c[i,j]in Z) then ct:=1;end;end;end;end;
{Часть А}
if (at=1)then begin
h:=0;
for i:=1 to n do begin
h:=h+1;
for j:=h to n do
Transp(a[j,i],a[i,j],a[j,i],a[i,j]);end;end;

if (bt=1)then begin
h:=0;
for i:=1 to n do begin
h:=h+1;
for j:=h to n do
Transp(b[j,i],b[i,j],b[j,i],b[i,j]);end;end;

if (ct=1)then begin
h:=0;
for i:=1 to n do begin
h:=h+1;
for j:=h to n do
Transp(c[j,i],c[i,j],c[j,i],c[i,j]);end;end;

for p:=1 to 3 do begin
if (p=1)then write('Массив А');
if (p=2)then begin writeln; write('Массив B'); end;
if (p=3)then begin writeln; write('Массив C'); end;
for i:=1 to n do begin
writeln;
for j:=1 to n do begin
if (p=1)then write (a[i,j]);
if (p=2)then write (b[i,j]);
if (p=3)then write (c[i,j]);end;end;end;

END.


Я че та даже с примером не допираю))))туплю)))))
не поможешь?)
Cas01 вне форума Ответить с цитированием
Старый 20.12.2010, 20:36   #8
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Измени свой предыдущий код на:
Код:
program Lab5_2;
var a:array[1..5,1..10] of integer;
i,j,n,m,min,max:integer;
begin
write('vvedite razmernost massiva n-m>'); readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
max:=a[1,1];
min:=a[1,1];
for i:=1 to n do
begin
max:=a[i,1];
min:=a[i,1];
for j:=1 to m do
begin
if a[i,j]>max then max:=a[i,j];
if a[i,j]<min then min:=a[i,j];
end;
write('максимум ',i,'-ой строки=',max);
write('     ');
write('минимум ',i,'-ой строки=',min);
writeln;
end;
end.
тебе не требуется искать макс и мин в столбцах

Цитата:
не поможешь?)
Я сейчас ухожу, если до моего прихода никто не откликнется, отпишусь.
Базиля вне форума Ответить с цитированием
Старый 20.12.2010, 20:38   #9
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

спасибо...так что насчет пред.поста?)
Cas01 вне форума Ответить с цитированием
Старый 20.12.2010, 20:39   #10
Cas01
Форумчанин
 
Регистрация: 16.12.2010
Сообщений: 175
По умолчанию

аааа.....ОК!!!!!!!!
Cas01 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комментарии. Только при пин-коде. Почему работает только 1 пи код? Bushel PHP 1 23.10.2010 18:21
Только подправить.... Татяна Помощь студентам 2 20.05.2009 14:00
Перенести в новую строку только те слова, которые разделены одним пробелом. задача на паскаль SashaPRO Паскаль, Turbo Pascal, PascalABC.NET 1 22.12.2008 20:01
Создать массив только из тех элементов, у которых остаток от деления на М равен L (0<=L<=M-1) Айвенго Microsoft Office Excel 2 12.01.2008 16:28