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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2010, 20:44   #1
nick6161
 
Регистрация: 09.11.2010
Сообщений: 9
Вопрос Задача на функции и процедуры в Turbo Pascal

Задание:
Составить программу из 3х частей. В основной вывести элементы двумерного массива [1..5,1..8]. В процедуре найти максимальные и минимальные элементы массива. В функции найти количество нулевых элементов в массиве. Результаты вывести в основную программу.

Мое неправильное решение
program dz3;
Type Tmas=array [1..5,1..8] of integer;
Var n,m:integer;
Mas:tmas;
procedure MaxValue(const a: Tmas);
var
Max, n,m: integer;
begin
Max:=1;
for n:=2 to 5 do
for m:=2 to 8 do
if a[n,m] > Max then Max:=a[n,m];
end;
procedure MinValue(const a: Tmas);
var
Min, n,m: integer;
begin
Min:=1;
for n:=2 to 5 do
for m:=2 to 8 do
if a[n,m] < Min then Min:=a[n,m];
end;
Function o_elm (a:tmas) :integer;
Var n,m:integer;
o_elm:=0;
begin
for n:=1 to 5 do
for m:=1 to 8 do
If a[n,m]=0 then o_elm:=o_elm+1;
End;
begin
for n:=1 to 5 do
For m:=1 to 8 do
readln(mas[n,m]);
Writeln('ìàêñèìàëüíûé ýëåìåíò ìàññèâà=',max);
Writeln('ìèíèìàëüíûé ýëåìåíò ìàññèâà=',min);
Writeln('êîëè÷åñòâî íóëåâûõ ýëåìåíòîâ=',o_elm);
End.

По моему я неправильно ищу максимальный и минимальный элемент двумерного массива и неправильно вывожу значения из процедур.
Хотя, возможно тут еще много других ошибок
Помогите пожалуйста исправить решение
nick6161 вне форума Ответить с цитированием
Старый 09.11.2010, 21:09   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Ошибок полно.
Код:
Var 
n,m,MaxM,MinM:integer;
Mas:tmas;
procedure MaxValue(Var Max:Integer);
var
 n,m: integer;
begin
Max:=Low(Integer);  
for n:=1 to 5 do
Begin
   for m:=1 to 8 do
   if Mas[n,m] > Max then Max:=Mas[n,m];
End;
end;
procedure MinValue(Var Min:Integer);
var
   n,m: integer;
begin
Min:=High(Integer);
for n:=1 to 5 do
Begin
  for m:=1 to 8 do
  if a[n,m] < Min then Min:=Mas[n,m];
End;
end;
Function o_elm:integer;
Var 
n,m,Kol:integer;
Kol:=0;
begin
for n:=1 to 5 do
Begin
   for m:=1 to 8 do
  If Mas[n,m]=0 then Kol:=Kol+1;
End;
o_elem:=Kol
End;
Begin
   MaxValue(MaxM);
   Writeln('Max = ',MaxM);
   MinValue(MinM);
   Writeln(MinM);
   Writeln('Количество нулей = ',o_elem)
   Readln
End.
Вроде все исправил
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 09.11.2010, 21:26   #3
nick6161
 
Регистрация: 09.11.2010
Сообщений: 9
По умолчанию

GetMax
Спасибо большое!
nick6161 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на функции и процедуры в Turbo Pascal nick6161 Помощь студентам 2 09.11.2010 01:49
[Pascal] Процедуры и функции koshkarjov Помощь студентам 4 29.04.2010 03:31
Pascal-процедуры и функции xxBOBAHxx Помощь студентам 3 18.11.2008 14:30
Turbo Pascal. Задача на функции/процедуры Manchester Помощь студентам 8 14.11.2008 22:00