Сделай Сам Свою Работу на 5

ПРИМЕРЫ АЛГОРИТМОВ И ПРОГРАММ





Саратовский государственный технический университет

 

ИНФОРМАТИКА.

АЛГОРИТМИЗАЦИЯ и ПРОГРАММИРОВАНИЕ

Методические указания и задания

к курсовой работе

для студентов специальности 170900

очной формы обучения

 

 

Одобрено

редакционно-издательским советом

Саратовского государственного

технического университета

 

 

САРАТОВ 2011

СОДЕРЖАНИЕ

ВВЕДЕНИЕ .............…………………………………..……………………...3

 

1. Требования к оформлению курсовой работы ....……...………….…...4

 

2. Задания по алгоритмизации и программированию .………....….....6

2.1. Задание 1 .….……….…………….…………...……..…....... 6

2.2. Задание 2 ………………………..……………...……............9

2.3. Задание 3 ………………………..………...…..………........12

2.4. Задание 4 ………………………..……………..…………...14

2.5. Задание 5 ………………………..……..……..……….... …16

3. Примеры алгоритмов и программ ..………………………………...18

3.1. Примеры решения задач в табличном процессоре

MS Excel …………………………………………………….18

3.2.Примеры алгоритмов и программ, выполненных на алгоритмическом языке ………………………20

 

ЛИТЕРАТУРА ...…..………………………….……………………….30



 

ПРИЛОЖЕНИЕ ...........……………………………….………………...31

 

 

ВВЕДЕНИЕ

 

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

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

В данных методических указаниях (раздел 2, пункты 2.1 – 2.5) приводятся задания, которые выдаются каждому студенту индивидуально. Кроме заданий, рассматриваются примеры алгоритмов и программ (раздел 3, пункты 3.1 – 3.2), написанных на алгоритмическом языке программирования Turbo Pascal, указывается основная и дополнительная литература по программированию и информатике, необходимая студентам для выполнения курсовой работы. В приложении помещен образец титульного листа. Требования к оформлению курсовой работы размещены в разделе 1.



Курсовая работа по алгоритмизации и программированию выполняется каждым студентом в соответствии со своим индивидуальным вариантом и согласно рабочей программе по дисциплине «Информатика».

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

 

ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ КУРСОВОЙ РАБОТЫ

 

Курсовая работа принимается в электронном виде на дискетах 3,5 дюйма, CD-RW с выполненными заданиями, размещенными в папку с рубрикатором:

КР_ДО_ПСМ_31_Фамилия_0000000, где все буквы – заглавные английские, сокращенные слова имеют следующий смысл:

КР - курсовая работа,

ДО - дневное отделение,

ПСМ_31 или PSM_32 - специальность и номер группы: ПСМ-31, ПСМ-32, 000000 (нули)- номер зачетки,

Фамилия - фамилия студента, например, Соколов,

_ - знак подчеркивания, он используется в рубрикаторе как разделитель.

В папке должны быть размещены следующие файлы:

· титульный лист: tit.doc,

· пояснительная записка: Пояснительная_записка.doc,

· рабочие файлы, созданные на алгоритмическом языке С: pr1.cpp, pr2.cpp, pr3.cpp, pr4.cpp, pr5.cpp,

· результаты отладочных задач, полученные в MS Excel: в одной книге с именем kr.xls в листах от первого до пятого, переименованные: Задание1, Задание2, Задание3, Задание4, Задание 5.

Папка с рубрикатором должна быть, в свою очередь, размещена в архив (КР_ДО_ПСМ_31_Фамилия_0000000.rar).

Титульный лист tit.doc оформляется согласно нормативным требованиям, номер страницы на титульном листе не ставится. На титульном листе вставить Гиперссылки, которые помогут выбрать все нужные разделы или пункты основной работы. Образец титульного листа размещен в приложении.



Содержание пояснительной записки может находиться в самой записке на первой странице или отдельным файлом.

В пояснительной записке должны быть оформлены все пять заданий. Каждое задание выполняется в следующей последовательности:

· индивидуальное задание,

· математическая модель,

· алгоритм (блок-схема),

· программа,

· результаты решения,

· объект листа MS Excel c решениям и результатами.

Файл Пояснительная_записка.doc пояснительной записки должен быть выполнен в MS Word. Пояснительная записка оформляется на листах формата А4, книжной ориентации. Размеры всех полей – 2,5 см. Рекомендуется использовать в качестве основного шрифт Times New Roman 14, интервал - полуторный. Нумерация страниц должна начинаться со второй страницы, номер следует ставить в правом нижнем углу страницы. В колонтитулах проставляются, кроме номера страницы, фамилия и группа студента, выполнившего курсовую работу. Варианты отладочных задач можно вставить в пояснительную записку как объекты листа MS Excel или поместить в основную папку с рубрикатором как отдельный файл kr.xls и разместить в нем пять листов с отладочными расчетами.

Схемы алгоритмов должны быть выполнены в соответствии с Государственными стандартами: ГОСТ 19.002-80 «Схемы алгоритмов и программ. Правила выполнения» и ГОСТ 19.003-80 «Схемы алгоритмов и программ. Обозначения условные графические».

Студенту предлагается составить программы по разработанным им алгоритмам на алгоритмическом языке программирования, и обязательно произвести отладку задач в MS Excel.

Список литературы, использованной студентом при выполнении курсовой работы, должен быть размещен в конце пояснительной записки.

 

ЗАДАНИЯ ПО АЛГОРИТМИЗАЦИИ

И ПРОГРАММИРОВАНИЮ

 

2.1. ЗАДАНИЕ 1

 

Задание 1 основано на линейном процессе вычисления.

Задание выдается преподавателем каждому студенту индивидуально из табл.1.

Из строк табл.1 выбираются исходные данные, т.е. те числовые значения, которые будут применены в расчетах по: (1) – (6) данного задания.

 

Таблица 1

 

mo, кг Vmax,км/ч Kв, кг/м3 F, м2 Ψv nN, мин-1 Kv ηтр
0,35 1,65 0,014 1,03 0,85
0,36 1,8 0,022 1,1 0,9
0,37 1,9 0,018 1,1 0,92
0,65 2,3 0,023 1,1 0,88
0,74 2,9 0,015 1,12 0,9
0,45 3,1 0,027 1,02 0,85
0,77 4,6 0,026 1,15 0,88
0,61 4,2 0,018 1,1 0,9
0,42 1,7 0,015 1,1 0,93
0,62 3,9 0,021 1,2 0,88
0,37 1,8 0,019 1,15 0,9
0,36 1,9 0,018 1,1 0,92
0,55 2,3 0,021 1,1 0,88
0,75 2,9 0,015 1,12 0,9
0,45 3,1 0,017 1,02 0,85
0,73 4,6 0,016 1,15 0,88
0,61 4,2 0,025 1,1 0,9
0,39 1,7 0,014 1,1 0,93
0,38 1,7 0,015 1,05 0,9

 

 

Схема алгоритма для этой задачи линейная, т.е. вычисления следуют одно за другим:

Задание 1 является фрагментом программирования тягового расчета тягача.

При его выполнении необходимо:

· Выполнить схему алгоритма для расчета максимальной мощности двигателя тягача и расчета внешней характеристики двигателя.

· Составить таблицу идентификаторов.

· Составить на алгоритмическом языке программирования Turbo Pascal программу расчета максимальной мощности двигателя тягача и расчета внешней характеристики двигателя. Расчет максимальной мощности организовать в виде подпрограммы.

· Исходные данные для расчета взять по заданным вариантам табл.1.

· Произвести с помощью MS Excel расчет максимальной мощности бензинового двигателя тягача по условию обеспечения заданной максимальной скорости.

Указания: Максимальная мощность двигателя тягача Nemax , кВт, по условию обеспечения заданной максимальной скорости рассчитывается по формуле:

 

, (1)

 

где Kv - отношение частоты вращения коленчатого вала двигателя при максимальной скорости движения тягача к номинальной частоте вращения:

 

, (2)

 

где nN - частота вращения коленчатого вала двигателя на режиме максимальной мощности (номинальная), мин-1;

nv - частота вращения коленчатого вала двигателя при максимальной скорости автомобиля, мин-1:

(3)

 

 

Мощность на режиме максимальной скорости Nv, кВт, определяется по формуле:

 

,

(4)

где mо - масса тягача, кг;

Ψv - суммарный коэффициент сопротивления дороги;

V max - заданная максимальная скорость тягача;

ηтр - КПД трансмиссии;

Kв - коэффициент сопротивления воздуха, кг/м3;

F - лобовая площадь тягача, м2.

При известном значении максимальной мощности Nemax, рассчитанной по (1), мощность в любой другой точке характеристики Ne, кВт, может быть найдена по формуле Лейдермана:

 

 

, (5)

где n - частота вращения коленчатого вала, мин-1, задается из диапазона [nmin , nN], 800 < nmin < 1000;

a,b,c -коэффициенты, принимаемые для бензиновых двигателей равными 1.

Крутящий момент в любой точке определяется по формуле:

 

Me=9549 (Ne/ n). (6)

 

При составлении программы следует использовать три одномерных массива n, Ne, Me по восемь элементов в каждом.

Элементы массива n составляют часть исходных данных и подлежат вводу. Элементы массива Ne, Me рассчитываются по вышеприведенным формулам и выводятся на печать.

 

 

2.2. ЗАДАНИЕ 2

 

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

Номер варианта предлагается студенту из табл.2 на усмотрение преподавателя.

 

Таблица 2

Ва- ри- ан- ты Начало отрезка a Конец отрезка b Шаг по отрезку [a,b] h f(x)
-0.5 0.5 0.01

Продолжение табл.2

 

– 3 0.5
– 2.1 0.3
– 20
1.4 0.1
– 12
           

 

 

Окончание табл.2

 

– 2 0.25
-20 0,5
1.4 0.1
1.4 0.1
-2 0.1
– 3 0.5
– 3 0.5
– 9
2,5

2.3. ЗАДАНИЕ 3

 

Студенты в курсовых работах и дипломном проекте выполняют расчеты, в которых часто требуется найти корни нелинейных уравнений.

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

Вариант задания выдается индивидуально каждому студенту из табл.3.

Требования к выполнению задания приводятся в пункте 1 методических указаний.

Метод деления отрезка пополам -один из простейших методов нахождения корней нелинейных уравнений. Он состоит в следующем. Допустим, что удалось найти отрезок [a, b], в котором расположено искомое значение корня x = c, т.е. a<c<b.

В качестве начального приближения корня c принимаем середину этого отрезка, т.е. c=(a+b)/2. Далее исследуем значение функции f(x) на концах отрезков [a, c] и [c, b], т.е. в точках a, c, b. Тот отрезок, на концах которого f(x) принимает значения разных знаков, содержит искомый корень; поэтому его принимаем в качестве нового отрезка, внутри которого находится корень. Вторую половину отрезка [a, b], на которой знак f(x) не меняется, отбрасываем. В качестве второй итерации корня принимаем середину нового отрезка и т.д.

Итерационный процесс продолжается до тех пор, пока значение функции f(x) после n-й итерации не станет по модулю меньшим некоторого заданного значения ε, т.е. |f(c)|< ε.

 

Таблица 3

 

a b f(x)
-10

 

Окончание табл.3

 

– 3
0,2 1,4
– 3
0,1 0,6
1,5 1,7
– 3 – 2
– 4 – 1
0,5

 

2.4. ЗАДАНИЕ 4

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

, , , , с точностью .

Метод прямоугольников -простейший метод численного интегрирования. Он непосредственно использует замену определённого интеграла интегральной суммой.

Отрезок [a, b] разбивается на n равных частей; h, S рассчитываются по вышеприведенным формулам. Когда модуль разности последней и предыдущей сумм становится меньше ε, вычисления завершаются, в противном случае n удваивается и вычисления повторяются.

Вариант задания выдает преподаватель индивидуально каждому студенту из табл.4.

Первоначальное n задается любое из интервала от 4 до 12. Требования к выполнению и оформлению остаются прежними.

 

Таблица 4

 

2,5
– 3

 

Окончание табл.4

 

– 3
0,5
– 1
1,85 3,85
– 4 – 1
x4-6x3+11x2+x+4

 

2.5. ЗАДАНИЕ 5

 

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

Задачи посвящены работе с одномерными и двумерными массивами.

Значения для n,m выбираются студентами произвольно, индекс i изменяется от 1 до n, а индексj - соответственно от 1 до m, причем m и n могут совпадать.

Задачи:

1. Дана квадратная матрица Bi,j размером . Найти вектор ai, который составлен из наименьших членов матрицы (по строкам) до главной диагонали включительно. Первый элемент вектора a1=b11. Вывести на печать значения вектора ai.

2. Даны прямоугольные матрицы Ai,j и Bi,j размером каждая. Найти матрицу Ci,j, каждый член которой равен среднеарифметическому значению соответствующих членов матриц Ai,j и Bi,j. Вывести на печать значения матрицы Ci,j, в виде матрицы.

3. Дана прямоугольная матрица Ai,j,, размером . Расположите в прямоугольной матрице Bi,j размером элементы матрицы Ai,j по убыванию (по строкам). Напечатайте в виде матрицы элементы матрицы Bi,j.

4. Дана прямоугольная матрица Bi,j размером . Найти минимальный и максимальный элементы матрицы. Вывести на печать их значения.

5. Дана прямоугольная матрица Ai,j размером . Определить номер строки, в которой находится минимальный элемент матрицы, и поменять местами эту строку и первую строку матрицы.Напечатать полученную матрицу.

6. Даны прямоугольные матрицы Ai,j и Bi,j размером каждая. Составить программу, которая позволяла бы находить матрицу Ci,j,, равную Ai,j - Bi,j или Bi,j - Ai,j (на выбор). Напечатать полученную матрицу.

7. Дана прямоугольная матрица Ci,j размером . Определить номер строки, сумма элементов которой максимальна. Напечатать вектор суммы элементов матрицу по строкам.

8. Дана прямоугольная матрица Ci,j размером . Найти минимальный по модулю элемент матрицы и умножить на его значение все элементы матрицы. Вывести полученную матрицу на печать.

9. Дана прямоугольная матрица Ci,j размером . Если данная матрица является квадратной, найти сумму элементов главной диагонали, в противном случае найти сумму всех членов матрицы. Результат напечатать.

10. Дана прямоугольная матрица Ci,j размером . Найти среднеарифметическое значение всех членов матрицы. Затем умножить на него все значения элементов матрицы и распечатать полученную матрицу и среднеарифметическое значение всех членов матрицы.

11. Дана прямоугольная матрица Ci,j размером . Найти максимальный по модулю член матрицы и разделить все члены матрицы на модуль данного члена. Полученную матрицу вывести на печать.

12. Даны прямоугольные матрицы Ai,j размером и Bi,j размером . Найти произведение матриц, полагая, что n=k. Результат напечатать в виде матрицы.

13. Дана квадратная матрица Bi,j размером . Найти вектор ai., который составлен из наибольших членов матрицы (по строкам) до главной диагонали включительно. Первый элемент вектора a1=b11. Вывести на печать значения вектора ai.

14. Дана квадратная целочисленная матрица Ai,j размером . Найти произведение членов матрицы по тому столбцу, в котором находится максимальное число матрицы. Результат вывести на печать.

15. Даны прямоугольные целочисленные матрицы Ai,j и Bi,j размером . Вывести на печать элементы этих матриц, кратные трем и пяти соответственно.

16. Дана прямоугольная матрица C1i,j размером . Расположите в векторе C2i размером n элементы матрица C1i,j , причем сначала положительные элементы, затем нулевые элементы и в последнюю очередь - отрицательные.

17. Дана прямоугольная матрица Ci,j размером . Найти максимальный по модулю элемент матрицы и умножить на его значение все элементы матрицы.

18. Вычислить и запомнить суммы положительных элементов каждой строки прямоугольной матрицы Ci,j размером . Результат показать в виде одномерной матрицы Si .

 

ПРИМЕРЫ АЛГОРИТМОВ И ПРОГРАММ

 

3.1. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

В ТАБЛИЧНОМ ПРОЦЕССОРЕ MS EXCEL

 

Пример 1.

Вычислить определитель матрицы 3-го порядка: .

Ход работы:

1. Элементы матрицы располагаем в ячейках А6:С8.

2. Объединяем ячейки А11 и В11.

3. Записываем в объединенную ячейку тест определитель = .

4. Вводим = в ячейку С11.

5. Выбираем Функция… из меню Вставка.

6. Из математической категории, находим функцию МОПРЕД.

7. В поле вспомогательного окна и указываем при помощи мыши блок, где находятся значения матрицы, т.е. A6:C8.

8. Выполняем ОК.

9. Результат - в ячейке С11 (рис.1).

 

 

 

Рис.1.Макет листа MS Excel. Вычисление определителя матрицы

 

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

Пример 2.

Вычислить значение функции на интервале [х12] с шагом 0,01. Построить график этой функции.

 

Функция y(x) х1 х2
  -1,009 1,083

Ход работы:

1. Вводим х в ячейку B12, y(x) - в C12, в ячейку B13 вводим первое значение х, равное -1,009.

2. В ячейку В14 помещаем -0,999. Это значение, полученное при сложении значений -1,009 и 0,01.

3. Выполняем Автозаполне с шагом до 1,083 включительно в столбце В.

4. В ячейку С13 вводим формулу:

 

=exp(3*В13)+(sin(2*ПИ()*В13))^2.

 

5. Выполняем автозаполнение введенной формулы для всех значений x (рис.2).

6. При помощи мыши выделяем все значения х и y(x).

7. Обращаемся к мастеру диаграмм из меню Вставка.

8. Строим график, подписываем его (рис.2).

звание ормулуС13чеки до 1,083 включительно. -следующее

 

Рис.2. Макет листа MS Excel. График функции

3.2. ПРИМЕРЫ АЛГОРИТМОВ И ПРОГРАММ, ВЫПОЛНЕННЫХ НА АЛГОРИТМИЧЕСКОМ ЯЗЫКЕ TURBO PASCAL

Пример 3.

Выполнить схему алгоритма и программы (три случая) на алгоритмическом языке вычисления функции для с шагом , где а=0, b=20, h=0.4.

 

x=0
f(x) =

 

 
 


f(x)вычисляется по 2 формуле
да

           
     
 
 
 

 


нет

да

 


нет

 
 

 


 

.

 

 

Рис. 3. Схема алгоритма

Далее приведены программы на алгоритмическом языке программирования Turbo Pascal по исполненному алгоритму (рис. 3).

Программа 1.

program mn1;

uses crt;

var x,y:real;

begin

clrscr;

x:=0;

repeat

if x<10 then y:=x*x*x+1

else

if x>10 then y:=(x*x+3*x+2)/(sqrt(2*x*x*x)-1)

else

y:=0;

writeln('f(',x:3:1,')=',y:6:2);

x:=x+0.4;

until x>20;

readln;

end.

Программа 2.

program mn2;

uses crt;

var x,y:real;

begin

clrscr;

x:=0;

while x<=20 do

begin

if x<10 then y:= x*x*x +1

else

if x>10 then y:=(x*x+3*x+2)/(sqrt(2*x*x*x)-1)

else

y:=0;

writeln('f(',x:3:1,')=',y:6:2);

x:=x+0.4;

end;

readln;

end.

Программа 3.

 

program mn3;

uses crt;

var

x,y,a,b,h: real;

n ,I : integer;

begin

clrscr;

x:=0;

writeln(‘введите а,b,h’);

readln(a,b,h);

n:=(b-a)/h; n:= round(n);

for i:=1 to n do

begin

if x<10 then y:=X*X*X+1

else

if x>10 then y:=(x*x+3*x+2)/(sqrt(2*x*x*x)-1)

else

y:=0;

writeln('f(',x:3:1,')=',y:6:2);

x:=x+0.4;

end;

readln

end.

 

Первая программа с именем mn1 составлена с использованием цикла с постусловием: repeat - тело цикла - until(условие завершения цикла). Тело цикла выполнятся до тех пор, пока условие, стоящее после слова until, ложно.

Во второй программе с именем mn2 использован цикл с предусловием: while (условие) do begin - тело цикла - end. Тело цикла выполнятся до тех пор, пока условие, стоящее после слова while, истинно.

Третья программа с именем mn3 содержит организацию цикла с фиксированным числом повторений, определенным во время разработки программы. Параметры цикла целого типа (integer).

 

Пример 4.

Выполнить схему алгоритма и написать программу нахождения корней нелинейного уравнения f(x)=0,5*cos (0.2* x))+0.2 на отрезке [a,b] с точностью 0,00001, используя подпрограмму для вычисления функции. Применить метод деления отрезка пополам на заданном интервале.

 

Рис.4. Схема алгоритма

 

Программа 4.

Program mn4;

uses crt;

function f1 (x: real): real;

begin

f1:=0.5*cos (0.2* x)+0.2;

end;

var

x,a,b,e: real; iteraz: integer;

begin

clrscr;

write ('Input a = '); readln (a);

write ('Input b = '); readln (b);

write ('Input e = '); readln (e);

iteraz:=0;

x:=(a+b)/2;

while (f1(x)<>0) and (abs(a-b)>e) do

begin

iteraz:=iteraz+1;

a:=x;

if (f1(a)*f1(x))<0 then b:=x

else

writeln ('n=', iteraz,' x=', x:3:6,' f(x)=', f1(x):3:6);

x:=(a+b)/2;

end;

readln;

end.

Программа 4 выполнена на алгоритмическом языке программирования Turbo Pascal по схеме алгоритма для вычисления корней нелинейного уравнения методом деления отрезка пополам (рис.4) с использованием подпрограммы.

 

Пример 5.

 

Вычислить значение суммы членов бесконечного ряда с точностью ε для определенного значения х:

 

.

 

Величина a = :

 

 
 


 
 


 
 
a:=a*(-1)*x*x/((2*n+2)*(2*n-1))


 
 
s = s + a


 
 


 

n= n + 1

 
 


Нет Да

 
 


 
 

 

 


Рис. 5. Схема алгоритма

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.