Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
NemoBLR
6 / 6 / 2
Регистрация: 28.05.2010
Сообщений: 24
#1

Заполнить файлы случайными данными, сравнить их, и вывести самую длинную совпадающую последовательность - C++

28.05.2010, 18:57. Просмотров 516. Ответов 3
Метки нет (Все метки)

создать 10 файлов,в каждом файле 10 строк, строка длинной 255 символов
необходимо заполнить их случайными данными, сравнить их и вывести самую длинную совпадающую последовательность
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2010, 18:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заполнить файлы случайными данными, сравнить их, и вывести самую длинную совпадающую последовательность (C++):

Вывести самую длинную последовательность букв, расположенных между двумя пробелами - C++
Помогите пожалуйста!Задана некоторая запись длнной M,состоящая из букв и символа пробел.В начале и конце записи стоит символ...

Сравнить два одномерных массива и найти самую длинную их общую часть - C++
как сравнить два одномерных массива и найти самую длинную их общую часть? сравниваю массивы типа char. допустим мы нашли общий...

Определеить самую длинную последовательность в строке - C++
По задаче нужно найти самую длинную последовательность симоволов в строке(не цифр и не букв,а знаков типо !"№;№;! и т.д.). Вот что я...

Удалить самую длинную последовательность нулей - C++
Дан массив из N элементов. Удалить самую длинную последовательность нулей (одинаковой последовательности нет). В первой строчке...

Найти самую длинную неубывающую последовательность - C++
Дан список из n целых чисел a1, a2,..., a. Найти самую длинную неубывающую последовательность элементов списка

Найти самую длинную монотонную последовательность - C++
Добрый вечер. Помогите с задачей - Найти максимальную по длине монотонную ( либо неубывающую, либо невозрастающую) подпоследовательность....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
28.05.2010, 23:08 #2
Цитата Сообщение от NemoBLR Посмотреть сообщение
...самую длинную совпадающую последовательность
т.е. совпадающие символы? или строки которые больше всего совпадают?
0
NemoBLR
6 / 6 / 2
Регистрация: 28.05.2010
Сообщений: 24
29.05.2010, 17:15  [ТС] #3
Цитата Сообщение от Mur3ik Посмотреть сообщение
т.е. совпадающие символы? или строки которые больше всего совпадают?
строки которые больше всего совпадают

Добавлено через 16 часов 18 минут
Как хотя бы создать 10 файлов?

Добавлено через 1 час 44 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
 
 
 
int main ()
{
char simvoli [] = {' ','q','w','e','r','t','y','u','i','o','p'};
char str[256];
char poisk1[2551];/*переменные для хранения данных записанных на диске*/
char poisk2[2551];
char poisk3[2551];
char poisk4[2551];
 int i,j,k;
FILE *file1;
FILE *file2;
FILE *file3;
FILE *file4;
 
file1 = fopen ("file1", "w");
 for (i=0; i<10; i++)
  {
   for (j=0; j< 255; j++)
    {k = 1+( rand () % 10);
     str[j] = simvoli[k];
    }
    fputs( str, file1 );
    fputs ("\n", file1);
  }
 
file2 = fopen ("file2", "w");
 for (i=0; i<10; i++)
  {
   for (j=0; j< 255; j++)
    {k = 1+( rand () % 10);
     str[j] = simvoli[k];
    }
    fputs( str, file2 );
    fputs ("\n", file2);
  }
 
file3 = fopen ("file3", "w");
 for (i=0; i<10; i++)
  {
   for (j=0; j< 255; j++)
    {k = 1+( rand () % 10);
     str[j] = simvoli[k];
    }
    fputs( str, file3 );
    fputs ("\n", file3);
  }
 
 file4 = fopen ("file4", "w");
 for (i=0; i<10; i++)
  {
   for (j=0; j< 255; j++)
    {k = 1+( rand () % 10);
     str[j] = simvoli[k];
    }
    fputs( str, file4 );
    fputs ("\n", file4);
  }
fclose (file1);
fclose (file2);
fclose (file3);
fclose (file4);
 
 
file1 = fopen ("file1", "r");
while (!feof(file1)){
fscanf ( file1, "%s", &poisk1);
printf( "%s", poisk1);}
fclose (file1);
 
file2 = fopen ("file2", "r");
while (!feof(file1)){
fscanf ( file1, "%s", &poisk2);
printf( "%s", poisk2);}
fclose (file2);
 
file3 = fopen ("file3", "r");
while (!feof(file3)){
fscanf ( file3, "%s", &poisk3);
printf( "%s", poisk3);}
fclose (file3);
 
file4 = fopen ("file4", "r");
while (!feof(file4)){
fscanf ( file1, "%s", &poisk4);
printf( "%s", poisk4);}
 
 
 
 
 
fclose (file4);
getch ();
return 0;
}
дошел до этого... как можна найти строки которые больше всего совпадают?
0
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
29.05.2010, 17:28 #4
Алгоритм:
все считываешь в 2х мерный динамический массив.
и сравниваешь построчно
первую строку - с второй...третьей... до конца...(потом вторую с третьей.... четвертой до конца...., третью с четвертой.... пятой... до конца) увеличивая с каждым разом количество символов для сравнения (используешь для этого strncmp) при этом создаешь 3 переменных которые содержат номера строк которые совпадают и количество символов. если нашло более удачный вариант замещаешь их.

Сравнение строк, с указанием количества сравниваемых символов:
int strncmp(char *s1, char *s2, int var);
пример:
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <clocale>
#include <cstring>
using namespace std;
 
void main ()
{
setlocale(LC_CTYPE, "rus");
char str[50]="abcdef", str2[50]="abcdfff";
    cout<<strncmp(str, str2, 4)<<endl;
}
взято от сюда -> Библиотека cstring. Работа со строками.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2010, 17:28
Привет! Вот еще темы с ответами:

Найти самую длинную последовательность цифр в строке - C++
Помогите новичку, пожалуйста) Нарушен п.5.18 Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Найти самую длинную последовательность простых чисел - C++
Доброго времени суток! Помогите пожалуйста доделать программу. Нужно из массива цифр, выделить самую длинную последовательность простых...

Найти в массиве самую длинную убывающую последовательность - C++
Найти в массиве самую длинную убывающую последовательность , расположенную после максимального элемента включительно.Вывести на экран...

Найти в массиве самую длинную положительную последовательность - C++
Дан массив размера N найти в нем самую длинную положительную последовательность


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.05.2010, 17:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru