Решение задач - Pascal (81001)

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Буду благодарна за любую помощь. У меня уже психоз скоро начнется. Вообще я учусь по специальности "Финансы и Кредит", но поскольку ВУЗ специфический, надо же было что-то воткнуть. В обще задали контрольную по языку программирования - паскаль. А я в этом ни черта не понимаю. Бились месяц всей семьей над задачами. В приложении контрольная. Преподаватель все завернул и написал рецензию и что все не правильно. Вот рецензия: Задание 1 Вы как-то слишком вольно обращаетесь с блоками в блок-схемах. Каждый блок имеет свое назначение. Поэтому необходимо использовать для каждого типа команд соответствующий им блок. Вывод данных – параллелограмм, линейная операция – прямоугольник и т.д. Исправить. Зачем в условии используется операция Not? Без неё разве нельзя? Задание 2 Странное какое-то решение. Зачем говорить о массивах, если в программе они не используются? Зато в алгоритме (сужу по программе) много непонятных команд. И совсем не помешает рассказать, откуда они взялись. Это не блок-схема алгоритма. Алгоритм не может содержать непонятные команды, тупики, неопределенные переходы и т.д. Разработанный алгоритм необходимо записать на языке программирования три раза, каждый раз используя различные виды циклов. А затем сравнить циклы и ответить на вопрос. Эта часть задания не выполнена. Задание 3 Задача решена неправильно. Точнее сказать, Вы решаете совсем другую задачу. Размер файл величина переменная N, поэтому должна задаваться с клавиатуры. Результатом работы программы должны являться два массива B и C. Помогите, пожалуйста. Разъясните пошагово- что не так. Ну не понимаю я что он пишет. Мне папа помогал решать, но и он уже не понимает, что не так. Очень прошу помогите и так, чтобы человек понял, который с паскалем до этого не имел дело Всем заранее спасибо.

Решение задачи: «Решение задач»

textual
Листинг программы
program Summa;
 
var
  n, k:  integer;
  A, Amax, temp: longint;
  Count: longint;
  Sum, i: integer;
begin
  readln(n, k);
 
  {решение при помощи цикла for}
  Amax := 1;
  for i := 1 to n do
    Amax := Amax * 10;
  Amax := Amax - 1;
  Count := 0;
  {перебор чисел}
  for A := 0 to Amax do
  begin
    {вычисление суммы цифр текущего числа}
    Temp := A;
    Sum  := 0;
    while Temp <> 0 do
    begin
      Sum  := Sum + (Temp mod 10);
      Temp := Temp div 10;
    end;
    {если число подходит, то увеличиваем счётчик чисел}
    if Sum = k then
      Count := Count + 1;
  end;
  writeln(Count);
end.

Объяснение кода листинга программы

  1. В программе объявлены переменные: n, k, A, Amax, temp, Count, Sum и i.
  2. Числа n и k считываются с клавиатуры.
  3. Переменная Amax инициализируется как 10^n.
  4. Затем, в цикле for, Amax уменьшается на единицу, пока не станет равным 1.
  5. Переменная Count инициализируется как 0.
  6. Далее, в цикле for, для каждого числа от 0 до Amax, происходит:
    • Переменная Temp инициализируется как само число A.
    • Переменная Sum инициализируется как 0.
    • В цикле while, пока число не равно 0, происходит:
      • К Sum добавляется последняя цифра числа, взятая по модулю 10.
      • Затем, число делится на 10 и результат присваивается переменной Temp.
    • Если число подходит (сумма его цифр равна k), то счетчик чисел увеличивается на 1.
  7. В конце программы выводится значение переменной Count.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.667 из 5