Программа обработки массивов координат точек на языке Си

Постановка задачи и ее математическая модель. Блок-схема алгоритма обработки массивов координат точек. Тестирование алгоритма сортировки. Используемые глобальные и локальные переменные. Листинг программы на языке Си. Анализ результатов. Пример работы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 08.11.2012
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Задание на курсовую работу

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

- формирование массива данных;

- расчет расстояний между прямой и заданными точками;

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

- расчет координат точки пересечения заданной прямой и произвольной прямой, описываемой уравнением ax+by+c=0.

- сортировку и отображение результатов.

Исходными данными являются:

1. Эскиз чертежа прямой (А) и многоугольника (В).

2. Ограничение R на расстояние между точками массива D и прямой A.

3. Массив координат точек D{(xi,yi)} i=1,n (n>=15), из которых не менее 7-ми точек должны лежать внутри многоугольника B.

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

1. Выбрать из массива точек D все точки, лежащие вне многоугольника В, выше прямой А и поместить полученную информацию (номер точки в массиве D, и ее координаты x,y) в новый массив D1.

2. Вычислить расстояние r от каждой точки, входящей в сформированный массив D1, до прямой А. Информацию обо всех точках, для которых выполняется соотношение r>R (R=2), поместить в новый массив D2, включающий в себя следующие поля: номер точки в исходном массиве D; номер точки в массиве D1; координаты x и y; расстояние от точки до прямой r.

3. Упорядочить полученный массив D2 в порядке убывания r.

4. Вывести результаты расчетов (пп. 1-3) в виде таблиц на экран и в файл с заданным при вводе исходных данных именем.

5. Написать функцию, вычисляющую периметр и площадь фигуры, координаты вершин которой определяются координатами четырех точек вводимых с клавиатуры.

6. Написать функцию, определяющую координаты точки пересечения прямой А и произвольной прямой, описываемой уравнением ax+by+c=0. Коэффициенты прямой a,b,c должны вводиться пользователем с клавиатуры.

Разрабатываемая программа должна удовлетворять следующим требованием:

1) ввод исходных данных (массив координат точек) должен осуществляться как из файла с заданным именем, так и с клавиатуры (по выбору пользователя);

2) результаты расчета должны выводиться как в виде таблиц на экран, так и в файл с заданным именем;

3) процедуры расчета расстояний r , выбора точек из массивов, сортировки массива D2 и вывода результатов следует оформить в программе в форме функций пользователя.

1. Постановка задачи и ее математическая модель

Задача

Модель решения

Получение исходных координат точек из файла с заданным именем или ввод координат точек с клавиатуры (по выбору пользователя) и запись из в массив D.

Построчное считывание при помощи функции fscanf (требует подключения stdio.h) из указанного файла пар чисел написанных через разделитель( пробел); формат считываемых чисел - вещественное с плавающей запятой; считывание продолжается до тех пор пока функция fscanf не возвратит EOF(End Of File);

Или запись вводимых чисел с клавиатуры с помощью функции scanf. Числа записываются в массив как вещественные с плавающей запятой.

Выбор из массива D точек, лежащих внутри многоугольника B: (0;3), (3;13), (13;11),(11;3))

Искомые точки должны лежать:

Выше прямой y=3

Выше прямой y=4x-41

Ниже прямой y=3.33x-3

Ниже прямой y=-0.2x+13.6

Выбор из массива D1, полученного на предыдущем этапе, точек, лежащих от прямой на расстоянии меньшем или равном R (уравнение прямой А:y=-0.65x+14, R =3.8 )

Формула расчета r = |a*x0+b*y0+c|/sqrt(a^2 + b^2)

Рассчитываем r и заносим в отдельное поле массива.

(r<=R)

Сортировка массива D2, полученного на предыдущем этапе, по возрастанию r.

Сортировка методом пузырька.

(сравниваются значения поля r)

Сохранение результатов работы программы в файл и вывод на экран (вывод и запись осуществляется в виде таблиц)

Построчное заполнение указанного файла( а также вывод на экран) элементами массивов, полученных на предыдущих этапах (для каждого из массивов заполняются все необходимые поля: D координаты x и y, для D1 - x, y и номер элемента в массиве D, для D2 x, y, номер элемента в D и D1 и расстояние r до прямой А). Для записи в файл используется функция fprintf, для вывода на экран printf (требуется подключение stdio.h)

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

При вводе точек есть одна оговорка: координаты точек вводить по часовой и фигура должна быть правильной (выпуклой). После ввода точек, определяем расстояния между этими точками (длины граней фигуры) по формуле

r = sqrt((x1-x2)^2 + (y1-y2)^2)

Периметр находим, сложив все длины

Р = r1 + r2 + r3 +r4;

Площадь находим как сумму площадей треугольников, образующих фигуру.

S = s1 + s2;

s1 и s2 ищем по формуле Герона:

s = p*(p-a)*(p-b)(p-c), где p = (a+b+c)/2 - полупериметр данного треугольника. (a, b - расстояние от одной вершины фигуры до другой, с - длина диагонали фигуры, которая находится по той же формуле что и r)

Функция, рассчитывающая координаты пересечения исходной прямой А с прямой, координаты которой вводятся пользователем с клавиатуры.

Параметрическое уравнение прямой А

-0.65 *x +14 - y = 0 (a = -0.65, b = 1, с = 14)

Возможны два случая (случаи, которые требуется рассмотреть в задании на курсовую работу):

1. Если угловые коэффициенты a/b равны, то прямые параллельны (или совпадают) и не имеют точку пересечения. При выпадении этого случая, на кран выводится сообщение сообщающее, что прямые параллельны.

2. Точка пересечения находится из решения уравнений:

a*x + b*y + c = 0

a1*x + b1*y + с = 0

Точка пересечения:

x=(c+14*b)/(0.65*b-a);

y=-0.65*x+14;.

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

массив координата точка программа

3. Тестирование алгоритма сортировки

№ Шага

№ Блока

flag

i

Массив

D2[i][4]<D2[i-1][4]

flag!=1

2

0

3

1.45

4.68

6.52

Да, меняем

-

3

1

-

-

-

-

4

1

2

1.45

6.52

4.68

Да, меняем

-

5

1

-

-

-

-

6

1

1

6.52

1.45

4.68

Нет, не меняем

-

7

1

-

-

-

Нет

8

0

-

-

-

-

9

0

3

6.52

4.68

1.45

Да, меняем

-

10

1

-

-

-

-

11

1

2

6.52

4.68

1.45

Нет, не меняем

-

12

1

-

-

-

-

13

1

1

6.52

4.68

1.45

Нет, не меняем

-

14

1

-

-

-

Нет

15

0

-

-

-

-

16

0

3

6.52

4.68

1.45

Нет, не меняем

-

17

0

2

6.52

4.68

1.45

Нет, не меняем

-

18

0

1

6.52

4.68

1.45

Нет, не меняем

-

19

0

-

-

-

Да

#include<stdio.h>

#include<stdio.h>

#include<conio.h>

#include<math.h>

float D[16][2],D1[15][3],D2[15][5];

int num1=0,num2=0;

void vvod()

{

int flag,i;

float x,y;

FILE *in;

printf("1 - Vvod massiva c klaviatury, 2 - schityvanie massiva iz faila\n");

flag=getch();

if(flag=='1')

{

for(i=0;i<15;i++)

{

printf("x%d= ",i+1);

scanf("%f",&D[i][0]);

printf("y%d= ",i+1);

scanf("%f",&D[i][1]);

printf("\n");

}

printf("Massiv vveden! Dlya prodolzeniya nazat' lubuyu klavishu...");

}

else if(flag=='2')

{

fflush(stdin);

if((in=fopen("ishodni.txt","r"))!=NULL);

i=0;

{

while(fscanf(in,"%f %f",&x,&y)!=EOF)

{

D[i][0]=x;

D[i][1]=y;

i++;

}

}

printf("\nMassiv vveden! Dlya prodolzeniya nazat' lubuju klavishu...");

fclose(in);

}

}

void preobrD()

{

int i;

int temp[4],flag;

float r;

for(i=0;i<15;i++)

{

if(((D[i][1]-3.33*D[i][0]-3<=0)&&(D[i][1]+0.2*D[i][0]-13.6<=0)&&(D[i][1]-4*D[i][0]+41>=0)&&(D[i][1]-3>=0)))

{

D1[num1][0]=D[i][0];

D1[num1][1]=D[i][1];

D1[num1][2]=i+1;

num1++;

}

}

for(i=0;i<num1;i++)

{

r=fabs(0.65*D[i][0]+D[i][1]-14)/sqrt(1.4225);

if(r<=3.8)

{

D2[num2][0]=i+1;

D2[num2][1]=D1[i][0];

D2[num2][2]=D1[i][1];

D2[num2][3]=D1[i][2];

D2[num2][4]=r;

num2++;

}

}

do

{

flag=0;

for(i=0;i<num2;i++)

{

if(D2[i][4]>D2[i-1][4])

{

temp[0]=D2[i][0];

temp[1]=D2[i][1];

temp[2]=D2[i][2];

temp[3]=D2[i][3];

temp[4]=D2[i][4];

D2[i][0]=D2[i-1][0];

D2[i][1]=D2[i-1][1];

D2[i][2]=D2[i-1][2];

D2[i][3]=D2[i-1][3];

D2[i][4]=D2[i-1][4];

D2[i-1][0]=temp[0];

D2[i-1][1]=temp[1];

D2[i-1][2]=temp[2];

D2[i-1][3]=temp[3];

D2[i-1][4]=temp[4];

flag=1;

}

}

}while(flag==1);

printf("Preobrazovanie massiva zakoncheno uspeshno!\n\n");

printf("Dlya prodolzeniya nazat' lubuyu klavishu...");

}

void SandP()

{

float S[4][2];

float rst1,rst2,rst3,rst4;

float pP=0,pS=0,p1,p2,pt1,pt2,diag;

int i,j;

char q;

do

{

clrscr();

printf("Ploshad' i perimetr chetyrehugol'nika.\n\n");

printf("Vnimanie! Tochki vvodit' po chasovoy!\n");

printf("Vvedite koordinaty 4 tochek.\n\n");

for(i=0;i<4;i++)

{

printf("x%d= ",i+1);

scanf("%f",&S[i][0]);

printf("y%d= ",i+1);

scanf("%f",&S[i][1]);

printf("\n");

}

rst1=sqrt(pow(S[1][0]-S[0][0],2)+pow(S[1][1]-S[0][1],2));

rst2=sqrt(pow(S[2][0]-S[1][0],2)+pow(S[2][1]-S[1][1],2));

rst3=sqrt(pow(S[3][0]-S[2][0],2)+pow(S[3][1]-S[2][1],2));

rst4=sqrt(pow(S[0][0]-S[3][0],2)+pow(S[0][1]-S[3][1],2));

diag=sqrt(pow(S[2][0]-S[0][0],2)+pow(S[2][1]-S[0][1],2));

pP=rst1+rst2+rst3+rst4;

p1=(rst1+rst2+diag)/2;

p2=(rst3+rst4+diag)/2;

pt1=sqrt(fabs(p1*(p1-rst1)*(p1-rst2)*(p1-diag)));

pt2=sqrt(fabs(p2*(p2-rst3)*(p2-rst4)*(p2-diag)));

pS=pt1+pt2;

printf("Perimetr chetyrehugol'nika P= %.2f\n",pP);

printf("Ploshad' chetyrehugol'nika S= %.2f\n",pS);

printf("\nVyhod v glavnoe menu(Y/N)?\n");

fflush(stdin);

q=getch();

}while(q!='y'&&q!='Y');

}

void peres()

{

float a,b,c,k,x,y;

char q;

do

{

clrscr();

printf("Opredelenie tochki perezecheniya pryamyh.\n\n");

printf("Vvedite koeffcienty:\n");

printf("\nKoefficient a= ");

scanf("%f",&a);

printf("\nKoefficient b= ");

scanf("%f",&b);

printf("\nKoefficient c= ");

scanf("%f",&c);

k=-a/b;

if(k==-0.65)

{

printf("\nPryamye parallel'ny!\n");

}

else

{

x=(c+14*b)/(0.65*b-a);

y=-0.65*x+14;

printf("\nTochka peresecheniya x= %.2f y= %.2f\n",x,y);

}

printf("\nVyhod v glavnoe menu(Y/N)?");

q=getch();

}while(q!='y'&&q!='Y');

}

void vyvod()

{

FILE *out;

int i;

printf("MASSIV D\n\n");

printf("#\tX\tY\n");

for (i=0;i<15;i++)

{

printf("%d\t%2.2f\t%2.2f\n",(i+1),D[i][0],D[i][1]);

}

printf("\nDlya prodolzeniya nazat' lubuju klavishu...\n");

getch();

clrscr();

printf("MASSIV D1\n\n");

printf("#\t#D\tX\tY\n");

for(i=0;i<num1;i++)

{

printf("%d\t%2.2f\t%2.2f\t%2.2f\n",(i+1),D1[i][2],D1[i][0],D1[i][1]);

}

printf("\nDlya prodolzeniya nazat' lubuju klavishu...\n");

getch();

clrscr();

printf("MASSIV D2\n\n");

printf("#\t#D\t#D1\tr\tX\tY\n");

for(i=0;i<num2;i++)

{

if(D2[i][4]!=0)

{

printf("%d\t%2.2f\t%2.2f\t%2.2f\t%2.2f\t%2.2f\n",(i+1),D2[i][3],D2[i][0],D2[i][4],D2[i][1],D2[i][2]);

}

}

printf("\nDlya prodolzeniya nazat' lubuju klavishu...\n");

out=fopen("rezpoints.txt","w");

fprintf(out,"MASSIV D\n\n");

fprintf(out,"#\tX\tY\n");

for (i=0;i<15;i++)

{

fprintf(out,"%d\t%2.2f\t%2.2f\n",(i+1),D[i][0],D[i][1]);

}

fprintf(out,"\n\n");

fprintf(out,"MASSIV D1\n\n");

fprintf(out,"#\t#D\tX\tY\n");

for(i=0;i<num1;i++)

{

fprintf(out,"%d\t%2.2f\t%2.2f\t%2.2f\n",(i+1),D1[i][2],D1[i][0],D1[i][1]);

}

fprintf(out,"\n\n");

fprintf(out,"MASSIV D2\n\n");

fprintf(out,"#\t#D\t#D1\tr\tX\tY\n");

for(i=0;i<num2;i++)

{

fprintf(out,"%d\t%2.2f\t%2.2f\t%2.2f\t%2.2f\t%2.2f\n",(i+1),D2[i][3],D2[i][0],D2[i][4],D2[i][1],D2[i][2]);

}

fclose(out);

}

void massiv()

{

clrscr();

char key;

char zn;

do

{

clrscr();

printf("Rabota s massivami. Vyberete odin iz punktov menu:\n\n");

printf("1 Vvod massiva.\n");

printf("2 Preobrazovanie massiva.\n");

printf("3 Prosmotr rezul'tata.\n");

printf("4 Vozvrat v glavnoe menu.\n");

switch(key=getch())

{

case '1':

{

clrscr();

vvod();

zn='*';

getch();

break;

}

case '2':

{

if(zn=='*')

{

clrscr();

preobrD();

zn='*';

}

else

{

printf("\n\nSnachala vvedite massiv!\n");

}

getch();

break;

}

case '3':

{

if(zn=='*')

{

clrscr();

vyvod();

}

else

{

printf("\n\nSnachala vvedite massiv!\n");

}

getch();

break;

}

case '4':

{

fflush(stdin);

break;

}

default:

{

printf("\nPozaluysta, vvedite cifru ot 1 do 4\n");

printf("Dlya prodolzeniya nazat' lubuyu klavishu");

getch();

}

}

}while(key!='4');

}

void main()

{

clrscr();

char exit='n';

do

{

clrscr();

printf("Glavnoe menu. Vyberite zadanie: \n\n");

printf("1 Rabota s massivami.\n");

printf("2 Ploshad i perimetr.\n");

printf("3 Peresechenie pryamyh.\n");

printf("4 Vuhod.\n");

switch(getch())

{

case '1':

{

clrscr();

massiv();

break;

}

case '2':

{

clrscr();

SandP();

break;

}

case '3':

{

clrscr();

peres();

break;

}

case '4':

{

printf("\nVyhod(Y/N)?\n");

fflush(stdin);

exit=getch();

break;

}

default:

{

printf("\nPozaluysta, vvedite cifru ot 1 do 4\n");

printf("Dlya prodolzeniya nazat' lubuyu klavishu");

getch();

break;

}

}

}while(exit!='y'&&exit!='Y');

}

4. Используемые переменные

Глобальные переменные:

float D[16][2],D1[15][3],D2[15][5]; - объявление используемых массивов.

int num1=0,num2=0; - номера точек в массиве D и D1 соответственно.

Переменные в функции main()

char exit='n'; - служит для выхода из программы.

Переменные в функции massiv()

char key; - служит для выхода из подпрограммы и возврата в главное меню.

char prov; - служит для правильной работы подпрограммы (проверка, ввел пользователь массив или нет).

Переменные в функции vvod()

int flag,i; - i-счетчик, flag - выбор ввода массива

float x,y; - переменные, координаты точек, заносимые в массив D.

FILE *in; - указатель на файл, откуда будут считываться координаты точек.

Переменные в функции preobrD()

int i; - переменная счетчик.

int temp[4],flag; - temp[4] - вспомогательный массив, для перестановки строк в массиве D2, flag - индикатор выхода из цикла преобразования D2

float r; - расстояние от точки до заданной прямой.

Переменные в функции SandP()

float S[4][2]; - массив, куда заносятся координаты вершин фигуры.

float rst1,rst2,rst3,rst4; - расстояния между точками.

float pP=0,pS=0,p1,p2,pt1,pt2,diag; - периметр фигуры, площадь фигуры, полупериметры двух треугольников, площади двух треугольников, длина диагонали в фигуре и одна из сторон двух треугольников.

int i; - переменная счетчик.

char q; - служит для выхода из подпрограммы.

Переменные в функции peres()

float a,b,c,k,x,y; - коэффициенты прямой, вводимые пользователем с клавиатуры, угловой коэффициент, точки пересечения прямых.

char q; - служит для выхода из подпрограммы.

Переменные в функции vyvod()

FILE *out; - указатель на файл, куда будут записываться результаты работы программы.

int i; - переменная счетчик.

5. Результат работы программы

Исходный файл данных

3 12

3 11

3 10

4 11

4 10

4 12

5 10

5 11

2 1

6 6

5 9

9 5

8 2

2 8

7 3

Файл результатов

MASSIV D

# X Y

1 3.00 12.00

2 3.00 11.00

3 3.00 10.00

4 4.00 11.00

5 4.00 10.00

6 4.00 12.00

7 5.00 10.00

8 5.00 11.00

9 2.00 1.00

10 6.00 6.00

11 5.00 9.00

12 9.00 5.00

13 8.00 2.00

14 2.00 8.00

15 7.00 3.00

MASSIV D1

# #D X Y

1 1.00 3.00 12.00

2 2.00 3.00 11.00

3 3.00 3.00 10.00

4 4.00 4.00 11.00

5 5.00 4.00 10.00

6 6.00 4.00 12.00

7 7.00 5.00 10.00

8 8.00 5.00 11.00

9 10.00 6.00 6.00

10 11.00 5.00 9.00

11 12.00 9.00 5.00

12 14.00 2.00 8.00

13 15.00 7.00 3.00

MASSIV D2

# #D #D1 r X Y

1 14.00 12.00 2.00 2.00 8.00

2 3.00 3.00 1.00 3.00 10.00

3 5.00 5.00 1.00 4.00 10.00

4 12.00 11.00 1.00 9.00 5.00

6. Пример работы программы

После запуска программы пользователь видит следующее окно (главное меню программы):

В программе предусмотрена защита от нажатия посторонних клавиш, т.е. любых клавиш кроме 1 - 4.

После нажатия клавиши 1, пользователь видит новое меню, меню работы с массивами:

В данном меню предусмотрены две защиты. 1 -я от нажатия посторонних клавиш, 2 - я выводит предупреждение, если пользователь нажмет клавишу 2 или 3 до того как введет массив.

После нажатия клавиши 1, пользователь переходит в меню выбора способа ввода массива.

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

Если нажата клавиша 2, то считывание координат точек из файла.

После ввода массива, пользователь возвращается в меню работы с массивами.

Нажав клавишу 2, происходит преобразование массива и пользователь видит следующее сообщение на экране:

Нажав любую клавишу, пользователь возвращается в меню работы с массивами.

Нажав клавишу 3, происходит вывод результатов работы программы с массивами на экран и в файл.

После этого происходит возврат в меню работы с массивами.

Нажав клавишу 4, пользователь возвращается в главное меню программы.

При нажатии клавиши 2, пользователь попадает в окно работы по поиску площади и периметра фигуры, координаты вершин которой вводит пользователь.

Программа будет считать площадь до тех пор, пока пользователь не нажмет клавишу 'y' или `Y'. При нажатии этих клавиш, происходит возврат в главное меню программы.

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

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

Программа выводит соответствующее сообщение.

Поиск точки пересечения будет производиться до тех пор, пока пользователь не нажмет клавишу 'y' или `Y'. При нажатии этих клавиш, происходит возврат в главное меню программы.

При выходе из программы (нажатии клавиши 4 в главном меню), пользователь видит следующее окно:

При нажатии клавиши 'y' или `Y' происходит выход из программы. Если нажата любая другая клавиша, пользователь возвращается к выбору задания в главном меню.

Выводы

В данной работе приходилось пользоваться массивами, функциями и работой с файлами.

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

В программе были использованы статические массивы, т.к. у нас заранее известно, сколько элементов будет участвовать в работе с массивами. С точки зрения использования памяти это не рационально, т.к. в массивах D1 и D2 приходится выделять память под элементы этих массивов гораздо больше, чем это надо на самом деле. Для решения этой проблемы можно воспользоваться динамическими массивами (динамическим выделением памяти).

При сортировке массива D2 по убыванию r (расстояние от точки до прямой) был использован алгоритм сортировки методом «пузырька». Этот метод основывается на последовательном сравнении значений двух соседних элементов массива, начиная с последнего. В результате сравнения больший по значению элемент перемещается на место соседнего, достигая через определенное число шагов места первого элемента массива (при перестановке r, переставляются местами строки массива D2, т.е. каждый элемент i- ой строки).

Для облегчения чтения и красивого вывода на экран (записи в файл) результатов работы программы в функции vyvod(), я воспользовался табуляцией \t и форматным выводом элементов массивов %2.2f.

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

При разработке программы мной была предусмотрена и разработана и реализована защита от нажатия посторонних клавиш при работе с программой. В функции main() защита от нажатия любых клавиш кроме 1 - 4. В функции massiv() 2 защиты: 1 - я от нажатия посторонних клавиш кроме 1 - 4; 2 - я предусматривает проверку, ввел ли пользователь массив, т.е. если выбрать преобразование массива или его просмотр не введя его (из файла или с клавиатуры), то пользователь будет предупрежден об этом. Благодаря этим способам защиты программа функционирует без сбоев и ошибок при случайном (или специальном) нажатии посторонних клавиш.

Размещено на Allbest.ru


Подобные документы

  • Описание информационной структуры, используемой для организации списка. Контрольные примеры обработки и сортировки. Краткое описание алгоритма. Локальные переменные функции. Иерархическая структура программы, а также код программы на языке С/С++.

    курсовая работа [91,4 K], добавлен 16.07.2013

  • Постановка задачи и алгоритм решения. Листинг программы, иллюстрирующей работу с символами, строками и блоками. Описание возможностей языка С, используемых для реализации алгоритма. Тестирование итоговой программы, анализ полученных результатов расчета.

    курсовая работа [63,0 K], добавлен 27.12.2012

  • Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.

    курсовая работа [1,1 M], добавлен 17.03.2015

  • Понятие массива и правила описания массивов в программах на языке С. Рассмотрение основных алгоритмов обработки одномерных массивов. Примеры программ на языке С для всех рассмотренных алгоритмов. Примеры решения задач по обработке одномерных массивов.

    учебное пособие [1,1 M], добавлен 22.02.2011

  • История создания и развитие языка программирования Pascal, его версии. Особенности и порядок построения графика функции на языке Turbo Pascal с использованием декартовой системы координат. Блок схема алгоритма процедур, листинг и тестирование программы.

    курсовая работа [102,7 K], добавлен 23.12.2011

  • Понятие алгоритма и сортировки. Способы и алгоритмы сортировки массивов. Быстрая сортировка Хоара. Описание алгоритма "быстрой сортировки". Реализация на языке программирования. Анализ наихудшего разбиения. Вероятностные алгоритмы быстрой сортировки.

    курсовая работа [291,5 K], добавлен 22.03.2012

  • Методы обработки информации при решении прикладных задач. Математическая модель задачи. Блок-схема алгоритма программы. Компоненты, которые используются для работы в программе: элементы интерфейса; процедуры; операторы. Текст программы с пояснениями.

    курсовая работа [954,0 K], добавлен 07.01.2011

  • Исследование логики программы и ее воспроизведение в командной строке. Создание игрового поля. Действия над буквами, действия игрока и компьютера. Глобальные переменные и массивы, необходимые для работы. Заполнение массивов координат и индексов слова.

    курсовая работа [931,3 K], добавлен 24.01.2016

  • Разработка алгоритма, который может выполнить расчет определения координат точек кинематической схемы и выполнить анимацию (визуальное отображение перемещений объектов) кинематической схемы с использованием пакета MathCad. Расчет кинематической схемы.

    курсовая работа [1,1 M], добавлен 10.07.2012

  • Переменные типа integer, real, их функции. Общее понятие о массиве, файлы для Pascal. Информационный и информанизационный набор списка. Реализация и тестирование программы. Выбор базы данных, внесение имени, меню. Блок-схема алгоритма, листинг программы.

    курсовая работа [306,0 K], добавлен 04.02.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.