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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2012, 19:16   #1
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию Разработка программ, связанных с формированием одномерных массивов в delphi

Задана последовательность X = (x1, x2, …, x10).
Сформировать из неё одномерный массив Y, состоящий из элементов массива Х, кратных 3. Если таковых не окажется, вывести фразу «Элементов, кратных 3, нет». Полученный массив напечатать в строчку.
X = {12.3, 7, 9.5, 27, 91.2, 9, 21.4, 111, 3.2, 51}.
Орлов Никита вне форума Ответить с цитированием
Старый 11.11.2012, 19:36   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

показывайте, как задаёте исходный массив X

а вообще, по сути задание ЭЛЕМЕНТАРНОЕ.
Код:
  j := 0;
  for i:=1 to 10 do 
    if (X[i] mod 3) = 0 then begin
       inc(j);
       Y[j] := X[i]
    end;

  if j=0 then // вывести "таких элементов нет"
  else 
     for i:=1 to j do
          // вывести элемент Y[i]
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.11.2012, 19:37   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var y:array of double;i:integer;
...
begin
 for i:=low(x) to high(x) do 
  if (x[i] mod 3)=0 then begin SetLength(y,Length(y)+1); y[high(y)]:=x[i];end;
if length(y)=0 then writeln('Элементов, кратных 3, нет') else
 for i:=low(y) to high(y) do writeln(y[i]:10:2);
...
end;
Подходит предложенная схема?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.11.2012, 19:48   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

случайно обратил внимание на
Цитата:
X = {12.3, 7, 9.5, 27, 91.2, 9, 21.4, 111, 3.2, 51}.
тому, кто придумал такой пример - однозначно, НЕЗАЧЁТ!
Для вещественных чисел отсутствует понятие кратности!
(см., например, "Делимость" на вики). Это определение относится только к ЦЕЛЫМ числам.

ну, даже если подумать логически, что значит, число кратно 3-м ?
Это значит, что число делится на 3 БЕЗ ОСТАТКА.
0.3 делится на три без остатка?
короче, автора задачи (или того, что написал пример содержимого массива X) - в топку!


Stilet, компилятор Паскаля\Delphi не даст скомпилировать строчку (x[i] mod 3), если массив X - вещественного типа!
например,
Код:
  if (9.5 mod 3)>0 then begin
ошибка:
[Pascal Error] Unit4.pas(29): E2015 Operator not applicable to this operand type

Последний раз редактировалось Serge_Bliznykov; 11.11.2012 в 19:54.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2012, 22:19   #5
Орлов Никита
Пользователь
 
Регистрация: 07.11.2012
Сообщений: 18
По умолчанию

В том-то и дело...я писал программу, а компьютер вечно выдавал ошибку про операнды...я не понимал в чем дело...
Спасибо Вам за помощь
Массив составлял преподаватель по информатике:D
Я в шоке)
Орлов Никита вне форума Ответить с цитированием
Старый 14.11.2012, 22:50   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тому, кто придумал такой пример - однозначно, НЕЗАЧЁТ!
Нет, дружище. Массив верный. Проблема в наборщике - он случайно точки на запятые попутал. Возможно даже это сканированный вариант, с плохим распознаванием, я сталкивался с такими методичками.
Цитата:
Массив составлял преподаватель по информатике:D
Вот у него и поинтересуйся что он набрал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2012, 23:16   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Нет, дружище. Массив верный. Проблема в наборщике - он случайно точки на запятые попутал.
это было хорошо, если бы это было так...
к сожалению, это не так!
Цитата:
X = (x1, x2, …, x10).
массив из десяти элементов. А если бы Ваше предположение было верным, массив получается из 15 элементов..
не-не.. в топку!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.11.2012, 23:41   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Друже, ты даже не представляешь как иногда в методичках тупые преподы могу ошибать студентов
Я такого насмотрелся, что вполне поверю в очепятки и здесь. Размерность массива может быть приведена как пример (да да бывали и такие случаи на моей памяти...)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка программ, связанных с формированием и обработкой одномерных массивов Орлов Никита Паскаль, Turbo Pascal, PascalABC.NET 1 08.11.2012 16:22
Обработка одномерных массивов. vasya9 Помощь студентам 0 13.11.2011 21:08
разработка одномерных массивов. Cer)I(ik Паскаль, Turbo Pascal, PascalABC.NET 2 06.04.2011 18:02
Разработка программ по обработки динамических массивов произвольной размерности aka_faith Общие вопросы C/C++ 1 24.05.2009 13:34
Разработка программ обработки символьных массивов 3JIY4KA Помощь студентам 4 11.03.2008 23:22