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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 08:59   #1
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию Вывести все содержащиеся в массиве A(N) нечетные числа и их количество K ( Делфи 7 )

Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве нечетные числа в порядке возрастания их индексов, а также их количество K.
nadyaH вне форума Ответить с цитированием
Старый 17.03.2014, 09:02   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Ну и в чем проблема?
Побежали по массиву, если число нечетное - вывели, счетчик увеличили на 1.
массив кончился - вывели значение счетчика.
Код:
for i:=o to N dо
if a1[i] mod 2 = 0 then
...
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 17.03.2014, 10:56   #3
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Код:
if a[i] mod 2 = 0 then
в этой строке выдаёт ошибку
nadyaH вне форума Ответить с цитированием
Старый 17.03.2014, 11:00   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

А код целиком показать?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 17.03.2014, 11:15   #5
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

показывай.Я не могу сообразить.
Код:
function Neth(a: TArray; N: integer): string;  
var
  i: integer;
  r:string;
begin
for i:=0 to N do
r:= a[i] mod 2;
if r = 0 then    {ошибка?}
 result:=r+a[i];
end;

Последний раз редактировалось Serge_Bliznykov; 17.03.2014 в 11:21.
nadyaH вне форума Ответить с цитированием
Старый 17.03.2014, 11:18   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от nadyaH Посмотреть сообщение
Код:
if a[i] mod 2 = 0 then
ну и учтите, что остаток от деления на равен нулю у ЧЁТНЫХ чисел.

нечётные числа можно определить либо так:
Код:
if a[i] mod 2 = 1 then...
или (лучше) так:
Код:
if odd(a[i]) then...

p.s. А с тем, что код программы нужно показывать целиком я согласен.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2014, 11:18   #7
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Код:
r:string;
....
r:= a[i] mod 2;
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 17.03.2014, 11:23   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от nadyaH Посмотреть сообщение
показывай.Я не могу сообразить.
Код:
function Neth(a: TArray; N: integer): string;  
var
  i: integer;
  r:string;
begin
for i:=0 to N do
r:= a[i] mod 2;
if r = 0 then    {ошибка?}
 result:=r+a[i];
end;
Надя, Вы написали функцию, которая возвращает СТРОКУ (т.е. == текст == набор символов).
Я даже предположить боюсь, что Вы хотите таким кодом получить?!

Рискну предположить, Вы хотите получить строку, в которой перечислены ВСЕ нечётные числа?!!

хотели написать так?
Код:
function Neth(a: TArray; N: integer): string;  
var
  i: integer;
begin
  result := '';
  for i:=0 to N do
      if (a[i] mod 2)=1 then result := result  + IntToStr(a[i])+',';
end;

Последний раз редактировалось Serge_Bliznykov; 17.03.2014 в 11:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2014, 11:25   #9
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

Serge_Bliznykov
Вы правильно предположили,но у меня не удаётся это сделать.
nadyaH вне форума Ответить с цитированием
Старый 17.03.2014, 11:27   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

посмотрите мой пост выше, я привёл код, как это можно сделать.

p.s. ещё можно в этой же функции сразу и количество нечётных чисел в массиве подсчитать (используйте параметер с var, через который можно вернуть результат K)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив. Вывести вначале все четные числа в порядке возрастания их индексов, затем - все нечетные в порядке убывания.( Delphi ) simonte Помощь студентам 9 07.12.2013 06:54
В массиве поставить вначале все четные, а затем все нечетные цифры в массиве (Написать программу в коде делфи) Murfik97 Помощь студентам 4 26.11.2013 21:26
Вывести сначала все его четные (нечетные) елементы, а потом- нечетные(четные). tondo Помощь студентам 4 25.04.2012 00:17
в заданном массиве вывести все четные числа leysan Помощь студентам 2 09.12.2009 22:08
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49