Решение задач - 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.
Объяснение кода листинга программы
- В программе объявлены переменные: n, k, A, Amax, temp, Count, Sum и i.
- Числа n и k считываются с клавиатуры.
- Переменная Amax инициализируется как 10^n.
- Затем, в цикле for, Amax уменьшается на единицу, пока не станет равным 1.
- Переменная Count инициализируется как 0.
- Далее, в цикле for, для каждого числа от 0 до Amax, происходит:
- Переменная Temp инициализируется как само число A.
- Переменная Sum инициализируется как 0.
- В цикле while, пока число не равно 0, происходит:
- К Sum добавляется последняя цифра числа, взятая по модулю 10.
- Затем, число делится на 10 и результат присваивается переменной Temp.
- Если число подходит (сумма его цифр равна k), то счетчик чисел увеличивается на 1.
- В конце программы выводится значение переменной Count.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д