Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 10

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 10 страницаОсновы программирования (947332) страница 102013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

3.1Задания для самопроверкиЗадание 1. Разработайте программу, которая вводит вещественные числа х, у иопределяет, принадлежит ли точка с координатами (х, у) закрашенной части плоско­сти (рис. 3.5). Выполните тестирование полученной программы.Задание 2. Заданы целые числа а, Ь, где а < Ь.

Раз­работайте программу, которая определяет, имеет литочки разрыва функция:(Рис. 3.5. Вид областик заданию 1х^ при X < а;X при а ^ х ^ Ь ;I при X ^Ь.Выполните тестирование полученной программыв точках предполагаемого разрыва.55Часть L Основы алгоритмизации и процедурное программированиеЗадание 3. Периодическая функция f(x) на отрезке [-1, 1] совпадает с функциейx^+l. Разработайте программу, которая определяет значение функции f(x) длязаданного значения XQ. Выполните тестирование полученной профаммы.3.3. Оператор выбораОператор выбора используется для реализации нескольких альтернатив­ных вариантов действий, каждый из которых соответствует своим значениямнекоторого параметра.

Синтаксическая диаграмма этого оператора приведе­на на рис. 3.6.Пример 3.3. Разработать программу, которая вычисляет значение однойиз заданных функций в указанной точке.Предоставим пользователю возможность выбрать функцию через про­стейшую имитацию меню, в котором каждой функции соответствует некото­рое число (код):Введите код функции:1 - y=sin(x)2 - y=cos(x)3 - у=ехр(х)В зависимости от значения введенного кода выбирается одна из функ­ций.

На рис. 3.7 представлена схема алгоритма программы.Ниже представлена программа, реализующая разработанный алгоритм.Program ex;Var x,y:real; Kod:byte; Key:boolean;BeginWriteLn('Введите код функции:');WriteLn(4 - sin(x)');WriteLnC2 - cos(x) ');WriteLn(*3 - exp(x) *);ReadLn(Kod);—>( case y-A Выражение h*/ of JTAКонстанта/диапазонОператор-ОelseОператор —'Рис. 3.6. Синтаксическая диаграмма <Оператор выбора>56end3. Управляющие операторы языка(НачалоjВыводменюШKod=lKodKod=2 " ^ ^ v - ^ Kod=3другиелз:Xiy:=sin(x)y:=cos(x)y=Q>Key:=false1данетKeyВыводх>УцНеверныйкод J1^(КонецjРис. 3.7.

Алгоритм программы вычисления значения одной из заданных функцийWrite('Beedume значение аргумента:');ReadLn(x);Key:=true; {признак правильности кода}case Kod of1:y:-sin(x);2: y:=cos(x);3: y:=exp(x);else Key:=false; {код не соответствует функции}end;if Key thenWriteLn(^npu x= \x:12:6, y= \y:12:6)elseWriteLnCBeeden неверный код функции,');End57Часть 1. Основы алгоритмизации и процедурноепрограммирование3.4. Операторы организации циклической обработкиДля реализации циклических процессов используют операторы циклов.Как уже пояснялось в параграфе 1.3, в теории программирования выде­ляют несколько основных видов циклов:• цикл-пока (рис. 3.8, а)\• цикл-до (рис.

3.8, б);• счетный цикл (рис. 3.8, в).В Borland Pascal реализованы все три указанных вида циклов. Цикл-по­ка и цикл-до используют для реализации итерационных циклических про­цессов. Счетный цикл -для реализации циклических процессов с заданнымколичеством повторений. Для реализации циклических процессов поисково­го типа используют циклы-пока или циклы-до со сложными условиями илинеструктурные передачи управления (см. параграф 3.6).Цикл-пока.

Синтаксическая диаграмма оператора «цикл-пока» приве­дена на рис. 3.9. Условие записывают в виде логического выражения. Опера­тор тела цикла повторяется, пока условие истинно. Проверка осуществляет­ся на входе. Если при входе в цикл условие не выполняется, то оператор те­ла цикла игнорируется.Если в тело цикла необходимо поместить несколько операторов, то ис­пользуют составной оператор.Цикл-до. Операторы тела цикла повторяются до выполнения условия,условие проверяется на выходе, т.е. тело цикла всегда выполняется хотя бынетг - * - <K=nl.n2,h>1Действие11(бвРис. 3.8. Структура циклов, реализованных в Borland Pascal:а - цикл-пока; б - цикл-до; в - счетный цикл—^while V-*^ЛогическоевыражениеdoОператорРис. 3.9. Синтаксическая диафамма <Цикл-пока>583'.

Управляющие операторы— ^repeat У т лОператор\т*\untilязыкаV-*JЛогическоевыражениеОРис. ЗЛО. Синтаксическая диафамма <Цикл-до>один раз. Синтаксическая диаграмма оператора «цикл-до» приведена нарис. 3.10. В тело цикла можно поместить несколько операторов, разделив ихточкой с запятой «;».Счетный цикл. Цикл выполняется, пока переменная (параметр) циклапринимает значения в заданном диапазоне с определенным шагом. Синтак­сическая диаграмма оператора приведена на рис. 3.11.

Переменная цикладолжна иметь порядковый тип. Выражение 1 определяет начальное значениепараметра цикла, выражение 2 - конечное значение параметра цикла. Соот­ветственно начальное и конечное значения должны принадлежать к тому жетипу, что и параметр цикла. Если используется служебное слово to, то прикаждом выполнении цикла переменной цикла присваивается следующее зна­чение порядкового типа переменной. Если используется служебное словоdownto, то при каждом выполнении цикла переменной цикла присваиваетсяпредыдущее значение порядкового типа переменной.

Если диапазон значе­ний переменной цикла пуст, то цикл не выполняется.Примечание. По сравнению с теоретическим-представлением оператор счетного цикла,реализованный в Borland Pascal, является менее мощной конструкцией, так как шаг цикла ог­раничен (фактически только +1 и -1).Пример 3.4. Разработать профамму вычисления суммы п первых нату­ральных чисел.Сумма определяется методом накопления. Количество суммируемых чи­сел известно, поэтому используем цикл с заданным количеством повторений.При каждом проходе к сумме будем добавлять переменную цикла, котораябудет изменяться от 1 до п. Перед циклом переменную суммы необходимо*©^Параметрцикла|.(;:>1°"Р7-'К^и°"Т""'ИЯНОператорL^^downtoVРис. 3.11. Синтаксическая диаграмма<Цикл с заданным количеством повторений>59Часть 1.

Основы алгоритмизации и процедурное программирование(обнулить. На рис. 3.12 приведена схема алгоритмапрограммы. Текст программы приведен ниже.Начало jВводпS:=0л:i:=l,n,lS:=S+iТ"Вывод/Program ex;Var/, п, S: integer;BeginWritelnCBeedume n');ReadLn(n);S:=0;for /;=/ to n doS:=SH;WriteLn('Сумма \ n / чисел равна \ S);End,/Пример 3.5. Разработать программу, определяю­щую сумму ряда 1 - 1/х + 1/х2 - 1/х^ + ... с заданнойточностью S (епсилон).Рис.

3.12. АлгоритмИз соответствующих разделов математики изве­вычисления суммы стно, что суммой ряда называется предел, к которомуп натуральныхстремится последовательность частичных сумм дан­чиселного ряда, если он существует. Если такой предел су­ществует, то ряд называется сходящимся^ в противном случае -расходящим­ся. Также известно, что знакопеременный ряд сходится, еслиIКонец Jгде г„ и Tj^+i ~ соответственно п-й и n+1-й члены ряда.Кроме того, доказано, что|s-sj^kn+iUгде S - сумма ряда, а S^ ~ сумма п членов ряда.Следовательно, для получения требуемого результата будем накапливатьчастичную сумму элементов ряда, пока очередной член ряда не станет мень­ше заданной погрешности:кп1 < е •На рис. 3.13 представлен алгоритм программы. Анализ алгоритма пока­зывает, что он неструктурный, так как в нем присутствует цикл суммирова603.

Управляющие операторы языкания, который не является ни цикломпока, ни циклом-до, ни циклом с за­данным количеством повторений.Для реализации данного алгоритманеобходимо его преобразовать вструктурный, чтобы можно было ис­пользовать один из имеющихся опе­раторов цикла.Поскольку количество повторе­ний цикла определить нельзя, попро­буем преобразовать неструктурныйцикл к циклу-пока. Для этого необ­ходимо операцию S=S+R продубли­ровать: одну копию поместить доцикла, а вторую ~ в конце цикла.Операторы S=0 и S=S+R, записан­ные до цикла, заменим операторомS=l, так как в этот момент R=l. Ус­ловие выхода из цикла также необхо­димо заменить на противоположное.Окончательный вариант фрагментаалгоритма с ц и к л о м - п о к апоказан на рис.

3.14, а. Его реализа­ция представлена ниже:Program ex;Рис. 3.13. Алгоритм определенияVar S,R,X,eps:real;суммы ряда с заданной точностьюBeginWriteLnCВведите x и эпсилон: *);ReadLn(X,eps);ifabs(x)>l then {если x > 1, то ищем сумму ряда}beginS:=l;R:=I;while abs(R)>eps dobeginR:='R/X;S:=S+R;end;61Часть I. Основы алгоритмизации и процедурное программированиеРис. 3.14. Структурные варианты алгоритма:а-сиспользованием цикла-пока; б - с использованием цикла-доWriteLnCnpu х= \ х:6:2,' S= \ 3:8:2, \ а /?=', R:8:6)endelse Writeln('PHdрасходится*);End.Тот же алгоритм можно преобразовать так, чтобы цикл можно былореализовать с использованием ц и к л а - д о (рис.

3.14, б). Ниже представле­на соответствующая программа.Program ex;var S,R,X,eps:real;BeginWriteLnCВведите значение x и эпсилон:');ReadLn(X,eps);ifx>l thenbeginS:=0;R:-l;repeatS:=S+R;R:='R/Xuntil abs(R ^^x) < =eps;WriteLnCnpu x= \x:6:2,' S= \S:8:2, \ a /?= \R:8:6)end62i. Управляющие операторы языкаelse Writeln(THd расходится');End,Другие способы реализации неструктурных алгоритмов более подробнобудут рассмотрены в параграфе 3.4.3.5.

Характеристики

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6274
Авторов
на СтудИзбе
316
Средний доход
с одного платного файла
Обучение Подробнее