Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3400

.pdf
Скачиваний:
19
Добавлен:
15.03.2016
Размер:
529.33 Кб
Скачать

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К РЕШЕНИЮ ЗАДАЧ ЗАДАНИЯ 2

Этапы решения задач на ПК

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

Исходя из условия задачи, пользователь решает для себя вопрос о том, каким программным средством он воспользуется. Если в составе доступного прикладного программного обеспечения имеется программа, подходящая для решения данной задачи, то пользователь выбирает ее в качестве инструмента (СУБД, табличный процессор, математический пакет и др.). В том случае, когда готовым прикладным ПО воспользоваться нельзя, приходится прибегать к программированию на универсальных языках.

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

Работа по решению прикладной задачи на компьютере проходит через следующие этапы:

1)постановка задачи;

2)формализация (математическая постановка);

3)выбор (или разработка) метода решения;

4)разработка алгоритма;

5)составление программы;

6)отладка программы;

7)вычисление и обработка результатов.

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

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

Методом решения является метод преобразования исходных данных в результат.

11

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

Существует несколько способов описания алгоритмов.

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

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

 

 

 

 

Таблица 4

 

 

Условные обозначения блоков

 

 

 

 

 

Наименование

 

Обозначение

Функция

Процесс

 

 

 

Выполнение арифметической операции или

 

 

 

 

 

 

 

группы операций, в результате которых

 

 

 

 

изменяется значение исходных данных

 

 

 

 

Выбор направления выполнения алгоритма

Решение

 

 

 

решения задачи в зависимости от некоторых

 

 

 

 

условий

Ввод-вывод

 

 

 

Преобразование данных при вводе-выводе

Документ

 

 

 

Преобразование информации при выводе на

 

 

 

 

печать (носителем информации является

 

 

 

 

бумага)

 

 

 

 

Вывод информации на экран дисплея

Монитор

 

 

 

 

Линия потока

 

 

 

Указывает связи между отдельными блоками

Соединители

 

 

 

Указывает связи между прерванными линиями

 

 

 

 

потока

Пуск, остановка

 

 

 

Начало, конец процесса обработки данных

 

 

 

 

 

 

 

 

 

12

Типовые алгоритмы вычислительных процессов

Все приводимые ниже алгоритмы сопровождаются блок-схемой и программой на алгоритмическом языке Turbo Pascal.

Линейный вычислительный процесс

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

Пример. Вычислить и вывести на экран значение

y = ecos x

a π

.

 

 

sin2 x

Значения переменных a и x водится с клавиатуры (например, a = 5,75 ; x = 2,25). Алгоритм и программа имеют вид:

1

начало

program rom;

 

 

 

const

 

 

 

 

 

 

pi=3.14;

 

 

 

2

a, x

var

 

 

 

y, a, x: real;

 

 

 

begin

3

 

 

y:= ecosx aπ sin2 x

writeln (‘ввести a, x’);

 

 

 

readln (a, x);

 

 

 

 

 

 

y:=exp(cos(x))–sqrt(a*pi)/sqr(sin(x));

 

 

 

4

a, x

writeln (‘y =’, y:6:2,‘ x =’, x:5:2, ‘ a =’, a:5:2);

 

5

 

 

end.

 

 

 

 

 

конец

 

Рис. 3. Линейный алгоритм

Разветвляющийся вычислительный процесс

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

(рис. 4).

Пример. Вычислить и напечатать значение y при x 2,7 и x < 2,7; a = 2,1; b = 0,5.

 

2

x + b,

если

x ≥ 2,7

y = ln

 

если

x < 2,7

(a b x) + x,

 

 

 

 

 

13

Блок-схема алгоритма

1 начало

2

x, a, b

 

 

 

да

 

 

 

 

нет

 

x ≥ 2,7

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4y := ln2 x + b

 

 

 

 

 

 

5y := (a b x) + x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6 a, x

7 конец

Рис. 4. Разветвляющийся алгоритм

PROGRAM ZOG; var

x, a, b: real; begin

writeln (‘ввести x, a, b’); readln (x, a, b);

if x>=2.7 then y:=sqr(ln(x))+b else y:=(a*b*x)+x;

writeln (‘y=’, y:5:2, ‘ x=’, x:4:1, ‘ a=’, a:4:1, ‘ b=’, b:4:1);

end.

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

блок 2 – ввод исходных данных; блок 3 – проверка условия;

блок 4, 5 – вычисление у при выполнении (да) или невыполнении условия (нет); блок 6 – вывод результата на дисплей; блок 7 – конец расчета.

Циклический вычислительный процесс

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

Среди существующих разновидностей циклов следует выделить:

цикл с заданным числом шагов;

циклический разветвляющийся процесс (смешанный);

итерационный цикл.

Цикл с заданным числом шагов

Пример. Вычислить и напечатать значения

y = sin(1/(cos x tgx)), 1≤ x ≤2, шаг изменения x равен h (например, h = 0,05). Решение задачи состоит в вычислении и печати y для каждого значения x на

отрезке от 1 до 2.

Вычисление значения y и печать x и y – многократно выполняемые действия, происходящие циклически (рис. 5).

14

Исходными данными будут: начальное значение x (xнач), конечное значение x (хкон) и шаг изменения h.

Блок-схема алгоритма

1

начало

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x нач

,

 

2

x кон ,

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

x := xнач

 

 

 

 

 

 

 

 

нет

 

 

 

 

 

 

 

 

 

 

4 x xкон

 

 

 

 

 

 

 

да

 

 

 

 

 

 

5 y = sin( 1 /(cos

x tgx ))

 

 

 

 

 

 

 

 

6 x, y

7 x=x+h

8 конец

Подготовка цикла Задание начального значения

Проверка условия окончания цикла

Выполнение многократно повторяющихся операций: вычисление по формуле; вывод результата на дисплей;

изменения значения х на величину шага h (подготовка к следующему шагу цикла)

Рис. 5. Циклический алгоритм

Циклический расчет по формуле будет продолжаться до тех пор, пока выполняется условие в блоке 4:

блок 2 – ввод исходных данных;

блок 3 – задание начального значения x; блок 4 – проверка условия окончания цикла;

блок 5 – вычисление значений y, при изменяющемся аргументе x; блок 6 – печать значений x и y;

блок 7 – изменение значения аргумента x на величину шага – h и проверка условия окончания цикла;

блок 8 – окончание расчета.

При составлении программы можно перейти к символам, принятым в Pascal.

Программа на языке Pascal

PROGRAM ALPA; var xn, xk, h, y: real; begin

writeln (‘ввести xn, xk, h’); readln (xn, xk, h);

x:= xn;

while x<= xk do

15

begin y:=sin(1/(cos(x)-(sin(x)/cos(x))));

writeln (‘y=’, y:5:2,‘ x=’, x:4:1); x:=x+h;

end;

end.

В программе использованы операторы цикла «с предусловием»: WHILE (x<=xk) DO….

Итерационный цикл

Итерационный вычислительный процесс – это процесс последовательных приближений.

В основе итерационного цикла лежит итерационный процесс последовательного приближения искомой величины к своему конечному значению с заранее заданной точностью (рис. 6).

Пример. Выполнить расчет a = –0,27 b c, с заданной точностью ε, если b = 1,3; c = 0,8 и вывести на экран a. Введем обозначения:

в алгоритме ε;

в программе d.

Вычисления по программе будут выполняться до тех пор, пока не будет выполнено условие a c ε, где a и c два соседних приближения (см. рис. 6). В программе

использован оператор цикла «с постусловием» REPEAT…UNTIL. Блок-схема алгоритма приведена на рис. 6.

1 начало

2 b,c,ε

3 a= –0,27 b c

Program cikl; const

c, b: real; var

a, d: real; begin

 

4

 

c:=a

writeln (‘ввести b, c, d’);

 

 

 

 

 

 

 

 

 

 

readln (b, c, d);

 

 

 

 

 

нет

 

|a–c| ε

REPEAT

 

5

 

a:=–0,27 b c;

 

 

 

 

 

 

да

 

 

 

 

c:=a;

 

 

6

a

 

 

UNTIL (ABS(ac))<=d;

 

 

 

 

 

 

 

 

7

 

 

 

writeln (‘a=’, a:5:2);

 

конец

 

end.

Рис. 6. Итерационный цикл

16

Обработка массивов

Часто для работы с множеством однотипных данных (целочисленными значениями, строками, датами и т. п.) оказывается удобным использовать массивы.

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

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

Ввод и вывод элементов массива удобно реализовывать при помощи цикла с параметром (оператор цикла For). Чтобы пользователь знал, ввод какого элемента массива ожидает программа, следует организовать своевременные «подсказки» перед вводом очередного элемента. В подсказке желательно указать индекс элемента массива. Переменная-счетчик, как правило является индексом элемента массива.

Пример. Организовать ввод N чисел одномерного массива.

Элементы массива, обозначаемые A(I), каждому числу соответствует определенное значение индекса I, где I = 1÷N. Получаем А(1), А(2)…А(N).

Блок-схема приведена на рис. 7.

В представленной блок-схеме блоки 3, 4, 5, 6 показывают последовательность правильной организации ввода элементов одномерного массива А(N) в цикле. Сокращенный вариант организации ввода элементов одномерного массива А(N) в цикле можно показать

всегооднимблоком А(N) , которыйзаменитчетыреблока(блоки3, 4, 5, 6). Этим правилом воспользуемся в своем дальнейшем изложении.

При организации циклического процесса в программе использован оператор цикла с параметром FOR.

Program Mas; var i, n: integer;

A: array[1..100] of real;; begin

writeln (‘ввести размер массива’); readln (n);

FOR i:=1 to n do begin

writeln (‘ввести’, i , ‘’элемент массива’); readln (A[i]);

end;

end.

17

1 начало

2 N

3 I=1

4 A(I)

5

i=i+1

да

6 I<=N

нет

7 конец

Количество чисел в массиве (размер)

Индекс порядкового номера первого эл-та

Ввод элемента массива А(I)

Формирование очередного номера элемента массива A(I)

Проверка, все ли элементы массива A(I) введены

Рис. 7. Алгоритм вычисления суммы и произведения элементов массива A(I)

Поиск наибольшего числа в массиве

Поиск наибольшего элемента в массиве Y(k) выполняется в цикле. Обозначим элементы массива Y(k), где k = 1 ÷ N. Наибольшее число – max.

В качестве начального берется первый элемент массива Y(k), с которым последовательно сравнивают остальные элементы. Будем попарно выполнять сравнения чисел, обозначив через max первый элемент массива, т. е. max = Y(1). Если очередной элемент окажется больше max, то max присваивается уже этому элементу массива. Затем новое значение max сравнивается со следующим элементом и т. д.

Так перебрав все элементы массива Y(k), определяется наибольший (max) среди них. Блок-схема приведена на рис. 8.

18

1 начало

2 N

3

Y(N)

4 max:=Y(1)

5

k :=1

 

6 k=k+1

нет 7 max<Y(k)

да

8max:=Y(k)

да

9 k<=N

нет 10 массивY(N)

11 max

Указана размерность массива

Ввод элементов массива в память

Присвоение max значения первому элементу массива

Изменение индекса для второго элемента массива

Попарное сравнение двух элементов массива

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

Проверка, все ли элементы массива Y(k) перебраны

Вывод на дисплей всех элементов массива Y(k)

Вывод на экран max элемента массива

12 конец

Рис. 8. Алгоритм поиска наибольшего элемента в массиве

Program poisk; var i, k, n: integer;

y: array[1..100] of real; max: real;

begin

writeln (‘ввести размерность массива’); readln (n);

for k:=1 to n do begin

writeln (‘ввести число’);

19

readln (y[k]); end;

max:= y[1] for k=2 to n do

if max < y[k] then max:=y[k]; writeln (‘исходный массив’); for i:=1 to n do

writeln (y[k]:5:1, ‘ ’);

writeln (‘наибольшее число =’, max:4:1); end.

Содержание отчета по заданию 2

Отчет по выполнению задания 2 данной контрольной работы должен содержать:

1)постановку задачи (описание всех переменных и ход решения задачи);

2)блок-схему алгоритма решения задачи;

3)распечатку текста компьютерной программы;

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

Библиографический список

1.Полякова В.П. Информатика для экономистов. – М. : Юрайт, 2013 – 524 с.

2.Васильев А.Н. Научные вычисления в Microsoft Excel. М. : Вильямс, 2004.

512 с.

3.Гельман В.Я. Решение математических задач средствами Excel : практикум.

СПб. : Питер, 2003. 240 с.

4.Журин А.А. Текстовые редакторы. MS Word. – М. : Аквариум, 2005. – 125 с.

5.Куправа Т.А. Excel : практическое руководство. М. : Диалог-МИФИ, 2004.

240 с.

6.Немнюгин С.А. TurboPascal. Программирование на языке высокого уровня. –

СПб. : Питер, 2003. – 544 с.

7.Павловская Т.А. Паскаль. Программирование на языке высокого уровня. – СПб. :

Питер, 2003. – 393 с.

8.Рудикова Л.В. Microsoft Office для студента. – М. : BHV, 2005. – 592 с.

9.Симонович С.В. Информатика. Базовый курс : учебное пособие для бакалавров

испециалистов. Стандарт третьего поколения / рек. Мин-вом образования и науки. – 3-е

изд. – СПб. : Питер, 2013 – 640 с.

10.Чистова Д.В. Экономическая информатика : учебное пособие / коллектив авто-

ров . – 2-е изд., стер. – М. : КНОРУС, 2013. – 512 с.

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]