Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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

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

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

 

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

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

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

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

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

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

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

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

 

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

 

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

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

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

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

 

 

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

 

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

S=1+2+…+10

S – сумма

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

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

 

 

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

 

 

 

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

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

 

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

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

 

 

Пример. Вычислить 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. Вычислить сумму с заданной точностью 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. Вычислить: .

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= (n слагаемых)

8. Вводится натуральное число n. Вычислить n! ()

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

10. Найти значение суммы ряда c точностью e=10-4.

11. Найти значение суммы 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.

 



<== предыдущая лекция | следующая лекция ==>
Оргкомитет оставляет за собой право отбора статей для публикации, исходя из критериев оригинальности, самостоятельности и соответствия тематике Конференции. | Номинации и требования к работам и критерии оценки
Поделиться с друзьями:


Дата добавления: 2016-12-29; Мы поможем в написании ваших работ!; просмотров: 1729 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2537 - | 2391 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.014 с.