Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ”

Порядок выполнения работы

  1. Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ”.
  2. Получить индивидуальное задание у преподавателя и разработать программу в соответствии с поставленной задачей.
  3. Показать работающую программу преподавателю.
  4. Ответить на контрольные вопросы.
  5. Подготовить письменный отчет.

Форма представления отчета:

1. Тема работы.

2. Условия задания.

3. Текст программы и исходные данные при вводе.

4. Результаты выполнения программы.

Краткие теоретические сведения.

Цикл – многократное повторение одних и тех же действий.

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

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru

Такой цикл называют «пока». Механизм его работы: пока условие истинно, повторять…

Пример. Вывести все «-» члены арифметической прогрессии -11; -7…

Пусть a – очередной член прогрессии.

а:=a+4 – следующий член прогрессии.

Пока a<0, повторять a:=a+4.

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru

Цикл с предусловием может не выполниться ни разу, если условие сразу оказалось ложным.

Пример. Найти сумму первых десяти натуральных чисел.

S=1+2+…+10

S – сумма

а – очередное слагаемое.

S:=S+a a:=a+1 Выполнять, пока a<=10

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru

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

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru

Механизм работы: повторять, пока условие не станет истинным.

Этот цикл всегда выполняется хотя бы 1 раз.

Пример. Найти сумму положительных членов арифметической прогрессии: 17; 11 …

S=a+S a:=a-6 тело цикла повторять до тех пор, пока не выполнится условие a<=0

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru

Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru Пример. Вычислить n!

F=F*k k=k+1 тело цикла повторять до тех пор, пока не выполнится условие k>N

Циклы в Pascal

Паскаль предусматривает использование трех операторов цикла:

• оператор цикла с параметром for

• оператор цикла с предусловием while

• оператор цикла с постусловием repeat

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

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

Общий вид: for <параметр>:=<начальное значение> to <конечное значение> do <оператор>;

Значение параметра меняется с шагом 1. Оператор представляет тело цикла, которое может быть простым или составным оператором.

Пример 1.Вывести квадраты первых десяти натуральных чисел.

Program primer;

Var i, x: integer;

begin

for i:=1 to 10 do begin {перебираем натуральные числа от 1 до 10}

x:=sqr(i); {возводим очередное число в квадрат}

write(x, ' '); {выводим полученное значение}

end;

end.

Результат:

1 4 9 16 25 36 49 64 81 100

Если необходимо, чтобы параметр цикла менялся с шагом -1, следует вместо to записать downto.

for i:=1 to 10 do begin

x:=sqr(i);

write(x, ' ');

end;

Результат:

100 81 64 49 36 25 16 9 4 1

Пример 2.Найти сумму 1 + 1/3 + 1/5 +...(N слагаемых).

Program primer;

Var I, N: integer;

S: real;

begin

Write('N='); Readln(N); {вводим количество слагаемых}

S:=0; {обнуляем сумму}

For I:=1 to N do {выполняем цикл N раз, добавляя к сумме по од ному слагаемому}

S:=S+1/(2*I-1);

Writeln('S=',S:5:2); {выводим значение суммы с двумя десятичными знаками}

end.

Пример 3. Подсчитать количество двузначных чисел, кратных 3.

Program primer;

Var i, k: integer;

begin

k:=0; for i:=10 to 99 do begin

if i mod 3=1 then k:=k+1;

end;

writeln ('k=', k);

end.

Пример 4. Найти сумму четных делителей введенного целого числа.

Program primer;

Var i, S, n: integer;

begin

Write (‘n=’); Readln(n);

S:=0;

for i:=2 to (n div 2) do

if (n mod i=0) and (i mod 2=0) then s:=s+i;

writeln('S=', S);

end.

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

While <условие> do <оператор>;

Цикл выполняется, пока условие остается истинным.

Пример. Первоначальный вклад составил S рублей. Через сколько лет сумма вклада более, чем в 2 раза превысит первоначальный вклад, если годовой процент составляет x%.

Например, S=1000 р, x=10%

1 год S=1000+1000*10/100=1100

2 год S=1100+1100*10/100=1210

Program primer;

Var s, sum, x: real;

n: integer;

Begin

Write(‘S=’); Readln(S);

Write(‘x=’); Readln(x);

Sum:=2*s; n:=0;

While S<=Sum do begin

s:=s+s*x/100;

n:=n+1;

end;

write('через ', n, ‘ лет’);

end.

Пример 5.Задана арифметическая прогрессия -21; - 16;… Определить номер первого положительного члена прогрессии.

a – очередной член прогрессии, n – его порядковый номер

a=a+5 n=n+1 повторять, пока a<=0
Program primer; var a, n: integer; begin a:= -21; n:=1; while a<=0 do begin a:=a+5; n:=n+1; end; writeln(‘n=’, n);   end. Program primer; var a, n: integer; begin a:= -21; n:=1; repeat a:=a+5; n:=n+1; until a>0; writeln(‘n=’, n); end.

Примечание: необходимо учитывать, что тело цикла должно содержать по крайней мере, одну команду, влияющую на значение логического выражения (условия) таким образом, чтобы цикл завершился за конечное число шагов. Например, в рассмотренном примере это команда a:=a+5;

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

Repeat

<опреаторы>;

Until <условие>

Оператор повторяет последовательность команд пока условие не станет истинным. Этот цикл всегда выполняется хотя бы 1 раз.

Пример. Найти сумму цифр введенного натурального числа.

Program primer;

var

a, n, s: integer;

begin

Write(‘n=’); Readln(n);

S:=0;

repeat

a:=n mod 10;

s:=s+a;

n:=n div 10;

until n=0;

writeln(‘s=’, s);

end.

Пример 6. Протабулировать (вывести на экран таблицу значений) функции y=2x+1 интервале [-3; 3] с шагом 0.5.

x= - 3 y=…

x= - 2.5 y=…

x=3 y=…

Program primer;

var

x, y: real;

begin

x:=0;

repeat

y:=sqrt(sqr(sin(x)+2));

writeln(‘x=’, x:6:2, ‘y=’, y:8:4);

x:=x+0.2;

until x>1;

end.

Пример 7.Вычислить сумму Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru с заданной точностью E=0.0001.

Program primer;

Var S, e, slag: real;

k: integer;

begin

e:=0.0001; s:=0; k:=1;

slag:= k/sqr(k+1);

repeat

s:=s+slag;

k:=k+1;

slag:=k/sqr(k+1);

until slag<e;

write (‘s=’, s:6:2);

end.

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

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

Например, a) For . . . do – внешний цикл

While . . . do – внутренний цикл (в данном случае глубина = 2)

b) While . . . do

For . . . do

Repeat

. . .

Until (глубина =3)

Рассмотрим механизм работы вложенных циклов на примере:

For a:=1 to 2 do

For b:=1 to 3 do

Writeln(‘a=’, a, ‘ b=’, b);

a=1 a=1 a=1 b=1 b=2 b=3 выполняется внутренний цикл по b при a=1
a=2 a=2 a=2 b=1 b=2 b=3 выполняется внутренний цикл по b при a=2

Параметр внешнего цикла не меняет свое значение до тех пор, пока внутренний цикл не завершит свою работу.

Пример: вывести на экран таблицу Пифагора.

внутренний цикл
внешний цикл  
                 
                 
                 
                 
                 
                 
                 
                 
                 


Program primer;

var

i, j: integer;

begin

for i:=1 to 9 do

begin

for j:= 1 to 9 do

write(i*j:4);

writeln;

end;

end.

Внутренний цикл формирует каждую строку таблицы. Writeln – перевод курсора на новую строку.

Пример. Вводятся k натуральных чисел. Найти сумму цифр каждого из них.

повторить 1. Ввести число N 2. Найти сумму его цифр 3. Вывести результат

Program primer;

var

n, s, a, i, k: integer;

begin

write (‘k=’); readln(k);

for i:=1 to k do

begin

Write(‘n=’); readln (n); s:=0;

Repeat

a:=n mod 10;

s:=s+a;

n:=n div 10;

until n=0;

writeln (‘s=’,s);

end;

end.

Контрольные вопросы

1. Операторы повтора. Общая характеристика.

2. Оператор повтора for. Форматы записи, описание работы цикла, ограничения использования параметра цикла.

3. Примеры использования оператора for. Различие to и downto.

4. Оператор повтора Repeat. Формат записи, особенности использования.

5. Примеры программ с использованием оператора repeat.

6. Оператор повтора while. Формат записи, описание работы цикла.

7. Пример использования оператора while. Описание работы программы.

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

1. Вычислить: Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru .

2. Вычислить: 1!+2!+...+n!.

3. Вычислить: sin x+sin 2x+sin 3x +….(n слагаемых).

4. Вычислить: cos(x)+cos(cos(x))+... +cos(...cos(x)) (n cлагаемых).

5. Вычислить: 1*2+2*3+...+n*(n+1).

6.Вводится натуральное число n. Вычислить 21+22+…+2n .

7. Вводится натуральное число n. Найти сумму S= Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru (n слагаемых)

8. Вводится натуральное число n. Вычислить n! (Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru )

9. Найти произведение: Р = (1 + х)·(3+2х)·(5+3х)·... . (n множителей)

10. Найти значение суммы ряда Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru c точностью e=10-4.

11. Найти значение суммы Задания для самостоятельной работы. Порядок выполнения работы Изучить теоретические сведения по теме “Реализация алгоритмов с циклами в Паскале ” - student2.ru c точностью e=10-6.

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

13. Вы положили c S рублей в банк под p% ежегодного прироста. Определить: а) когда сумма вклада утроится? б) какой будет сумма вклада после 10 лет?

14. Готовясь к соревнованиям, лыжник в первый день побежал 10 км, затем каждый день увеличивал расстояние на 10%. Сколько километров пробежал он за неделю тренировок? На какой день он пробежал больше 15 км?

15. Малое предприятие в первый день работы выпустило P единиц товарной продукции. Каждый последующий день оно выпускало продукции на Q единиц больше, чем в предыдущий. Сколько дней потребуется предприятию, чтобы общее количество выпущенной продукции за все время работы впервые превысило запланированный объем Т?

16. Чтобы открыть секретный сейф, агент 007 решил набирать в возрастающем порядке все трехзначные числа, в записи которых нет одинаковых цифр. Составить программу, которая бы печатала все такие числа. Определить, сколько времени потребуется ему в худшем случае для вскрытия сейфа, если для набора одного числа он тратит 2с?

17. Подсчитать сумму двухзначных чисел, сумма цифр которых не превышает 7.

18. Составить программу, которая находит и выводит на печать все четырехзначные числа abcd, для которых выполняются следующие условия:1) a, b, c, d - разные цифры и2) ab-cd=a+b+c+d. Здесь запись ab означает, что число составлено из цифр a и b.

19. Числа Фибоначчи определяются как а(0)=1, а(1)=1, а(i)=a(i-1)+a(i-2). Найти десятое число Фибоначчи. Найти: а) N-ое число Фибоначчи. б) сумму первых N чисел Фибоначчи.

20. Определить, является ли число n простым.

21. Найти сумму делителей числа n.

22. Определить, является ли число n совершенным. Совершенное число́ — натуральное число, равное сумме всех своих собственных делителей (т. е. всех положительных делителей, отличных от самого́ числа). Например, 6=1+2+3

23. Найти среди дву- и трехзначных чисел совершенные.

24. Найти наименьшее общее кратное(НОК) двух натуральных чисел.

25. Задана арифметическая прогрессия 2; 5; … . Определите наименьшее количество членов прогрессии, начиная с первого, сумма которых превышает 50.

26. Задана арифметическая прогрессия 22; 18; …. Определите номер первого отрицательного члена прогрессии.

27. Вывести таблицу значений функции y= sin2 x – cos x на интервале [-p,p] с шагом p/10.

28. Составить программу, запрашивающую с клавиатуры два натуральных числа А и В -стороны прямоугольника - и определяющую на сколько квадратов его можно разрезать, отрезая каждый раз квадрат максимальной площади с целой длиной стороны. Вывести количество и размер всех квадратов. Например, при A = 20, B = 10 ответ: 2 со стороной 10;
при A = 20, B = 15 ответ: 1 со стороной 15, 3 со стороной 5.

Наши рекомендации