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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
FireZone

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reddestfox
Твоя ошибка в том, что при каждом вызове функции noise у тебя переинициализируется генератор случайных чисел. И когда при каждом вызове аргумент функции srand один и тот же, все случайные числа повторяются с начала. Функцию srand вынеси куда-нибудь подальше и вызывай её только один раз, например, при старте программы.

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 19:22 15-05-2006
Creator111

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть код на Паскале,переведите,пожалуйста, в Си,кого не затруднит.
Заранее благодарен.
 
 
    
uses crt;
type
ludi=record
    fam,name,znak:string[15];
    dat:array[1..3] of integer;
end;
const
  mas:array[1..6] of string[30]=('Familia','Imya','Znak zodiaka','Chislo','Mesyac','God');
  mas1:array[1..6] of string[30]=('Vvedite familiu:','Vvedite imya:','Vvedite znak zodiaka:',
  'Vvedite chislo:','Vvedite mesyac:','Vvedite god:');
  l=12;
 Var
   key:char;
   f:file of ludi;
   buf:ludi;
  Procedure out(fl:boolean);
  var
 i,k:integer;
 flag:boolean;
  Procedure vivod;
  begin
   with buf do
    begin
     write(fam:l+1);
     write(name:l+1);
     write(znak:l+1);
     write(dat[1]:l+1);
     write(dat[2]:l+1);
     writeln(dat[3]:l+1);
    end;
  end;{of vivod}
  begin
   assign(f,'8.txt');
   reset(f);
   if ioresult=2 then
    begin
     assign(f,'8.txt');
     rewrite(f);
    end;
   flag:=false;
   if fl then
     begin
      write('Vvedite N mesyaca, inform. o rodivshixsya v kotoriy nado vivesti:');
      readln(k);
      writeln;
     end;
     for i:=1 to 6 do
       write(mas[i]:l);
      writeln;
     while not eof(f) do
      begin
       read(f,buf);
       with buf do
        if not(fl) then vivod else
         if (fl)and(dat[2]=k)then
          begin
           vivod;
           flag:=true;
          end;
        end;
       if (fl) and not(Flag) then writeln('V spiske rodiv-sya v ',k,' mesyac net.');
        close(f);
      end;{of out}
      Procedure vvod;
      begin
        with buf do
         begin
          write(mas1[1]);readln(fam);
          write(mas1[2]);readln(name);
          write(mas1[3]);readln(znak);
          write(mas1[4]);readln(dat[1]);
          write(mas1[5]);readln(dat[2]);
          write(mas1[6]);readln(dat[3]);
         end;
        write(f,buf);
         close(f);
        end;{of vvod}
        begin
         clrscr;
         out(false);
         writeln;
         writeln('Dob. zap. -Enter');
          key:=readkey;
          case key of
          #8:begin
             assign(f,'8.txt');
             rewrite(f);
             close(f);
             out(false);
             readkey;
            end;
          #13:begin
              repeat
              assign(f,'8.txt');
              reset(f);
              seek(f,filesize(f));
              vvod;
              writeln('Vvesti ese-ENTER, dalee-lubaya klavisha.');
              key:=readkey;
             until key<>#13;
             writeln;
             out(false);
             readkey;
            end;
          #27:halt(1);
          end;{of case}
          writeln;
          out(true);
          readkey;
       end.
 
 
 
Вот условие:
 Создать типизированный файл, запись которого имеет
 следующую структуру: фамилия, имя, знак Зодиака,
 дата рождения (массив из трех чисел).  Вывести на
 экран информацию о людях,  родившихся в месяц,  
значение которого вводится с клавиатуры.  
Если таких людей нет,  то вы-дать на дисплей соответствующее сообщение.
 Ввод файла и его обработку оформить в виде от-дельных подпрограмм.
 
 

Всего записей: 11 | Зарегистр. 16-04-2006 | Отправлено: 21:34 16-05-2006
reddestfox



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FireZone
Спасибо за поддержку.
Твой совет опять сработал.
Всё ОК!

Цитата:
при каждом вызове функции noise у тебя переинициализируется генератор случайных чисел. И когда при каждом вызове аргумент функции srand один и тот же, все случайные числа повторяются с начала

