Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Открыть новую тему     Написать ответ в эту тему

de_lirium

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тема создана для накопления реализаций типовых задач на С/С++.
Прежде чем публиковать своё условие задачи, убедитесь, что её решение (или решение очень похожей задачи) в теме и полезных ссылках отсутствует (например воспользуйтесь ссылкой Версия для печати вверху справа страницы и поищите в ней).
Постарайтесь как можно полнее сформулировать постановку задачи (чтобы тому, кто решит вам помочь, не приходилось тратить своё время ещё и на выпытывание у вас деталей условия; если вам не понятно, как это сделать - постарайтесь представить, что эта программа у вас уже есть, и "поработать" с ней - вот все детали, которые при этом придут в голову, с большой вероятностью должны быть в условии задачи).
Если вы уже пытались сделать эту задачу, но у вас не получилось и вы хотите довести дело до конца - обязательно выложите результат своей попытки, предварительно убедившись, что ваш код компилируется.

Вопросы по технологиям лучше задавать тут.

Прежде чем просить помощи в задании...
Если позарез надо и вы даже готовы заплатить

Если вам вдруг не отвечают или ответ вас не устраивает, и вообще полезно прочитать всем спрашивающим.

Полезные ссылки:
 
C++: в том числе и решения задач (eng)
задачи на C
 
Проверить свою задачку можно:
Онлайн-компилятором Visual C++
godbolt
Wandbox
Одним из онлайн-компиляторов на ideone.com

Всего записей: 28 | Зарегистр. 23-07-2004 | Отправлено: 02:14 20-12-2004 | Исправлено: Daniyar91, 19:25 27-09-2017
optimized

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите пожалуйста написать пакет для обработки матриц, представленный в виде двумерных списков, операции удаление/добавление матриц, сложение/удаление, умножение матриц, умножение матрицы на число.
можно обычный список. или хотя бы добавление/удаление матриц напишите, не могу разобраться...

Всего записей: 125 | Зарегистр. 18-10-2008 | Отправлено: 19:01 26-05-2009
Fimogen



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите с матрицами...нужно написать решение слау методом простой итерации. реализовать шаблона класса матрицы, представляющий возможность к хранимым в ней элементам через оператор скобки () с двумя индексами, а также основные операции с ними - присваивание, умножение, сложение, вычитание, умножение на число. у конструктора два параметра  размеры по горизонтали и вертикали. индексация с нуля, хранение элементов в динамическом массиве..Решаемая слау это слау с матрицей Гильберта ( все значения меньше единицы) : u-1/10H=f , h(i,j)=1/i+j-1, f(i)= 1, i=1 и 0 если i не равно 1

Всего записей: 1 | Зарегистр. 04-11-2007 | Отправлено: 20:34 26-05-2009 | Исправлено: Fimogen, 20:34 26-05-2009
Dasha_lebeded



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите,ПОЖАЙЛУСТА!!!!  
 
В одномерном массиве,состоящем из n вещественных элементов,вычислить:  
1)максимальный по модулю элемент массива.  
2)сумму элементов массива,расположенных между первым и вторым положительными элементами.  
Преобразовать массив таким образом,чтобы элементы,равные нулю,располагались после всех остальных.

Всего записей: 7 | Зарегистр. 07-04-2009 | Отправлено: 21:24 26-05-2009
Andrey1187

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, пожалуйста, решить задачу.  
Дана строка символов, состоящая из произвольных десятичеых цифр, разделенных пробелами. Вывести на экран числа этой строки в порядке возрастания их значений.
Три дня ломаю голову, не могу понять, как перевести строковый тип в числовой.
Заранее благодарен

Всего записей: 1 | Зарегистр. 25-05-2009 | Отправлено: 18:56 27-05-2009
akaGM

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Andrey1187

Цитата:
Три дня ломаю голову...

"на пятый день Зоркий Сокол обнаружил, что четвёртой стены нет..."

Цитата:
, не могу понять, как перевести строковый тип в числовой.  

RTFM
смотри atoi(), atof() и всё вокруг...

Всего записей: 24037 | Зарегистр. 06-12-2002 | Отправлено: 19:41 27-05-2009
lichnosti2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как написать програму в С++ чтоб вывести ФАКТОРИАЛ

Всего записей: 8 | Зарегистр. 12-02-2009 | Отправлено: 02:09 28-05-2009
Prober

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lichnosti2009
Это классика жанра, во многих учебниках приводится в качестве примера использования рекурсии. Набери в Яндексе "Факториал на Си".

Всего записей: 679 | Зарегистр. 01-11-2006 | Отправлено: 10:39 28-05-2009
Rudia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lichnosti2009
Что-то типа такого
unsigned long fact(unsigned long i)
{
    if (i == 1) return 1L; else return (i * fact(i-1));
}

Всего записей: 324 | Зарегистр. 13-09-2006 | Отправлено: 10:46 28-05-2009
lichnosti2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ктото знает "функция Очистки всех элементов в С++"

Всего записей: 8 | Зарегистр. 12-02-2009 | Отправлено: 14:30 28-05-2009
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ктото знает "функция Очистки всех элементов в С++"

ну и вопрос )
без телепатии не обойтись.
если принять за очистку - обнуление - то м.б. memset()/ZeroMemory

Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 15:26 28-05-2009
lichnosti2009

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Для этой структуре надо написать функцию void clear()  // удаление всех элементов
Помогите  мне....  
 
#include<iostream.h>
#include<conio.h>
#include <stdlib.h>
 
    struct hairdresser {
    char vud[30];         // вид зачіски  
    float Price;                  // Ціна  
   char chas[30];             // Затрачений час
   
    } ;  
    
hairdresser arr[20];
int number=0;
 
void my_info();
void func_data();
void enter_data();
void exit_data();
void exit_all();
void exit_all_late();
void exit_number();
void delete_number();
void corection_name();
void corection_process(int num);
void rabota_s_procentom();
void yvelichenie_procenta();
void ymenshenie_procenta();
void sortirovka();
void sortirovka_ot_menshego_k_bolshemy();
void sravnenie();
void sredn_cena();
void clear()             // удаление всех элементов
int main()
{
    int vubor;
    
    for(;;)
    {main_metka:
        cout<<"Press 1:  to Work\n";
        cout<<"Press 2:  to Information\n";
        cout<<"Press 3:  to Exit\n";
        
        vubor=getch();
        
         if(vubor>'3'){cout<<"error"<<"\n";system("pause"); system("cls"); goto main_metka;break;}
         if(vubor=='1') {system("cls");func_data();}  
         if(vubor=='2'){system("cls"); my_info();}                    
         if(vubor=='3') {system("cls");break;}
    }
    cout<<"end.";
    getch();
    return 0;
}    
/////////////////////////////////////////////////////////////////
void my_info()
{cout<<"Vikonav:"<<"\n"<< "Yatsun GENYA"<<"\n"<<"Group KN-081"<< "\n";
     
     cout<<"--------------------------------------------\n"
         <<"press enter to return to main menu...";
  getch();
  system("cls");
     }    
//////////////////////////////////////////////////////////////////
void func_data()
{
char vubor;
func_data_metka:
  for(;;)
   {cout<<"Press:\n"
        <<"  Pres 1) to add"<<"\n"
        <<"  Pres 2) to delete"<<"\n"
        <<"  Pres 3) to end "<<"\n"
        <<"  Pres 4) poisk "<<"\n"
        <<"  Pres 0) Return on the main menu\n"
        <<"                               ";
       vubor=getch();
       if(vubor=='1'){system("cls"); enter_data();}  
        if(vubor=='2'){system("cls");delete_number();}  
         if(vubor=='3'){system("cls");exit_data();}  
          if(vubor=='4'){system("cls");corection_name();}  
             if(vubor=='0'){system("cls");break;}  
              if(vubor>'4'){cout<<"Error!!!"<<"\n";system("pause");system("cls"); goto func_data_metka;}
         
     }
     
    }
///////////////////////////////////////////////////////////        
void enter_data()
{
    cout<<"#"<<number+1<<"\n";
 
    cout<<"Enter a vud hairdresser: \n";
    gets(arr[number].vud);
   
    cout<<"Enter Price: \n";
   cin>>arr[number].Price;
        cout<<"Enter chas: \n";
   //cin>>arr[number].stat ;
   gets(arr[number].chas);
    
    number++;
        cout<<endl<<"#"<<number<<" comleat...\n";
            
           cout<<"press ENTER";  
    getch();
    
    system("cls");
    }
////////////////////////////////////////////////////////////
void exit_data()
{ char vubor;
 exit_data_metka:
    for(;;)
    {
        cout<<"Press:\n"
        <<"  1) View all\n"
        <<"  2) View all of the late\n"
        <<"  3) Viev one entries\n"
        <<"  4) work with procent\n"        
        <<"  5) sravnenie\n"
        <<"  6) sortirovka\n"
        <<"  7) vuvod sredn cena\n"
        <<"  0) Back\n";
      vubor=getch();
       if(vubor=='1'){system("cls"); exit_all();}  
        if(vubor=='2'){system("cls"); exit_all_late();}  
         if(vubor=='3'){system("cls"); exit_number();}
          if(vubor=='4'){system("cls");rabota_s_procentom();}  
           if(vubor=='5'){system("cls");sravnenie();}
            if(vubor=='6'){system("cls");sortirovka();}
            if(vubor=='7'){system("cls");sredn_cena();;}
             if(vubor=='0'){system("cls");break;}  
              if(vubor>'7'){cout<<"Error!!!"<<"\n";system("pause");system("cls");goto exit_data_metka;}
               
           
         
     }
    
}      
////////////////////////////////////////////////////////////
void exit_all()
{int max=number;
 for(int number=0; number<max; number++)
  {
     cout<<"#"<<number+1<<"\n";
     cout<<"  vud_hairdresser: "  <<arr[number].vud<<"\n";
     cout<<"  Price: " <<arr[number].Price<<"\n";
     cout<<"  chas "<<arr[number].chas<<"\n";
    
         cout<<"\n";  
  }
  cout<<"---------------------";
  cout<<"That's all."
      <<"\n"<<"press ENTER";
      getch();      
      system("cls");
    }
////////////////////////////////////////////////////////////
void exit_all_late()
{
int max=-1;
int save=number;
number--;
 for(; number>max; number--)
  {
     cout<<"#"<<number+1<<"\n";
     cout<<"  vud: " <<arr[number].vud<<"\n";
     cout<<"  Price: "<<arr[number].Price<<"\n";
     cout<<"  chas "<<arr[number].chas<<"\n";
    
             cout<<"\n";  
  }
  cout<<"---------------------";
  number=save;
  cout<<"end."
      <<endl<<"press ENTER";
      getch();      
      system("cls");
    }    
///////////////////////////////////////////////////////////////////
void exit_number()
{
    int num;
    label:
cout<<"Enter the number:  ";
cin>>num;
system("cls");
if(num<1 || num>number)
{
system("cls");    
cout<<"Error!!! \n"
    <<"you entered an incorrect number"
    <<"------------------------------";
    getch();
   system("cls");
   goto label;  
}    
cout<<"#"<<num<<"\n";
    cout<<"  vud: "<<arr[num-1].vud<<"\n";
    cout<<"  Price: "<<arr[num-1].Price<<"\n";
    cout<<"  chas: "<<arr[num-1].chas<<"\n";
             cout<<"\n";  
cout<<"---------------------";
     cout<<"end."
      <<endl<<"press ENTER";
      getch();      
      system("cls");    }
//////////////////////////////////////////////////////
void delete_number(){
int num;
    
cout<<"Enter the number spiska dlia ydalenia\n# ";
cin>>num;
system("cls");
 
 
    strcpy(arr[num-1].vud,arr[number-1].vud);
   arr[num-1].Price=arr[number-1].Price;
   arr[num-1].chas=arr[number-1].chas;
   
   number--;
   cout<<"The number of your poiska deleted.";
   getch();
   system("cls");
 
}    
void corection_name()
{int prov=0;
    int num;
    char vud[20];    
cout<<"Enter the name for corection:\n";    
gets(vud);
 for(int i=0;i<number;i++)
  {
     if(stricmp(arr[i]. vud,vud) == 0)
    
     {
         cout<<"The name is explored!!\npress ENTER to corect...\n";  
         prov=1;
         getch();
          
   num=i;
   system("cls");
   corection_process(num);
   break;
   
     }system("cls");    
 
     if(prov==0) cout<<"Your entered incorred name!\n";
     getch();
     system("cls");
}
 
 
system("cls");    
 
}
void corection_process(int num)
{char vubor;
corection_process_metka:
for(;;){
cout<<"Press:\n"
        <<"  1) Corection vud hairdresser\n"
        <<"  2) Corection Price\n"    
        <<"  3) Corection chas\n"
        <<"  4) Back\n"    ;
     
  vubor=getch();
       if(vubor=='1'){system("cls");cout<<"Enter a new vud hairdresser: \n";
           gets(arr[num].vud); }  
        if(vubor=='2'){system("cls");cout<<"Enter a new Price: \n";
        cin>>arr[num].Price; }          
          if(vubor=='3'){system("cls");cout<<"Enter a new chas: \n";
           gets(arr[num].chas); }  
           
            if(vubor=='4'){system("cls");return; }
            system("cls");
              if(vubor>'4')
               {cout<<"Error!!!"<<"\n";system("pause");system("cls");goto corection_process_metka;}
            cout<<"The number "<<num+1<<" is:\n"
    <<"  vud           "<<arr[num].vud<<endl
     <<"  Price         "<<arr[num].Price<<endl
     <<"  chas     "<<arr[num].chas<<endl
    
     <<endl;  
   
  cout<<"---------------------";
      cout<<endl<<"press ENTER to correct";
      getch();  
      system("cls");  
   }      
    }
/////////////////////////////////////////////////////////////
void rabota_s_procentom()
{int vvod;
 cout<<"Press 1 to yvelicheniya procenta"<<"\n";
 cout<<"Press 2 to ymensheniya procenta"<<"\n";
 rabota_s_procentom_metka:
 getch();
     if(vvod=='1'){system("cls"); yvelichenie_procenta();}
     if(vvod='2'){system("cls"); ymenshenie_procenta();}
      if(vvod=='2'){cout<<"error"<<"\n";
      system("pause");
      system("cls");
       goto rabota_s_procentom_metka;
       }
}
////////////////////////////////////////////////////////
void ymenshenie_procenta()
{int num;
 int procent;
 cout<<"Vvedite masiv v kotorom nahoditsachislovoe pole\n";
 cin>>num;
 cout<<"Na skol'ko % ymenshit' chislovoe pole"<<"\n";
 cin>>procent;
 arr[num-1].Price=arr[num-1].Price+(arr[num-1].Price/100*procent);
 cout<<"compleat";
 getch();
 system("cls");
}
/////////////////////////////////////////////////////////////
void yvelichenie_procenta()
{int num1;
 int procent1;
    cout<<"Vvedite masiv v kotorom nahoditsa"<<"\n"<<"chislovoe pole";
    cin>>num1;
    cout<<"Na skolko % yvelichit' chislovoe pole"<<"\n";
    cin>>procent1;
    arr[num1-1].Price=arr[num1-1].Price-(arr[num1-1].Price/100*procent1);
    cout<<"compleate";
    getch();
    system ("cls");
}
/////////////////////////////////////////////////////////////////////////
void sortirovka()
{hairdresser peremennaya;
 for(int i=0;i<number;i++)
  for(int j=0;j<number;j++)
    if(arr[j].Price>arr[i].Price)
{peremennaya=arr[j];    
arr[j]=arr[i];
arr[i]=peremennaya;
    }
    cout<<"Compleat"<<"\n";
    getch();
    system("cls");
    }
////////////////////////////////////////////////////////////////////////////////////
void sravnenie()
{int num;
 int num1;
 
cout<<"Vvedite nomera spiska dlya sravneniya "<<"\n";
cout<<"\n";
cout<<"Vvedite nomer pervogo spiska"<<"\n";
 
cin>>num;
cout<<"Vvedite nomer vtorogo spiska"<<"\n";
cin>>num1;
 cout<<"Spisok#"<<num<<" | Spicok#"<<num1<<"\n";
 cout<<"\n";
if(arr[num-1].Price>arr[num1-1].Price)
{cout<<"Price > Price"<<"\n";}
if(arr[num-1].Price<arr[num1-1].Price)
{cout<<"Price < Price"<<"\n";}
if(arr[num-1].Price==arr[num1-1].Price)
{cout<<"Price = Price"<<"\n";}
cout<<"\n";
cout<<"press any key to return the menu "<< "\n";
getch();
system("cls");
}
 
/////////////////////////////////////
void sredn_cena()  //ф-ция поиска средней цены
{float summa=0;
 
int kol=1;
 
    char name[20];    
    
cout<<"Enter the model prichosok:\n";    
gets(name);
 
 for(int i=0; i<number; i++)
  {
     if(stricmp(arr[i].vud,name)==0)
     {
         cout<<arr[i].vud<<" Price= "<<arr[i].Price<<"\n";
          summa+=arr[i].Price;
        kol++;
            
     }
 
    
      
 
}
    summa=summa/kol;
    cout<<"Srednia syma prichosok= "<<summa;
    getch();
    system("cls");  
}

Всего записей: 8 | Зарегистр. 12-02-2009 | Отправлено: 16:27 28-05-2009
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dasha_lebeded

Цитата:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <numeric>
#include <Windows.h>
#include <cmath>
 
bool modul(float a, float b)
{
    return fabs(a) < fabs(b);
}
 
int main()
{
    setlocale(LC_ALL,"Russian_Russia.1251");
    float arr[] = {-11.15f,0.0f,-8.23f,5.25f,-7.23f,0.0f,-8.54f,-8.22f,2.33f,2.35f,0.0f};
    std::cout << "Исходный массив:\n";
                  std::copy(arr, arr+ARRAYSIZE(arr),std::ostream_iterator<float>(std::cout," "));    
    std::cout << "\nМаксимальное значение по модулю: " <<  
                             *std::max_element(v.begin(),v.end(),modul) << std::endl;
    float *a = std::find_if(arr,arr+ARRAYSIZE(arr),std::bind2nd(std::greater<float>(),0.0f));
    float *b = std::find_if(a+1,arr+ARRAYSIZE(arr),std::bind2nd(std::greater<float>(),0.0f));
    float res = 0.0f;
    std::cout << "Сумма между 1-м и 2-м положительным числом: " <<  
                               std::accumulate(a+1, b, res, std::plus<float>()) << std::endl;
    std::fill(std::remove(arr,arr+ARRAYSIZE(arr),0),arr+ARRAYSIZE(arr),0.0f);
    std::cout << "Смещение нулей в конец массива:\n";  
    std::copy(arr,arr+ARRAYSIZE(arr),std::ostream_iterator<float>(std::cout," "));
    std::cin.get();
    return 0;
}
 


Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 16:59 28-05-2009 | Исправлено: mrherbrooks, 11:36 29-05-2009
Dasha_lebeded



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите,плиииизззззз!Хочу экзамен автоматом!Но для этого нужно решить 3 задачи!Помогите,хотя бы какую знаете!
 
1)Соседями элемента Аij в матрице назовем элементы Аkl с i-1<=k<=i+1,j-1<=1<=j+1,(k,l)не =(i,j).Операция сглаживания матрицы дает новую матрицу того же размера,каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.Построить результат сглаживания заданной вещественной матрицы размером 10 на 10.
В сглаженной матрице найти сумму модулей элементов,расположенных ниже главной диагонали.
 
2)Написать программу,которая считывает текст из файла и выводит на экран только предложения,состоящие из заданного количества слов.
 
3)В одномерном массиве,состоящем из n вещественных элементов,вычислить:  
1)максимальный по модулю элемент массива.  
2)сумму элементов массива,расположенных между первым и вторым положительными элементами.  
Преобразовать массив таким образом,чтобы элементы,равные нулю,располагались после всех остальных.
 
За ранее спасибо!!!

Всего записей: 7 | Зарегистр. 07-04-2009 | Отправлено: 17:05 28-05-2009
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
3)В одномерном массиве,состоящем из n вещественных элементов,вычислить:  
1)максимальный по модулю элемент массива.  
2)сумму элементов массива,расположенных между первым и вторым положительными элементами.  
Преобразовать массив таким образом,чтобы элементы,равные нулю,располагались после всех остальных.  

