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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2009, 22:12   #1
HouK
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 16
По умолчанию Сумирование чисел[pascal;delphi]

Есть задание. Дана последовательность из N челых чисел. Нада сложить те из них, которые кратны 3(число кратно 3 если сумма цифр кратна 3)
Но есть загвозда немогу написать код под такой алгоритм примерно

Алгоритм осуществляеться через консоль.

Вывод (введите последовательность из N челых чисел);
цикл(я думаю что для этого задания лучше юзать repeat)
Вводн(n-натур число)
Вывод(чтобы продолжить ввод чисел нажмите 1, чтобы прекратить
нажмите 2)
Ввод(num - 1 Да 2 Нет)
Case num of
1: Тут нада сделать вывод первого введеного n числа, и к n подписать префикс n1...nx в зависимости от того сколько юзер счел нужным ввести чисел(для этого думаю юзать цикл for)
вот дальше пока что у меня нету идей как идти.
utnil num=2(думаю для выхода будет достаточно.

Теперь используемые типы данных
n1.....n50,num,summN(подразумеваеть ся N кратных 3),:integer


Вот такое придумал, а вот код чет пока что не идет, как будут наработки буду выкладывать, но на деюсь вы тоже чтонить с кодом посоветуете или с данным алгоритмом.
HouK вне форума Ответить с цитированием
Старый 19.11.2009, 15:56   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
type vector = array[1..100] of integer;
var
  a:vector;
  i,n:Integer;
  sum:LongInt;
  function SofD(x:integer):Integer;
  var s:Integer;
  begin
    s:=0;
  while x<>0 do
    begin
      s:=s+(x mod 10);
      x:=x div 10
    end;
    SofD:=s;
  end;
begin
  sum:=0;
  Writeln('input n');
  Readln(n);
  for i:=1 to n do
    Readln(a[i]);
  Writeln('------ARRAY-------');
  for i:=1 to n do
    write(a[i]:4);
  Writeln;
  Writeln('------------------');
  for i:=1 to n do
    if SofD(a[i]) mod 3 = 0 then sum:=sum+a[i];
      Writeln('cyMMa=',sum:9);
  Readln;
end.
а вот это вот
Цитата:
Вывод (введите последовательность из N челых чисел);
цикл(я думаю что для этого задания лучше юзать repeat)
Вводн(n-натур число)
Вывод(чтобы продолжить ввод чисел нажмите 1, чтобы прекратить
нажмите 2)
Ввод(num - 1 Да 2 Нет)
Case num of
-лишняя головная боль и если и делать то как-то по-другому
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[pascal]Массив Чисел Фибоначчи decantnik Помощь студентам 5 16.11.2009 17:51
Delphi:Определить имеется ли среди чисел a,b,c хотя бы одна пара взаимно противоположных чисел. Skvot Помощь студентам 6 27.04.2009 11:47
перебор чисел (pascal) mozdok15rus Помощь студентам 7 19.03.2009 17:54
Умножение длинных чисел в Pascal SeRhy Помощь студентам 2 04.12.2008 23:50