var s, k: integer; //Объявление двух целочисленных переменных
begin
s:=0; //Инициализация переменной s
for k:= 4 to 7 do //Запуск цикла по переменной k от 4 до 7
//Тело цикла
s:=s+8; //На каждом шаге цикла значение переменной s увеличивается на 8
Рассмотрим подробнее:
1 шаг цикла:
k = 4; s:=0+8;
2 шаг цикла:
k = 5; s:=8+8;
3 шаг цикла:
k = 6; s:=16+8;
4 шаг цикла:
k = 7; s:=24+8;
//Цикл закончился. На данный момент в переменной s хранится значение 32.
writeln(s); //Выводим на экран значение, которое хранится в переменной s, т.е значение 32;
end. //Конец программы
2.
var s, k:integer; //Объявление целочисленных переменных s, k.
begin
s:=0; //Инициализация переменной s
for k:= 3 to 8 do //Запуск цикла по переменной k от 3 до 8
//Тело цикла
s:= s+9; //На каждом шаге цикла значение переменной s увеличивается на 9.
Рассмотрим подробнее:
1 шаг цикла:
k = 3; s:=0+9;
2 шаг цикла:
k = 4; s:=9+9;
3 шаг цикла:
k = 5; s:=18+9;
4 шаг цикла:
k = 6; s:=27+9;
5 шаг цикла:
k = 7; s:=36+9;
6 шаг цикла:
k = 8; s:=45+9;
//Цикл закончился. На данный момент в переменной s хранится значение 54.
writeln(s); //Выводим на экран значение, которое хранится в переменной s, т.е значение 54;
end. //Конец программы
3.
Натуральные числа - числа, возникающие естественным образом при счёте (1, 2, 3, 4, 5, 6, 7 и так далее...)
Код программы:
var
count, n:integer; //Объявление целочисленных переменных. В переменной count будет храниться количество натуральных чисел в промежутке от 1 до n.
begin
write('Введите значение N: ', #10);
readln(n); //Вводим с клавиатуры значение и записываем её в нашу целочисленную переменную n. Примечание: n должна быть больше 1.
for var i:= 1 to n do //Запуск цикла по переменной i от 1 до n.
count:=count+1; //На каждом шаге цикла значение в переменной count будет увеличиваться на 1.
write('Количество натуральных чисел от 1 до ', N, ': ', count, #10); //Выводим на экран значение переменной count.
end. //Конец программы
4.
Натуральные числа - числа, возникающие естественным образом при счёте (1, 2, 3, 4, 5, 6, 7 и так далее...)
Код программы:
const // Задаём два константных значения. В нашем случае это очень удобно, т.к нам заранее известны значения от чего и до чего нужно считать произведение.
a = 12; //В переменную а записываем значение 12. В ходе программы оно меняться не может, т.к объявлена в качестве константы.
b = 14; //В переменную b записываем значение 14. В ходе программы оно меняться не может, т.к объявлена в качестве константы.
var
product: integer; //Объявляем переменную product целочисленного типа, в которой будет храниться значение произведения.
begin
product := 1; //Инициализируем переменную product. Почему не 0, а 1: Всё очень просто. Если мы запишем здесь 0, то наше произведение всегда будет равно 0. Потому что 0*на любое число = 0.
for var i := a to b do //Запуск цикла по переменной i от a до b. Т.е от 12 до 14.
product := product * i; //На каждом шаге цикла значение переменной product будет меняться таким образом.
Рассмотрим подробнее ход цикла:
1 шаг цикла:
i = 12; product:=1*12;
2 шаг цикла:
i = 13; product:=12*13;
3 шаг цикла:
i = 14; product:=156*14;
Цикл заканчивает свою работу. В данный момент в переменной product хранится значение 2184.
write('Произведение натуральных чисел от 12 до 14 = ', product, #10); //Выводим на экран значение переменной product, т.е 2184.
Лучший ответ Сообщение было отмечено CyberNinjaProg как решение
Решение
Я бы мог тебе написать готовый код, но для начала просто алгоритм объясню.
Во первых, симметричность такой последовательности разобъём на 2 типа - чётная и нечётная.
Чётная последовательность делиться на две одинаковые отражённые горизонтально части. Например, "12122121".
Нечётная делиться таким же образом, только посередине есть цифра не имеющая пары. Например, "123454321".
Соответственно нам надо проверить входную последовательность на возможность создать наикратчайшую симметричную последовательность одного из двух типов.
Конкретный алгоритм следующий:
//Для чётно-симметричной последовательности
Берём половину входной последовательности (если её длина нечётная, берём с округлением в большую сторону), и начинаем по одному её элементу, от последнего и до первого, сравнивать их с элементами второй половины, но только взятых в порядке слева-направо.
То-есть, от последовательности 12122, берём 121, и сравниваем с 22: i[2] == i[3] (1 == 2).
Сравниваем так до тех пор, пока последовательность не закончиться. Тогда, оставшаяся несрАвненной последовательность цифр взятой в порядке справа налево и будет ответом (вместе с количеством этих цифр).
Если же при сравнении, цифры оказались разными, начинаем всё сначала, только с цифры на одну правее.
То-есть теперь берём уже не 121, а 1212, и делаем всё предыдущее снова. Если последовательность закончилась, то есть если мы например взяли уже 12345 от 12345, то сравнивать уже ничего не нужно, надо просто взять всю последовательность в обратном порядке - "1234554321".
//Для нечётно-симметричной последовательности
Делаем всё то же самое, что и для чётно-симметричной последовательности, только начинаем сравнивать не с цифры, следующей той, у которой мы разделили, а через одну.
То-есть, для входной последовательности 12345, берём 123 и начинаем сравнивать цифру 3 с цифрой 5, а не с цифрой 4.
Если же последовательность закончилась, берём всю последовательность кроме последней цифры в обратном порядке, это и будет ответ.
//Итог
Для того, чтобы найти правильный ответ, надо найти и чётную, и нечётную последовательности. Затем сравнить длину обоих ответов. Кратчайший ответ будет верным.
1.
var s, k: integer; //Объявление двух целочисленных переменных
begin
s:=0; //Инициализация переменной s
for k:= 4 to 7 do //Запуск цикла по переменной k от 4 до 7
//Тело цикла
s:=s+8; //На каждом шаге цикла значение переменной s увеличивается на 8
Рассмотрим подробнее:
1 шаг цикла:
k = 4; s:=0+8;
2 шаг цикла:
k = 5; s:=8+8;
3 шаг цикла:
k = 6; s:=16+8;
4 шаг цикла:
k = 7; s:=24+8;
//Цикл закончился. На данный момент в переменной s хранится значение 32.
writeln(s); //Выводим на экран значение, которое хранится в переменной s, т.е значение 32;
end. //Конец программы
2.
var s, k:integer; //Объявление целочисленных переменных s, k.
begin
s:=0; //Инициализация переменной s
for k:= 3 to 8 do //Запуск цикла по переменной k от 3 до 8
//Тело цикла
s:= s+9; //На каждом шаге цикла значение переменной s увеличивается на 9.
Рассмотрим подробнее:
1 шаг цикла:
k = 3; s:=0+9;
2 шаг цикла:
k = 4; s:=9+9;
3 шаг цикла:
k = 5; s:=18+9;
4 шаг цикла:
k = 6; s:=27+9;
5 шаг цикла:
k = 7; s:=36+9;
6 шаг цикла:
k = 8; s:=45+9;
//Цикл закончился. На данный момент в переменной s хранится значение 54.
writeln(s); //Выводим на экран значение, которое хранится в переменной s, т.е значение 54;
end. //Конец программы
3.
Натуральные числа - числа, возникающие естественным образом при счёте (1, 2, 3, 4, 5, 6, 7 и так далее...)
Код программы:
var
count, n:integer; //Объявление целочисленных переменных. В переменной count будет храниться количество натуральных чисел в промежутке от 1 до n.
begin
write('Введите значение N: ', #10);
readln(n); //Вводим с клавиатуры значение и записываем её в нашу целочисленную переменную n. Примечание: n должна быть больше 1.
for var i:= 1 to n do //Запуск цикла по переменной i от 1 до n.
count:=count+1; //На каждом шаге цикла значение в переменной count будет увеличиваться на 1.
write('Количество натуральных чисел от 1 до ', N, ': ', count, #10); //Выводим на экран значение переменной count.
end. //Конец программы
4.
Натуральные числа - числа, возникающие естественным образом при счёте (1, 2, 3, 4, 5, 6, 7 и так далее...)
Код программы:
const // Задаём два константных значения. В нашем случае это очень удобно, т.к нам заранее известны значения от чего и до чего нужно считать произведение.
a = 12; //В переменную а записываем значение 12. В ходе программы оно меняться не может, т.к объявлена в качестве константы.
b = 14; //В переменную b записываем значение 14. В ходе программы оно меняться не может, т.к объявлена в качестве константы.
var
product: integer; //Объявляем переменную product целочисленного типа, в которой будет храниться значение произведения.
begin
product := 1; //Инициализируем переменную product. Почему не 0, а 1: Всё очень просто. Если мы запишем здесь 0, то наше произведение всегда будет равно 0. Потому что 0*на любое число = 0.
for var i := a to b do //Запуск цикла по переменной i от a до b. Т.е от 12 до 14.
product := product * i; //На каждом шаге цикла значение переменной product будет меняться таким образом.
Рассмотрим подробнее ход цикла:
1 шаг цикла:
i = 12; product:=1*12;
2 шаг цикла:
i = 13; product:=12*13;
3 шаг цикла:
i = 14; product:=156*14;
Цикл заканчивает свою работу. В данный момент в переменной product хранится значение 2184.
write('Произведение натуральных чисел от 12 до 14 = ', product, #10); //Выводим на экран значение переменной product, т.е 2184.
end. //Конец программы
2018
Сообщений: 27
15.03.2019, 18:38 3
Лучший ответ Сообщение было отмечено CyberNinjaProg как решение
Решение
Я бы мог тебе написать готовый код, но для начала просто алгоритм объясню.
Во первых, симметричность такой последовательности разобъём на 2 типа - чётная и нечётная.
Чётная последовательность делиться на две одинаковые отражённые горизонтально части. Например, "12122121".
Нечётная делиться таким же образом, только посередине есть цифра не имеющая пары. Например, "123454321".
Соответственно нам надо проверить входную последовательность на возможность создать наикратчайшую симметричную последовательность одного из двух типов.
Конкретный алгоритм следующий:
//Для чётно-симметричной последовательности
Берём половину входной последовательности (если её длина нечётная, берём с округлением в большую сторону), и начинаем по одному её элементу, от последнего и до первого, сравнивать их с элементами второй половины, но только взятых в порядке слева-направо.
То-есть, от последовательности 12122, берём 121, и сравниваем с 22: i[2] == i[3] (1 == 2).
Сравниваем так до тех пор, пока последовательность не закончиться. Тогда, оставшаяся несрАвненной последовательность цифр взятой в порядке справа налево и будет ответом (вместе с количеством этих цифр).
Если же при сравнении, цифры оказались разными, начинаем всё сначала, только с цифры на одну правее.
То-есть теперь берём уже не 121, а 1212, и делаем всё предыдущее снова. Если последовательность закончилась, то есть если мы например взяли уже 12345 от 12345, то сравнивать уже ничего не нужно, надо просто взять всю последовательность в обратном порядке - "1234554321".
//Для нечётно-симметричной последовательности
Делаем всё то же самое, что и для чётно-симметричной последовательности, только начинаем сравнивать не с цифры, следующей той, у которой мы разделили, а через одну.
То-есть, для входной последовательности 12345, берём 123 и начинаем сравнивать цифру 3 с цифрой 5, а не с цифрой 4.
Если же последовательность закончилась, берём всю последовательность кроме последней цифры в обратном порядке, это и будет ответ.
//Итог
Для того, чтобы найти правильный ответ, надо найти и чётную, и нечётную последовательности. Затем сравнить длину обоих ответов. Кратчайший ответ будет верным.