В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
jasmin47
jasmin47
09.09.2022 23:17 •  Информатика

Знайти всі трьохзначні числа, середня цифра яких дорівнює сумі першої та останньої цифр. Надо написать программу​

Показать ответ
Ответ:
Dinka2103
Dinka2103
20.12.2022 02:26
Что касается конкретной программы
1. Описываем нужные нам переменные - это будут стороны прямоугольника a и b. Поскольку нигде ничего о размерах сторон не сказано, придется предположить, что они не обязательно будут целыми , мы опишем эти переменные, как вещественные (real), что позволит работать и с нецелыми значениями.
2. Из геометрии нам известны формулы периметра прямоугольника P=2 x (a+b) и площади прямоугольника S=a x b. Можно описать переменные P, S (тоже real), но смысла в этом нет, поскольку значения P и S нужны только для вывода результатов, так что проще написать нужные выражения непосредственно в операторе вывода.
3. Итак, с описанием переменных закончили, можно начинать основную программу ключевым словом begin. И сразу же пишем к нему завершающий end с точкой на конце - таковы правила языка Паскаль. Вся программа размещается между двумя этими ключевыми словами.
4. Сначала организуем ввод. Это два оператора. Первый оператор выводит так называемое "приглашение" - сообщает о том, что нужно ввести. Второй оператор - это сам ввод.
5. А теперь, как было сказано выше, организуем вывод результатов. Все это сделает один оператор вывода. Программа готова!

var
  a, b: real;

begin
  Write('Введите стороны прямоугольника: '); Readln(a, b);
  Writeln('Периметр равен ', 2 * (a + b), ', площадь равна ', a * b)
end.

Тестовое решение:
Введите стороны прямоугольника: 4 3.16
Периметр равен 14.32, площадь равна 12.64
0,0(0 оценок)
Ответ:
leg3
leg3
21.08.2022 13:25
Const PTR = 10;
type razbivka = array[0..PTR] of byte;
var n, i, z, k: byte;
x: razbivka;
procedure p(var x: razbivka; var z: byte);
var i, j, s: byte;
begin
i := z - 1;
s := x[z];
while (i > 1) and ( x[i - 1] <= x[i] ) do
begin
s := s + x[i];
dec(i);
end;
inc( x[i] );
z := i + s - 1;
for j := i + 1 to z do
x[j] := 1;
end;
begin
write('Введите число: ');
readln(n);
write(n,' = ');
z := n;
for i := 1 to z do
x[i] := 1;
for i := 1 to n do begin
if i > 1 then write(' + ');
write( x[i], '' );
end;
writeln;
repeat
p( x, z );
inc(k);
write( n,' = ' );
for i := 1 to z do begin
if i > 1 then write(' + ');
write( x[i], '' );
end;
writeln;
until z = 1;
end.

p.s: нашел в интернете для вас вариант с рекурсией. Сами можете убедиться, что с ней только хуже (по быстродействию уж точно)

const  m = 100;
var  a: array[1..m] of integer;
k, n: integer;
procedure p(j,n: integer);
var  i: integer;
begin if ( n = 0 ) and ( k > 1 ) then
begin  for i := 1 to k do
write( a[i] : 4 );
writeln;
end else for i := j to n do
begin
Inc(k);
a[k] := i;
p( j, n - i );
Dec(k);
end;
end;
begin
write('Введите число: ');
readln(n);
k := 0;
p(1,n);
end.

значения PTR и m можно поставить и больше, но тогда я не ручаюсь)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота