Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Pascal


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

lamed
Статус: Академик
Рейтинг: 5263
∙ повысить рейтинг »
Орловский Дмитрий
Статус: Академик
Рейтинг: 5212
∙ повысить рейтинг »
Роман Селиверстов
Статус: Академик
Рейтинг: 2680
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Pascal (Паскаль)

Номер выпуска:1184
Дата выхода:02.06.2011, 00:00
Администратор рассылки:Boriss (Академик)
Подписчиков / экспертов:175 / 174
Вопросов / ответов:1 / 1

Вопрос № 183373: Уважаемые эксперты! Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме! Вот задачи: 1) Даны натуральные числа K и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр кот...



Вопрос № 183373:

Уважаемые эксперты!
Уважаемый lamed (Академик) помогите мне решить задачи как в предыдущей теме!
Вот задачи:

1) Даны натуральные числа K и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых равна К и кото-рые не больше N.

2) Подсчитать количество цифр в заданном натуральном числе.

Отправлен: 27.05.2011, 18:29
Вопрос задал: Посетитель - 372181 (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает lamed (Академик) :
Здравствуйте, Посетитель - 372181!

Задание 1.
1. Даны натуральные числа K и N. Требуется сформировть массив А, элементами которого являются числа, сумма цифр которых равна К и которые не больше N.
Входные данные: натуральные числа K и N типа integer; выходные данные: массив A натуральных чисел типа integer; количество заполненных элементов массива j.
Ограничения: K, N, j>0; a[j]>=0;

2. Формализация.
Сумма цифр S числа X вычисляется по правилу:
S = X, если X<10;
S = X mod 10 + S(x/10) в остальных случаях.
Проверка чисел X в интервале от 1 до N проводится в цикле, сравнением суммы цифр Si с K.
Если проверка выполнена, значение i присваивается следуюшему, j-му элементу.

3. Блок-схема


4.Программа
Код :

// Даны натуральные числа K и N. Составить программу формирования массива А, // элементами которого являются числа, сумма цифр которых равна К и // которые не больше N. // Pascal-ABC, RFPRO, lamed, Kovrov-city, 27.05.2011 const MaxN=100; var k,n,i,j: integer; s,x: integer; a: array[1..MaxN] of integer; begin write('K= '); readln(k); write('N= '); readln(n); j:= 0; for i:= 1 to n do begin s:=0; x:=i; while x>0 do begin s:= s+x mod 10; x:=x div 10; end; if s=k then begin j:=j+1; a[j] := i; end; end; for i:= 1 to j do begin write(a[i]:4); if i mod 5=0 then writeln; end; end.



Задание 2.
1. Постановка задачи. Подсчитать количество цифр в заданном натуральном числе.
Входные данные: число x типа integer.
Выходные данные: число i типа integer.
Ограничения: x,i>0.

2. Формализация.
Для расчетов вводим вспомогательное число tmp. Сумма цифр вычисляется по рекуррентной формуле:
S(n)=n, если n<10 (Это условие окончания цикла)
s(n)=n mod 10 +s(n/10)

3. Блок-схема
Блок-схема


4.Программа
Код :
// Подсчитать количество цифр в заданном натуральном числе.
// Pascal-ABC, RFPRO, lamed, Kovrov-city, 27.05.2011
var
  i,x, tmp: integer;
begin
  write('Число ');
  readln(x);
  if x=0 then
    i:=1
  else
    begin
      i:=0;
      tmp:=x;
  
      while tmp>0 do
        begin
          tmp:= tmp div 10;
          inc(i);
        end;
  end;
  writeln('Количество цифр ', i);
end.

Удачи!

Ответ отправил: lamed (Академик)
Ответ отправлен: 27.05.2011, 19:13
Номер ответа: 267411
Россия, Ковров
Тел.: +79107793141

Оценка ответа: 5

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 267411 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное