КАТЕГОРИИ: Архитектура-(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) |
Методические рекомендации
Кон Нц begin Нач begin End. End. Кон end. То then begin То then begin То then begin Нач begin Кон Кв Кв Примеры решения задач Изучение языка программирования происходит в контексте решаемых задач, т.е. новые средства языка вводятся по мере необходимости для решения очередного типа задач. Рассмотрим решение некоторых задач с использованием языка Паскаль, предлагаемых в учебнике [6]. Эти примеры иллюстрируют использование метода аналогии между учебным алгоритмическим языком и Паскалем. Пример 1. Составить алгоритм, по которому на компьютере будет происходить следующее: в переменную S вводится возраст Саши, в переменную М вводится возраст Маши. В качестве результата на экран выводится фраза «Саша старше Маши», или «Маша старше Саши», или «Саша и Маша ровесники». Написать программу на Паскале по этому алгоритму. Решение. Алгоритм имеет структуру двух вложенных полных ветвлений. При переходе от алгоритмического языка к Паскалю следует обратить особое внимание на необходимость точного соблюдения правил синтаксиса языка: точки с запятой в конце операторов, параметров ввода и вывода в круглых скобках и пр.
алг САША-MАША Program Sasha&Masha; вещ S, M var S, M: real; нач вывод 'Возраст Саши:'. begin write ('Возраст ввод S Саши:'); вывод 'Возраст readln(S); Маши:' write('Возраст ввод М Маши:' ); если S > M readln(М); то вывод 'Саша if S > М старше Маши' then write('Саша иначе если S = М старше Маши') то вывод 'Саша else if S = М и Маша then write('Саша ровесники' и Маша ровесники') иначе вывод else write('Маша 'Маша старше старше Саши') Саши1 end. Пример 2. Составить алгоритм упорядочения значений трех переменных по возрастанию, т.е. при любых исходных значениях А, Б, С отсортировать их так, чтобы стало А < В < С. Написать программу на Паскале по этому алгоритму. Решение. В подразделе 12.4учебника [6] рассмотрен алгоритм упорядочения значений двух переменных. Для решения данной задачи требуется трижды применить этот алгоритм: упорядочить А и В, упорядочить В и С (после этого максимальное значение попадет в С), еще раз упорядочить Aw. В. Таким образом, алгоритм будет иметь структуру трех последовательных неполных ветвлений.
Алг СОРТИРОВКА-3 Program SORT_3; вещ А, В, С, X var A,B,C,X: real; ввод А, В, С readln (А, В, С); если А > В if A > В X:= А; X:= А; А:= В; А:= В; В:= XВ:= X kb end; если В > С if В > С X:= В; X:= В; В:= С; В:= С; С:= X С:= X kb end; если А > В if A > В X:= А; X:= А; А:= В; А:= В; В:= X В:= X kb end; вывод А,В,С write(А,В,С)
По поводу рассмотренной задачи сделаем следующее замечание. Эта задача, которая выводит на идею использования вспомогательных алгоритмов. Упорядочение трех переменных производится трехкратным применением алгоритма упорядочения двух переменных, поэтому разумно этот алгоритм оформить как вспомогательный. Программы, реализующие вспомогательные алгоритмы, называются подпрограммами. В Паскале есть два вида подпрограмм: подпрограммы-процедуры и подпрограммы-функции. В данной задаче можно использовать процедуру. В учебнике [6] подпрограммы не рассматриваются. Это объясняется ограниченностью учебного времени, которое можно выделить в базовом курсе на тему «Введение в программирование». При наличии дополнительного времени рекомендуется дать ученикам представление о подпрограммах. Рассмотренная здесь задача может быть использована как опорная для раскрытия этой темы. Приведем пример программы сортировки значений трех переменных с использованием процедуры (правила работы с процедурами смотрите в учебниках по Паскалю). Program Sort_3; var А, В, С: real; Procedure SOR2(var X,Y: real); var Z: real; begin Z:=X; X:=Y; Y:=Z end; begin readln(А,В,С); SOR2(A,B); SOR2(B,C); SOR2(A,B); writeln(A,B,C) Пример З. Дано вещественное число Хк натуральное N. Составить алгоритм вычисления XN. Написать программу на Паскале. Решение.В Паскале нет операции возведения в степень. Если показатель степени — целое положительное число, то возводить в степень нужно путем ЛГ-кратного умножения основания самого на себя. Реализуется это циклическим алгоритмом:
алг Степень Program Power; цел N,i; вещ X; var N,i: integer; нач ввод N X: real; ввод X begin readln(N); i:=l; readln(X); Y:=l; i:=i; пока i<=N, повторять Y:=l; нц while i<=N do Y:=Y*X begin i:=i+l Y:=Y*X; кц i:=i+l вывод Y end; кон write(Y)
При выполнении трассировки этого алгоритма обязательно следует проверить правильность его работы при N = 0. Как известно из математики, Х° = 1. Трассировка доказывает, что и в этом случае алгоритм будет давать правильный результат. Пример 4. Последовательно вводятся N целых чисел. Найти максимальное из них. Решение. В программировании часто приходится решать задачу поиска максимального (минимального) значения в числовом массиве. В базовом курсе могут не рассматриваться структурированные данные, в том числе массивы. Однако-эту задачу можно решить и без использования массива, ограничившись простыми переменными. Для этого ввод данных и обработку надо совместить в одном цикле. Вот как это делается:
Алг максимум Program maximum; цел N, i, X, MAX var N, i, X, MAX: integer; вывод 'введите N'; write('введите N'); ввод N readln(N); вывод 'введите X'; write С введите X'); ввод X readln(X); МАХ:=Х; i:=l MAX:= X; i:=l; пока i < N, повторять while i < N do вывод 'Введите X'; write('Введите X'); ввод X readln(X); если X > MAX if X > MAX то MAX:=X then MAX: = X; kb i: = i + 1 i: = i + l end; кц writeln(MAX) вывод MAX end.
Дата добавления: 2017-02-01; Просмотров: 69; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |