Задача: Обработка символьных данных[последовательность символов]

Тема в разделе "C/C++/C#", создана пользователем Miller85, 13 ноя 2010.

Статус темы:
Закрыта.
  1. Miller85

    Miller85 Гость

    Все задания решил в контрольной, но в этой тупанул конкретно... Не могу и всё... Задание такое... Выяснить, совпадает ли группа символов с начальным отрезком ряда 0123456789...
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Подробнее
     
  3. Miller85

    Miller85 Гость

    Вот такое задание... Всё что написано... я тоже не понял
     
  4. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Слово "начальный отрезок" - тут обозначает, что введенная пользователем последовательность должная быть началом последовательности. Ну я так думаю :) Других идей нет.
    Код (C++):
    /*
    ... Выяснить, совпадает ли группа символов с начальным отрезком ряда 0123456789...
    */

    /*
    codeby.net
    Autor: DarkKnight125
    */

    #include <iostream>
    using namespace std;

    void main(void)
    {
    char Str[4096]; //Вводима строка
    char Iskom[4096]={0}; //Искомая последовательность
    char Buffer[128]; //Буферная строка для перевода из int To char*
    setlocale(LC_ALL,"Russian");
    cout<<"Введите свою строку(последовательность чисел) : "<<endl;
    gets(Str);
    for (int i=0; strlen(Iskom)<strlen(Str);i++) //Обойдем все числа от 0..до того момента пока длина искомой послед. строки не достигнит длины строки введенной
    {
    itoa(i,Buffer,10); //Переведем int в char*
    strcat(Iskom,Buffer); //Объединим строки
    }
    char *Result = strstr(Iskom,Str); //Введем указатель на субстроку (можно и без него) Result = Iskom (Если субстрока совпадает с началом)

    if (Result == Iskom)
    cout<<"Строка '"<<Str<<"' "<<"является началом последовательности '"<<Iskom<<"...'"<<endl;
    else
    cout<<"Строка '"<<Str<<"' "<<"не является началом последовательности '"<<Iskom<<"...'"<<endl;
    }
     

    Вложения:

    • z39117.jpg
      z39117.jpg
      Размер файла:
      63,9 КБ
      Просмотров:
      113
  5. Miller85

    Miller85 Гость

    Большое спасибо...
     
  6. Miller85

    Miller85 Гость

    Чо то у меня не работает...Выдает ошибки
     
  7. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Какие ошибки именно?
    В какой среде пишишь?
     
  8. Miller85

    Miller85 Гость

    Borland C++ 3.1 for DOS

    Ошибки вот такие

    1.jpg
    2.jpg

    В #include<iostream.h> Разве не надо h?
     
  9. Miller85

    Miller85 Гость

    Всавил как и написал вот этот код

    Код (C++):
    #include <iostream>
    using namespace std;

    void main(void)
    {
    char Str[4096]; //Вводима строка
    char Iskom[4096]={0}; //Искомая последовательность
    char Buffer[128]; //Буферная строка для перевода из int To char*
    setlocale(LC_ALL,"Russian");
    cout<<"Введите свою строку(последовательность чисел) : "<<endl;
    gets(Str);
    for (int i=0; strlen(Iskom)<strlen(Str);i++) //Обойдем все числа от 0..до того момента пока длина искомой послед. строки не достигнит длины строки введенной
    {
    itoa(i,Buffer,10); //Переведем int в char*
    strcat(Iskom,Buffer); //Объединим строки
    }
    char *Result = strstr(Iskom,Str); //Введем указатель на субстроку (можно и без него) Result = Iskom (Если субстрока совпадает с началом)

    if (Result == Iskom)
    cout<<"Строка '"<<Str<<"' "<<"является началом последовательности '"<<Iskom<<"...'"<<endl;
    else
    cout<<"Строка '"<<Str<<"' "<<"не является началом последовательности '"<<Iskom<<"...'"<<endl;
    }
    Language: cpp
     
  10. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Версия Borland C++ 3.1 for DOS просто, в ряду своей старости, долека от стандартов принятых в C++ и STL, из-за этого у тебя и возникают такие ошибки...

    Делаешь так:
    #include <iostream> заменяешь на #include <iostream.h>
    using namespace std; //Комментируешь , пространство имен 3.1 - не понимает
    добисываешь на свякий пожарный
    #include <conio.h>
    #include <stdio.h>
    #include <string.h> //Обязательно, т.к. со строковыми ф-ями работает

    setlocale(LC_ALL,"Russian"); //Убираешь, т.к. у тебя все будет в кодовой страницы .866 (и код и вывод)
    После этого должно все работать, если же нет

    P.S. Советую вам использовать другой компилятор и другую среду
     
  11. Miller85

    Miller85 Гость

    Блин... 2 ошибки ещё

    1.jpg



    Что значит using namespace std;\\Комментируешь?

    Какоой компилятор и другую среду посоветуете?
     
  12. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Добавь еще
    Код (C++):
    #include <stdlib.h>
    А закомментировать - это значит удалить вообще))) Или:
    Код (C++):
    //using namespace std;
    Добавлено: Ну если по Windows, то какую-нить версию Visual C++ (начиная от 6.0), хотя опять же на любителя... Но стандарты все соблюдены ;-)
     
  13. Miller85

    Miller85 Гость

    Поставил 10-ую visual... когда вводишь данные в doс окне, то ответ не выдает, а вылетает,пишет следущее:


    "проект2.exe": Загружено: "C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2010\Projects\проект2\Debug\проект2.exe", Символы загружены.
    "проект2.exe": Загружено: "C:\WINDOWS\system32\ntdll.dll", Невозможно найти или открыть файл PDB
    "проект2.exe": Загружено: "C:\WINDOWS\system32\kernel32.dll", Невозможно найти или открыть файл PDB
    "проект2.exe": Загружено: "C:\WINDOWS\system32\msvcp100d.dll", Символы загружены.
    "проект2.exe": Загружено: "C:\WINDOWS\system32\msvcr100d.dll", Символы загружены.
    Программа "[404] проект2.exe: Машинный код" завершилась с кодом 0 (0x0).
     
  14. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Уже писал в прошлом сообщении ;-))
    Это не вылетает, а завершается нормально ;-)))
    Компилируй с Ctrl+F5 и все будет Ok :)
     
  15. Miller85

    Miller85 Гость

    Всё! Спасибо!разобрался! Про задержку забыл...
     
  16. Miller85

    Miller85 Гость

    Еще в одной не могу разобраться! Вот код не могу понять где ошибка ответ при х=0.5 Должен быть 2.6719е+00. Но у меня почему-то вводится за место 0,5- 0. Вроде бы и оператор тот или надо double ставить?

    Код (C++):
    #include<iostream>
    #include<iomanip>
    #include<math.h>
    #include <stdio.h>
    using namespace std;
    void main()
    { setlocale(LC_ALL,"Russian");
    float x,y,z;
    for(int i=0;i<3;i++)
    {cout<<"Введите x=";
    cin>>x;
    z=3*sin(2*x);
    if(z<0) y=1.5*pow(abs(z*z+sin(z)),1/3);
    if(z==0) y=sin(x)/(sqrt(abs(x+1)));
    if(z>0) y=2*(log(z)/log(2.0));
    cout<<"При х="<<x;
    cout.setf(ios::scientific,ios::floatfield);
    cout<<"Результат y="<<setprecision(4)<<y<<endl<<endl;
    getchar();
    cout.setf(0,ios::floatfield);}

    cout<<"Конец программы. Нажмите enter"<<endl;

    }
     
  17. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Вот это место сделай как
    Код (C++):
    double x,y,z;
    У тебя потери при приобразование в том месте где abs -используется
     
  18. Miller85

    Miller85 Гость

    Кстати по поводу обработки символьных данных... Там надо было что бы допустим если вводим abc0123. то он является отрезком 0123456789 т.к 0123 отрезок 0123456789... А если a0b1c2 то нет... Вот щас над этим голову ломаю :what?:
     
  19. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Miller85, Миллер, а кинь ссылку на топик про который говоришь... Я гляну ;-)

    З.Ы. Ничего не знаю, с тебя ящик того что у тебя на логотипе ;-))) Пол мне, пол - lazybiz ;-)
     
Загрузка...
Похожие Темы - Задача Обработка символьных
  1. Янчик
    Ответов:
    0
    Просмотров:
    489
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    782
  3. elzim
    Ответов:
    0
    Просмотров:
    932
  4. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.125
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.107
Статус темы:
Закрыта.

Поделиться этой страницей