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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2010, 23:40   #1
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию незнаю как процедуру написать

Разработать процедуру, которая в массиве целых чисел находит элементы с максимальным количеством четных цифр и его номер
Saka вне форума Ответить с цитированием
Старый 14.02.2010, 01:49   #2
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

Проверяешь количество четных цифр в каждом элементе массива вот и все...
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 14.02.2010, 03:19   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Saka, во-первых, не указан, какой язык программирования Вам нужен то.
во-вторых, что это за помощь, если не понятно, что именно у Вас не получается? Как писать процедуру? Как разложить число на отдельные цифры (кстати, ограничений на использование отдельных операторов нет? ), или как найти максимальное значение чего-бы то ни было среди массива элементов?

Давайте ваши наработки!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.02.2010, 13:08   #4
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

Язык Delphi, азы процедур.

процедура у мя такая, но единственное не могу понять как найти среди чисел с четными цифрами максимальное

Код:
Procedure Solve (m:myarray);
var
max,b,n,k,numer_max,i:integer;
Begin
max:=m[1];
numer_max:=1;
for i:=2 to count do
 begin
 b:=0;
 m[i]:=n;
 k:=n mod 10;
 if not odd(n) then (inc(b)) and (numer_max:=i)
 n:=n div 10;
 end;
Saka вне форума Ответить с цитированием
Старый 14.02.2010, 13:30   #5
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
Радость

Это, в смысле, надо найти максимальный четный элемент в массиве, распечатать его и его номер? Так что ли?

Последний раз редактировалось sir.andrey; 14.02.2010 в 13:33.
sir.andrey вне форума Ответить с цитированием
Старый 14.02.2010, 14:31   #6
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

нет. нужно найти число у которого наибольшее количество четных чисел. нужно вывести число и номер в массиве, под которым оно стоит
Saka вне форума Ответить с цитированием
Старый 14.02.2010, 14:41   #7
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

Цитата:
Сообщение от Saka Посмотреть сообщение
нужно найти число у которого наибольшее количество четных чисел
Чет я не могу допедрить, как у числа могут быть какие то числа?
Может так (пример) 5=1,2,3,4,5?- 2 четных числа!
sir.andrey вне форума Ответить с цитированием
Старый 14.02.2010, 14:53   #8
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

не, массив например: 45 3 87 88
в числе 45,87 - одна четная цифра - 4 и 8 соответственно
а в числе 88 - две четные цифры 8 и 8, следовательно это и есть число с максимальным количеством четных цифр.
А вывести нужно это число и номер позиции на котором оно стоит в массиве ( в нашем случае число-88, позиция-4)
Saka вне форума Ответить с цитированием
Старый 14.02.2010, 15:37   #9
sir.andrey
Форумчанин
 
Регистрация: 06.12.2009
Сообщений: 380
По умолчанию

Только тут для 2-х значных чисел!!!
Т.е. в массив первоначально через генератор случайных чисел
будут запихиваться только двухзначные числа!

Цитата:
for i:=1 to n do begin
a[i]:=random(80)+10;
write (a[i],' ');
end;

Код:
program by_Andreyka;
var a:array [1..30] of integer;
i,x,q,q2,k,n,y,g:integer;
begin
k:=0; x:=0; y:=0; g:=0;
read (n);
randomize;
for i:=1 to n do begin
                 a[i]:=random(80)+10;
                 write (a[i],' ');
                 end;
for i:=1 to n do begin
q:=a[i] div 10;
q2:=a[i] mod 10;
if (q mod 2=0) and (q2 mod 2=0) then begin
                                     k:=i;
                                     x:=a[i];
                                     end;

if ((q mod 2<>0) and (q2 mod 2=0)) or ((q mod 2=0) and (q2 mod 2<>0)) then
begin
g:=i;
y:=a[i];
end;
end;
writeln;
if x<>0 then begin
             writeln ('4iclo c maks 4etnimi-',x,'   ego nomer-',k);
             end
        else begin
             if y<>0 then writeln ('4iclo c maks 4etnimi-',y,'   ego nomer-',y)
                     else writeln ('sie v massive ne imeetsa');
             end;
readln;
readln;
end.
Ах да, это на паскале, но он на первый взгляд очень похож на делфи!!!
И еще я не чере3 процедуру делал, но там ничего сложного нет,
просто готовый массив запихиваешь в подпрограмму с поиском того чего надо!
эту программу можно сделать и другими способами (поменьше размер)!

Последний раз редактировалось Stilet; 15.02.2010 в 08:17.
sir.andrey вне форума Ответить с цитированием
Старый 14.02.2010, 16:14   #10
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

Пожалуйста можешь показать как в процедуру запихнуть)))))
Saka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как написать процедуру в ДЕЛФИ?? Wi1D Помощь студентам 10 24.02.2014 10:19
Незнаю как написать программу на питоне "D.K" Помощь студентам 0 07.01.2010 21:45
Как написать свою процедуру? theYozh Помощь студентам 10 08.03.2009 11:18
Как правильно написать процедуру Cold Went Компоненты Delphi 1 29.04.2008 14:21