При решении задачи на компьютере типы входных и выходных данных определяют на этапе

Обновлено: 02.07.2024

При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.

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

Следовательно, язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера.

1.Математическая формулировка задачи (формализация условий задачи).

Любая задача подразумевает наличие входных данных, которые в процессе её решения преобразуются в выходные данные. На этапе формализации задачи чётко зафиксирован характер, тип входных и выходных данных и установлено соответствие между ними, заданное посредством математических зависимостей.

2. Выбор численного метода решения задач данного класса.

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

3. Разработка алгоритма решения задач данного класса (алгоритмизация), то есть запись методики решения задачи выбранным методом.

Алгоритм – однозначно определённая конечная последовательность правил, задающих процесс преобразования входных данных в выходные после конечного числа шагов.

Для алгоритма должны быть характерны следующие свойства:

- массовость – алгоритм должен быть применим не только для решения конкретной задачи, а для решения всех задач такого типа для всех допустимых значений входных данных;

- дискретность – процесс получения результата должен разделяться на элементарные действия из ограниченного набора;

- результативность – свойство алгоритма, которое должно приводить к получению результата за конечное время;

- определённость – ориентированность алгоритма на определённого исполнителя, который должен однозначно понимать все инструкции, входящие в алгоритм.

Существует много способов документирования алгоритмов, но все они должны содержать средства для отображения:

- начала и конца схемы;

- данных и результатов;

- шагов преобразования данных;

- указания о последовательности выполнения этих шагов.

Доказано, что для представления любого алгоритма достаточно набора из 2-х базовых элементов, называемых структурами управления. Это «следование» и «ветвление». Часто в качестве альтернативного выбора используются «обход» и «циклическое исполнение» в двух разновидностях: «цикл ДО» и «цикл ПОКА». Блок-схемы структур управления приведены на рисунке 1.

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

4. Программирование разработанного алгоритма, то есть запись конкретного алгоритма на языке конкретной ЭВМ.

Алгоритм может быть сформулирован с использованием достаточно ёмких понятий и инструкций, в том числе и таких, которые определяет, придумывает сам разработчик алгоритма. С другой стороны, любой конкретный исполнитель алгоритма всегда «знает» только некий ограниченный набор команд. Для ЭВМ это система команд центрального процессора. Для того, чтобы ЭВМ смогла реализовать алгоритм, он должен быть представлен в памяти ЭВМ в понятном для неё виде – в виде последовательности чисел – кодов команд и данных. Программирование алгоритма – это перевод алгоритма с языка разработчика на язык машины – в последовательность чисел.

Вплоть до 50-х годов XX века это именно так и было, и программирование сводилось к написанию программ в машинных кодах для каждой ЭВМ, при этом нужно было учитывать её конкретные особенности. Это имело следующие недостатки:




- непереносимость программ с одной ЭВМ на другую, даже если она была подобной первой;

- выявление ошибок в таких программах было практически невозможным;

- по программе практически невозможно было понять структуру алгоритма.

Такое положение вещей привело к созданию специальных языков для общения человека с ЭВМ, так как обычный человеческий язык использовать для этого нецелесообразно из-за очень больших возможностей для создания неоднозначных инструкций, очень большого объёма понятий. Поэтому были созданы специальные символьные языки, которые подразделяются на алгоритмические языки высокого уровня и машинно-ориентированные языки. Одновременно появились специальные программы-трансляторы, которые переводят программу, написанную на языке высокого уровня, в машинные коды.

Для работы с языками высокого уровня существуют специальные программы-компиляторы и программы-интерпретаторы, различающиеся по принципу работы.

Компиляторы – переводят исходную программу в машинные коды конкретной ЭВМ, результат можно запускать на счёт. Обычно компиляторы – это сложные программы, проводящие оптимизацию результирующего кода программы для обеспечения наибольшей эффективности. При этом затраты времени и средств на обработку программы компилятором могут быть значительными, но полученная программа будет максимально эффективной в работе.

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

По назначению языки высокого уровня делятся на 3 группы.

1 группа. Проблемно-ориентированные языки – предназначенные для решения частных задач обработки данных из конкретной прикладной области (языки САПР, СУБД, систем искусственного интеллекта).

2 группа. Процедурно-ориентированные языки – предназначенные для обработки данных, имеющих относительно простую структуру и позволяющие представлять алгоритм в виде комбинации таких процедур, как ввод-вывод, вычисление выражений, циклическое исполнение (языки Фортран, Бейсик).

3 группа. Универсальные языки – включают средства обработки данных сложной структуры, символьной информации, средства для создания нестандартных типов данных и инструментов для их обработки (языки C, Pascal, C++).

5. Отладка программы.

На завершающем этапе создания программы проводится её отладка, которая представлена в виде схемы на рисунке 2.

Основные понятия и программы, используемые в процессе отладки.

Исходный текст – текст программы на языке программирования.

Препроцессор – специальная программа, преобразующая исходный файл имя.cpp в готовый для компиляции файл имя.i, который также является текстовым, но как правило отличается от исходного, обычно не запоминается на диске. Препроцессор подключает к исходной программе внешние файлы, указываемые директивой include, расширяет макроопределения, подставляет вместо константных выражений их значения.

Компилятор – программа, которая осуществляет перевод исходного текста программы в объектный код.

Объектный код – текст программы на машинном языке, который не может выполняться компьютером, содержится в объектном модуле имя.obj.

Компоновщик (linker) – программа, строящая загрузочный модуль из объектных модулей. Эта программа собирает откомпилированный текст программы и функции из стандартных библиотек в одну исполняемую программу имя.exe.

Библиотека – набор функций, предопределённых переменных и констант, которые могут быть использованы в программе и хранятся в откомпилированном виде.

Время компиляции – период, во время которого происходит компиляция программы.

Время выполнения – период, во время которого происходит выполнение программы.

Для облегчения процесса программирования существуют специальные программы-оболочки, создающие необходимую для этих целей среду, в которую входят инструменты написания текста программы, редактирования, компиляции и отладки программы.

-: тестированием «белого ящика»

S: При разработке программного продукта состав и форма входных и выходных данных определяется на этапе…

-: разработки алгоритма решения

+: проверяется корректность работы программы

-: строится математическая модель решаемой задачи

-: определяется состав входных данных

-: определяются типы входных и выходных данных

+: построения математической модели задачи

-: разрабатывается математическая модель

-: выполняется тестирование алгоритма на контрольном примере

+: определяется состав и форма представления входной, промежуточной и выходной информации

-: исследуется эффективность используемого алгоритма реализации задачи

-: построения математической модели

+: тестирования и отладки

+: весь период его разработки и эксплуатации

-: только период его эксплуатации

-: период его разработки и тестирования, до сдачи программного средства в эксплуатацию

-: только период его разработки

S: На этапе отладки программы…

-: выполняется анализ физических характеристик

-: строится математическая модель решаемой задачи

-: определяется состав входных данных

+: проверяется корректность работы программы

S: Этапы создания программных продуктов в порядке следования:

д) анализ задачи

S: При разработке программного продукта устранение недостатков, замеченных пользователем осуществляется на этапе ________.

-: анализа полученных результатов

+: сопровождения программного продукта

-: отладки и тестирования

S: Обязательным критерием качества программных систем является их …

-: временем работы программы

-: количеством вызовов подпрограмм

+: объемом памяти, необходимым для работы программы

-: числом используемых переменных

-: исследования эффективности алгоритма

+: построения математической модели

-: тестирования и отладки

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

-: анализа и формализованного описания задачи

-: выбора метода решения задачи

S: Деятельность, направленная на исправление ошибок в программной системе, называется …

Статьи к прочтению:

Этапы решения задач на компьютере


Похожие статьи:


В данный момент вы не можете посмотреть или раздать видеоурок ученикам

Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.

Получите невероятные возможности



2. Раздавайте видеоуроки в личные кабинеты ученикам.


3. Смотрите статистику просмотра видеоуроков учениками.

Конспект урока "Этапы решение задачи на компьютере. Принцип последовательного конструирования алгоритма"

· Этапы решения задачи на компьютере.

· Принцип последовательного конструирования алгоритма.

Давайте подумаем, с чего начинается решение любой задачи, не обязательно связанной с компьютером. Решение любой задачи начинается с прочтения и уточнения её условия. Условия задач мы рассматривали в текстовой форме. Мы выделяли информацию, которая дана в условии – входные данные, а также информацию которую необходимо получить – выходные данные. Это начальный этап решения задачи, то есть её постановка.

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

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

Далее мы записывали созданный алгоритм с помощью языка программирования или других инструментов. И получали компьютерную программу для решения задачи. Этот этап имеет простое название: программирование.

Получив компьютерную программу, мы обычно проверяли правильность её работы. Сначала пробовали запустить программу. После чего задавали несколько различных вариантов входных данных, для которых выходные данные уже были известны, и проверяли, совпадают ли они с теми, которые возвращает программа. Если данные совпадают – программа работает правильно и задача решена. Если же не совпадают – на каком-то из этапов была допущена ошибка. Этот процесс называется тестированием программы.

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

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


Но предположим, что у нас есть задача, для которой мы уже описали формальную информационную модель, однако придумать алгоритм для решения задачи у нас не выходит, потому что он получается слишком большим и сложным. Чтобы облегчить эту задачу, можно использовать принцип последовательного конструирования алгоритма, этот принцип также называется «разработкой сверху вниз» или методом «пошаговой детализации». Он состоит в том, что задача разбивается на несколько более простые подзадач, каждая из которых также может разбиваться на подзадачи. Так происходит до тех пор, пока не станет понятным, как решать каждую отдельную подзадачу. Для решения каждой задачи составляется вспомогательный алгоритм. После того, как мы составили вспомогательные алгоритмы для решения всех подзадач, нам остаётся лишь собрать их воедино. Таким образом, мы получим алгоритм для решения исходной задачи.


Рассмотрим задачу. Написать программу, вычисляющую наименьшее общее кратное двух целых положительных чисел a и b. Наименьшим общим кратным (НОК) двух натуральных чисел называется наименьшее целое число, которое без остатка делится на оба числа. Из курса математики нам известно, что наименьшее общее кратное двух натуральных чисел можно вычислить как их произведение, делённое на их наибольший общий делитель (НОД). Таким образом, исходную задачу мы можем разбить на 3 подзадачи: вычислить произведение введённых чисел, вычислить их наибольший общий делитель и разделить произведение чисел на их наибольший общий делитель.


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

print ('Программа, вычисляющая НОК a и b.')

while a != 0 and b != 0:

print ('НОК введённых чисел:', nok)

Сохраним написанную программу и протестируем её. Запустим программу на выполнение и зададим числа 2 и 3. Действительно, наименьшее число, которое без остатка делится и на 2, и на 3 – 6. Снова запустим программу и зададим числа 6 и 8. Действительно, наименьшее число, которое без остатка делится и на 6, и на 8 – 24. Программа работает правильно. Задача решена.

Рассмотрим ещё одну задачу. Выпуклый четырёхугольник задан положительными длинами своих сторон: a, b, c и d. Написать программу для вычисления его площади, если известно, что между сторонами a и b прямой угол.

Изобразим условие этой задачи в виде рисунка. Соединим противоположные концы сторон a и b отрезком, длину которого обозначим t. Таким образом мы разделили четырёхугольник на два треугольника со сторонами a, b, t и c, d, t соответственно. Площадь четырёхугольника равна сумме их площадей. Так как между сторонами a и b прямой угол, то площадь первого треугольника можно вычислить как полупроизведение a и b, а t – как гипотенузу первого треугольника. Зная значения c, d и t, мы можем вычислить площадь второго треугольника по формуле Герона. Таким образом, мы записали формулы, необходимые для решения задачи, получив математическую модель.


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


print ('Программа, вычисляющая площадь четырёхугольника по длинам его сторон. Угол между a и b прямой.')

from math import sqrt

t = sqrt (a ** 2 + b ** 2)

s2 = sqrt (p * (p - c) * (p - d) * (p - t))

print ('Площадь заданного четырёхугольника:', ''.format (s))

· Решение любой задачи с помощью компьютера состоит из пяти этапов: постановка задачи, её формализация, создание алгоритма, программирование, тестирование и отладка.

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

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

Информатика. 9 класса. Босова Л.Л. Оглавление

Ключевые слова:

  • постановка задачи
  • формализация
  • алгоритмизация
  • программирование
  • отладка и тестирование

Этапы решения задачи на компьютере

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

Решение задачи с использованием компьютера включает в себя этапы, показанные на рис. 2.1.

На первом этапе обычно осуществляется постановка задачи, происходит осознание её условия. При этом должно быть чётко определено, что дано (какие исходные данные известны, какие данные допустимы) и что требуется найти в решаемой задаче. Также должны быть чётко выделены существенные свойства рассматриваемого объекта, указаны связи между исходными данными и результатами.

На втором этапе описательная информационная модель формализуется, т. е. записывается с помощью некоторого формального языка.


Для этого требуется:

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

На третьем этапе осуществляется построение алгоритма — чёткой инструкции, задающей необходимую последовательность действий для решения задачи. Алгоритм чаще всего представляется в форме блок-схемы ввиду её наглядности и универсальности.

