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

"Словесная игра" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление файлов из каталогов http://www.cyberforum.ru/cpp-beginners/thread116206.html
Помогите написать программу, которая позволяет удалять из каталога =(( Вот надо сначало создать директорию, а потом удалить какойнибудь файл :( HANDLE CreateFile ( LPCTSTR FileName, // имя файла DWORD Access, // тип доступа к файла DWORD Sharing, // тип разделения файла LPSECURITY_ATTRIBUTES Attrib, // указатель на описатель защиты DWORD CreationDistr,
C++ Умножение двух матриц 1000х1000 Ребят помогите пожалуйста. Надо умножить две матрицы 1000*1000. Обьявил их как int а мне пишет что они слишком большие. http://www.cyberforum.ru/cpp-beginners/thread116199.html
C++ Качественные детали
Добрый день. Помогите мне кто-нибуть с этим заданием: В отдел технического контроля поступило M однотипных деталей цилиндрической формы, диаметры которых D1, D2 ,..., Dm. Деталь, соответствующую норме, должна иметь диаметр C = 3. Из всех деталей необходимо отобрать качественные. Решение вывести в две строки. В первой напечатать текст "Диаметры качественных деталей:", во второй - напечатать...
как написать прогу котороя находит площадь поверхности цилиндра C++
Подскажите как написать прогу котороя находит площадь поверхности цилиндра по радиусу и высоте
C++ Подскажите как решить на С++ http://www.cyberforum.ru/cpp-beginners/thread116137.html
1 Даны натуральное число n, целые числа A0, ..., An-1. Получить сумму положительных и число отрицательных чётных элементов последовательности A0, ..., An-1 2 Дан массив действительных чисел A. Получить новый массив D={A1*A16, A2*A17, A3*A18, ..., A15*A30} 3 Заданы двумерный массив 5х5 и число К. Разделить элементы К-й строки на диагональный элемент, расположенный в данной строке. 4 Дан...
C++ C++ и STL (раскритикуйте мою первую прогу) Много всего делал на си а вот на С++ кроме калькулятора в Builder ничего. Вот написал такую прогу, которая анализирут текстовый файл и выдает информацию какое слово сколько раз встречается в тесте. Принцип следующий - обявляется Dictionary в котором "массив", "индексы" которого это слова, а значения - это как часто они встречаются в тексте. В конце этот "массив" печатается. Алгоритм вычитан в... подробнее

Показать сообщение отдельно
R@nDoM
0 / 0 / 0
Регистрация: 13.04.2010
Сообщений: 4
15.04.2010, 19:47  [ТС]     "Словесная игра"
Вот то что получилось у меня, проблема в том что функция перестановок у меня не правильная.
Нужно генерировать перестановки не только из того количества букв которые дали ,но и с меньшим кол-вом.
Поясню
пользователь ввел буквы а б в г д
программа будет генерировать перестановки со всеми буквами сразу.
а нужно чтобы генерерировало с
а б в г д
а б в г
а б в
в г д
и так далее...
как это реализовать не могу понять .
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <conio.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
 FILE *in,*word,*slova;
 int n1;
 char *a = new char[n1];
//---------------------------------------------------------------------------------------------------------------   
int scoreg(char *symbs)//функция которой мы передаем слово оно выдает кол-во очков
{
    int score=0,o=0;
    char y;
    y=symbs[0];
    while (y!=NULL)
    {   y=symbs[o];
        switch(y)
                {
                    case 'а':score=score+1;break;
                    case 'б':score=score+4;break;
                    case 'в':score=score+3;break;
                    case 'г':score=score+4;break;
                    case 'д':score=score+3;break;
                    case 'е':score=score+1;break;
                    case 'ж':score=score+5;break;
                    case 'з':score=score+5;break;
                    case 'и':score=score+1;break;
                    case 'й':score=score+5;break;
                    case 'к':score=score+1;break;
                    case 'л':score=score+1;break;
                    case 'м':score=score+1;break;
                    case 'н':score=score+1;break;
                    case 'о':score=score+2;break;
                    case 'п':score=score+2;break;
                    case 'р':score=score+2;break;
                    case 'с':score=score+2;break;
                    case 'т':score=score+2;break;
                    case 'у':score=score+5;break;
                    case 'ф':score=score+7;break;
                    case 'х':score=score+7;break;
                    case 'ц':score=score+8;break;
                    case 'ч':score=score+8;break;
                    case 'ш':score=score+9;break;
                    case 'щ':score=score+9;break;
                    case 'ъ':score=score+9;break;
                    case 'ы':score=score+9;break;
                    case 'ь':score=score+9;break;
                    case 'э':score=score+6;break;
                    case 'ю':score=score+6;break;
                    case 'я':score=score+5;break;
            }
                y=symbs[o];
                o++;
    }
    return score;
}
//----------------------------------------------------------------------------------------------------------------------------
void per(char *s,int n)//рекурсивная функция перестановок
 {
     int d;
     int i,j;
     if(n>1)
     {
        per(s,n-1);
        for(i=n-1;i>=1;i--)
        {   
            d=s[n-1];
            s[n-1]=s[i-1];
            s[i-1]=d;
            per(s,n-1);
            d=s[n-1];
            s[n-1]=s[i-1];
            s[i-1]=d;
        }
     
     }
     else
     {
         for(j=1;j<=n1;j++)
         {if (s[j-1]<=-81)fprintf(in,"%c",320+s[j-1]);
          if (s[j-1]>-81)fprintf(in,"%c",272+s[j-1]);
         }
         fprintf(in,"\n");
     }
 }
//----------------------------------------------------------------------------
int main(void)// Главная функция;
{
setlocale (LC_ALL,"RUS");
cout<<"Введите кол-во букв: ";
cin>>n1;
cout<<"Введите буквы: ";
for(int i=0;i<n1;i++)
cin>>a[i];  
in=fopen("combinations.txt","w");
per(a,n1);
fclose(in);
//----------------------------------------------------------------------------------
in=fopen("combinations.txt","r");
slova=fopen("slova.txt","w");
//-------------------------------------------------------------------------------
char *str,*str1,*str2;
int g;
str=new char [50];
str1=new char [50];
str2=new char [50];
//-----------------------------------------------------------------------------
while(!feof(in))//проверяем все перестановки на "слово" и пишем в файл slova.txt
{
   fscanf(in,"%s",str1);
   word=fopen("word.txt","r");
   fscanf(word,"%s",str2);
   while(!feof(word))
    {
        if(strcmp(str1,str2)==0) {fprintf(slova,"%s",str1);fprintf(slova,"\n");}
         fscanf(word,"%s",str2);
     
   }
fclose(word); 
}
fclose(slova);
slova=fopen("slova.txt","r");
//----------------------------------------------------------------------------
while (!feof(slova))//считаем стоимость слов.
{fscanf(slova,"%s",str);
cout<<str<<"\n";
g=scoreg(str);
cout<<g<<"\n";
}
//-----------------------------------------------------------------------------
//закрытие файлов
fclose(slova);
fclose(in);
}
 
Текущее время: 22:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru