Решение задач - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д