1 задание:
Сначала мы вводим в программу четырезначное число.
Затем идет защита от дурака, то есть, чтобы человек ваел именно четырехзначное число. Реализовано это при помощи команды repeat. Почему именно через нее? Чтобы если мы ввели нечетырехзначное, то программа незакрывалась, а попросила бы нас ввести число заного.
Далее при помощи команд вывода уже выводятся сумма и произведение цифр числа. Реализовано это все сразу в них, без помощи дополнительных переменных, что немного уменьшает объем программы. Реализовал определение цифр числа при помощи команд div и mod.
program school3;
Var chislo:Integer;
begin
Repeat
Write('Введите четырехзначное число>> ');
Readln(chislo);
Until (chislo<=9999) and (chislo >=1000);
WriteLn('Сумма цифр числа = ', (chislo mod 10)+(chislo div 10 mod 10)+(chislo div 100 mod 10)+(chislo div 1000));
Write('Произведение цифр чи сла = ', (chislo mod 10)*(chislo div 10 mod 10)*(chislo div 100 mod 10)*(chislo div 1000));
end.
2 задание:
Произведем обратные действия:
Число должно оканчиваться на 0,т.к изначально оно было домножено на 10, от сюда следует, что было число 560 и к нему добавили 4. Значит, 4 эта первая цифра числа. Теперь поделим 560 на 10 и получим 56. Значит, из числа 56 зачеркнули первую цифру и это была цифра 4,преписана с конца при умножение на 10.
Теперь знаем изначально заданное число: 456.
Произведем проверку:
Зачеркнём у числа 456 первую цифру. Получим 56. Домножим 56 на 10 и получим 560. К 560 прибавим первую цифру заданного числа и получим 564. ЧТД.
Если это надо было решить в паскале(2 задание) , то надо было уточнять.