Информатика. Алгоритмизация и программирование
Обновлено
Министерство образования и науки Российской федерации
Федеральное агентство по образованию
Саратовский Государственный Технический Университет
Кафедра «Информатика»
Курсовая работа
Тема: «Информатика. Алгоритмизация и программирование»
- Выполнил
- студент АМФ ПСМ-21
- Зеленин-Адамов С.Г.
- Номер зачетки 040106
- Проверил ассистент
- кафедры «Информатика»
- Можаева Н.А.
- Саратов 2006
- СОДЕРЖАНИЕ
- Задача 1. 3
- Задача 2. 7
- Задача 3 10
- Задача 4. 13
- Задача 5. 17
- Список использованной литературы 21
| mo, кг | Vmax, км/ч | Kв кг/м3 | F, м2 | Шv | nN мин-1 | Kv | зтр | |
6000 | 100 | 0,62 | 3,9 | 0,021 | 3000 | 1,2 | 0,88 |
По приведенной блок-схеме была составлена программа, листинг которой приведен ниже.
program lab1;
var m0,vmax,Ke,F,Fv,nN,Ky,n_tr:real; {peremennye - ishodnye dannye}
Nv,Ne_max,n_v,Ne,Me:real; {peremennye - rezultaty}
BEGIN
{-----------VVOD ISHODNYH DANNYH-----}
writeln ('Vvedite ishodnye dannye:');
write ('m0=');readln(m0);
write ('Vmax=');readln(Vmax);
write ('Ke=');readln(Ke);
write ('F=');readln(F);
write ('Fv=');readln(Fv);
write ('nN=');readln(nN);
write ('Ky=');readln(Ky);
write ('n_tr=');readln(n_tr);
{----------RASCHET-------------------}
Nv:=2.725E-03*m0*Fv*Vmax/n_tr+2.14e-05*Ke*F*sqr(Vmax)*Vmax/n_tr;
Ne_max:=Nv/(Ky*(1+Ky*(1+Ky)));
n_v:=Ky*nN;
Ne:=Ne_max*(n_v/nN+sqr(n_v/nN)-sqr(n_v/nN)*n_v/nN);
Me:=9549*(Ne/n_v);
{----------VIVOD REZULTATA-----------}
writeln('Nv=',Nv);
writeln('Ne_max=',Ne_max);
writeln('n_v=',n_v);
writeln('Ne=',Ne);
writeln('Me=',Me);
End.
Решение этой же задачи было проведено в ЭТ Excel. Ниже представлен лист с решением и результатами.
Программу написанную на языке Паскаль копирую и вставляю в проект, затем исправляю существенные различия.
Задача 2.Вычислить функцию , для с шагом .№ | a | b | h | f(x) | |
Начало отрезка | Конец отрезка | Шаг по отрезку | |||
9 | -12 | 0 | 1 |
Эта схема была реализована на языке Паскаль в трех вариантах: были задействованы циклы с предусловием, с постусловием и с параметром. Листинги программ приведены ниже.
а) Цикл с постусловием
program lab21;
var x,f:real;
begin
x:=-12;
repeat
if x<-7 then f:=sin((3.14/12)*x)
else
if x<=-3 then f:=2*cos((3.14/6)*x+(3.14/12))
else
f:=5* sin((3.14/12)*x);
writeln('f(',x:3:1,')=',f:6:2);
x:=x+1;
until x>0;
readln;
end.
б) Цикл с предусловием
program lab22;
var x,y:real;
begin
x:=-12;
while x<=0 do
begin
if x<-7 then y:= sin((3.14/12)*x)
else
if x<=-3 then y:= 2*cos((3.14/6)*x+(3.14/12))
else
y:= 5* sin((3.14/12)*x);
writeln('f(',x:3:1,')=',y:6:2);
x:=x+1;
end;
readln;
end.
в) Цикл с параметром
program lab23;
var
x,y,a,b,h,n1: real;
n ,i : integer;
begin
x:=-12;
a:=-12;b:=0;h:= 1;
n1:=(b-a)/h; n:=round(n1);
for i:=0 to n do
begin
if x<-7 then y:= sin((3.14/12)*x)
else
if x<=-3 then y:= 2*cos((3.14/6)*x+(3.14/12))
else
y:= 5* sin((3.14/12)*x);
writeln('f(',x:3:1,')=',y:6:2);
x:=x+1;
end;
readln;
end.
Решение этой же задачи было проведено в Excel. При вычислении функции использовалась логическая функция ЕСЛИ. Лист с решением задачи размещен ниже.
Программу написанную на языке Паскаль копирую и вставляю в проект, затем исправляю существенные различия.Задача 3Применить метод деления отрезка пополам на интервале и найти с точностью корни уравнения .№ | ||||
9 | -3 | 0 |
Program lab3;
function f1 (x: real): real;
begin
f1:=cos(0.2*x*x-2);
end;
var
x,a,b,e: real;
iteraz: integer;
begin
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
x:=(a+b)/2;
iteraz:=iteraz+1;
if (f1(a)*f1(x))<0 then b:=x
else a:=x;
writeln ('n=', iteraz,' x=', x:3:6,' f(x)=', f1(x):3:6);
end;
readln;
end.
Решение этой задаче было проведено и в MS Excel. Лист с решением задачи и ответом приведен ниже.
Задача 4.Вычислить определенный интеграл методом прямоугольников: или трапеций, на выбор. , , , , с точностью .Формула метода прямоугольников: Формула метода трапеций: .№ | ||||
9 | -3р | 0 |
(b-a)/n, и таким образом площадь трапеции равна
(f(xn)+f(xn+1))(b-a)/2n. У нас всего n трапеций, причем каждые две соседние трапеции имеют одинаковые высоты (основания). Таким образом, в сумму каждое из f(xn) кроме f(a) и f(b) войдет дважды, и таким образом весь интеграл вычисляется как , где .3. В методе трапеций не определен шаг (количество отрезков разбиения). Очевидно, что чем больше количество отрезков, тем более точным будет результат. Поэтому, задаем начальное значение n (например n=10) и вычисляем интеграл. 4. После этого удваиваем n и снова вычисляем интеграл (п. 2). Сравнивая полученные результаты, делаем вывод, достигнута ли требуемая точность. 5. Если результаты отличаются друг от друга меньше чем на е, то требуемая точность достигнута. Если нет, то снова удваиваем n и вычисляем интеграл еще раз (возвращаемся к п. 4).Ниже представлена блок-схема алгоритма и листинг программы.
program pr4;
uses crt;
var
h,a,b,S,dS,P,x,eps:real;
n,i:integer;
function f(x:real) : real;
begin
f:=0,1*sin(0.1*x+0.0025*x*x)/cos(0.1*x+0.0025*x*x);
end;
begin
clrscr;
writeln('input a,b,n,eps, please');
write('a');
readln(a);
write('b');
readln(b);
write('n');
readln(n);
write('eps');
readln(eps);
s:=0;
repeat P:=S;
h:=(b-a)/2;
S:=0;
x:=a;
for i:= 1 to n do
begin
x:=x+h;
S:=S+f(x);
end;
S := S*h;
write('n=',n:3,' h=',h:12:9);
n:=n*2;
until abs(P-S)/(s*100)<eps;
writeln;
writeln('Result S=',S:10:6,' dS=',dS:12:9);
writeln;
writeln('Process ended');
writeln('Press any key to exit');
repeat until keypressed;
end.
Данная задача была решена также в MS Excel. Лист с решением задачи приведен ниже. Требуемая точность была достигнута при n=10.
Программа выполненная на языке Microsoft Visual Basic 6.0 Private Sub Command1_Click()Dim i As IntegerDim x(1 To 40) As DoubleDim f(1 To 40) As DoubleDim f1(1 To 40) As DoubleDim s(1 To 40) As Doublea = -3 * 3.14b = 0e = 0.1n = 40h = (b - a) / ni = 1x(i) = af(i) = 0.1 * Tan(0.1 * x(i) + 0.025 * x(i) ^ 2)f1(i) = f(i)s(i) = h * f(i)For i = 2 To nx(i) = x(i - 1) + hf(i) = 0.1 * Tan(0.1 * x(i) + 0.025 * x(i) ^ 2)f1(i) = f1(i - 1) + f(i)s(i) = h * f1(i)NextFor i = 1 To nPrint " s="; s(i)NextIf Abs(s(n) - s(n - 1)) < e Then Print "удвойте n"End SubPrivate Sub Form_Load()End SubЗадача 5.Дана прямоугольная матрица Ci,j,, размером . Если данная матрица является квадратной, найти сумму элементов главной диагонали, в противном случае найти сумму всех членов матрицы.РЕШЕНИЕСоставим схему алгоритма.Program Lab_5;uses crt; var i,j,m,n:integer; b,a : array[1..10,1..10] of real; s : real; begin clrscr; write ('chislo stolbcov n='); Readln(n); write ('chislo strok m='); readln (m); begin if m=n then s:=0; for i := 1 to n do begin for j := 1 to m do begin write('a[',i,',',j,']='); readln(a[i,j]); end; writeln; end; begin if i=j then s:=s+a[i,j]; writeln(s:6:3); end; if i<>j then begin s:=0; for i := 1 to n do begin for j := 1 to m do begin s:=s+a[i,j]; end; writeln(s:6:3); end; end; readln; end;end.Данная задача была решена также в MS Excel. Лист с решением задачи приведен ниже.Программа выполненная на языке Microsoft Visual Basic 6.0Private Sub Command1_Click()Dim i, j, m, n As IntegerDim s As DoubleDim c(1 To 50, 1 To 50) As Doublem = 3n = 3For i = 1 To mFor j = 1 To nc(i, j) = 7 * i - jNextNexts = 0For i = 1 To mFor j = 1 To nIf m = n Then s = s + c(i, i) Else s = s + c(i, j)NextNextPrint sEnd SubPrivate Sub Form_Load()End SubСписок литературы1. Информатика: Базовый курс. / С. В. Симонович и др. СПб.: Питер, 20052. Острейковский В. А. Информатика: Учеб. для вузов. - М.: Высш. шк., 2000. - 511 с.: ил.3. Алексеев Е. В. и др. Вычислительная техника и программирование. Практикум по программированию: Практ. пособие / В. Е. Алексеев, А. С. Ваулин, Г. Б. Петрова; Под ред. А. В. Петрова. - М.: Высш. шк., 1991. - 400 с.: ил4. Глушаков С. В., Мельников И. В. Персональный компьютер: Учебный курс / Худож. оформитель А. С. Юхтман. - Харьков: Фолио; М.: ООО «Издательство АСТ», 2001. - 520 с. - (Домашняя б-ка).5. Леонтьев В. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС, 1999. - 640 с.6. Козлов В.В., Можаева Н.А., Зуева Н.Г. Информатика. Алгоритмизация и программирование. Мет. Указания и задания к курсовой работе,2006. -32с