Министерство образования Российской федерации
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ
КОЛОМЕНСКИЙ ИНСТИТУТ
Кафедра автоматики и электроники в машиностроение
Курсовая работа
по предмету
«Инструментальные системы структурного и объектно-ориентированного программирования»
выполнил студент группы И-21
Кузнецов А.О
проверил преподаватель
Филоненко И.Н.
дата зашиты __________
оценка _______________
Коломна
2012 г
Содержание
Задача №1……………………………………………………………………………3
Задача №2……………………………………………………………………………8
Задача №3……………………………………………………………………………12
Задача №4……………………………………………………………………………18
Задача №1
(Вариант 1)
Условие задачи: составить блок-схему алгоритма и программу на языке Паскаль для расчета и печати 5 таблиц значений функций при а=1,1; 1,2; 1,3; 1,4; 1,5 и х, изменяющимся от 0,0 до 10,0 с шагом 1,0. Организовать вывод графика функции любой из созданных таблиц.
program Project2;
var
f:text;
a,x,y,xn,xk,hx,an,ak,ha:real;
i,k,n:integer;
begin
assign(f,'1.txt');
rewrite(f);
writeln('vvedite nach. param. xn,xk,hx,an,ha');
readln( xn,xk,hx,an,ak,ha);
writeln('vvedite nomer tablici');
readln(n);
writeln(' __________________');
writeln('| X | Y |');
writeln('|_________|________|');
a:=an;
k:=0;
i:=1;
while a<=(ak+ha) do
begin
writeln(f,'a=',a:1:1);
x:=xn;
writeln(f,' Таблица ',i);
i:=i+1;
k:=k+1;
writeln(f,'___________________');
writeln(f,'| X | Y |');
writeln(f,'|_________|________|');
while x<=xk do
begin
y:=((a*x)+(ln(1+a*x)))/(1+(a*x)*(a*x));
if n=k then
begin
writeln('|',x:8:2,' |',y:8:6,'|');
writeln('|_________|________|');
end;
writeln(f,'|',x:8:2,' |',y:8:6,'|');
writeln(f,'|_________|________|');
x:=x+hx;
end;
a:=a+ha;
end;
close(f);
readln;
end.
начало
a=an; k=0; i=1;
нет
да
x=xn
i=i+1; k=k+1;
нет
a=a+ha;
y:=((a*x)+(ln(1+a*x)))/(1+(a*x)*(a*x));
нет
да
x=x+h
Задача №2
(Вариант 6)
Условие задачи: даны одномерные массивы чисел {Xi}N и {Yi}M. Написать программу, которая заменяет нулями все отрицательные элементы массива X и Y, с использованием подпрограммы Procedure. Оформить подпрограмму в модуль.
Unit1
var
Form1: TForm1;
ranx,rany,kountx,kounty:integer;
x,y:array of integer;
implementation
uses progr2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
edit5.Text:=''; //Очищаем текстовые поля edit5, edit6
edit6.Text:='';
kountx:=strtoint(edit1.Text); //Считываем данные с формы, введенные с клавиатуры
kounty:=strtoint(edit2.Text);
ranx:=strtoint(edit3.Text);
rany:=strtoint(edit4.Text);
setlength(x,kountx); //выделяем память под динамические массивы х,у
setlength(y,kounty);
randomize; //устанавливаем генератор случайных чисел
formir(ranx,kountx,x); //формируем значения массивов х,у. Массивы будут заполнены случайными значениями в диапазонах от -ranx(y) до +ranx(y)
formir(rany,kounty,y);
stringgrid1.RowCount:=kountx+1; //Увеличиваем количество строк в первой таблице на форме на 1
stringgrid1.Cells[1,0]:='X'; //выводим шапку в первую таблицу
for i:=0 to kountx-1 do //выводим в цикле значения массива x в таблицу на форме
begin
stringgrid1.Cells[0,i+1]:=inttostr(i);
stringgrid1.Cells[1,i+1]:=inttostr(x[i]);
end;
stringgrid2.RowCount:=kounty+1; //Увеличиваем количество строк во второй таблице на форме на 1
stringgrid2.Cells[1,0]:='Y'; //выводим шапку во вторую таблицу
for i:=0 to kounty-1 do //выводим в цикле значения массива у в таблицу на форме
begin
stringgrid2.Cells[0,i+1]:=inttostr(i);
stringgrid2.Cells[1,i+1]:=inttostr(y[i]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var sumx,sumy:integer;
begin
otr(kountx,x,sumx); //находим сумму отрицательных элементов массивов х,у
otr(kounty,y,sumy);
edit5.Text:=inttostr(sumx); //выводим найденные суммы в текстовые поля на форме
edit6.Text:=inttostr(sumy);
end;
end.