Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет2 курсач.doc
Скачиваний:
2
Добавлен:
16.09.2019
Размер:
459.26 Кб
Скачать

Министерство образования Российской федерации

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ОТКРЫТЫЙ УНИВЕРСИТЕТ

КОЛОМЕНСКИЙ ИНСТИТУТ

Кафедра автоматики и электроники в машиностроение

Курсовая работа

по предмету

«Инструментальные системы структурного и объектно-ориентированного программирования»

выполнил студент группы И-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.