20.1 На бесконечном поле имеется прямоугольник из стен. Длина противоположных стен прямоугольника неизвестна. Расстояние между противоположными стенами – не менее двух клеток. Робот находится в одной из клеток, расположенной внутри прямоугольника из стен. Начальное положение Робота неизвестно. Одно из возможных положений Робота приведено на рисун\
1)
var i, sum: integer;
begin
sum:= 0;
for i:= 1 to 100 do sum:= sum + i;
write(sum);
end.
2)
var i, sum: integer;
begin
sum:= 0;
for i:= 11 to 50 do sum:= sum + i * sqr(i);
write(sum);
end.
3)
var i, sum: integer;
begin
sum:= 0;
for i:= 10 to 99 do if i mod 2 = 1 then sum:= sum + i;
write(sum);
end.
4)
var i, sum: integer;
begin
sum:= 0;
for i:= 50 to 90 do sum:= sum + sqr(i);
write(sum);
end.
5)
var i, sum: integer;
begin
sum:= 0;
for i:= 10 to 99 do if i mod 2 = 0 then sum:= sum + i;
write(sum);
end.
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 задание) , то надо было уточнять.