На четвёртом этапе алгоритм записывается на одном из языков программирования. Вы учитесь записывать программы на языке Паскаль.

На пятом этапе осуществляется отладка и тестирование программы. Этап отладки и тестирования также называют компьютерным экспериментом.

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

О правильности разработанной программы свидетельствует также соответствие полученных данных экспериментальным фактам, теоретическим положениям и т. д. При этом может возникнуть необходимость уточнить разработанную математическую модель, полнее учесть особенности изучаемого объекта или процесса. По уточнённой математической модели снова составляется программа, анализируются результаты её выполнения. Так продолжается до тех пор, пока полученные результаты не будут достаточно точно соответствовать изучаемому объекту.

Задача о пути торможения автомобиля

Рассмотрим последовательность прохождения этапов решения задачи на компьютере (см. рис. 2.1) на примере простой задачи.

Водитель автомобиля, движущегося с некоторой постоянной скоростью, увидев красный свет светофора, нажал на тормоз. После этого скорость автомобиля стала уменьшаться каждую секунду на 5 метров. Требуется найти расстояние, которое автомобиль пройдёт до полной остановки.

Первый этап.

  • υ0x — начальная скорость;
  • υx — конечная скорость (равна нулю, так как автомобиль остановился);
  • ах — ускорение (равно -5 м/с).

Требуется найти: sx — расстояние, которое автомобиль пройдёт до полной остановки.

Второй этап. В данной ситуации мы имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения при этом имеет вид:


Упростим эту формулу с учётом того, что конечная скорость равна нулю:


При аx = -5 м/с получим:


Третий этап. Представим алгоритм решения задачи в виде блок-схемы:


Четвёртый этап. Запишем данный алгоритм на языке программирования Паскаль:

Пятый этап. Протестировать составленную программу можно, используя информацию, что при скорости 72 км/ч с начала торможения до полной остановки автомобиль проходит 40 метров.

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

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

САМОЕ ГЛАВНОЕ

Этапы решения задачи с использованием компьютера:1) постановка задачи;
2) формализация;
3) алгоритмизация;
4) программирование;
5) компьютерный эксперимент.Для решения задач на компьютере необходимо владеть языком программирования, обладать знаниями в области информационного моделирования и алгоритмизации.

Вопросы и задания к § 2.1. Решение задач на компьютере

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?

Программа (program, routine) — упорядоченная последовательность команд (инструкций) компьютера для решения задачи. Программы предназначены для машинной реализации задач

Программное обеспечение (software) — совокупность программ обработки данных и необходимых для их эксплуатации документов

Приложение – программная реализация на компьютере решение задачи

Задача – проблема, подлежащая решению. Таким образом, задача означает проблему, подлежащую реализации с использованием средств информационных технологий, а приложение — реализованное на компьютере решение по задаче. Приложение, являясь синонимом слова "программа", считается более удачным термином и широко используется в информатике.

Существует большое число разнообразных классификаций задач. С позиций специфики разработки и вида программного обеспечения будем различать два класса задач — технологические и функциональные

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

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

Предметная (прикладная) область (application domain) — совокупность связанных между собой функций, задач управления, с помощью которых достигается выполнение поставленных целей.

Процесс создания программ можно представить как последовательность действий:

Постановка задачи – точная формулировка решения задачи на компьютере с описанием входных и выходных операций.

Цель или назначение задачи, ее место и связи с другими задачами;

Условия решения задачи с использованием средств вычислительной техники;

Содержание функций обработки входной информации при решении задачи;

Ограничения по срокам и точности выходной информации;

Пользователи задачи (кто осуществляет ее решение и пользуется результатами решения).

Выходная информация по задаче может быть представлена в виде документов (типа листинга или машинограммы), сформированных кадров — видеограммы на экране монитора, файла базы данных, выходного сигнала устройству управления (рис. 1).

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

Алгоритм — система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов.

Рис. 1.1 Схема взаимосвязи входной и выходной информации для решения задачи

Алгоритм решения задачи имеет ряд обязательных свойств:

Дискретность — разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;

Определенность алгоритма — однозначность выполнения каждого отдельного шага преобразования информации;

Выполнимость — конечность действий алгоритма решения задач, позволяющая получить желаемый результат при допустимых исходных данных за конечное число шагов;

Массовость — пригодность алгоритма для решения определенного класса задач.

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

Читайте также: