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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2012, 15:09   #1
MISTER_88
 
Регистрация: 14.02.2012
Сообщений: 7
По умолчанию Дан массив целых чисел из n элементов

Delphi.
Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-20;40].
1. Найти удвоенную сумму положительных элементов.
2. Вывести индексы тех элементов, значения которых больше значения предыдущего элемента (начиная со второго).
3. Определить, есть ли две пары соседних элементов с одинаковыми знаками.
Заранее благодарен)

вот наработки 1 задания. Что сделано неверно?
Код:
var
  Form1: TForm1;
   a:array of integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 i,n:integer;
begin
  n:=strtoint(edit1.Text);
  setlength(a,n);
  randomize;
   edit2.Text:='';
  for i:=0 to n-1 do
 begin
  a[i]:=random(60)-20;
  edit2.Text:=edit2.Text+' '+inttostr(a[i]);
end;
  end;

procedure TForm1.Button2Click(Sender: TObject);
const n=20;
var
i:integer;
s:real;
begin
   s:=0;
  for i:=1 to n do
   if i>0 then
   s:=(a[i]+n)*2;
  edit3.Text:=floattostr(s);
 end;
end.

Последний раз редактировалось ACE Valery; 06.03.2012 в 22:51.
MISTER_88 вне форума Ответить с цитированием
Старый 06.03.2012, 18:03   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Что сделано неверно?
1. В процедуре Button1Click у вас значение переменной n берется из Edit1, а в процедуре Button2Click n является константой. Но если в первой процедуре n будет меньше 20 (соответственно и массив будет менее 20 элементов), то вы получите выход за пределы границ массива. Просто опишите n глобально и используйте всегда одно значение
Код:
var
Form1: TForm1;
a:array of integer;
n:Integer;
2. процедура нахождения удвоенной суммы положительных элементов написано абсолютно неверно
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
s:word;
begin
s:=0;
for i:=0 to n-1 do
if a[i]>0 then s:= s + a[i];
s:=s*2;
edit3.Text:=inttostr(s);
end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 14.03.2012, 17:18   #3
MISTER_88
 
Регистрация: 14.02.2012
Сообщений: 7
По умолчанию

GetMax, спасибо за совет) Но 2 кнопка не работает( Показывает в поле edit2 занчение 0.. как бы не генерировались цифры в массиве...
MISTER_88 вне форума Ответить с цитированием
Старый 14.03.2012, 19:06   #4
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Но 2 кнопка не работает( Показывает в поле edit2 занчение 0.. как бы не генерировались цифры в массиве...
Проверил у себя. Все работает. Косяк в вашем коде где то
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 28.03.2012, 17:26   #5
krakatau
Новичок
Джуниор
 
Регистрация: 28.03.2012
Сообщений: 1
По умолчанию

2. Вывести индексы тех элементов, значения которых больше значения предыдущего элемента (начиная со второго).
3. Определить, есть ли две пары соседних элементов с одинаковыми знаками.


Кто шарит помогите со вторым и третьим заданием
krakatau вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив целых чисел из 25 элементов,заполненный случайным образом числами из промежутка [-35,75] Vinam* Паскаль, Turbo Pascal, PascalABC.NET 3 23.12.2011 13:00
Дан массив целых чисел P ,состоящий из 30 элементов.Заполнить его с клавиатуры Darkin Паскаль, Turbo Pascal, PascalABC.NET 4 26.05.2011 17:37
дан массив А из К целых чисел. amikulia Помощь студентам 1 14.01.2011 12:41
Дан массив целых чисел из n элементов endimion11 Помощь студентам 11 20.04.2010 17:36