КАТЕГОРИИ: Архитектура-(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; Просмотров: 287; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |