С какого служебного слова начинается запись цикла с предусловием на языке pascal

Программирование циклических алгоритмов

Сколько раз выполнится тело цикла, в этом фрагменте программы?

while t mod 2 = 0 do

Вопрос 2

Какую алгоритмическую конструкцию содержат все циклические алгоритмы?

Варианты ответов
  • Ветвление
  • Цикл
  • Следование
  • Рекурсию
Вопрос 3

С какого служебного слова начинается запись цикла с предусловием на языке Pascal?

Варианты ответов
  • while
  • repeat
  • until
  • if
  • for
Вопрос 4

С какого служебного слова начинается запись цикла с постусловием на языке Pascal?

Варианты ответов
  • while
  • repeat
  • until
  • if
  • for
Вопрос 5

С какого служебного слова начинается запись цикла с параметром на языке Pascal?

Варианты ответов
  • while
  • repeat
  • until
  • if
  • for
Вопрос 6

Сколько раз будет выполнено тело цикла с предусловием, если его условие изначально ложно?

Вопрос 7

Сколько раз будет выполнено тело цикла с постусловием, если его условие всегда истинно?

Вопрос 8

Какое число будет выведено на экран в результате выполнения фрагмента программы?

Циклы

Запишите без пробелов пропущенное условие цикла в фрагменте для определения максимального из введённых натуральных чисел при условии, что для выхода пользователь должен ввести 0.

Запишите ответ маленькими буквами без пробелов, например,

Вопрос 2

В указанном фрагменте программы возведения числа n в степень m укажите верный порядок следования пропущенных служебных слов.

Варианты ответов
  • while
  • do
  • begin
  • end
Вопрос 3

Сколько раз будет выполнено тело цикла с постусловием, если его условие всегда истинно?

Вопрос 4

Сколько раз выполнится тело цикла, в этом фрагменте программы?

Вопрос 5

Какое условие пропущено в этом цикле перевода натурального числа n в восьмеричную систему счисления?

Варианты ответов
  • n=0
  • n>0
  • n 0
Вопрос 6

С какого служебного слова начинается запись цикла с постусловием на языке Pascal ?

Варианты ответов
  • while
  • repeat
  • until
  • if
Вопрос 7

Какую алгоритмическую конструкцию содержат все циклические алгоритмы?

Варианты ответов
  • Рекурсию
  • Следование
  • Цикл
  • Ветвление
Вопрос 8

Сколько раз будет выполнено тело цикла с предусловием, если его условие изначально ложно?

Вопрос 9

С какого служебного слова начинается запись цикла с предусловием на языке Pascal ?

Варианты ответов
  • repeat
  • until
  • if
  • while
Вопрос 10

Какое число будет выведено в консоль в результате выполнения фрагмента программы?

Вопрос 11

С какого служебного слова начинается запись цикла с параметром на языке Pascal ?

Варианты ответов
  • repeat
  • for
  • while
  • if
Вопрос 12

Сколько раз выполнится тело цикла с повторением, при параметре равном конечному значению?

For i := 5 to 5 do

Вопрос 13

Сколько раз выполнится тело цикла в фрагменте программы для определения того, является ли слово палиндромом?

Вопрос 14

Какое условие цикла в этом фрагменте программы для расчёта наименьшего общего кратного натуральных чисел a и b ?

Варианты ответов
  • ((nok mod a)=0) and ((nok mod b)=0)
  • nok 0) or ((nok mod b)<>0)
  • nok
Вопрос 15

Какое служебное слово следует в цикле с убывающим значением параметра, между его начальным и конечным значением?

ответ запишите маленькими буквами.

Вопрос 16

Какое служебное слово следует в цикле с возрастающим значением параметра, между его начальным и конечным значением?

Вопрос 17

Какое условие цикла в этом фрагменте программы для расчёта наименьшего общего кратного натуральных чисел a и b ?

Варианты ответов
  • nok 0) or ((nok mod b)<>0)
  • nok
Вопрос 18

Какое условие цикла в этом фрагменте программы для определения того, является ли n степенью числа 3?

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ( WHILE ).

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

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

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

n задать начальное значение, т.е. с какого значения начнет свою работу цикл:

n задать конечное значение или условие выполнения цикла:

n приращение значения или шаг с каким будет работать цикл.

Как говорилось выше, операторами повторения в Турбо Паскале являются цикл с предусловием , цикл с постусловием и цикл со счетчиком.

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ( WHILE ).

Оператор WHILE вместе с оператором case являются самыми универсальными управляющими конструкциями. С помощью операторов варианта можно записать условие разветвления произвольной сложности, а с помощью оператора с предусловием можно записать любое циклическое действие. Этот оператор имеет вид:

WHILE выражение DO Оператор;

Или WHILE выражение DO

begin

оператор1;

оператор2;.

end ;

Оператор цикла с постусловием позволяет многократно выполнять одни и те же действия в зависимости от некоторого условия, которое записывается между ключевыми словами while и do и должно быть выражением булевского типа.

Опишем работу этого цикла. Сначала, задав начальное значение, при входе в цикл вычисляется условие. Если оно равно false, то вход в цикл не выполняется и управление передается оператору, следующему непосредственно за операторами тела цикла. Если же условие истинно, то происходит вход в цикл и однократное выполнение операторов его тела . Как только достигнут конец тела цикла и сделано приращение значения, управление снова передается ни его заголовок, где снова вычисляется условие. Если значения условия все еще истинно, то тело цикла выполняется еще раз, и так далее. Как только очередное вычисление условия цикла даст значение false, работа цикла завершится.

Примерами оператора цикла в предусловием могут служить:

1) while I <> X do I := I + 1;

2) While I > 0 do begin

if Odd(I) then Z := Z * X;

3) while not Eof(InFile) do

Задача1.Рассмотрим программу, которая вычисляет и выводит значения функции на промежутке [-100,100] с шагом 0.2.

Идея решения:

1. Возьмем начальное значение Х=-100.

2. Пока значения Х не более конечного значения Х (Х<=100)

а) если Х отрицательное

то У присваиваем квадрат Х

иначе У присваиваем корень квадратный из Х;

б) выводим результат У на экран;

в) увеличим значение Х на 0.2, т.е. выполним приращение Х;

( повторяем эти действия до тех пор, пока значения Х не превысит 100).

Программа решения

while x <=100 do

if x<0 then y:= sqr(x) else y:= sqrt(x);

x := x +0. 2;

Обратите внимание на то, что цикл с предусловием может ни разу не выполнить операторы тела цикла!

ОператорК

UNTIL выражение;

Заметим, что в отличие от while, оператор repeat не требует использования составного оператора, когда в его теле необходимо записать более одного оператора. Кроме того, оператор REPEAT являетсяне столь универсальным, как оператор WHILE, поскольку его условие располагается в конце тела цикла и операторы его тела будут, в отличие от цикла WHILE, всегда выполняться как минимум один раз. Это означает, что оператор REPEAT не годится для записи циклов, в которых может возникать ситуация, когда тело цикла не должно выполняться ни разу.

Общий принцип работы данного цикла такой же, как и предыдущего, но в отличие от цикла WHILE, повторимся, условие проверяется не перед выполнением цикла, а после него, и управление циклом REPEAT прямо противоположно управлению циклом WHILE . То есть цикл продолжается пока условие равно FALSE и заканчивается при истинности условия.

Приведем примеры оператора цикла с постусловием:

Write(‘Введите значение (0..9):’);

until (I >= 0) and (I <= 9);

Решим задачу 1, используя цикл с постусловием:

begin x :=-100;

repeat

if x<0 then y:= sqr(x) else y:= sqrt(x);

until x >100

Разберем несколько задач.

1. Составить алгоритм и его блок-схему вычисления функции:

Y= на промежутке [-20,20] с шагом 0.5

Идея решения:

Необходимо, изменять значение Х от -20 до 20 с шагом 0.5 и вычислять значения У, учитывая, что при х=10 наша функция не существует.

Алгоритм решения:

1. Присвоить Х начальное значение -20

2. Пока Х не более 20 выполнять такие действия :

а) если х не равен 10

вывести на экран значения у

иначе выведем на экран « функция не существует»);

б) увеличить значение Х

Программа решения:

Program Task1;

begin x: = -20;

if x <> 10 then begin

y: = 2/abs(10-x)+ abs(x-5)

else writeln(‘В этой точке функция не сущ-ет’);

end .

2. Составить алгоритм и его блок-схему вычисления функции:

Y=

на промежутке [-20,20] с шагом 0.5.

Идея решения:

Необходимо пройтись от -20 до 20 с увеличением х на 0.5 с каждым шагом, при этом выполняя проверку, к какому из предложенных промежутков данное значение х принадлежит и вычисляя значение у по соответствующей формуле.

Алгоритм :

1. Присвоить начальное значение х:= -20;

2. пока х<=20 выполняем такие действия

иначе если x<-5 (ведь х уже более -10)

иначе у:= ;

б) вывести значение у;

в) увеличить значение х на 0.5;

Программа имеет вид:

begin x: = -20;

if x < — 10 then y: = 2-x

else if x<-5 then y:=x-x*x

else if x<2 then y:=x*x*x

writeln(‘y =’,y,’ при х =’, x );

End.

Вопросы для самопроверки.

1. Как записывается и исполняется цикл-ДО?

2. Как записывается и исполняется цикл-ПОКА?

3. Какие основные элементы построения циклов, без которых невозможна работа?

4. Как записывается и исполняется цикл-ДЛЯ?

5. Может ли в цикле-ДЛЯ начальное значение быть больше конечного?

6. Может ли в цикле- ДЛЯ использовать шаг?

7. В каких циклах это возможно?

8. Когда используются в циклах операторные скобки?

9. Что такое тело цикла?

10. Можно ли и как заменить команду повторения с параметром другим видом повторения? А наоборот?

11. Является ли оператором цикла:

а) while x<0 do x:=x+0.5;

б) while x<0 do x:=x-100;

в) while 0<y<1 do y:=sqr(y);

г) while a>0 do y:=2*y;

д) while a>b do a:=a-1;b:=b+1;

12. Может ли завершиться выполнение оператора цикла, начало которого выглядит так:

while abs(x)+1>0.793 do.

13. Для каких начальных значений переменной х завершится выполнение оператора цикла:

а) while x<1.3 do x:=sqr(x);

б) while abs(x)>=1 do x:=x-1;

в) while 2*x>x do x:=x-1;

г) while sqr(x)>= do x:=sin(x)+1.315?

14. Вычисление F=10! описать каждым из трех вариантов оператора цикла.

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

while i<5 do i:=i+1; s:=s+1/i;

while i>1 do begin s:s+1/i; i:=i-1 end;

repeat s:=s+1/i; i:=i-1 until i<=1;

repeat s:=s+1/i;i:=i-1 until i>10;

for i:=2 to n do s:=s+1/i;

for i:=10 downto 1 do s:=s+1/i;i:=i-2;

16.Выписать фрагмент программы для решения указанной задачи и обосновать, почему был выбран тот или рой вариант оператора цикла:

а) вычислить с-наибольший общий делитель натуральных чисел а и в;

б) найти u-первый отрицательный член последовательности cos(ctg(n)),n=1,2,3. ;

в) вычислить y=cos(1+cos(2+. +cos(39+cos(40). ));

г) вычислить p=(1-1/2 2 )(1-1/3 2 ). (1-1/n 2 ),n>2;

д) вычислить f=1*2*3*. n;

e) вычислить y=sinx +sinx 2 +sinx 3 +. +sinx 30 ;

Задания.

Вариант 1.

1. Вычислить значения функции

Y =

на промежутке [-2П,2П] с шагом 0,2.

2. Даны натуральные числа n, a1, a2, a3, . an. Определить количество членов ak последовательности a1, a2, a3, . , an, являющихся нечетными числами.

Вариант 2.

1. Вычислить значения функции

y=

на промежутке [-10,10] с шагом 0,5.

2. Даны натуральные числа n, a1, a2, a3, . ,an. Определить количество членов последовательности a1, a2, a3, . an кратных 3 и не кратных 5.

Вариант 3.

1. Вычислить значения функции

y=

на промежутке [-5,5] с шагом 0,2.

2. Даны натуральные числа n, a1, a2, a3, . an. Определить количество членов последовательности a1, a2, a3, . an, являющихся квадратами четных чисел.

Вариант 4.

1. Вычислить значения функции

y=

на промежутке [0,4] с шагом 0,5.

2. Даны натуральные числа n, a1, a2, a3, . an. Определить количество членов последовательности a1, a2, a3, . an, которые удовлетворяют условию: каждый элемент, начиная со второго является средним арифметическим двух соседних (предыдущего и последующего).

Вариант 5.

1. Вычислить значения функции

y=

на промежутке [-5,10] с шагом 0,5.

2. Даны целые числа n, a1, a2, a3, . a50. Получить сумму тех чисел данной последовательности, которые кратны 5.

Вариант 6.

1. Вычислить значения функции

y=

на промежутке [-8,8] с шагом 0,3.

2. Даны целые числа a1, a2, a3, . a50. Получить сумму тех чисел данной последовательности, которые нечетные и отрицательные.

Вариант 7.

1. Вычислить значения функции

y=

на промежутке [-10,10] с шагом 0,6.

2. Даны натуральное число N, целые числа a2, a2, a3, . an. Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7.

Вариант 8.

1. Cоставить алгоритм и блок-схему вычисления функции:

y=

на промежутке [-10,10] c шагом 1.

2. Даны натуральные числа n, p, целые числа a1, a2, a3, . an. Получить произведение членов последовательности кратных p.

Вариант 9.

на промежутке [-П,П] с шагом П/10.

2. Даны натуральное число N и действительные числа a1, a2, a3, . an. Получить удвоенную сумму всех положительных членов последовательности.

Вариант 10.

на промежутке [-5,5] с шагом 0,5.

2. Даны натуральное число N, действительные числа a1, a2, a3, . an. В этой последовательности все числа меньшие 2 заменитьКроме того, получить сумму членов, принадлежащих [3,7].

Вариант 11.

1. Вычислить значения функции

на промежутке [-15,15] с шагом 0,5.

2. Даны натуральное число N, действительные числа a1, a2, a3, . an. Получить наибольшее из этих действительных чисел.

Вариант 12.

1.Вычислить

на промежутке [1,1000] с шагом 1.

Вариант 13.

Напишите в от­ве­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го ал­го­рит­ма (для Ва­ше­го удоб­ства ал­го­ритм пред­став­лен на четырёх язы­ках программирования).

Паскаль
var a,b,t,M,R :integer; Function F(x:integer):integer; begin F := 10*x*x-120*abs(x)+320 end; begin a := -12; b := 12; M := a; R := F(a); for t := a to b do begin if (F(t) <= R) then begin M := t; R := F(t) end end; write(M+9) end.

Вариант 14.

Определите, какое число будет на­пе­ча­та­но в ре­зуль­та­те выполнения сле­ду­ю­ще­го алгоритма (для Ва­ше­го удобства ал­го­ритм представлен на четырёх языках):

var a,b,t,M,R :integer; Function F(x:integer):integer; begin F : = 19 * (11 — x) * (11 — x) + 27; end; begin a : = -20; b : = 20; M : = a; R : = F(a); for t : = a to b do begin if (F(t) < R) then begin M : = t; R : = F(t) end end; write(R); end.

Вариант 15.

Напишите в от­ве­те число, ко­то­рое будет на­пе­ча­та­но в ре­зуль­та­те вы­пол­не­ния сле­ду­ю­ще­го ал­го­рит­ма (для Ва­ше­го удоб­ства ал­го­ритм пред­став­лен на четырёх языках).

var a,b,t,M,R :integer; Function F(x:integer):integer; begin F := (x*x-25)*(x*x-25)+25 end; begin a := -11; b := 11; M := a; R := F(a); for t := a to b do begin if (F(t) <= R) then begin M := t; R := F(t) end end; write(M+25) end.

Вариант 16.

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

var a,b,t,M,R:integer;

Function F(x:integer):integer;

begin

F:= x*x + 6*x + 10;

end;

Begin

a:=-10; b:=10;

M:=a; R:=F(a);

for t:=a to b do begin

if (F(t)> R)then begin

M:=t;

R:=F(t);

end;

end;

write(M);

End.

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

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

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

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

Разберем несколько задач и их возможные варианты решения.

Идея решения:

В данном числе пока не зачеркнем все цифры, поочереди, зачеркивая цифру, подсчитываем сколько мы зачеркнули.

Например, введем число 12345. Мы зачеркнем 5 цифр (1234,123,12,1, зачеркивая 1 наше число превратится в 0) значит в числе 5 цифр!

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

Program task1;

var m,n : longint;

begin readln(n);

while m<>0 do begin

End.

Идея решения :

Теперь попробуем проверять: данное число больше 10 к ? ( где к изменяется от 1 до тех пор, пока выполняется условие). При каждой проверке ведем подсчет.

Например, введем число 12345. Проверяем, ведя отсчет от 1:

5) 12345<100000 подсчет окончен.

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

program task 1_2;

begin readln(n);

while n>exp(ln(10)*i) do inc(i);

End.

Способ второй, классический предлагается во многих источниках:

Program Simple;

var i,n: integer;

begin write(‘n=’); readln(n);

while (i<=trunc(sqrt(n))) and simp do

if n mod i=0 then simp:= false else i:=i+2;

if simp then writeln(‘OK. )

End.

Третий способ, очень краток и красив. Но количество проверок больше, чем в первом способе.

Program task2;

var n,i : integer;

begin

writeln(‘введите число n’); readln(n);

repeat inc(i)

until n mod i = 0;

if n=i then writeln ( n,’- простое’)

else writeln (n,’- не простое, делится на ‘,i);

End .

Первый способ решения.

program palindrom;

var n, m : longint;

begin readln(n);

while n>exp(ln(10)*i) do inc(i);

for ii:=i div 2 downto 1 do begin

a:= n div trunc(exp(ln(10)*(i-1)));

if a= b then begin

n:=n mod trunc(exp(ln(10)*(i-1)));

end

else begin writeln(‘not . ‘); halt end

end;

End.

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

Идея этого способа заключается в том, что число переворачиваем, например, 123 станет 321. Если же это палиндром, то эти числа будут равными. Например, 12321 и после 12321. Этот палиндром!

var n, k, L, n1: longint;

Begin

while k>0 do

begin L : = k mod 10;

end;

if n=n1 then writeln(n,’-палиндром’)

else writeln( n,‘- не палиндром’);

End.

End.

Задача 4.

Begin

writeln(‘введите первый элемент последовательности ‘);

while x<> 0 do begin

if x<min then begin min:=x; k:=i-1 end;

writeln(‘введите ‘,i,’- элемент’);

writeln(‘ номер минимального элемента ’,k);

End .

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

program task5;

var a, b, n, m : longint;

i, ii,j, k, aa, bb:byte;

Begin

for i:=a to b do begin

while n>exp(ln(10)*k) do inc(k);

for ii:=1 to k div 2 do begin

aa:= n div trunc(exp(ln(10)*(k-1)));

if (aa=bb) and (k div 2 =1) then writeln(i);

if aa= bb then begin

n:=n mod trunc(exp(ln(10)*(k-1)));

end ;

end;

if j=k div 2 then writeln(i);

end;

End.

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

program palinAB;

var n1, L, k, i, a, b : Longint;

begin writeln(‘ Введите границы промежутка AB’);

for i:=a to b do begin

while k>0 do

begin L : = k mod 10;

end;

if i=n1 then writeln(n,’-полиндром’);

end ;

End .

End .

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

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

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

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

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

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

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

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

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

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

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

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

while k<n do f=f*k

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

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;

Begin

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

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

end.

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

if a > b then k := a

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

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

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

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

if m = 0 then begin

Задача 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;

end;

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;

end;

End .

End.

8.3. Задачи для самопроверки.

1. (8)Найти НОД трех чисел.

Примечание. НОД(a,b,c)=НОД(НОД(a,b),c).

2. (9)Два числа называются взаимно простыми, если их наибольший общий делитель равен 1. Проверить, являются ли два данных числа взаимно простыми.

3. (10)Найти наименьшее общее кратное (НОК) чисел n и m, используя соотношение

НОК(n,m)= .

4. (11)Даны натуральные взаимно простые числа n,p. Найдите такое m, что, во-первых, m<p, во-вторых, произведение чисел m и n при делении на p дает остаток 1.

5. (12)От прямоугольника 324х141 отрезают квадраты со сторонами 141, пока это возможно. Затем вновь отрезают квадраты со стороной, равной 324-2*141=42 и т.д. На какие квадраты и на сколько квадратов будет разрезан прямоугольник?

6. (13)Написать программу для нахождения НОД, используя следующие соотношения:

НОД(2a,b)=НОД(a,b) при нечетном b.

В программе не должно использоваться деление с остатком. Можно лишь делить на 2 и проверять числа на четность.

7. (14,15,16)Даны натуральные числа m и n. Найти такие натуральные взаимно простые p и q, что

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

Вариант № 1

1. Найти количество делителей натурального числа. Сколько из них четных?

2. Найти все натуральные числа a, b и с из интервала от 1 до 20, для которых выполняется равенство a 2 +b 2 =c 2 .

Вариант № 2

1. Найти сумму нечетных делителей натурального числа.

2. Найти все равновеликие прямоугольники, стороны которых выражены натуральными числами a, b, а площадь равна S ( a и b из интервала от 1 до 20, а площадь вводится с клавиатуры).

Вариант № 3

1. Найти все натуральные числа из промежутка от 1 до 200, у которых количество делителей равно К (К вводится с клавиатуры.)

2. Найти все натуральные числа a, b и с из интервала от 1 до 20, для которых выполняется равенство a+b 2 =c 2 .

Вариант № 4

1. Найти все натурального числа из промежутка от 1 до 200, у которых сумма делителей равна С (С вводится с клавиатуры).

2. Найти все такие тройки натуральных чисел a, b и с из интервала от 1 до 20, для которых выполняется равенство a 2 -b 2 =c 2 .

Вариант № 5

1. Найти количество делителей натурального числа, больших К ( К вводится с клавиатуры).

2. Найти все натуральные числа a, b и с из интервала от 1 до 20, для которых выпо

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *