Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2015, 09:41   #1
laovai
 
Регистрация: 27.09.2014
Сообщений: 9
По умолчанию переписать код с++ для flex

собственно, код такой. программа проверяет кратность трем.
дали задание тот же код реализовать во flex, как делать - вообще ни в зуб ногой. заодно скиньте, пожалуйста, если не сложно, какие-то мануалы по флексу.

Код:
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;

//Двоичное число делится на три, если сумма цифр, записанных в четные разряды, 
//равна сумме цифр, записанных в нечетные разряды, либо отличается на число, делящиеся на три. 
int main()
{
 int num,m,sum;
 char st[100];
 cout << "enter the number in decimal number system" << endl;
 cin >> num;
// 1 вариант -  - переводим десятичное в двоичное
 int i = 0;
 do
  {
   st[i++] = num % 2 + '0';
   num = num / 2;
  } 
 while (num != 0);
 st[i] = '\0';
//  st выводится в обратном порядке, но для решения исходной задачи это не важно
 cout << st;
// находим суммы элементов, записанных в четные разряды и в нечетные
 sum =  0; 
 for (int i = 0; i < strlen(st); i += 2)
  sum  += (st[i]-'0') ;
 for (int i = 1; i < strlen(st); i += 2)
  sum  -= (st[i]-'0');
 cout <<endl <<"sum = "<< sum<<endl;
 if ( sum % 3)  
  cout << "no "<<endl;
 else             
  cout << " yes " << endl;
// 2 вариант - число вводим как двоичное число (строка)
 char c[100];
 m = 1; 
 cout << "enter the number in binary number system" << endl;
 cin >> c; 
 int res = 0;
 // переводим  в десятичную систему ( для проверки)
 for (int i = strlen(c)-1; i >= 0; i--)
  { 
    res = res+(c[i]-'0')*m;
    m *=2;
  }
 cout << res << endl;
 sum =  0; 
 for (int i = 0; i < strlen(c); i += 2)
  sum+=(c[i]-'0') ;
 for (int i = 1; i < strlen(c); i += 2)
  sum-=(c[i]-'0');
 cout <<endl << "sum = " << sum<<endl;
 if (sum % 3)  
  cout << "no" << endl;
 else             
  cout << "yes" << endl;
 return 0;
}

Последний раз редактировалось laovai; 13.03.2015 в 09:43.
laovai вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переписать код Вадим12091965 Microsoft Office Excel 0 24.09.2013 19:44
переписать код для visual c++ hunter03 Windows Forms 5 28.08.2013 10:38
переписать код с delphi на c++ lirikoff Помощь студентам 1 12.06.2011 17:12
переписать код на паскаль hunter03 Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2010 15:46
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37