Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедуры и функции




End.

Begin

Var

End.

Begin

Var

Цели работы

Циклы с условиями

Упражнения

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

Условный оператор

 

Цель работы

Получение навыков в использовании условного оператора.

 

Пример. Даны целые числа а, b, с. Если a£b£c, то все числа заменить их квадратами, если а>b>с, то каждое число заменить наименьшим из них, в противном случае сменить знак каждого числа.

Решение:

Условие задачи перепишем следующим образом:

а = a2, b = b2, с = с2, если а <= b <= с,

а = с, b = с, если а> b> с,

а = -a, b = -b, с =-с, в остальных случаях.

Program Example_3;

Var

a,b,c: Integer;

Begin

Writeln('Введите числа a, b, c');

Readln(a,b,c);

If (a<=b) And (b<=c) Then begin

a:=sqr(a);

b:=sqr(b);

c:=sqr(c);

End

Else If (a>b) And (b>c) Then Begin

a:=c;

b:=c;

End

Else Begin

a:=-a;

b:=-b;

c:=-c;

End;

Writeln(a:3,b:3,c:3);

Readln;

End.

 

Цель работы

Получение навыков в использовании оператора For.

 

Пример. Из чисел от 10 до 99 вывести те, сумма цифр которых равна п (0<п< 18).

Решение:

Обозначим: k — это просматриваемое число, p1 — это первая цифра числа k, р2 — это вторая цифра числа k, s — это сумма цифр данного числа k. Число k будем выписывать только в том случае, когда сумма р1 и р2 будет равна n.

Program Example_4;

Var

k, n,pi,p2,s:Integer;

Begin

Write('введите целое число ');

Readln(n); {вводим целое число}

For k:=10 To 99 Do begin

pl:=k Div 10; {выделяем первую цифру}

p2:=k Mod 10; {выделяем вторую цифру}

s:=pl+p2; {находим сумму цифр}

If s=n Then Writeln(k); {если сумма равна n, то выводим К}

End;

Readln;

End.

1. Сколько раз будут выполнены операторы из тела циклов в следующих фрагментах программ:

а) For k:=-l To 1 Do...

б) For k:=10 To 20 Do...

в) For k:=20 To 10 Do...

г) k:=5; r:=15;

For i:=k+l To r-1 Do...

д) k:=5;r:=15;

For i:=0 To k*r Do...

е) k:=r;

For i:=k To r Do...

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

s:=0; n:=10;

For i:=2 To n Do s:=s+100 Div i;

 

 

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

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

 

Пример 1. Цикл с предусловием. Напечатайте таблицу значений функции у =sin(x) на отрезке [0, 1] с шагом 0,1.

Решение. Постановка задачи наталкивает нас на использование цикла с вещественным параметром, но цикл с параметром предполагает использование переменной порядкового типа, а тип Real таковым не является.

Program Example_5;

x: Real;

x:=0;

While x<=l Do Begin

Writeln (x:5:l,sin(x):7:3);

i:=i+0.1;

End;

Readln;

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

Решение. Обозначим через х и к соответственно цену и количество товара, через р — заданную предельную сумму, через s — общую стоимость покупки. Начальное значение общей стоимости покупки (s) равно нулю. Значение предельной суммы считывается с клавиатуры. Необходимо повторять запрос цены и количества выбранного товара, вычислять его стоимость, суммировать ее с общей стоимостью и выводить результат на экран до тех пор, пока она не превысит предельную сумму р. В этом случае на экран надо вывести сообщение о превышении.

Program Example_6;

x, k, p, s: Integer;

Writeln('Предельная сумма - ');

Readln(p);

s:=0;

Repeat

Writeln('Введите цену товара и его количество');

Readln(x, к);

s:=s+x*k;

Writeln('Стоимость покупки равна ',s);

Until s>p;

Writeln ('Суммарная стоимость покупки превысила предельную сумму');

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

• перед первым выполнением цикла условие его окончания (или продолжения) должно быть определено;

• тело цикла должно содержать хотя бы один оператор, влияющий на условие окончания (продолжения), иначе цикл будет бесконечным;

• условие окончания цикла должно быть в результате выполнено.

Пример 5. Вложенные циклы. Даны натуральные числа n и k. Составить программу вычисления выражения 1k + 2k +... + nk.

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

Program Example_7;

Var

n, k, y, i, s, m: Integer;

Begin

Writeln('Введите исходные данные n и k');

Readln(n,к);

s:=0;

For i:=l To n Do Begin

y:=l;

For m:=l To к Do

y:=y*i; {нахождение степени к числа i}

s:=s+y;

End;

Writeln('Ответ: ',s);

End.

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

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

 

Упражнения

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

а:=1;

b:=1;

while a+b<8 do begin

a:=a+l;

b:=b+2;

End;

s:=a+b;

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

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

а:=1;

b:=1;

While a<=3 Do

a:=a+l;

b:=b+l;

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

a) s:=0; i:=0; While i<5 Do Inc(i); s:=s+100 Div i;

6) s:=0; i:=l; While i>l Do Begin s:=s+100 Div i; dec(i) End;

4. Дана последовательность операторов, вычисляющих факториал f числа п:

k:=l; f:=0;

While k<n Do f=f*k

k:=k+l,

которая содержит пять ошибок. Найдите эти ошибки

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

s:=0; i:=l;

Repeat s:=s+5 Div i; i:=l-l; Until i<=l;

 

 

Цель работы

Получение навыков в использовании процедур и функций.

 

Пример 1. Составить программу, которая будет находить an, то есть п-ю степень числа а, где а и п — это целые числа и п > 0, вводимые с клавиатуры.

Решение. Составим процедуру, которая вычисляет степень целого числа.

Program Example_8;




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


Дата добавления: 2014-01-06; Просмотров: 264; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.