Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Глава 5. Технология решения задачСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Решение задач на ЭВМ
Решение задач должно начинаться с их точной постановки. Постановка задач — это четкое выделение того, что требуется, и того, что дано:
Следующий этап — определение способа решения задачи. Способ решения — это набор действий, позволяющих получить требуемое из исходного:
Результат правильный, если он отвечает требованиям. Получение результатов — главное в решении любых задач. Отсутствие или неправильность результатов говорит о неуспехе деятельности. Результат неправильный, если он не соответствует требованиям. Однако при отсутствии четких требований невозможно однозначно судить о правильности или неправильности результатов. При решении на ЭВМ постановка задач предполагает представление требуемого и исходного в виде данных. Способы решения задач на ЭВМ в такой постановке должны быть представлены соответствующими алгоритмами и программами обработки данных.
При отсутствии готовых программ для решения задач возникает проблема создания соответствующих алгоритмов и программ. В любом случае необходимо подобрать и определить способы, методы и средства для решения поставленных задач. Систематический подход к составлению программ предполагает в качестве первого этапа составление спецификаций — описаний форм ввода и хранения данных в ЭВМ, а также получения и вывода результатов. Эти спецификации в дальнейшем будут использоваться для оценки правильности созданных программ. Для диалоговых программ в роли таких спецификаций выступают сценарии диалога — полные описания результатов и правил работы с ЭВМ при решении поставленных задач. Только после создания таких спецификаций должны составляться соответствующие им алгоритмы и программы.
Приведенная схема представляет основной принцип систематических методов составления алгоритмов и программ для решения различных прикладных задач — экономических, математических, физических, инженерных и т. д. Особенностью систематических методов является возможность полного устранения ошибок из алгоритмов и программ. При этом подходе программы сверяются с описаниями алгоритмов, а алгоритмы — с описаниями сценариев и методов решения. Такой систематический подход к составлению алгоритмов и программ может применяться к решению на ЭВМ любых прикладных задач с использованием самых различных языков программирования — Бейсик, Паскаль, Си и им подобные. Приведем примеры систематического решения задач. Первая задача: подсчет площади треугольника по длинам сторон.
Постановка Дано: а, b, с — длины сторон.
При: a > 0, b > 0, с > 0, a < b + c, b < a + c, c < a + b. Метод решения
Обратите внимание: в постановке задачи в исходные условия включены ситуации, когда решение может не существовать. А именно, здесь указаны три неравенства треугольника и условия положительности длин сторон. При нарушении этих условий треугольника просто не существует и тем более нельзя говорить о его площади. Для надежности программ такого рода ситуации (когда нет решений) должны быть предусмотрены в сценарии диалога. В этих случаях в сценарий необходимо включить сообщения с диагностикой причин отказов: отсутствие решений, недопустимость данных, некорректность команд, противоречивость фактов и т. п. АлгоритмПрограмма алг «площадь треугольника» ' площадь треугольника нач сls вывод («площадь треугольника»)? «площадь треугольника» вывод («длины сторон:»)? «длины сторон:» запрос («а=», a) input «a=»,a запрос («b=», b) input «b=»,b запрос («с=», с) input «c=»,c если не (а > 0 и b > 0 и с > 0) то if a<=0 or b<=0 or c<=0 then вывод («недопустимы длины»)? «недопустимы длины» инес не (а < b + с и b < а + c elseif not (a < b + с and b < а + с и с < а + b) то and с < а + b) then вывод («недопустимы длины»)? «недопустимы длины» иначе else р:= (а + b + с)/2 р = (а+b+с)/2 S:= вывод («площадь=», S)? «площадь=», S все end if кон end
Рассмотренный пример служит иллюстрацией постановки задачи, в которой выделены как требуемые и исходные данные, так и условия допустимости исходных данных. Такая постановка задачи позволяет заранее выделить все случаи и ситуации недопустимости данных, что в дальнейшем понадобится при составлении сценария диалога с компьютером. В общем случае математическая постановка задач должна содержать не только условия допустимости данных, но и точное описание требований к результатам: 1) дано: перечень исходных данных; 2) треб.: перечень требуемых данных; 3) где: требования к результатам; 4) при: условия допустимости данных. Вторая задача: определение среднего арифметического последовательности из N чисел х1, х2,..., хN. Приведем постановку, метод решения и сценарий диалога для решения этой задачи.
Постановка задачиСценарий
Дано: N - количество чисел, среднее N чисел x1, х2,.., хN - числа, чисел =? <N>
Где: s = (х1, + х2 +...+ хN)/ N. 1: <х1> При: N > 0. 2: <х2> ……….. Метод решения N: <хN>
[k = 1,..., N] недопустимо N s = SN / N
Обратите внимание: метод вычисления среднего N чисел здесь описан через подсчет суммы чисел. Правильность метода может быть проверена по отношению к требованиям постановки задачи. Приведем алгоритм и программу обработки данных, составленные в точном соответствии с выбранным сценарием и методом решения:
АлгоритмПрограмма алг «среднее арифметическое» ' среднее арифметическое нач cls вывод («среднее N чисел»)? «среднее N чисел» запрос («чисел=», N) input «чисел=», N S:= 0 S = 0 если N <= 0 то if N <= 0 then вывод («недопустимо N»)? «недопустимо N» инеc N > 0 то elseif N > 0 then от k = 1 до N цикл for k = 1 to N вывод (k, «:»)? k, «:» запрос (x) input x S:= S + x S = S + x кцикл next k s:= S/N s = S/N вывод («среднее =», s)? «среднее=», s все end if кон end
При решении сложных задач для проверки правильности составляемых алгоритмов и программ обязательны не только математическое описание постановки задач, но и описание выбранных методов решения. Приведем пример разработки программы обработки данных с математической постановкой задачи и полным описанием метода решения. Третья задача: определение самого легкого из учеников по данным из таблицы, содержащей N строк: Фамилия рост вес
Постановка задачиСценарий
Дано: (D1,..., DN) - данные учеников. Данные об учениках где D = [Fam, R,V] - состав данных, фамилия вес
Треб.: Famm - фамилия ученика. <Fam1> <V1> * Где:m: Vm = Min (V1..., VN). … … При: N > 0. <FаmN> <VN>
Метод решения самый легкий: Min (V1,.. Vn): <Fam m > <Vm > min = V1 от k = 1 до п цикл Представление данных если Vk < min то dan: 'данные учеников: min: = Vk data «Иванов», «Вова», 180,80 кцикл data «»,»»,0,0
Выбранному сценарию, методу решения и представлению данных соответствуют следующие алгоритм и программа на Бейсике.
АлгоритмПрограмма алг «самый легкий ученик» ' самый легкий ученик нач cls вывод («Данные об учениках»)? «Данные об учениках» вывод («фамилия вес»)? «фамилия вес» N: = 0 n = 0 цикл do чтение (Fam, r, v) read fam, r, v при Fam = «» выход if fam$ = «» then exit do вывод (Fam, v)? fam$, v, r N:=N+1 n = n+1 если N = 1 или V < Vmin то if n=l or v < vmin then Vmin: = V vmin = v Fmin: = Fam fmin$ = fam$ все end if кцикл loop вывод («самый легкий:»)? «самый легкий:» вывод (Fmin, Vmin)? fmin$, vmin кон end
В общем случае систематический подход к решению задач на ЭВМ требует для проверки правильности алгоритмов и программ не только математической постановки задач, но и обязательного описания выбранных методов решения.
Систематический подход: задача ® способы ¯ ¯ постановка ® методы ¯ ¯ сценарий ® алгоритмы ¯ ¯ ЭВМ программа
Рассмотрим пример систематического составления алгоритма и программы для решения на ЭВМ достаточно сложной задачи обработки данных. Четвертая задача: Определить суммы элементов столбцов в матрице Anxm:
Приведем обобщенную постановку задачи и описание соответствующих общего метода решения и сценария диалога. Постановка задачиСценарий
Дано: Матрица <N>´<M> (a11 … a1N) < a11>... < a1N > (.........) - матрица Anxm......... (aMl … aMN) < aMl > … < aMN > Треб.: Суммы элементов: (S1..., SN) - суммы столбцов <S1>... <S N > Где:
[i = (1… N)] При: N > 0, М > 0.
Метод вычисленийПредставление данных
[1 = (1... M)] data I, 2, 3, 4 Sk = SkN data 0, 1, 2, 3 [k = (1... N)] data 0, 0, 1, 2
В предлагаемой ниже программе для представления матриц используются операторы data. В первом из этих операторов записаны размеры, а в каждом последующем операторе - строки матрицы: АлгоритмПрограмма алг «сумма строк матрицы» ' сумма строк матрицы нач cls чтение (п, т) read n, m если п > 0 и т > 0 то if N > 0 and М > 0 then массив А[1:п,1:т] dim A (N,M) массив S[1:n] dim S(n) ввод-вывод_матрицы gosub vvod 'ввод-матрицы суммирование_строк gosub sum 'суммирование от k = 1 до п цикл for k= 1 to n выв (s[k])? s[k] кцикл next k все end if кон end
алг «суммирование строк» sum: 'суммирование строк нач ' нач от k = 1 до N цикл for k = 1 to n s[k]:= 0 s[k] = 0 от l = 1 до М цикл for I = 1 to m s[k]:= s[k] + A[k,l] s[k] = s[k] + a[k,l] кцикл next I кцикл next k кон return
алг «ввод-вывод_матрицы» vvod: 'ввод-вывод_матрицы нач ' нач вывод («Матрица», N, «х», М)? «Матрица»; m; «х»; m от k = 1 до N цикл for k = 1 to n от I = 1 до М цикл for l = 1 to m чтение (A [k,l]) read A (k,l) вывод (A [k,l])? A (k,l) кцикл next 1 нов_строка? кцикл next k кон return
Вопросы 1. Что такое постановка задачи? 2. Что включается в постановку задач? 3. Что такое способ решения? 4. Что такое метод решения? 5. Каков порядок решения новых задач? 6. Что такое систематическая разработка алгоритмов и программ?
Задачи 1. Приведите постановку задачи, сценарий, алгоритм и программу подсчета сумм: а) нечетных чисел; б) квадратов целых чисел; в) кубов целых чисел. 2. Приведите постановку задачи, сценарий, алгоритм и программу подсчета сумм: а) членов арифметической прогрессии; б) членов геометрической прогрессии. 3. Для последовательности чисел х1, х2..., хN приведите постановку задачи, составьте сценарий, алгоритм решения и программу: а) подсчета суммы всех чисел; б) вычисления среднего арифметического чисел; в) определения наибольшего из чисел; г) определения наименьшего из чисел. 4. Для данных об учениках, содержащих сведения об их росте и весе, приведите постановку задачи, составьте сценарий, алгоритм и программу определения: а) самого высокого ученика; г) самого легкого ученика; б) самого низкого ученика; д) средний рост учеников; в) самого тяжелого ученика; е) средний вес учеников. 5. Для данных о днях рождения своих друзей и родных приведите постановку задачи, составьте сценарий, алгоритм решения и программу: а) определения ровесников; б) определения людей, родившихся в один день; в) самого молодого из своих друзей и родных; г) самого старшего из своих родных и друзей.
|
|||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-12-16; просмотров: 661; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.008 с.) |