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

файл и строки - C++

Восстановить пароль Регистрация
 
botwa
 Аватар для botwa
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 22
20.12.2009, 20:46     файл и строки #1
такая задача по файлам

дан файл.в нём некий набор чисел.
нужно выяснить есть ли среди этого набора чисел хотя бы одна последовательность и если есть, то какая максимальная длина?

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

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
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream f;
    int i, n;
    float *a, *b;
    f.open("C:\\abc.txt");
    f>>n;
    a=new float[n];
    b=new float[n-1];
    for (i=0; i<n; i++)
    {
        f>>a[i];
        cout<<a[i]<<"\t";
    }
    for (i=0; i<(n-1); i++)
    {
        b[i]=a[i]-a[i+1];
    }
    
                ...
 
    f.close();
    delete []a;
    return 0;
}
и ещё если несложно, то не могли бы вы помочь написать программу по строкам:
"даны две строки. нужно сравнить их и вывести самую длинную их общую часть"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2009, 20:46     файл и строки
Посмотрите здесь:

C++ Дан файл. Записать в другой файл строки, которые являются палиндромами.
C++ Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
Найти в файле максимальную длину строки и вывести в новый файл все строки, имеющую такую длину C++
C++ Текстовый файл состоит из нескольких строк. Записать во второй файл последние символы из каждой строки первого файла
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки C++
Текстовый файл содержит строки – предложения разной длины. Записать их в выходной файл в порядке возрастания длины строки C++
Дан входной текстовый файл, строка S (вводится с клавиатуры). Записать в выходной файл все строки входного файла, содержащие в качестве фрагмента стро C++
C++ Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
20.12.2009, 20:58     файл и строки #2
что является определением последовательности?
botwa
 Аватар для botwa
0 / 0 / 0
Регистрация: 12.10.2009
Сообщений: 22
21.12.2009, 01:55  [ТС]     файл и строки #3
в моём случае это просто арифметическая прогрессия

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

Добавлено через 48 минут
люди, помогите пожалуйста, не молчите!

Добавлено через 4 часа 6 минут
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
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
    ifstream f;
    int i, n, j;
    float *a, *b, *c;
    f.open("C:\abc.txt");
    f>>n;
    a=new float[n];
    b=new float[n-1];
    c=new float[n-1];
    for (i=0; i<n; i++)
    {
        f>>a[i];
        cout<<a[i]<<"\t";
    }
    for (i=0; i<(n-1); i++)
    {
        b[i]=a[i]-a[i+1];
    }
    j=0;
    for (i=0; i<(n-1); i++)
    {
        if a[i]=a[i+1]-b[j]
            then c[j]=(c[j]+1)
        else
        {
            j=j+1;
            i=j;
        }
    }
    f.close();
    delete []a;
    delete []b;
    delete []c;
    return 0;
}

вот что у меня вышло.
выдаёт ошибки: error C2061: синтаксическая ошибка: идентификатор "a" в строчке 22.
и error C2181: недопустимый else без парного if в 29.
не поняла в чёммоя поблема если честно.
что ему не нарвится?
предыдущие a нарвились, а в 22 не понарвился?
и что не так с if и else?
Yandex
Объявления
21.12.2009, 01:55     файл и строки
Ответ Создать тему
Опции темы

Текущее время: 06:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru