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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2009, 18:34   #1
modulrev
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 21
Смущение Помогите решить задачи

1.Имеется матрица 20х30.Найти минимальный и максимальный элемент в каждом столбце
2.Имеется массив целых чисел.Найти кол-во четных,положительных,кратных 3,найти сумму всех элементов,мин и макс.
Заранее спасибо
modulrev вне форума Ответить с цитированием
Старый 10.01.2009, 18:51   #2
NieL
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 116
По умолчанию

Код:
  M: array [0..2, 0..2] of Integer =
    (
     ((1), (2), (3)),
     ((6), (5), (4)),
     ((8), (7), (9))
    );
Код:
procedure Tform_Test.Button1Click(Sender: TObject);
var
  i, j, Max, Min: Integer;
begin
  for i := 0 to 2 do
  begin
    Max := M[i, 0];
    Min := M[i, 0];
    for j := 0 to 2 do
    begin
      if M[i, j] > Max then Max := M[i, j];
      if M[i, j] < Min then Min := M[i, j];
    end;
    ShowMessageFmt('%d-я строка'#13#10'Max: %d'#13#10'Min: %d', [i, Max, Min]);
  end;
end;
ой перепутал. Это в каждой строке. А вот в каждом столбце

Код:
procedure Tform_Test.Button1Click(Sender: TObject);
var
  i, j, Max, Min: Integer;
begin
  for i := 0 to 2 do
  begin
    Max := M[0, i];
    Min := M[0, i];
    for j := 0 to 2 do
    begin
      if M[j, i] > Max then Max := M[j, i];
      if M[j, i] < Min then Min := M[j, i];
    end;
    ShowMessageFmt('%d-й столбец'#13#10'Max: %d'#13#10'Min: %d', [i, Max, Min]);
  end;
end;

Последний раз редактировалось NieL; 10.01.2009 в 18:58.
NieL вне форума Ответить с цитированием
Старый 10.01.2009, 18:54   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вторая задача:
Код:
uses crt;
const N=10;
var
mass : array[1..N] of integer;
i,chet,polozh,krat,sum,min,max : integer;

begin
clrscr;
{Заполнение массива случайными числами}
randomize;
for i:=1 to N do
 begin
 mass[i] := random(100)-30;
 write(mass[i]:5);
 end;
writeln;
{------------------}
chet := 0;
polozh := 0;
krat := 0;
sum := 0;
min := mass[1];
max := mass[1];
for i:=1 to N do
 begin
 if mass[i] mod 2 = 0 then inc(chet);
 if mass[i] > 0 then inc(polozh);
 if mass[i] mod 3 = 0 then inc(krat);
 sum := sum + mass[i];
 if min>mass[i] then min := mass[i];
 if max<mass[i] then max := mass[i];
 end;
writeln;
writeln('Kol-vo chetnyh el-v= ',chet);
writeln('Kol-vo polozhitelnyh el-v= ',polozh);
writeln('Kol-vo el-v kratnyh 3= ',krat);
writeln('Summa el-v= ',sum);
writeln('Minimum= ',min);
writeln('Maximum= ',max);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.01.2009, 19:32   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

To Niel
Посмотрите внимательно на свое творение и скажите, чем у Вас поиск в строках отличается от поиска в столбцах кроме сообщения?
puporev вне форума Ответить с цитированием
Старый 10.01.2009, 19:41   #5
modulrev
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 21
По умолчанию Спс

Огромное спасибо за помощь
1 задача у меня не работает
А вот Sazary отдельное спасибо
Помогите с первой пожалуйста

Последний раз редактировалось modulrev; 10.01.2009 в 19:54.
modulrev вне форума Ответить с цитированием
Старый 10.01.2009, 20:24   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Первая задача:
Саму матрицу на экран не вывожу - слишком большая.
Для проверки можно уменьшить значения n и m и раскомментить writeln'ы.
Код:
uses crt;
const n=20; m=30;
var
matr : array[1..n,1..m] of integer;
minmax : array[1..m,1..2] of integer;
i,j,mini,minj,maxi,maxj : integer;
begin
clrscr;
{заполнение матрицы}
randomize;
for i:=1 to n do
 begin
 for j:=1 to m do
  begin
  matr[i,j] := random(50)-10;
 { write(matr[i,j]:4); }  {выводить бесполезно - не влезет на экран ))}
  end;
{ writeln;  }
 end;
{ writeln;  }
{ writeln;    }
{----------}
for j:=1 to m do
 begin
  mini := 1; minj := 1;
  maxi := 1; maxj := 1;
  for i:=1 to n do
   begin
   if matr[i,j]<matr[mini,minj] then begin
                                     mini := i;
                                     minj := j;
                                     end;
   if matr[i,j]>matr[maxi,maxj] then begin
                                     maxi := i;
                                     maxj := j;
                                     end;
   end;
 minmax[j,1] := matr[mini,minj];
 minmax[j,2] := matr[maxi,maxj];
 end;

{вывод минимумов}
writeln('Min:');
for j:=1 to m do
 write(minmax[j,1]:4);
{вывод максимумов}
writeln;
writeln('max:');
for j:=1 to m do
 write(minmax[j,2]:4);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 10.01.2009, 20:47   #7
modulrev
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 21
Радость

Ещё раз большо:е спасибо
modulrev вне форума Ответить с цитированием
Старый 11.01.2009, 13:18   #8
Jora_Kornev
Пользователь
 
Аватар для Jora_Kornev
 
Регистрация: 06.01.2009
Сообщений: 72
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
To Niel
Посмотрите внимательно на свое творение и скажите, чем у Вас поиск в строках отличается от поиска в столбцах кроме сообщения?
В строках
Код:
    begin
      if M[i, j] > Max then Max := M[i, j];
      if M[i, j] < Min then Min := M[i, j];
    end;
В столбцах
Код:
    begin
      if M[j, i] > Max then Max := M[j, i];
      if M[j, i] < Min then Min := M[j, i];
    end;
ася: тристадевяносто 068 ноль восемь шесть

Последний раз редактировалось Jora_Kornev; 11.01.2009 в 13:21.
Jora_Kornev вне форума Ответить с цитированием
Старый 11.01.2009, 15:59   #9
RomT24
Пользователь
 
Регистрация: 10.01.2009
Сообщений: 71
Сообщение

Первую задачу на мой взгляд, можно решить проще:
program matrix;
uses Crt;
var
arr:array[1..5] of array[1..5] of integer;
i,j,max,min,k:integer;
begin
clrscr;
k:=1;
for i:=1 to 5 do
for j:=1 to 5 do {Заводим числа в матрицу от 1 до n*m}
begin
arr[i][j]:=k;
Inc(k);
end;

for i:=1 to 5 do
begin
for j:=1 to 5 do
write(arr[i][j]:4); {Выводим на экран матрицу}
writeln;
end;

writeln;

for j:=1 to 5 do
begin
min:=arr[1][j];
max:=arr[1][j];
for i:=1 to 5 do
begin
if arr[i][j]<min then min := arr[i][j];
if arr[i][j]>max then max := arr[i][j];
end;
writeln('Максимальный и минимальный элемент ',j,'-ого столбца: ');
writeln(max,', ',min);
end;
end.
числа можешь подставить свои, но матрица действительно не входит на экран)
RomT24 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачи на C++ Many man Помощь студентам 7 02.12.2008 20:41
Помогите решить задачи! щдуп Паскаль, Turbo Pascal, PascalABC.NET 9 19.05.2008 17:26
Помогите решить задачи Andyst Помощь студентам 3 25.12.2007 15:14
ПОМОГИТЕ РЕШИТЬ ЗАДАЧИ С++ lawny Фриланс 1 24.12.2007 20:58