Третий способ (для общего развития) — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Третий способ (для общего развития)

2019-08-03 228
Третий способ (для общего развития) 0.00 из 5.00 0 оценок
Заказать работу

program palindrAB;

var a,b: longint;

   i,j,k,kk:byte;

   n: string[10];

begin readln(a,b); {считывание границ промежутка}

      for i:=a to b do begin

                              str(i,n);

                              k:=length(n); kk:=0;

                              for j:=1 to k div 2 do

if n[i]=n[k-i+1 then inc(i);

                               if kk=k div 2 then writeln(i,’- палиндром);

                              end;

End.

   7.3. Вопросы, задачи и упражнения для самопроверки.

1. Дана последовательность операторов:

а:=1; b:=1;

while a+b<8 do begin a:=a+1; b:=b+2; end;

     s:=a+b;

Сколько раз будет повторен цикл и какими будут значения переменных a,b,s после завершения этой последовательности операторов?

2. Какими будут значения переменных a и b после выполнения последовательности операторов:

  a:=1; b:=1;

  while i<=3 do a:=a+1; b:=b+1;

3.  Определите значение переменной s после выполнения следующих действий:

a) s:=0; i:=0;

      while i<5 do inc(i); s:=s+100 div i;

b)  s:=0; i:=1;

      while i>1 do begin s:=s+100 div i; dec(i) end;

4. Определить значение переменной s после выполнения следующих операторов:

s:=0; i:=1;

Repeat s:=s+5 div i; i:=i-1;

Until i<=1;

 

 5.   В последовательности операторов содержится 5 ошибок. Найдите эти ошибки.       

  k:=1; f:=0;

  while k<n do f=f*k

            k:=k+1;

6. Найдите и исправьте ошибки в следующем фрагменте программы, определяющей для заданного натурального числа  n число, записанное цифрами этого числа в обратном порядке:

 p:=n;

 while p>=0 do

begin

  a:=a+p mod 10;

  p:=p div10

end; 

7. Показать, что любой оператор цикла с предусловием можно записать с помощью условного оператора и оператора цикла с постусловием.

8. Показать, что любой оператор цикла с постусловием можно записать с помощью условного оператора и оператора с предусловием.

9. Найти старшую цифру данного числа N.

10. Приписать по 1 в начало и в конец записи числа  N.

11. Поменять местами первую и последнюю цифры.

12. Найти количество четных цифр натурального числа.

13. Найти самую большую цифру данного натурального числа.

14. Найти сумму цифр числа, больших 5.

15. Сколько раз данная цифра (X) встречается в целом числе.

16. Составить программу, проверяющую, является ли последовательность из 10 целых чисел, вводимых с клавиатуры, возрастающей.

Контрольные задания.

Вариант 1

1. Дано натуральное число:

n найти сумму его цифр;

n верно ли, что число начинается и заканчивается одной и той же цифрой?

2. Найти все трехзначные числа, сумма цифр которых равна А, а само число делится на В.

Вариант 2.

1. Дано натуральное число:

n найти произведение его цифр;

n верно ли, что в данном числе нет данной цифры А?

2. Найти все трехзначные числа, которые при увеличении на 2 делятся на 2, при увеличении на 2 делятся на 3, при увеличении на 3 делятся на 4, при увеличении на 4 делятся на 5.

Вариант 3.

1. Дано натуральное число:

n найти количество его цифр;

n верно ли, что данное число заканчивается на нечетную цифру?

2. Найти количество трехзначных чисел, сумма цифр которых равна А, а само число заканчивается цифрой В.

Вариант 4.

1. Дано натуральное число:

n найти количество четных цифр числа;

n верно ли, что данная цифра А встречается в числе более двух раз?

2. Найти все четырехзначные числа, у которых сумма крайних цифр равна сумме средних цифр, а само число делится на 6 и 27.

Вариант 5.

1. Дано натуральное число:

n найти первую и последнюю цифры числа;

n верно ли, что сумма цифр данного числа равна А?

2. Найти все трехзначные числа, которые при делении на 2 дают остаток 1, при делении на 3- остаток 2, при делении на 4 - остаток 3, а само число делится на 5.

Вариант 6.

1. Дано натуральное число:

n сколько раз данная цифра А встречается в данном числе;

n верно ли, что в данном числе сумма цифр больше В, а само число делится на В?

2. Найти все четырехзначные числа, в которых есть две цифры 5.

Вариант 7.

1. Дано натуральное число:

n найти вторую (с начала) цифру данного числа;

n верно ли, что данное число делится на А, В и С?