Только я тут недопонял кое-что, но домыслил сам...
Функция srand инициализирует генератор случайных чисел (некий ПОСТОЯННЫЙ ряд случайных чисел для данного аргумента) в зависимости от некоторого аргумента. Аргумент есть время (минимальная единица -- секунда). Раньше при каждом вызове функции аргумент (время) был ОДИН И ТОТ ЖЕ. И каждый раз при помощи функции random мы вызывали ПЕРВЫЙ член данного ПОСТОЯННОГО ряда случайных чисел. Поэтому я внёс секундную  задержку между вызовами функции srand, чтобы её аргумент изменялся бы при каждом вызове функции. Поэтому после задержки всё стало ОК. Но мы, по-прежнему, вызывали ПЕРВЫЙ член РАЗНЫХ рядов (каждый ряд соответствует своему аргументу -- времени) случайных чисел. По твоемУ способу -- мы инициализировали генератор случайных чисел srand ОДИН раз и получили ОДИН ряд (новый член при каждом вызове random) случайных чисел.
Итак, КАЖДОЙ секунде времени сопоставлен ПОСТОЯННЫЙ ряд случайных чисел (новый член получаем при каждом вызове random).
Я не прав?


----------
Самый Рыжий Лис На Свете!

Всего записей: 1857 | Зарегистр. 25-11-2005 | Отправлено: 00:36 17-05-2006 | Исправлено: reddestfox, 00:40 17-05-2006
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reddestfox
Это не ряд, это кольцо. Постоянное. А srand выбирает начальную точку на этом кольце.

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 01:13 17-05-2006
reddestfox



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
Можно подробнее?

----------
Самый Рыжий Лис На Свете!

Всего записей: 1857 | Зарегистр. 25-11-2005 | Отправлено: 01:29 17-05-2006
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reddestfox
Можно. Генератор псевдослучайных чисел вычисляет последующее число из предыдущего по определённой формуле. Через какое-то количество чисел (период повторения) выдаваемая последовательность начинает повторяться. Этот период повторения и распределение выдаваемых чисел зависит от используемой формулы.
Таким образом, последовательность, выдаваемая rand, представляет собой кольцо. srand отпределяет место на этом кольце, с которого ты начинаешь считывать эту последовательность.
 
Можешь попробовать сам определить период повторения генератора, используемого твоим компилятором. Например, так:

Код:
#include <stdlib.h>
#include <time.h>
#include <conio.h>
 
#define NN 4
 
int main()
{
time_t t;
int n1[NN],n2[NN];
  srand(time(&t));
  for(int i=0;i<NN;i++) n1[i]=rand();
  double d=0;
  for(;;) {
    for(int i=0;i<NN-1;i++) n2[i]=n2[i+1];
    n2[NN-1]=rand();
    if(memcmp(n1,n2,sizeof(n1))==0) break;
    d+=1;
  }
  printf("Repetition period: %1.0f",d);
  _getch();
  }
}
 
MS VC 7.0 выдаёт: "Repetition period: 2147483647".

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 08:26 17-05-2006
FireZone

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

Цитата:
Только я тут недопонял кое-что, но домыслил сам...
...
Я не прав?

Приятно помогать человеку, когда он сам старается доходить, вникать. Ты практически попал в точку. Слушай, что говорит Abs62

Всего записей: 293 | Зарегистр. 28-01-2004 | Отправлено: 09:44 17-05-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
А интересный период: 7FFFFFFF Не навевает на размышления?

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 15:30 17-05-2006
reddestfox



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
FireZone
Спасибо за поддержку. Теперь всё становится на свои места. Я свои ошибки понял.
Да! Действительно, кольцо. Поскольку первый и последний член ряда смыкаются.
 
Abs62

Цитата:
Генератор псевдослучайных чисел вычисляет последующее число из предыдущего по определённой формуле

1. а) Кольцо -- оно содержит жёстко заданные (постоянные) члены последовательности псевдослучайных чисел? То есть 1 (первый) (условно, само собой, поскольку, собственно, кольцо) член ВСЕГДА один и тот же, а остальные вычисляются друг из друга рекуррентно и тоже ПОСТОЯННЫ?
б) Или, если, к примеру, вначале генерации попадаем на n-член, n+1 член по формуле уже будет другим по сравнению, если бы мы начали, например, с n-1 члена или любого другого, кроме n?  
То есть последовательность зависит от того, куда мы попадаем или нет?
Думаю, зависит. Иначе, как-то уж, совсем ПСЕВДО.  
2. Действительно, ПСЕВДО. А почему так сложно создать ПРОИЗВОЛЬНЫЙ ряд менее псевдослучайных чисел? То есть выбрать из определённого диапазона чисел ЛЮБОЙ произвольный член и так далее? Думаю да, потому что МАШИНА (компьютер), пока не в состоянии это сделать, поскольку нет чёткого указания на то, ЧТО ИМЕННО надо выбрать.
3. Есть кольцо (допустим, в диапазоне от -2(32) до +2(32)) ПЕРВЫХ членов будущих рекуррентных рядов (колец?). Попадаем как-нибудь на какой-то член кольца -- это и будет начало нашего реккуррентного ряда (естественно, отличающегося своими членами от соседних рядов или, тем более не смежных рядов).
Так где же истина?
И, если можно, хотя бы примерный вид рекуррентной формулы...
1,2,3 -- это не утверждения -- предположения. Поправь меня, пожалуйста.
 
FireZone

Цитата:
Приятно помогать человеку, когда он сам старается доходить, вникать

Ненавижу неопределённость и блуждать в тумане, типа попал-не-попал. Рад, что встретился с хорошими наставниками.
 
Mickey_from_nsk

Цитата:
А интересный период: 7FFFFFFF  Не навевает на размышления?

Боюсь ошибиться, но, мне кажется почему-то, что это граница, где смыкается минус предел с плюс пределом некоторой последовательности чисел.
 
Ещё раз спасибо всем участникам.

----------
Самый Рыжий Лис На Свете!

Всего записей: 1857 | Зарегистр. 25-11-2005 | Отправлено: 18:46 17-05-2006 | Исправлено: reddestfox, 18:36 18-05-2006
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reddestfox
1. По сути, тело rand (в MS VC 7.0) состоит из единственной строки: "return(((holdrand=holdrand*214013L+2531011L)>>16)&0x7fff);", где holdrand - статическая переменная (в многопоточной версии - своя для каждого потока). Как думаешь, зависит ли последовательность при этом от того, с n-го или n-1-го члена начать её реализовывать? Псевдо она, псевдо.
2. Я говорил, говорю и буду говорить: машина - дура. Она делает не то, что от неё хотят, а то, что ей приказывают. Какой алгоритм в неё заложишь, такой результат и получишь. Придумай алгоритм лучше - думаю, многие "спасибо" скажут.
 
Mickey_from_nsk
Навевает.

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 21:39 17-05-2006
Slay1

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

Цитата:
Ввести прямоугольную матрицу целых чисел. Выполнить циклический сдвиг ее строк
на K позиций вниз. Значение K ввести из клавиатуры. При циклическом сдвиге
вниз элементы последней строки матрицы заносятся на соответствующие места
сдвинутых вниз элементов первой строки.

 

Код:
 
#include <stdio.h>
#include <conio.h>
#define n 2
#define m 4
#define k 1
 
void main()
 {
  int i,j,q,t,temp[n],a[n][m];
  clrscr();
  for (j=0; j<m; j++)
  for (i=0; i<n; i++)
    {
     printf("a[%d][%d]=",j+1,i+1);
     scanf("%d",&a[j][i]);
    }
  printf("\nmatrix:\n");
  for (j=0; j<m; j++)
  for (i=0; i<n; i++)
    {
     printf("%d  ",a[j][i]);
     if (i==n-1) printf("\n");
    }
  for (t=0; t<k; t++)
    {
     for (q=0; q<n; q++)
       temp[q]=a[m-1][q];
     for (j=m-1; j>0; j--)
     for (q=0; q<n; q++)
       a[j][q]=a[j-1][q];
     for (q=0; q<n; q++)
       a[0][q]=temp[q];
    }
  printf("\nTransformed matrix:\n");
  for (j=0; j<m; j++)
  for (i=0; i<n; i++)
    {
     printf("%d  ",a[j][i]);
     if (i==n-1) printf("\n");
    }
  getch();
 }
 

Сначала пробовал без масивов, просто цьіклически переставлять числа, все работало.  
Кажется ошьібка где-то тут:
     for (q=0; q<n; q++)
       temp[q]=a[m-1][q];
     for (j=m-1; j>0; j--)
     for (q=0; q<n; q++)
       a[j][q]=a[j-1][q];
Помогите пожалуйста!

Всего записей: 9 | Зарегистр. 14-01-2006 | Отправлено: 23:25 17-05-2006 | Исправлено: Slay1, 23:26 17-05-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slay1
По моему слегка перемудрил.
Самый простой вариант для меня, например, объявить  

Код:
 
int *a[m];
 

выделить динамически память под строки матрицы a, затем просто перекинуть указатели.
Второй вариант - есть такая (достаточно простая) функция memcpy, она как раз и предназначена для перекидывания туда и обратно элементов буферов. То есть вместо

Код:
 
       for (q=0; q<n; q++)
       temp[q]=a[m-1][q];
 
 
проще писать  

Код:
 
      memcpy(temp, &a[m-1][0], n*sizeof(int));
 
 
 
Ну и т.д.
А ошибка, если не ошибаюсь, такая.
У тебя внешний цикл по переменной t, которую ты внутри цикла вообще не используешь.
 
Ну и вааще ... Функции делаются не только для того, чтобы выносить в них повторяемые конструкции, но и для визуальной структуризации программ. Сделай спец. функцию типа MoveLine сразу станет легче.

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 07:58 18-05-2006
Slay1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mickey_from_nsk
Мне єто для лабораторной работьі нужно, а функции изучаются только в следующих л.р., потому нужно попроше.

Всего записей: 9 | Зарегистр. 14-01-2006 | Отправлено: 09:46 18-05-2006
Mickey_from_nsk

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slay1
Ты знаешь, у меня твоя программа заработала нормально:
matrix:
0  1
1  1
2  3
4  5
 
Transformed matrix:
4  5
0  1
1  1
2  3
 
Или я где то не прав?

Всего записей: 636 | Зарегистр. 21-10-2002 | Отправлено: 12:55 18-05-2006
Slay1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mickey_from_nsk
Вроде прав... странно.
Мне на винграде уже помогли:

Цитата:
здесь у тебя ошибка: матрица а у тебя содержит n строк и m столбцов, а в цикле наоборот - j проходит по m строкам, i по n столбцам. Достаточно поменять местами n и m в объявлении массивов а и temp:
 


Код:
int temp[m], a[m][n];

Всего записей: 9 | Зарегистр. 14-01-2006 | Отправлено: 13:45 18-05-2006
reddestfox



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
Ещё раз спасибо за ответы.
Извини за упорство.
Но я хочу дожать вопрос до конца (спецтопик по данному вопросу неохота создавать)...
Кольцо псевдослучайных чисел состоит из ПОСТОЯННЫХ членов (то есть длинный одномерный замкнутый массив, члены которого ПОСТОЯННЫ).
Допустим, попадаем на n-ный член, считываем, получаем r1,r2,r3,r4,...,rk1.
Попадаем на n+1 член -- выйдет r2,r3,r4,...,rk2.
Попадаем на n-1 член -- выйдет r0,r1,r2,...,rk3.
И т.д. (количество считываемых элементов разное).
То есть, попадая на соседние (или недалёкие в зависимости от количества считываемых элементов) элементы массива, мы рискуем повториться.
Так?
Вероятность такого исхода, наверно, пренебрежимо мала...
Я так понимаю, именно, из-за экономии места данный массив не хранится в чистом виде (как большая совокупность чисел), а рекуррентно вычисляется.
Значит, srandом мы гарантированно попадаем (тоже вычисление -- хотелось бы, если можно, также формулу) на какой-либо член кольца, а randом идём по нему в направлении возрастания его членов (интересно, а в противоположном направлении нельзя пойти?).  
Так?
Неужели так просто и примитивно? Прямо, не верится. Или я недопонял? Просто вчере-позавчера-да-и-сегодня я представлял это дело ГОРАЗДО сложнее.
 
Поскольку данная последовательность приближённо случайна, наверно, нет смысла...
Но я бы сделал это дело в форме "Солнца с лучами". То есть, есть кольцо ("Солнце") -- наше кольцо. Но, попав на его элемент, мы двинемся не по кольцу, а по "лучу", который начинается в данной точке кольца, и по схожей (тоже зависимой от места попадания) формуле рекуррентно вычисляются сами случайные числа. Если математически (технически) невозможно сделать подобную последовательность с бесконечно большим периодом -- придётся вместо луча использовать тоже кольца для каждой точки исходного кольца.
Таким образом, попав на соседние точки кольца, мы почти гарантированно, не повторяемся.

----------
Самый Рыжий Лис На Свете!

Всего записей: 1857 | Зарегистр. 25-11-2005 | Отправлено: 22:03 18-05-2006
Abs62



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reddestfox  
Честно говоря, досконально я алгоритмы генерации случайных чисел не изучал - не было необходимости. Если хочешь дожать вопрос до конца - возьми книгу Дональда Кнута "Искусство программирования" (том 2, "Получисленные алгоритмы") (думаю, в Google найдёшь без проблем), и проштудируй пару сотен страниц, этим алгоритмам посвящённых.

Всего записей: 6077 | Зарегистр. 22-10-2005 | Отправлено: 00:22 19-05-2006 | Исправлено: Abs62, 00:23 19-05-2006
reddestfox



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Abs62
Спасибо за ссылку.
Мало времени.
Нашёл -- скачаю позже.
Как разберусь -- вкратце напишу здесь же.
Ещё раз благодарю всех, кто мне помог.

----------
Самый Рыжий Лис На Свете!

Всего записей: 1857 | Зарегистр. 25-11-2005 | Отправлено: 00:54 19-05-2006 | Исправлено: reddestfox, 21:30 19-05-2006
Arci21

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!Требуется помощь программеров для решения несложной задачки в среде Borland C++3.1. Вот она:
Составить программу превращения матрицы A(m*n)(размерность вводит юзер) таким образом,что строка с номером m становится столбцом c номером n.
Спасибо.

Всего записей: 2 | Зарегистр. 20-05-2006 | Отправлено: 04:13 20-05-2006
Enfield

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте. Возникла необходимость реализовать небольшой класс на VS (в основном пишу на java). Пожалуйста помогите найти косяки в теле класса и заголовочном файле, из-за которых класс отказывается компилится.  
 
Заголовочный файл(StateMachine.h):
 

Цитата:
 
#pragma once
#include <string>
 
using namespace std;
 
class StateMachine
{
    
public:
    StateMachine();
    ~StateMachine();
    string getState();
    void addTransition(string fromState, string condition, string toState);
    bool changeState(string condition);
private:
    string State;
    map <string, string> MAP_STATE_FROM_TO;
    void checkInitialized();
 
};

 
 
Тело класса(StateMachine.cpp):
 

Цитата:
 
#include ".\statemachine.h"
 
StateMachine::StateMachine()
{
    State = "PLAYING";
}
 
StateMachine::~StateMachine(void)
{
}
 
string StateMachine::getState()
{    
    return State;
}
 
void StateMachine::checkInitialized()
{
 
}
 
void StateMachine::addTransition(string fromState, string condition, string toState);
{
    MAP_STATE_FROM_TO.insert(map<string, string>::value_type(fromState + condition,                                                     toState);    
}
 
bool StateMachine::changeState(string condition)
{
    map<string, string>::iterator theIterator;
    theIterator = MAP_STATE_FROM_TO.find(State + condition);
    if (theIterator != MAP_STATE_FROM_TO.end())
    {
        return false;
    }
    else
    {
        State = theIterator->second;
        return true;
    }
}

 
 

Всего записей: 8 | Зарегистр. 24-02-2006 | Отправлено: 09:44 20-05-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 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