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

Требуется консультация по АйСиКью прямо сейчас - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычисление суммы ряда на с http://www.cyberforum.ru/cpp-beginners/thread208070.html
Помогите, пожалуйста, с решением задачи на языке С! Никак не могу сделать(
C++ сортировка матрицы методом выбора! нужно произвести сортировку матрицы методом выбора(по возрастанию)!! для массива могу это сделать, а для матрицы не полуается! буду благодарен если кто поможет! http://www.cyberforum.ru/cpp-beginners/thread208067.html
Напечатать все слова в алфавитном порядке C++
Дана строка s, содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв. Между соседними словами стоит запятая, за последним словом - точка. Напечатать все слова в алфавитном порядке
Передача двумерного массива в функцию. C++
Требуется написать функцию которая бы слагала и умножала матрицы. Для этого Я завел двумерный динамический массив, а вот с передачей его в функцию у меня туговато. Просьба помочь, то есть требуется просто пример, где бы двумерный динамик массив передавался в функцию. #include <iostream> #include <math.h> #include <time.h> #include <cstdlib> using namespace std; int shape(int** x, int** y);...
C++ бинарными деревьями как динамическая структура данных http://www.cyberforum.ru/cpp-beginners/thread208035.html
Суть задачи в следующем. Необходимо реализовать бинарное дерево как динамическую структуру данных. Помимо стандартных функций созджания 1 элемента и распечатки дерева необходимо написать функцию добавления новогно элемента в дерево. В узле дерева находится строка. Ещё про функцию добавления. Узел дерева должен содержать либо данные либо * , как указатель на то что у дерева сущетвуют ещё 2...
C++ Приведение типов Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования делаю перегрузкой типов A и B. Реализацию неявного преобразования делаю перегрузкой оператора "=". Есть следующий момент: при реализации неявного преобразования this передаётся на A в случае вызова его объектом типа A, и на B, в случае вызова его объектом B.... подробнее

Показать сообщение отдельно
dido11
0 / 0 / 0
Регистрация: 06.05.2010
Сообщений: 4
11.12.2010, 01:58  [ТС]     Требуется консультация по АйСиКью прямо сейчас
Закончил программку, оцените плз, на сколько всё убого?
Ещё раз подчеркну, что это первый раз работы на Срр, то есть я открывал гугл, вбивал, к примеру, "работа со строками С++" или там "for в С++" и так вот делал.
Просто укажите на конкретные косяки в этом коде, не тыкая в то что, возможно, стоило делать всё иначе.
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
#include <cstdlib>
#include <iostream>
#include <cstring>
 
using namespace std;
 
char MainStr[100] = "qwtrrtytweqwtwrertwerqwteqrweyqwerwterererqetwerqywrerrqywertqwrtqwrreqywterr";
char Str[100] = "terer";
int i,j,k,l,m,n,index;
int LenMainStr;
int LenStr;
 
 
 
int main(int argc, char *argv[])
{
LenMainStr=strlen(MainStr);
LenStr=strlen(Str);
 
 
for (i=1;i<=LenStr&&i!=0;)
{
     cout<<MainStr<<endl<<Str<<endl;     //Выводит главную строку (MainStr) и искомую строку (Str)                     
     if (MainStr[strlen(Str)-i]==Str[strlen(Str)-i])   //Если последний символ главной строки и последний символ искомой строки совпали...
     {
          cout<<MainStr[strlen(Str)-i]<<"="<<Str[strlen(Str)-i]<<endl;   //То показывает, что они совпали...
          i++;                                                           //И сравнивает следующий (предыдущий) символ
     }
     else                                                                //Иначе
     {
          cout/*<<"i= "<<i<<endl*/<<MainStr[strlen(Str)-i]<<"=/="<<Str[strlen(Str)-i]<<endl;   //Показывает, что они не совпали
          //i=0;
          if (i==1)                                                                            //Если не совпал 1ый символ
          {          
               //cout<<"MainStr[strlen(Str)-i]= "<<MainStr[strlen(Str)-i]<<endl;             
               m=0;                                                                            //Счётчик будующих звёздочек
               //cout<<strlen(Str)-i<<endl<<strlen(Str)-i-LenStr<<endl;
               //for (n=strlen(Str)-i;n>strlen(Str)-i-(LenStr-1);n--)
               n=strlen(Str)-i;                                                 //Возвращает индекс несовпавшего символа
               do                                                               //Проверяет вхождение несовпавшего символа в искомую строку
               {                                                                //
                   //cout<<"!"<<endl;                                           //
                    if (MainStr[strlen(Str)-i]!=Str[n])                         //Если несовпавший символ главной строки не равен Nному
                    {                                                           //символу искомой строки
                         //cout<<"Str[n]= "<<Str[n]<<endl;                      //                      
                         m=m+1;                                                 //То счётчик звёздочек возрастает
                         //cout<<"m= "<<m<<endl;                                //
                    }                                                           //
                    n--;                                                        //Счётчик N уменьшается, чтобы провериь следующий (предыдущий) символ
               }                                                                //искомой строки
               while (n>strlen(Str)-i-LenStr&&MainStr[strlen(Str)-i]!=Str[n]);  //Пока не проверит все символы искомой строки, либо не найдёт            
          }                                                                     //совпадения
          else                                                                                  //Если-таки совпал не 1ый эл-нт
          m=1;                                                                                  //Ниже добавляется только 1 звёздочка
          
          for (j=1;j<=m;j++)                                           //Добавляет определённое кол-во звёздочек в начало искомой строки
          {                                                            //
               for (k=strlen(Str); k>=0;k--)                           //
               Str[k+1]=Str[k];                                        //
               Str[0]='*';                                             //
               //cout<<Str<<" "<<"strlen "<<strlen(Str)<<endl;         //
               i=1;                                                    //
               index=index+1;                                          //
               //system("PAUSE");                                      //
          }
    
     }
   
}
 cout<<"Matching found, it's index= "<<index<<endl;  
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Забыл добавить, это как бы упрощённый Алгоритм поиска Бойера-Мура, без таблицы суффиксов
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru