СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Модуль 4 Циклы программирование на языке Паскаль

Категория: Информатика

Нажмите, чтобы узнать подробности

Раздаточный материал по основам языка программирования Паскаль для учащихся 8-9 классов. Возможно использование для самостоятельного обучения

Просмотр содержимого документа
«_013_Циклы_М4_БЛОК1»

Вопросы для повторения:

  1. Для чего предназначен оператор цикла?

  2. Какие существуют циклы в языке Паскаль?

  3. Какой формат записи имеет оператор FOR?

  4. Как работает оператор FOR?

  5. В каких случаях применяется оператор FOR?

  6. Сколько раз будет выполнен цикл, и чему будет равна переменная S после выполнения:

s:=0; n=6;

for i:=3 to n do

s:=s+i;

  1. Как в теле цикла выполнить несколько операторов?


Задания для самостоятельной работы:

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

  2. Найти сумму положительных кратных 7 чисел, меньших 100.

  3. Найти все числа, которые делятся на N среди:

  1. всех двухзначных чисел;

  2. всех трёхзначных чисел.

  1. Составить программу вычисления суммы квадратов чисел от 1 до n.

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

  3. Найти все делители для заданного числа n.

  4. Дано натуральное число n. Вычислить:

a) 2n; b) 3n c) n!;

  1. Среди четырёхзначных чисел выбрать те, у которых:

  1. все четыре цифры различны (например: 3167, 9012);

  2. имеются три одинаковые цифры (например: 1311, 7779);

  3. цифры попарно различны (например: 1331, 7979, 2255);

  4. цифры образую возрастающую последовательность (например: 1389, 4678);

  1. Написать программу поиска чисел

Изучаем “Циклы”









М4_Блок № 1



Тема урока:

Алгоритмы с повторениями.

Цикл с параметром FOR.









Цель занятия:


  1. Сформировать понятие о циклах;

  2. Научиться использовать счётный цикл FOR;

  3. Получить навыки решения алгоритмов с повторениями.







В языке Паскаль существует три различных оператора с помощью которых можно запрограммировать повторяющиеся фрагменты программы (три оператора цикла):

- счетный цикл FOR;

- цикл WHILE с предусловием;

- цикл REPEAT...UNTIL c постусловием.

На первом нашем занятии постараемся познакомиться и научимся использовать счётный цикл FOR .

Переменная внутри цикла изменяется автоматически от k до n (nk) с шагом 1.

Формат записи цикла: for i:=k to n do

или

от n до k (nk) с шагом -1.

Формат записи цикла: for i:=n dawnto k do

Если в цикле должны выполняться несколько операторов, то используем операторные скобки: begin …. end;

Цикл FOR удобно использовать тогда, когда точно известно количество повторений.


Рассмотрим несколько примеров:

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


program zadacha3_1;

var i,n,s:integer;

Begin

writeln(' введите натуральное n'); readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln('сумма от 1 до',n,' = ',s);

End.


В данном цикле переменная i автоматически изменяется от 1 до n с шагом 1. Поэтому к переменной s прибавляется i вначале равная 1, потом 2, потом 3, и т.д. до n, соответственно переменная s принимает значении 1, 3, 6, 10, 15 ….…

Задано натуральное n. Вычислить сумму ряда:

S=1 - 1/2 + 1/3 - 1/4 + 1/5-........1/n


program zadacha3_2;

var i,n,a:integer;

s:real;

Begin

writeln('Введите n');

readln(n);

s:=1;a:=1;

for i:=2 to n do

begin

a:=(-1)*a;

s:=s+a/i;

end;

writeln('Сумма ряда  S= ',s);

End.


Определить количество трёхзначных натуральных чисел, сумма цифр которых равна заданному числу N.


program zadacha3_3;

var с1,с2,с3,i,n,kol:integer;

Begin

writeln('Введите n');

readln(n);

kol:=0;

for i:=100 to 999 do

begin

c1:=i div 100;

c2:=(i div 10) mod 10;

c3:=i mod 100;

if c1+c2+c3=n then kol:=kol+1;

end;

writeln('Количество таких чисел = ',kol);

End.

Просмотр содержимого документа
«_014_Циклы_М4_БЛОК2»

program zadacha3_5;

var i, kl:longint;

Begin

kl:=0; i:=0;

while kl=0 do

begin

i:=i+1;

if (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) then kl:=1;

end;

writeln(i);

End.

Вопросы для повторения:

  1. Какие циклы существуют в языке Паскаль?

  2. Какой формат записи имеют циклы WHILE и REPEAT?

  3. В каких случаях удобно применять эти циклы?

  4. Чем отличается цикл WHILE от цикла REPEAT?

  5. Будет ли остановлено выполнение данного цикла? Почему?

s:=0; i: =1;

while i4 do

s:=s+i;

Задания для самостоятельной работы:

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

  1. Сколько цифр в числе n?

  2. Сколько чётных цифр в числе n?

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

  1. Вычислить, входит ли цифра 3 в запись числа n2.

  2. Поменять порядок цифр числа n на обратный.

  3. Переставить первую и последнюю цифры числа n.

  4. Приписать по единице в начало и в конец записи числа n.

  5. Является ли число n - палиндромом? (9889 - да, 9878 -нет)

  1. Дано натуральное число n. Является ли n степенью 3.

  2. Для данного натурального числа m1 найдите максимальное k, для которого ещё выполняется равенство 2km. (например, если m=10, то k=3).

  3. Для данного натурального числа m1 найдите минимальное k, для которого уже выполняется равенство k!m. (например, если m=10, то k=4).

Изучаем “Циклы”









М4_Блок № 2



Тема урока:

Алгоритмы с повторениями.

Цикл с предусловием WHILE.

Цикл с постусловием REPEAT.







Цель занятия:


  1. Закрепить понятие о циклах;

  2. Познакомиться с циклами WHILE и REPEAT;

  3. Получить навыки решения алгоритмов с повторениями.







На прошлом занятии мы познакомились и научились использовать счётный цикл FOR.

Продолжим работу по этой теме и познакомимся с ещё двумя циклами: - цикл WHILE с предусловием;

- цикл REPEAT...UNTIL c постусловием.

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

Решим задачу zadacha3_1 используя циклы WHILE и REPEAT и попытаемся понять принцип работы этих циклов.


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

1) цикл FOR

program zadacha3_1a;

var i,n,s:integer;

Begin

writeln(' введите натуральное n'); readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln('сумма от 1 до',n,' = ',s);

End.

2) цикл WHILE

program zadacha3_1b;

var i,n,s:integer;

Begin

writeln('введите натуральное n'); readln(n);

s:=0; i: =1;

while i

begin

s:=s+i;

i:=i+1;

end;

writeln('сумма от 1 до',n,'=',s);

End.

Цикл WHILE будет выполняться до тех пор, пока выполняется условие ii изменяем внутри цикла.

3) цикл REPEAT

program zadacha3_1c;

var i,n,s:integer;

Begin

writeln(' введите натуральное n'); readln(n);

s:=0; i:=1;

repeat

begin

s:=s+i;

i:=i+1;

end;

until in;

writeln('сумма от 1 до',n,' = ',s);

End.

Цикл REPEAT . . . UNTIL будет выполняться до тех пор, пока не выполниться условие in.


Задано натуральное число n. Вычислить сумму цифр числа.

program zadacha3_4;

var n,sum,cif:integer;

Begin

writeln('Введите n'); readln(n);

sum:=0;

while n0 do

begin

cif:=n mod 10;

sum:=sum+cif;

n:=n div 10;

end;

writeln('Сумма цифр введённого числа = ',sum);

End.


Найти минимальное натуральное число, которое при делении на 2 даёт в остатке 1, при делении на 3 даёт в остатке 2, при делении на 4 - в остатке 3, при делении на 5 - в остатке 4, при делении на 6 - в остатке 5 а при делении на 7 дают в остатке 6.

Просмотр содержимого документа
«_015_Циклы_М4_БЛОК3»

Назовём такой метод - контролируемый перебор.

program zadacha3_8c;

var k, t, o, kto, kot, tok:longint;

Begin

for k:=1 to 4 do

for t:=2 to 9 do

if kt then

for o:=0 to 9 do

if (ko) and (to) then

begin

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

tok:=t*100+o*10+k;

if kto+kot=tok then writeln(kto,'+',kot,'=',tok);

end;

End.

Такой алгоритм даже при 8-10 вложенных циклах работает очень быстро.

Вопросы для повторения:

  1. Может ли во вложенных циклах использоваться одна и та же переменная, например i?

  2. Можно ли вкладывать друг в друга различные циклы: FOR в WHILE или REPEAT в FOR?


Задания для самостоятельной работы:

  1. Старинная задача. Сколько можно купить быков, коров и телят, если бык стоит 10 рублей, корова – 5 рублей, телёнок – полтинник (0,5 рубля), при условии, что на 100 рублей надо купить 100 голов скота.

  2. Задано натуральное n. Для всех чисел от 1 до n найти:

  1. количество делителей; b) сумму чётных делителей.

  1. Найти все решения следующих числовых ребусов:

  1. БАБКА+ДЕДКА+РЕПКА=СКАЗКА (4 решения)

  2. КОРОВА+ТРАВА+ДОЯРКА=МОЛОКО (2 решения)

  3. АЛЁНКА+ИВАН+КОЗЛИК=СКАЗКА (1 решение)

  4. ВЕТКА+ВЕТКА+СТВОЛ=ДЕРЕВО (3 решения)

  5. ВОРОТА+ТРАВА=ФУТБОЛ (3 решения)

Изучаем “Циклы”









М4_Блок № 3



Тема урока:


Вложенные циклы.








Цель занятия:


  1. Закрепить знания по использованию различных типов циклов;

  2. Получить навыки решения алгоритмов с вложенными циклами.






Для решения задачи достаточно часто требуется использовать несколько вложенных друг в друга циклических конструкций. Такие конструкции называют вложенными циклами.


Рассмотрим несколько примеров:

Дано натуральное число S. Требуется написать программу для нахождения всех прямоугольников, площадь которых равна S и стороны выражены натуральными числами.

program zadacha3_6;

var s, a, b:longint;

Begin

writeln('Введите s'); readln(s);

for a:=1 to s do

for b:=1 to s do

if a*b=s then writeln ('стороны ',a,' и ',b);

End.

Данную задачу можно было решить, используя только один цикл. Подумайте, как это сделать.


Даны натуральные числа n, m. Получить все натуральные числа, меньшие n, сумма квадратов цифр которых равна m.

program zadacha3_7;

var n, m, i, a, sum, cif:longint;

Begin

writeln('введите n и m');readln(n, m);

for i:=1 to n do

begin

a:=i;sum:=0;

while a0 do

begin

cif:=a mod 10;

sum:=sum+sqr(cif);

a:=a div 10;

end;

if sum=m then write(i,' ');

end;

End.

Найти все решения заданного числового ребуса. Каждой букве соответствует некоторая цифра. Причём одинаковым буквам соответствуют одинаковые цифры, разным буквам - разные цифры.

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

program zadacha3_8a;

var k, t, o, kto, kot, tok:longint;

Begin

for k:=0 to 9 do

for t:=0 to 9 do

for o:=0 to 9 do

begin

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

tok:=t*100+o*10+k;

if (kt) and (ko) and (to) and (kto+kot=tok) then

writeln(kto,'+',kot,'=',tok);

end;

End.

В данном алгоритме тело цикла выполнялось 10∙10∙10=1000 раз. (будем говорить сложность алгоритма =1000)

Если же для решения более сложных ребусов потребуется написать 8-10 вложенных циклов, то такой полный перебор будет работать достаточно долго.

Можно немного упростить данный алгоритм, если увидеть что 1≤k≤4, t≥2.

for k:=1 to 4 do

for t:=2 to 9 do

for o:=0 to 9 do

Теперь сложность алгоритма 4∙8∙10=320. Простое косметическое исправление дало увеличение скорости в 3 раза.

Но и данный алгоритм не является оптимальным. Посмотрите, при k=2 и t=2 программа переберёт все 10 вариантов o. В таких случаях когда k=t цикл по o вообще необходимо не выполнять.

Просмотр содержимого документа
«_016_Циклы_М4_БЛОК4»

  1. Среди двузначных чисел найти те, которые делятся на число q, а сумма их цифр равна n (0  n  18).

  2. Найти минимальное число, большее N, которое нацело делится на K (K, N - натуральные числа).

  3. Приписать по цифре 1 в начало и в конец записи числа n.

(Например, ввод n = 923, вывод 19231).

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

(Например, ввод n = 9423, вывод 3429).

  1. Приписать к исходному числу n такое же число.

(Например, ввод n = 423, вывод 423423).

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

(Например, ввод 4423, вывод 2 раза; ввод 9077, вывод 1 раз).

  1. Выяснить, является ли разность максимальной и минимальной цифр числа чётной.

  2. Дано натуральное число n. Требуется выяснить, можно ли представить его в виде суммы квадратов трёх натуральных чисел? Если можно, то:

  • указать тройку x, y, z таких натуральных чисел, что

x2 + y2 + z2 = n;

  • указать все тройки таких чисел, что x2 + y2 + z2 = n.

  1. Составить программу, печатающую k-ю цифру последовательности:

  • 12345678910 …, в которой выписаны подряд все натуральные числа;

  • 14916253649 …, в которой выписаны подряд квадраты всех натуральных чисел;

  1. Составить программу для нахождения всех натуральных чисел n, m, k из интервала [a, b], удовлеовторяющих соотношению n2 + m2 = k2 (a и b заданы).

  2. Стороны прямоугольника заданы натуральными числами M и N. Составить программу, которая будет находить, на сколько квадратов, стороны которых выражены натуральными числами, можно разрезать данный прямоугольник, если от него каждый раз отрезается квадрат максимально возможной площади.

Изучаем “Циклы”









М4_Блок № 4



Тема урока:

Алгоритмы с повторениями.

Практикум по решение задач c повторениями.








Цель занятия:


  1. Закрепить навыки написания алгоритмов с повторениями;

  2. Осуществить промежуточный контроль знаний.








Задания для самостоятельной работы:

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

.

  1. Даны действительное число a, натуральное число n. Вычислить:

  1. an;

  2. a(a + 1) …(а + n – 1).

  1. Дано натуральное число n. Вычислить произведение первых n сомножетелей:

  1. ;

  2. .

  1. Вычислить 1 - следующими четырьмя способами:

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

  2. последовательно слева направо вычисляются и , затем второе значение вычитается из первого;

  3. последовательно справа налево;

  4. последовательно справа налево вычитаются суммы, выписанные в б), затем вычитание.

Почему при вычислениях каждым из этих способов получаются разные результаты?

  1. Найти все двузначные числа, которые содержат цифру N.

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

12 = 1

22 = 1 + 3

32 = 1 + 3 + 5

42 = 1 + 3 + 5 + 7

. . .

n2 = 1 + 3 + 5 + 7 + 9 + … + (2n – 1).

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

13 = 1

23 = 3 + 5

33 = 7 + 9 + 11

43 = 13 + 15 +17 + 19

53 = 21 + 23 + 25 + 27 + 29

  1. Среди двузначных чисел найти те, сумма квадратов цифр которых делится на заданное число n.

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

  3. Написать программу поиска трёхзначных чисел, квадрат которых оканчивается тремя цифрами, составляющими исходное число.

  4. Написать программу поиска четырёхзначного числа, которое при делении на C даёт в остатке B, а при делении на B даёт в остатке D.

  5. Найти сумму положительных нечётных чисел, меньших N.

  6. Найти сумму целых положительных чисел из промежутка от А до В, кратных k (значения переменных А и В вводятся с клавиатуры).

  7. Найти сумму целых положительных чисел, больших A, меньших B, кратных 3 и заканчивающихся на 2, 4 или 8.

  8. В трёхзначном числе зачеркнули старшую цифру, когда полученное двузначное число умножили на 7, то получили данное число. Найти это число.

  9. Сумма цифр трёхзначного числа кратна 7, само число также делится на 7. Найти все такие числа.

  10. Среди четырёхзначных чисел выбрать те, у которых все четыре цифры различны.

  11. Дано натуральное число. Найти все его делители и их сумму.

  12. В 1626 году индейцы продали остров Манхеттен за 20$. Если бы эти деньги были помещены в банк на текущий счёт и ежегодный прирост составил k%, то какова была бы сумма в текущем году?


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!