Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Оснащения врачебно-сестринской бригады.
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Марксистская теория происхождения государства: По мнению Маркса и Энгельса, в основе развития общества, происходящих в нем изменений лежит...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2020-03-31 | 170 |
5.00
из
|
Заказать работу |
|
|
Рассмотрим алгоритм поиска длиннейшей подпоследовательности одинаковых чисел, встречающейся некоторый раз внутри основной последовательности. Этот алгоритм был реализован в файле ALG.CPP в функции searchindex_search(posled*,int).
Для определения длиннейшей подпоследовательности одинаковых символов достаточно одного цикла, проходящего через всю основную последовательность. Сравнение происходит после того, как определены размеры группы одинаковых чисел, и новый результат либо записывается вместо нового с указанием координаты его нахождения, либо обнуляется. Для того, чтобы найти следующее вхождение этой последовательности, достаточно ввести дополнительный параметр, определяющий, на какой раз после череды совпадений допускается записать координату начала подпоследовательности. В случае обнаружения более длинной группы этот счетчик обнуляется. Алгоритм выбора подпунктов меню (файл MENU.CPP, функции menu(); start(); options();).
Событие нажатия кнопки на клавиатуре отлавливается функцией getch(), код клавиши записывается в переменную. Для определения значимости кода используется переключатель switch, отлавливающий требуемые значения. Для сохранения позиции выбора меню используются переменные класса static. В зависимости от нажатой клавиши они либо изменяют свое значение, либо остаются неизменными. После нажатия клавиши enter (код 13) в зависимости от значения переменной выбора через switch запускается та или иная функция, как правило с выходом из текущей при помощи оператора return.
Заключение
По результатам проделанной работы можно сделать следующие выводы:
Проведен сравнительный анализ языков высокого уровня Паскаль и Си и сделан вывод, что для реализации курсового проекта в соответствии с заданием выгоднее использовать язык Си.
|
Поставлена задача создания программы работы с множествами со следующими ограничениями: многофайловость проекта, удобный графический интерфейс, работа с файлами.
Разработаны алгоритмы поиска подпоследовательностей одинаковых элементов в множественном виде, алгоритмы создания графических элементов меню.
Создана программа поиска подпоследовательностей, имеющая следующие функции:
· возможность сохранять последовательность в файлы;
· возможность раздельного либо смежного сохранения и загрузки последовательностей в файлы.
программирование последовательность си паскаль
Приложение
Листинг.H
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
#include <stdlib.h>menu();*gpath="C:\\BORLANDC\\Progs\\kurs\\open.txt";*gpath_1="C:\\BORLANDC\\Progs\\kurs\\about.txt";*gpath_2="C:\\BORLANDC\\Progs\\kurs\\save.txt";=10;_so=0;{size;*element;
};search {index;size;
};
#include "C:\BORLANDC\Progs\kurs\alg.cpp"
#include "C:\BORLANDC\Progs\kurs\menu.cpp".CPP_new(intn,posled*p) {>size=n;>element=new int[n];
}_delete(posled*p) {p->element;
}_rand(posled*p) {(inti=0;i<p->size;i++) {
p->element[i]=random(randmax);
}
}_search(posled*p,intnum) {=1,len=1,indmax=-1;=1;(inti=1;i<=p->size;i++) {
if(p->element[i]==p->element[i-1]&&i<p->size) len++;
else {
if(len>lenmax) {
lenmax=len;
if(num==1) indmax=i-len;
elseindmax=-1;
nummax=1;
}
else if(len==lenmax) {
nummax++;
if(nummax==num) indmax=i-len;
}
len=1;
}
}={0};.index=indmax;.size=lenmax;;
}_save(char*path,posled*p) {
FILE*f;
f=fopen(path,"w+");(!f) return;(f,"%d ",p->size);(inti=0;i<p->size;i++) fprintf(f,"%d ",p->element[i]);(f);
}_open(char*path,posled*p) {
FILE*f;=0,i=0;
f=fopen(path,"r");(!f) {
posled_new(0,p);
return;
}(f,"%d ",&buf);_new(buf,p);(!feof(f)) {=0;(f,"%d ",&buf);>element[i++]=buf;
}(f);
}.CPP_note() {(1,15);(180,50,460,430);(1,0);(inti=0;i<3;i++) fillellipse(i*80+240,75,10,10);(1,2);(i=0;i<3;i++) {
bar(i*80+236,73,i*80+238,40);
bar(i*80+242,73,i*80+244,40);
|
}
}start() {_set=0;work=0;(start_set<0) start_set=1;if(start_set>1) start_set=0;();_note();(0,0,2); setcolor(4);(320,120,"Create with:");(1);(320,200,"File");(320,280,"Generator");(9);(210,140,430,140);(240,215+start_set*80,400,215+start_set*80);p={0};*posl=&p;key=getch();(key) {
case 27: menu(); return;
case 80: start_set++; break;
case 72: start_set--; break;
case 13:
work=1;
switch(start_set) {
case 0: posl_open(gpath,posl); break;
case 1: posled_new(48,posl); posled_rand(posl); break;
}
break;
}(work) {
draw_note();
charbuf[15]={0};
int j=1;
search m={0};
if(!posl->size) {
outtextxy(320,220,"Cannot open file");
getch(); menu(); return; }
for(inti=0;i<posl->size;i++) {
char b1[5]={0};
sprintf(b1,"%d",posl->element[i]);
strcat(buf,b1);
outtextxy(220+(i%6)*40,130+(i/6)*30,buf);
buf[0]=0;
}
while(m.index>=0) {
m=index_search(posl,j++);
if(m.index==-1) break;
for(int k=0;k<m.size;k++) {
int l=m.index+k;
rectangle(201+(l%6)*40,116+(l/6)*30,
239+(l%6)*40,144+(l/6)*30);
}
}
sprintf(buf,"Size: %d",m.size);
outtextxy(320,125+(i+1)*5,buf);
if(bool_so) posl_save(gpath_2,posl);
elseposl_save(gpath,posl);
getch(); menu();
}();
}options() {_note();_sel=0;(opt_sel<0) opt_sel=1; else if(opt_sel>1) opt_sel=0;(0,0,3); setcolor(4);(320,120,"OPTIONS");[20]={0};(0,0,1); setcolor(1);(buf,"Max rand num: %d",randmax); outtextxy(320,200,buf);(buf,"Similar i/o files:%s",(bool_so?" yes":" no"));(320,280,buf);(280,215+opt_sel*80,360,215+opt_sel*80);key=getch();=0;(key) {
case 27: menu(); return;
case 75: dir--; break;
case 77: dir++; break;
case 72: opt_sel--; break;
case 80: opt_sel++; break; }(opt_sel) {
case 0: if(randmax>20) dir*=10; randmax+=dir; break;
case 1: if(dir) bool_so=1-bool_so; break;
}(randmax<1) randmax=1; else if(randmax>100) randmax=99;();
}about() {_note();(0,0,2); setcolor(4);(320,100,"ABOUT");*f=fopen(gpath_1,"r+");(0,0,1);(230,130,410,130);(f) {
charbuf[30]={0};
inti=0;
while(!feof(f)) {
buf[0]=0;
fgets(buf,30,f);
buf[strlen(buf)-1]=0;
outtextxy(320,160+i*30,buf);
if(strlen(buf)) i++;
}
line(230,160+i*30,410,160+i*30);
}{
char error[50]={0};
sprintf(error,"Cannot open \"%s\"",gpath_1);
outtextxy(320,160,error);
}();(f);();
}menu() {_set=0;(menu_set<0) menu_set=3;if(menu_set>3) menu_set=0;();_note();(CENTER_TEXT,CENTER_TEXT);(0,0,3);(4);(320,120,"MENU");(0,0,2);(1);(320,200,"START");(320,250,"OPTIONS");(320,300,"ABOUT");(320,350,"EXIT");(9);(210,140,430,140);(240,215+menu_set*50,400,215+menu_set*50);key=getch();(key) {
case 27: exit(0); break;
case 13: switch(menu_set) {
case 0: start(); return;
case 1: options(); return;
case 2: about(); return;
case 3: exit(0);
} break;
case 72: menu_set--; break;
case 80: menu_set++; break; }();
}
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!