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

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

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

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

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

textual
Листинг программы
  1. program Summa;
  2.  
  3. var
  4.   n, k:  integer;
  5.   A, Amax, temp: longint;
  6.   Count: longint;
  7.   Sum, i: integer;
  8. begin
  9.   readln(n, k);
  10.  
  11.   {решение при помощи цикла for}
  12.   Amax := 1;
  13.   for i := 1 to n do
  14.     Amax := Amax * 10;
  15.   Amax := Amax - 1;
  16.   Count := 0;
  17.   {перебор чисел}
  18.   for A := 0 to Amax do
  19.   begin
  20.     {вычисление суммы цифр текущего числа}
  21.     Temp := A;
  22.     Sum  := 0;
  23.     while Temp <> 0 do
  24.     begin
  25.       Sum  := Sum + (Temp mod 10);
  26.       Temp := Temp div 10;
  27.     end;
  28.     {если число подходит, то увеличиваем счётчик чисел}
  29.     if Sum = k then
  30.       Count := Count + 1;
  31.   end;
  32.   writeln(Count);
  33. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут