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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2012, 19:42   #1
rob7777
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 52
По умолчанию Массив одномерный (Delphi)

Добрый вечер!Задана простенькая задачка,в паскале у меня легко получается, а надо в delphi, где-то допустил ошибку.В самом условии,кажется, ошибка.И еще 1 вопрос: есть способ, чтобы быстрее задать массив?Заранее спасибо)


Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов массива Х, кратных 3. Если таковых не окажется, вывести фразу «Элементов, кратных 3, нет». Полученный массив напечатать в строчку.
X = {12.3, 7, 9.5, 27, 91.2, 9, 21.4, 111, 3.2, 51}.

Код:
procedure TForm1.Button1Click(Sender: TObject);
var a,y:array[1..10]of integer;
i,j:integer;
s:string;
begin
a[1]:=3;
a[2]:=6;
a[3]:=7;
a[4]:=8;
a[5]:=2;
a[6]:=1;
a[7]:=38;
a[8]:=75;
a[9]:=32;
a[10]:=31;
j:=0;
for i:=1 to 10 do
if (a[i] mod 3= 0) then
begin
j:=j+1;
y[j]:=a[i];
end;


if j=0 then  Showmessage('Таких элементов нет')
else
for i:=1 to j do
s:=s+ IntToStr(y[j])+' ';


Showmessage(s);
end;

Последний раз редактировалось Stilet; 20.11.2012 в 20:15.
rob7777 вне форума Ответить с цитированием
Старый 21.11.2012, 16:44   #2
rob7777
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 52
По умолчанию

программа работает неправильно, она 3 раза выдает 75, может кто помочь?
rob7777 вне форума Ответить с цитированием
Старый 21.11.2012, 16:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

y[i] а не y[j].
У тебя i - итератор цикла
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.11.2012, 16:51   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

индекс в цикле выводе указан неверно, цикл же по I - а Вы всё время выводите один и тот же последний элемент массива Y - y[j]

а ещё надо ОБЯЗАТЕЛЬНО добавить зануление строки S перед циклом!
попробуйте:
Код:
if j=0 then  Showmessage('Таких элементов нет')
else begin
  s := '';
  for i:=1 to j do
     s:=s+ IntToStr(y[i])+' ';
  Showmessage(s);
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.11.2012, 17:21   #5
rob7777
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 52
По умолчанию

а, дурак я, точно. Спасибо!)правда так и не понял зачем обнулять S

Чуть не забыл, а можно как-то иначе задать массив,если мне уже заданы его элементы, а то так долго набивать?

Последний раз редактировалось Stilet; 21.11.2012 в 17:46.
rob7777 вне форума Ответить с цитированием
Старый 21.11.2012, 17:47   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
const a:array[1..10] of integer={тут элементы через запятую};
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.11.2012, 17:55   #7
rob7777
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
const a:array[1..10] of integer={тут элементы через запятую};
не получается...в прямоуголных[] скобках или как?
rob7777 вне форума Ответить с цитированием
Старый 21.11.2012, 18:14   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не, в круглых. Это я с Си попутал...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.11.2012, 18:34   #9
rob7777
Пользователь
 
Регистрация: 07.11.2011
Сообщений: 52
По умолчанию

Получилось,спасибо)
rob7777 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (Delphi) Mike_ua1 Помощь студентам 2 25.12.2012 14:01
Одномерный массив Delphi Op1nG.Spark Помощь студентам 2 04.12.2011 13:00
одномерный массив в Delphi Ника_1 Помощь студентам 4 10.11.2011 17:28
одномерный массив в delphi d3[Z.oRg] Помощь студентам 7 18.06.2011 15:04
одномерный массив delphi sofiya Помощь студентам 4 20.02.2011 13:47