Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция 
:(
    Опции темы
1111qq
  Дата 12.11.2007, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



Люди помогите пожайлуста решить эту задачу или хотябы объясните что делать с суммой К=1,2...Заранее всем спасибо
Описать функцию, которая возвращает сумму К=1,2,… наименьших цифр, входящих в запись числа типа Longint .
PM MAIL   Вверх
1111qq
Дата 12.11.2007, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



народ помогите пожайлуста
PM MAIL   Вверх
WarHog
Дата 13.11.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 20.10.2007
Где: Воронеж

Репутация: нет
Всего: 2



Вот программа для пробы:
Код

program foo;
{нахождение суммы заданного количества минимальных цифр,
входящих в число. Например:
111223333 и К = 2 sum = 7
          и К = 3 sum = 19}
type
   TArray = array [0..9] of byte;
var
   N           : longint;
   Ar           : TArray;
   tmp, K, sum : byte;
begin
   sum := 0;
   {инициализируем массив}
   for tmp := 0 to 9 do
      Ar [tmp] := 0;
   {считаем цифры}
   Write ('Введите число: ');
   ReadLn (N);
   while (N > 0) do
   begin
      tmp := N mod 10;
      N := N div 10;
      Ar [tmp] := Ar [tmp] + 1;
   end;
   {находим сумму заданного количества  минимальных цифр}
   Write ('Введите количество минимальных цифр: ');
   ReadLn (K);
   tmp := 0; sum := 0;
   while (K > 0) do
   begin
      while (Ar [tmp] = 0) do
     tmp := tmp + 1;
      sum := sum + (Ar [tmp] * tmp);
      tmp := tmp + 1;
      K := K - 1;
   end;
   Write (sum);
   ReadLn;
end.

--------------------
PM MAIL   Вверх
1111qq
Дата 13.11.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



а можно тоже самое толлько при помощи процедуры и функции
PM MAIL   Вверх
volvo877
Дата 13.11.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



С функцией - вот так:

Код

type
  TArray = array[0 .. 9] of byte;

function get_sum(n: longint; k: integer): integer;
var
  arr: TArray;
  i, T, sum: integer;
begin
  fillchar(arr, sizeof(arr), 0);
  while n > 0 do begin
    inc(arr[n mod 10]); n := n div 10;
  end;

  sum := 0; T := 0;
  while k > 0 do begin
    while arr[T] = 0 do inc(T);
    inc(sum, T * arr[T]);
    inc(T); dec(k);
  end;
  get_sum := sum;
end;

var
  n: longint;
  k: integer;
begin
  write('n = '); readln(n);
  write('k = '); readln(k);

  writeln('s = ', get_sum(n, k));
  readln;
end.
(с процедурой - попробуй сам)
PM MAIL   Вверх
1111qq
Дата 13.11.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 5.11.2007

Репутация: нет
Всего: нет



большое спасибо  volvo877 и WarHog 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.