я тебе же ответ уже выше написал блин

Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 17:28 28-05-2009
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
2)Написать программу,которая считывает текст из файла и выводит на экран только предложения,состоящие из заданного количества слов.

здесь много подходов. к примеру можно считать число пробелов в предложении. предложение заканчивается точкой. вот самый простой вариант:

Цитата:
 
std::ifstream ifile("text.txt");
std::string str;
if (ifile)
{
 int count = 5; //то бишь в предложении 5 слов. 1 - й пробел считаем отступом.
 while(getline(ifile,str,'.'))
 {
   if (std::count(str.begin(),std.end(),' ') == count) std::cout << str << std::endl;
 }
}
else std::cout << "not open file";
 

Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 12:20 29-05-2009
Raimir

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи прграммеры помогите новенькому ПЛИЗ!!!!Лето...зачеты...
Итак проблема в том что я не могу эту прогу раскидать по файлам..то есть именно функцию GetEXAM(TObject *p,int exm).count как видите я объявил глобально шоб и для main было видно но когда отделяю функцию в Function.h то одни траблы..где я только не пробовал этот count ставить - ниче. extern и volatile тоже не помогают..объясните пожалуйста чайнику че тут не так то есть куда и с чем присунуть этот count???
 
вот исходник:
 
#include <iostream.h>
#include <string.h>
#include <typeinfo>
int count = 0;
int c=0;
 class TObject {
                public: virtual void Show() = 0;
            };
        
 struct Titem {
               TObject *Item;
           Titem *next;
           };
 class TGroup : public TObject
               {
            protected : Titem *tp;
                    char *sname;
        public:      
                    TGroup (char *snm);
                TGroup (TGroup&);
                virtual ~TGroup();
                virtual void Show () = 0;
                char* GetName();
                void SetName(char *snm);
                void Insert (TObject* obj);
        };
        
  TGroup :: TGroup (char *snm){ tp =0;
                                sname = new (char[30]);
                strcpy (sname,snm);
                  }
  TGroup :: ~TGroup () {free(tp);}
  char* TGroup :: GetName () {cout<<sname<<endl;}
  void TGroup :: SetName (char* snm) {strcpy (sname,snm);}
  void TGroup :: Insert (TObject* obj)
                                      {
                       Titem *p;
                       if (tp == 0)
                           {
                        tp = new(Titem);
                        tp->next=0;
                        tp->Item = obj;
                        }
                    else
                        {
                         p = new(Titem);
                         p = tp;
                         while (p->next!=0) p=p->next;
                         p->next=new(Titem);
                         p=p->next;
                         p->Item=obj;
                         p->next=0;
                         }
                    }
                    
   typedef void (*PF)(TObject* ,int);
   
  class Student : public TGroup{
                                protected : int exam;
                public:      
                            Student(char* snm,int exam);
                        Student(Student &ST);
                        virtual ~Student();
                        void Show();
                        int GetExam();
                        void SetExam(int ex);
                        void ITERAT (PF action,int ex);
                };
                
    Student :: Student (char* snm,int ex) : TGroup(snm) { exam = ex;}
    Student :: ~Student () {}
    void Student :: Show(){ cout<<"Студент : "<<sname<<"\nЭкзаменов сдал: "<<exam<<endl;}
    int Student :: GetExam() {return exam;}
    void Student :: SetExam(int ex) {exam = ex;}
    void Student :: ITERAT (PF operation,int ex)
                                               {
                            Titem* p;
                        p = new (Titem);
                        p = tp;
                        while (p!= NULL)
                           {
                            operation(p->Item,ex);
                            p = p->next;
                            }    
                            }
    
     
   class Expirience: public TObject {
       protected :
                  char *name;
          int quiz,time;
          Expirience *next;
          static Expirience *begin;
       public:
                  Expirience ();
          Expirience (char* e, int qu,int t);
          ~Expirience ();
          void Insert();
          static void Print();
          virtual void Show() = 0;
          };
 
   Expirience* Expirience :: begin = 0;
   Expirience :: Expirience ()  
                  {
           name = new (char [30]);
           quiz = 0;
           time = 0;
           };
   Expirience :: Expirience (char* e,int qu,int t)
                  {
           name = new (char[30]);
           strcpy(name,e);
           quiz = qu;
           time = t;
           }
   Expirience :: ~Expirience ()
                  {
           free(name);
           }
   void Expirience :: Insert()
                  {
           bool flag;
           Expirience *p;
           flag = false;
           if (begin == 0)
            {
             begin = this;
             next = 0;
             }
             else
              {
               p = begin;
               while (p->next!=0)
                {
             if(p==this)
              {
               flag = true;
               break;
               }
             p = p->next;
             }
             if (flag==false)
              {
               next = 0;
               p->next = this;
               }
               }
            }
   void Expirience :: Print ()
                    {
             Expirience *p;
             if(begin!=0)
              {
               p=begin;
               cout <<"-----------------Список предметов----------------\n";
               while(p!=0)
                {
             cout<<p->name<<endl;
             p = p->next;
            }
               cout <<"-------------------------------------------------\n";
               }
             }                                                                                                                   
     class Examine : public Expirience {
                     protected: char* stud;
                        int tick;
             public   : Examine();
                        Examine(char* e,int qu,int t,int ti,char* s);
                ~Examine();
                void Show();
                void Get();
                         };                                                                       
    Examine :: Examine () {stud = new(char[30]);}
    Examine :: Examine (char* e,int qu,int t,int ti,char* s) : Expirience (e,qu,t) {stud = new(char[30]);
                                                                           strcpy(stud,s);
                                                    tick = ti;        
                                                                           }
    Examine :: ~Examine () {free(stud);}
    void Examine :: Show() {cout<<name<<endl;}
     
                       
    void GetEXAM (TObject *p,int exm)
         {
          if (typeid(*p)==typeid(Examine)){
             ((Examine*)p)->Show();
             c++;
             if (c==3){
              c=0;
              count++;
              }        
            }
          if (typeid(*p)==typeid(Student))
           {
            cout<<"\n----------------Студент------------------\n";
            ((Student*)p)->Show();
            cout<<"Экзаменов не сдано : "<<exm-(((Student*)p)->GetExam())<<"\n";
            cout<<"Сдавшие экзамены : \n";
                ((Student*)p)->ITERAT(GetEXAM,3);
            cout<<"-----------------------------------------\n\n";      
           }
            
         };
            
 
    int main()
       {
        PF fp = GetEXAM;
        Examine inf("ИНФОРМАТИКА",5,120,30,"Все"), mat  ("МАТЕМАТИКА",6,45,60,"10"), fhys("ФИЗИКА",3,45,100,"5");
        Student Gr("Группа 37A",4),st1("Иванов В.С.",3), st2("Петров А.А.",2), st3("Андреев С.Н.",2), st4("Сидоров С.М.",1), st5("Козырев Н.П.",3),st6("Корнев Ж.Н.",1);
        st1.Insert(&inf);
        st1.Insert(&mat);
        st1.Insert(&fhys);
        st2.Insert(&mat);
        st2.Insert(&fhys);
        st3.Insert(&mat);
        st3.Insert(&inf);
        st4.Insert(&inf);
        st5.Insert(&mat);
        st5.Insert(&fhys);
        st5.Insert(&inf);
        Gr.Insert(&st1);
        Gr.Insert(&st2);
        Gr.Insert(&st3);
        Gr.Insert(&st4);
        Gr.Insert(&st5);
        Gr.ITERAT(fp,3);
        cout<<"\n"<<count<<" студента не сдали свои экзамены до конца!!!\n";
        return 0;
    };    
            
 
