Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.01.2011, 19:55
Dotam Dotam вне форума
Прохожий
 
Регистрация: 10.01.2011
Адрес: Украина, Черкассы, Хрещатик
Сообщения: 9
Репутация: 10
Плохо проблема работы процедуры в програме

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


Код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type mas = array[1..10] of integer;
function ArrayCalculated(m:mas):integer;    //вот процедура
var
  max_abs,index,min_abs,rizn:integer;
begin
max_abs:=abs(m[1]);
min_abs:=abs(m[1]);
for index:=2 to 10 do
begin
if max_abs>abs(m[index]) then
max_abs:=abs(m[index]);
if min_abs<abs(m[index]) then
min_abs:=abs(m[index]);
end;
rizn:=min_abs-max_abs;
writeln('riznica ',rizn);
end;

function array_calculate(x:mas):mas;
var
i:integer;
max,max_abs:integer;
index_max,index_max_abs:integer;
begin
max:=x[1];
max_abs:=x[1];
for i:=2 to 10 do
begin

  if x[i]>max then
    begin
      max:=x[i];
      index_max:=i;
    end;
  if abs(x[i])>abs(max_abs) then
    begin
     max_abs:=abs(x[i]);
     index_max_abs:=i;
    end;
end;   {2}
writeln('max_znach, max_ind =');
writeln(max,', ',index_max);
writeln('max_znach_abs, ind_max_abs =');
write(max_abs,', ',index_max_abs);
readln;
end;


function InpuMatrix():mas;
   var
   a:mas;
  x:integer;
begin
  Randomize;
   for x:=1 to 10 do
   begin
   a[x]:=random(20)-10;
   writeln(a[x]);
   {writeln(a[i,x]);}
   end;{1}
   InpuMatrix:= a;
end;{2}
procedure inputMatrix(var m:mas);
var
  y:integer;
begin
     for y:=1 to 10 do
     begin
      write('a[',y,']','=');
      readln(m[y]);
     end;
end;
const m :mas = (1,23,4,5,46,-34,-234,-23,99,10);
var
array_osnovniy:mas;
perem:integer;
begin
writeln('put number: if 1 then random;');
writeln('if 2 then write from keyboard;');
write('if 3 then const: = ');
readln(perem);
case perem of
1: array_osnovniy:= InpuMatrix;
2: inputMatrix(array_osnovniy);
3: array_osnovniy:= m ;
else
writeln('error, write correct number');
end;
array_calculate(array_osnovniy);
writeln(ArrayCalculated(array_osnovniy));// пробовал и так: 
                                                           ArrayCalculated(array_osnovniy);
end.
помогите решить ошибку((((
__________________
Тут может быть ваша программа...
Ответить с цитированием
  #2  
Старый 18.01.2011, 21:04
Dotam Dotam вне форума
Прохожий
 
Регистрация: 10.01.2011
Адрес: Украина, Черкассы, Хрещатик
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Dotam
у меня возникла проблема, не выводится процедура нахождения разницы минимального и максимального абсолютного значения в массиве(((


Код:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;
type mas = array[1..10] of integer;
function ArrayCalculated(m:mas):integer;    //вот процедура
var
  max_abs,index,min_abs,rizn:integer;
begin
max_abs:=abs(m[1]);
min_abs:=abs(m[1]);
for index:=2 to 10 do
begin
if max_abs>abs(m[index]) then
max_abs:=abs(m[index]);
if min_abs<abs(m[index]) then
min_abs:=abs(m[index]);
end;
rizn:=min_abs-max_abs;
writeln('riznica ',rizn);
end;

function array_calculate(x:mas):mas;
var
i:integer;
max,max_abs:integer;
index_max,index_max_abs:integer;
begin
max:=x[1];
max_abs:=x[1];
for i:=2 to 10 do
begin

  if x[i]>max then
    begin
      max:=x[i];
      index_max:=i;
    end;
  if abs(x[i])>abs(max_abs) then
    begin
     max_abs:=abs(x[i]);
     index_max_abs:=i;
    end;
end;   {2}
writeln('max_znach, max_ind =');
writeln(max,', ',index_max);
writeln('max_znach_abs, ind_max_abs =');
write(max_abs,', ',index_max_abs);
readln;
end;


function InpuMatrix():mas;
   var
   a:mas;
  x:integer;
begin
  Randomize;
   for x:=1 to 10 do
   begin
   a[x]:=random(20)-10;
   writeln(a[x]);
   {writeln(a[i,x]);}
   end;{1}
   InpuMatrix:= a;
end;{2}
procedure inputMatrix(var m:mas);
var
  y:integer;
begin
     for y:=1 to 10 do
     begin
      write('a[',y,']','=');
      readln(m[y]);
     end;
end;
const m :mas = (1,23,4,5,46,-34,-234,-23,99,10);
var
array_osnovniy:mas;
perem:integer;
begin
writeln('put number: if 1 then random;');
writeln('if 2 then write from keyboard;');
write('if 3 then const: = ');
readln(perem);
case perem of
1: array_osnovniy:= InpuMatrix;
2: inputMatrix(array_osnovniy);
3: array_osnovniy:= m ;
else
writeln('error, write correct number');
end;
array_calculate(array_osnovniy);
writeln(ArrayCalculated(array_osnovniy));// пробовал и так: 
                                                           ArrayCalculated(array_osnovniy);
end.
помогите решить ошибку((((
Код:
function array_calculate(x:mas):mas;
var
i:integer;
max,max_abs:integer;
index_max,index_max_abs:integer;
begin
max:=x[1];
max_abs:=x[1];
for i:=2 to 10 do
begin

  if x[i]>max then
    begin
      max:=x[i];
      index_max:=i;
    end;
  if abs(x[i])>abs(max_abs) then
    begin
     max_abs:=abs(x[i]);
     index_max_abs:=i;
    end;
end;   {2}
writeln('max_znach, max_ind =');
writeln(max,', ',index_max);
writeln('max_znach_abs, ind_max_abs =');
write(max_abs,', ',index_max_abs);
readln;   /// вот строчка ошибка...
end;
кстати как ужалать или закрывать темы??
__________________
Тут может быть ваша программа...
Ответить с цитированием
  #3  
Старый 19.01.2011, 10:27
Аватар для EvilRussian
EvilRussian EvilRussian вне форума
Начинающий
 
Регистрация: 21.12.2010
Адрес: Россия, Красноярский край
Сообщения: 177
Репутация: 22
По умолчанию

Жалобно попросить админа
Кстати, зря цитату вставил
__________________
Если не ты, то кто?
(с) Терри Пратчетт

Не забывайте ставить плюсы и говорить спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025