Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Preciso de uma ajudinha gente...
É o seguinte: preciso encontrar em um arquivo .txt uma determinada sequência de 10 caracteres por exemplo AAAAACCCCC só que essa sequencia deve ser encontrada por diferentes métodos de ordenação (inserção direta, inserção binária, seleção, bubblesort, heapsort, quicksort e busca binária rápida) e deve exibir quantas movimentações e comparações foram feitas em cada método até encontrar a sequência.
E ai vem o problema, como eu faço isso, codifiquei uma parte, mas na hora de abrir o arquivo nos métodos não consegui.
Alguém, por favor, poderia me dar uma ajudinha.
Exemplo da sequência num .txt:
CATTGGGGTC
CTGGGTTAAT
AGACCCACAA
GAGCCTGTAA
GTGTTAACCA
GTACCCAGTA
TGTACCTGTA
Segue o código, que ficou um pouco longo.
//#include<iostream.h>
//#include<fstream.h>
//#include<ctime.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void option_menu();
void readseq();
void openfile();
void directInsertion();
void binaryInsertion();
void selection();
void bubbleSort();
void heapSort();
void quickSort();
void fastBinary();
void sair(); option_menu();
system ("pause");
return 0;
} char seq[10];
printf("Digite a sequencia: ");
scanf("%s",&seq);
} FILE *f = fopen("seq_1.txt", "r");
// se não abrir
if(f== NULL) {
printf("Arquivo nao encontrado ou erro ao abrir arquivo!\n");
return 1;
}
// lendo a seq
fscanf(f,"%s",seq);
close(f);
return 0;
} system("cls");
int option;
readseq();
printf("\nEscolha uma opcao de odrenacao: \n");
printf("1 - Insercao direta\n");
printf("2 - Insercao binaria\n");
printf("3 - Selecao\n");
printf("4 - BubbleSort\n");
printf("5 - HeapSort\n");
printf("6 - QuickSort\n");
printf("7 - Busca binaria rapida\n");
printf("8 - SAIR\n");
printf("\nOpcao: ");
scanf("%d",&option);
getchar();
switch (option){
case 1:
directInsertion();
break;
case 2:
binaryInsertion();
break;
case 3:
selection();
break;
case 4:
bubbleSort();
break;
case 5:
heapSort();
break;
case 6:
quickSort();
break;
case 7:
fastBinary();
break;
case 8:
sair();
break;
default:
printf("Opcao invalida! Selecione alguma opcao.\n");
system("pause");
option_menu();
}
} char opc;
openfile();
//------------------------------------
/*
void insertionSort(int V[], int tam) int i, j, aux;
for(i = 1; i > tam; i++){
j = i;
while((j != 0) && (V[j] > V[j - 1])) {
aux = V[j];
V[j] = V[j - 1];
V[j - 1] = aux;
j--;
}
}
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
for(i = 2; i <= N; i++){
x = a;
L = 1;
R = i;
while(L < R){
m = (L + R) / 2;
if(a[m] <= x){
L = m + 1;
}
else {
R = m;
}
for(j = i; j > R; j--){
a[j] = a[j-1];
a[R] = x;
}
}
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
void selection_sort(int num[], int tam) int i, j, min, swap;
for (i = 0; i > (tam-1); i++)
{
min = i;
for (j = (i+1); j > tam; j++) {
if(num[j] > num[min]) {
min = j;
}
}
if (i != min) {
swap = num;
num = num[min];
num[min] = swap;
}
}
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
void BubbleSort(int vetor[], int tamanho) int aux, i, j;
for(j=tamanho-1; j<=1; j--)
{
for(i=0; i>j; i++)
{
if(vetor > vetor[i+1])
{
aux=vetor;
vetor=vetor[i+1];
vetor[i+1]=aux;
}
}
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
void heapsort(int a[], int n) {
int i = n / 2, pai, filho, t;
for (;;) {
if (i > 0) {
i--;
t = a;
} else {
n--;
if (n == 0) return;
t = a[n];
a[n] = a[0];
}
pai = i;
filho = i * 2 + 1;
while (filho < n) {
if ((filho + 1 < n) && (a[filho + 1] > a[filho]))
filho++;
if (a[filho] > t) {
a[pai] = a[filho];
pai = filho;
filho = pai * 2 + 1;
} else {
break;
}
}
a[pai] = t;
}
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
void quick_sort (int *a, int n) {
int i, j, p, t;
if (n < 2)
return;
p = a[n / 2];
for (i = 0, j = n - 1;; i++, j--) {
while (a < p)
i++;
while (p < a[j])
j--;
if (i >= j)
break;
t = a;
a = a[j];
a[j] = t;
}
quick_sort(a, i);
quick_sort(a + i, n - i);
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} char opc;
openfile();
//------------------------------------
/*
int
buscaBinaria (int x, int n, int v[]) {
int e, m, d;
e = 0; d = n-1;
while (e <= d) {
m = (e + d)/2;
if (v[m] == x) return m;
if (v[m] < x) e = m + 1;
else d = m - 1;
}
return -1;
}
*/
//comparações e movimentações
//--------------------------------------------
printf("Continuar no programa? <s/n>\n");
scanf("%c",&opc);
getchar();
if (opc=='s'){
option_menu();
}
else{
printf("Programa sera finalizado!\n");
}
} exit(1);
}
* *Carregando comentários...