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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 16:05   #1
koxaz941
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 14
По умолчанию Делфи

Помогите, будьте добры.
Вообщем вот такая вот проблема.
найти номер первого положительного элемента делящегося на 5 с остатком 2.
Array type required - вот такую ошибку выдает.
procedure TForm1.Button1Click(Sender: TObject);
var i,n,k,k1,r,r1,f,a:integer;
begin
i:=strtoint(Edit1.Text);
n:=strtoint(Edit2.Text);
k:=strtoint(Edit3.Text);
k1:=strtoint(Edit4.Text);
r1:=strtoint(Edit5.Text);
r:=strtoint(Edit6.Text);
Memo1.Lines.Add(floattostr(f));
for i:=1 to n do
if a[i]>0 then
begin
if a[i] mod 5 = 2 then begin
writeln(i);
break;
end;
end.
koxaz941 вне форума Ответить с цитированием
Старый 27.05.2013, 16:22   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Переменная "а" имеет тип integer, который не является типом массива.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 16:24   #3
koxaz941
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Переменная "а" имеет тип integer, который не является типом массива.
я в программировании практически нечего не умею, поэтому не мог бы, описать мою ошибку по конкретнее.
koxaz941 вне форума Ответить с цитированием
Старый 27.05.2013, 16:54   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Я не представляю, как еще конкретнее описать.
На примере из жизни:
У Вас есть 1 рядовой Петров, но Вы пытаетесь обратиться к первому, второму и так далее рядовым, которых просто нет, так как у Вас только один Петров.

Допустим, что "a" описан, как array of integer, то есть массив целых чисел. Вы обращаетесь к элементам незаполненного массива.

В задаче сказано "первого положительного элемента делящегося на 5 с остатком 2", откуда Вы берете значения элементов? (в коде этого нет).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 17:33   #5
koxaz941
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Я не представляю, как еще конкретнее описать.
На примере из жизни:
У Вас есть 1 рядовой Петров, но Вы пытаетесь обратиться к первому, второму и так далее рядовым, которых просто нет, так как у Вас только один Петров.

Допустим, что "a" описан, как array of integer, то есть массив целых чисел. Вы обращаетесь к элементам незаполненного массива.

В задаче сказано "первого положительного элемента делящегося на 5 с остатком 2", откуда Вы берете значения элементов? (в коде этого нет).
Прости за наглость, но не мог бы ты написать программу?
koxaz941 вне форума Ответить с цитированием
Старый 27.05.2013, 18:03   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Я смогу помочь, если Вы объясните откуда Вы берете значения элементов и напишите полностью условие задачи.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 18:16   #7
koxaz941
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Я смогу помочь, если Вы объясните откуда Вы берете значения элементов и напишите полностью условие задачи.
Вот мое задание:
1. Дан массив целых чисел из n элементов, заполненных случайным образом числами из промежутка [-1000,1000]. Найти сумму четных чисел. (Это задание уже сделал, написал из-за того, мало ли, понадобятся какие то данные).
2. Найти номер первого положительного элемента, делящегося на 5 с остатком 2. (Вот это нужно сделать)
koxaz941 вне форума Ответить с цитированием
Старый 27.05.2013, 19:12   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Вот хорошо. Приведите решение 1 задачи (туда нужно добавить несколько строчек, чтобы одновременно решалось второе).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 19:42   #9
koxaz941
Пользователь
 
Регистрация: 17.03.2013
Сообщений: 14
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Вот хорошо. Приведите решение 1 задачи (туда нужно добавить несколько строчек, чтобы одновременно решалось второе).
Вот:

procedure TForm1.Button1Click(Sender: TObject);
var i,n,j,k,s,r:integer;
a:array [1..100] of integer;
begin
i:=strtoint(Edit1.Text);
n:=strtoint(Edit2.Text);
j:=strtoint(Edit3.Text);
k:=strtoint(Edit4.Text);
s:=strtoint(Edit5.Text);
r:=strtoint(Edit6.Text);
Memo1.Lines.Add(floattostr(s));
randomize;
for i:=1 to n do
a[i]:=trunc((1000-(-1000))*random+(-1000));
for i:=1 to n do
s:=0;
for i:=1 to n do
if (a[i] mod 2)=0
then
s:=s+a[i];
k:=0;
for i:=1 to n do
end;

end.
koxaz941 вне форума Ответить с цитированием
Старый 27.05.2013, 19:56   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  n, i, j, a, s: integer;
  str: string;
begin
  randomize;
  n := strtoint(Edit1.Text);
  j := -1;
  s := 0;
  str := '';
  for i := 1 to n do
  begin
    a := random(2001) - 1000;
    if a mod 2 = 0 then
      inc(s, a);
    if (j < 0) and (a > 0) and (a mod 5 = 2) then
      j := i;
    str := str + inttostr(a) + ' ';
  end;
  str := str + #13#10 + 'Сумма четных чисел: ' + inttostr(s) + #13#10 +
    'Номер первого положительного элемента, делящегося на 5 с остатком 2: ' +
    inttostr(j);
  Memo1.Text := str;
end;
Это решение и первой, и второй.
В этом решении не используется массив (фактически он не нужен), так как элементы можно генерировать и обрабатывать последовательно.

UPD
Пожалуйста
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 27.05.2013 в 20:27.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бросок к горизонту(паскаль+-делфи.(может ли кто помочь сделать с Паскаля АВС на Делфи?) extrimal Помощь студентам 8 24.03.2013 23:51
БД в делфи annuchka Помощь студентам 22 22.01.2013 11:18
На делфи vadiprog Помощь студентам 1 24.10.2011 14:32
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
С Делфи На Си++ MAKEDON Свободное общение 3 22.07.2008 14:39