2. Найти все двухзначные числа, которые при умножении на 2 заканчиваются на 8, а при умножении на 3 - на 4.

Вариант 8.

1. Дано натуральное число:

n найти количество цифр данного числа, больших А;

n верно ли, данное число принадлежит промежутку от А до В и кратно 3,4 и 5?

2. Найти сумму всех чисел из промежутка от А до В, кратных 13 и 5.

Вариант 9.

1. Дано натуральное число:

n сколько четных цифр в данном числе;

n верно ли, что в данном числе встречаются цифры А и В?

2. Найти все симметричные четырехзначные числа.

Вариант 10.

1. Дано натуральное число:

n сколько раз первая цифра встречается в данном числе;

n верно ли, что данное число начинается на А и заканчивается на В?

2. Найти все четырехзначные числа, в которых ровно две одинаковые цифры.

Вариант 11.

1. Дано натуральное число:

n найти две первые цифры числа;

n верно ли, что первая цифра данного числа четная?

2. Найти все трехзначные числа, которые состоят из различных цифр, а их сумма равна А.

Вариант 12,13,14,15,16

1. Дано натуральное число:

n найти старшую цифру.

n верно ли, что первая цифра данного числа 5?

2. Дано натуральное число. Приписать к нему такое же число.

 

Практическая работа № 8

ОПЕРАТОРЫ ПОВТОРЕНИЯ

 8.1. Цель работы:

Закрепление теоретического материала и приобретение практических навыков построения и применения операторов повторения, знать различия в работе различных видов циклов, применение и запись операторов повторения при решении  задач и проверка их выполнения на ЭВМ. Формировать творческий подход к решениям задач, развивать дивергентное мышление - различное виденье решения задач.

  8.2. Общие положения.

Разберем несколько задач для работы с числами, для решения которых применяются различные виды циклов:

Задача 1.

Написать программу нахождения наибольшего общего делителя двух целых неотрицательных чисел.

Так как мы будем искать наибольший общий делитель, то нам необходимо найти такое число на которое делятся данные числа без остатка, значит решение сводится к поиску остатков от деления.

Первый способ

Program NOD;

var а, b: word;

Begin

writeln(‘введите два числа’);

readln(a, b);

repeat

      if a>b then a:=a mod b else b:=b mod a

      until (a=0) or (b=0);

writeln(‘nod=’,a+b));

end.      

Второй способ

...

   if a > b then k:= a

               else k:= b;                                       

   {k = max (a,b)}

   {инвариант: никакое число, большее k, не является общим делителем}

    while not ((a mod k = 0) and (b mod k = 0)) do k:= k - 1;

                   {k - общий делитель, большие - нет}

Третий способ (алгоритм Евклида). Будем считать, что НОД(0,0) = 0. Тогда НОД (a,b) = НОД (a-b,b) = НОД (a,b-a); НОД(a,0) = НОД (0,a) = a для всех a,b>=0.

    m:= a; n:= b;

   {инвариант: НОД (a,b) = НОД (m,n); m,n >= 0 }

   while not ((m=0) or (n=0)) do begin

                                                   if m >= n then m:= m - n;

                                                                   else n:= n - m;

                                                   end;

   {m = 0 или n = 0}

   if m = 0 then begin

                       k:= n;

                         end else begin {n = 0}

                                      k:= m;

                                      end;

Задача 2. Даны натуральные числа n и k. Составить программу вычисления выражения

                     

 Для вычисления указанной суммы целесообразно организовать цикл с параметром і, в котором, во-первых, находилось бы значение очередного члена ряда (у:=ік) и, во-вторых, осуществлялось бы накопление искомой суммы путем прибавления полученного слагаемого к сумме всех предшествующих (s:=s+y).

Program task4;

   var n, k, i, y, s, m: integer;

begin writeln(‘введите  n и k’); readln(n,k); s:=0;

for i:=1 to n do

      begin y:=1;

           for m:=1 to k  do y:=y+i;

             {нахождение степени к числа і }

           s:=s+y;

     end;

writeln(‘ответ:’,s);

End.

Модифицировать предыдущую задачу так, чтобы в ней вычислялась сумма:

       

Program task3_1;

   var n, i, y, s, m: integer;

begin writeln(‘введите  n ’); readln(n); s:=0;

   for i:=1 to n do

      begin y:=1;

           for m:=1 to i  do y:=y+i;

             {нахождение степени к числа і }

           s:=s+y;

     end;

writeln(‘ответ:’,s);

End.


Поделиться с друзьями:

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.