вот мейкфайл
 
#makefile
 
make: main.cpp Expirience.o Examine.o TGroup.o Student.o  
    g++ Expirience.o Examine.o TGroup.o Student.o main.cpp -o EXE
expirience: Expirience.h Expirience.cpp
    g++ Expirience.cpp -c
examine: Examine.h Examine.cpp
    g++ Examine.cpp -c
tgroup: TGroup.h TGroup.cpp
    g++ TGroup.cpp -c
student: Student.h Student.cpp
    g++ Student.cpp -c
clr: *.o
    rm *.o
 
                           

Всего записей: 3 | Зарегистр. 29-05-2009 | Отправлено: 12:53 29-05-2009 | Исправлено: Raimir, 15:09 30-05-2009
lGonl

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется лестница, состоящая из N ступенек. При подъеме по лестнице заяц может прыгать на любое количество ступенек от 1 до K. Сколько у зайца способов подъема по лестнице?  
Ввод из файла INPUT.TXT. Единственная строка содержит целые положительные числа N и K.
Ограничения: 1 < N < 35

Код:
 
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
 
long int n, k, ch, ways, i, j;
 
//Процедура подсчета путей зайца
int findways(int n, int k)
{
    int *s = (int *)calloc(n + 1, sizeof(int));
 
    //заполняем массив нулями
    memset(s, 0, n + 1);
 
    //начальные случаи
    s[0] = 1;
    s[1] = 1;
    printf("%d \n", n);
    if (k <= 1 || n <= 0)
        return 1;
    else
        for (i = 2; i < n + 1; i++)
            /* количество путей для данного i равно сумме количеств путей
            для k предыдущих i или для всех i, если i - k < 0 */
            for ((i - k < 0) ? (j = 0) : (j = i - k); j < i; j++)
            s[i] += s[j];
 
    ways = s[n];
    free(s);
 
    return ways;
}
 
int main(void)
{
    //Создание и проверка на существование файлов
    FILE *IFile, *OFile;
    if((IFile = fopen("Input.txt", "r")) == NULL)
    {
        printf("Can't open Input file.\n");
        return 1;
    }
    if((OFile = fopen("Output.txt", "w")) == NULL)
    {
        printf("Can't open Output file.\n");
        return 1;
    }
 
    //Считывание значений из файла
    fscanf(IFile, "%d %d", &n, &k);
 
    if (n > 35)
    {
        printf("not correct n \n");
        fprintf(OFile, "not correct n");
    }
    else
    {
        //Запись получившегося значения путей в файл и закрытие файлов
        fprintf(OFile, "%d", findways(n, k));
        printf("%d \n", findways(n, k));
    }
    fclose(IFile);
    fclose(OFile);
 
    return 0;
}
 

 
Задачу я сделал, даже думал что все хорошо, но преподаватель заброкавал. При тесте Х=35 К=7(и больше) у меня программа выводит не правельный результат, т.к. получившееся значение не помещается в 32 бита.
 
Не могли бы помочь с длинной арефметикой к данной программе ? Или другим способом с ее решением.
 
Например, N=35 K=13 в выводит Output: -1886316324.
 
ПСы unsigned long int тоже нехватает, низнаю хватит ли long double, т.к. не могу под нее переделать прогу.

Всего записей: 1 | Зарегистр. 31-05-2009 | Отправлено: 21:23 31-05-2009 | Исправлено: lGonl, 21:24 31-05-2009
mrherbrooks



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lGonl
для начала рекомендую использовать безнаковый тип - unsigned long
если не хватит - заюзай unsigned __int64

Всего записей: 129 | Зарегистр. 23-08-2008 | Отправлено: 09:59 01-06-2009 | Исправлено: mrherbrooks, 10:00 01-06-2009
LuckyStrike



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Дана матрица произвольного размера, найти максимальную сумму по столбцам....плизз решение написать для начинающего пользовотеля, с помощью циклов и условий

Всего записей: 78 | Зарегистр. 10-12-2008 | Отправлено: 14:20 02-06-2009
Marinarr



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
мне очень нужна помощь в Visual C++. Задачи не сложные, но я совсем язык не знаю.
1)написать процедуру поиска всех делителей заданного числа и их сумму  
2)определить факториал числа N. оформить в виде функции.  
3)с клавиатуры вводится последовательность целых чисел, заканчивающихся 0. определить, является ли последовательность убывающей. оформить в виде функции.  
4)составить программу для графического изображения делимости чисел от 1 до N. в каждой строке напечатать само число и столько плюсов, сколько делителей у числа.  
 Напр.:     N =...
                1+  
                2++  
                3+++  
                4+++  
оформить в виде процедуры.  
 Очень буду благодарна за помощь.  
 Можно по почте marina.rr@mail.ru.

Всего записей: 2 | Зарегистр. 01-06-2009 | Отправлено: 17:17 02-06-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru