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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 14:23   #1
dubailand
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 65
По умолчанию Найти все пятизначные числа

Выдать на экран все пятизначные числа, сумма которых - четное число, а среднее число - нет.

З.Ы. Необходимо использовать циклы.
dubailand вне форума Ответить с цитированием
Старый 16.01.2011, 14:32   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

поставь цикл от 10000 до 99999
делишь число нацело сначала на 10000 получаешь первую цифру... потом на 1000 получаешь вторую и т.д.
потом складываешь цифры, проверяешь на четность сумму и проверяешь на нечетность 3ю цифру... если да, то выводишь чило...
Код:
for i:=10000 to 99999 do begin
c1:= i div 10000;
c2:=(i mod 10000) div 1000;
...
s:=c1+c2+c3+c4+c5;
if (s mod 2 = 0) and (c3 mod 2<>0) then writeln(i);
end;

Последний раз редактировалось unbanned; 16.01.2011 в 14:35.
unbanned вне форума Ответить с цитированием
Старый 16.01.2011, 14:35   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от unbanned Посмотреть сообщение
проверяешь на нечетность 3ю цифру... если да, то выводишь чило...
Чушь полнейшая...
По твоему разумению нужно проверить лишь вот это
ХХ1ХХ
ХХ3ХХ
ХХ5ХХ
ХХ7ХХ
ХХ9ХХ
и всего то...
Под средним имеется ввиду среднее арифметическое суммф цифр из которых состоит число...
Хотя как знать, может ты и прав... ТС как-то косяво задание написал...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 16.01.2011 в 14:38.
Grag вне форума Ответить с цитированием
Старый 16.01.2011, 14:46   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

можно ещё что бы не вытаскивать цифры из числа пустить пять счётчиков(циклов)!
и использовать индексы!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 14:46   #5
dubailand
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 65
По умолчанию

unbanned прав.
проверить на нечетность среднее число, не арифметическое.
Но это не то, что я имел ввиду под циклами.

Код:
var
i,k,g,t,r,a,b:integer;
begin
     for i:=11222 to 11222 do
         begin
              k:=0;
              t:=1;
              for g:=1 to 5 do
                  begin
                       r:=i div t mod 10;
                       t:=t*10;
                       write(r, ',')
                  end;
         end;
         writeln;
end.

основное это:
for g:=1 to 5 do
                  begin
                       r:=i div t mod 10;
                       t:=t*10;
но я не знаю как найти сумму, используя этот код

Последний раз редактировалось Stilet; 16.01.2011 в 17:20.
dubailand вне форума Ответить с цитированием
Старый 16.01.2011, 14:53   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Ну так ты цифры с числами не путай, умник... А то задания раздаешь, сам не понимая что пишешь...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 16.01.2011, 16:24   #7
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Код:
const
  c: array [1..8] of integer = (10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000);

var
  n, i, j, l, k: integer;
  m: array [1..9] of real;

begin
  write('введите число:');
  readln(n);
  j := n;
  i := 0;
  while n > 0 do 
  begin
    n := n div 10;
    i := i + 1;
  end;
  l := i;
  k := l;
  while l > 1 do 
  begin
    m[l] := j div c[l - 1];
    j := j mod c[l - 1]; 
    if l = 2 then m[l - 1] := j;
    l := l - 1;
  end;
  for i := 1 to k do 
    writeln(m[i]:1:0);
end.
вот нашел код у себя... че-то бредовое но, проверил вроде работает
короч вводишь число выводит все его цифры...

скажу что она выводит цифры в обратном порядке, если надо, можно и в прямом, последний цикл чуток подправить
Код:
for i := k downto 1 do 
    writeln(m[i]);
в принципе можно и без массива обойтись... просто мне там еще над было что-то считать, толи кол-во вхождений толи еще чего, я использовал массив
переделать под твой случай не так и сложно

Последний раз редактировалось unbanned; 16.01.2011 в 20:16.
unbanned вне форума Ответить с цитированием
Старый 16.01.2011, 20:17   #8
dubailand
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 65
По умолчанию

Код, предложенный unbanned

Код:
for i:=10000 to 99999 do begin
c1:= i div 10000;
c2:=(i mod 10000) div 1000;

я заменяю
 for g:=1 to 5 do
                  begin
                       r:=i div t mod 10;
                       t:=t*10;
                       write(r, ',')
                  end;
я раскладываю на отдельные числа, но как получить сумму. Сможет кто-нибудь объяснить?

Последний раз редактировалось Stilet; 16.01.2011 в 20:29.
dubailand вне форума Ответить с цитированием
Старый 16.01.2011, 20:51   #9
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

Цитата:
Сообщение от dubailand Посмотреть сообщение
Код, предложенный unbanned

я раскладываю на отдельные числа, но как получить сумму. Сможет кто-нибудь объяснить?
создай переменную и плюсуй r...
Код:
s:=0; 
for g:=1 to 5 do
                  begin
                       r:=i div t mod 10;
                       t:=t*10;
                       write(r, ',')
                       s:=s+r;         
  end;
ты считаешь это рабочий код для данной задачи?

Последний раз редактировалось unbanned; 16.01.2011 в 20:53.
unbanned вне форума Ответить с цитированием
Старый 16.01.2011, 21:42   #10
dubailand
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 65
По умолчанию

Да, всем спасибо.Чет не додумался до этого! спасибо за помощь.
dubailand вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Найти все делители числа N torah Помощь студентам 0 24.11.2010 10:37
Найти все делители числа N torah Помощь студентам 33 06.11.2010 00:15
Найти все простые числа в заданном диапазоне Nikita++ Помощь студентам 8 20.10.2010 20:05
найти все натуральные числа,не превосходящие заданного n fredperry1661 Помощь студентам 1 02.02.2010 17:10
ДАНЫ 4 ЧИСЛА X Y Z W составит программу найти произведение все положительные нечетные числа Woland-itn Паскаль, Turbo Pascal, PascalABC.NET 3 23.03.2008 21:49