С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
pmipmi
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 44
#1

переделать на с++ - C++

16.09.2013, 08:57. Просмотров 428. Ответов 6
Метки нет (Все метки)

Последовательность 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, …, состоящая из нулей и единиц строится так: первый ее элемент равен 1, а остальные получаются из предшествующих с помощью логической операции отрицания: not(1) = 0, not (0) = 1. Второй элемент равен отрицанию первого, третий и четвертый – отрицанию первого и второго соответственно и т.д. По заданному n вычислить n-ый член указанной последовательности.
примерный код на паскале

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
Uses Crt;
Var i,k,N,indm:integer;
    m:array[1..300000]of boolean;
Begin
    m[1]:=true; indm:=trunc(power(2,k)); N:=98568;
    repeat
        for i:=1 to indm do m[indm+i]:=not(m[i]);
        if indm>=N then break;
        inc(k); indm:=trunc(power(2,k));
    until false;
    write(N); if m[N]=false then write(0:2) else write(1:2);
End.
не могу переделать на с++.. помогите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2013, 08:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переделать на с++ (C++):

переделать из С в с++ - C++
Помогите переделать код в с++ из С #include <cstdio> #include <cstring> #include <cctype> #define SRC "simple" #define DST...

Переделать из С++ в С - C++
Слушайте ребята как мне можно переделать эту задачу из C++ в обычную СИшку? #include <vcl.h> #pragma hdrstop #include...

Переделать из С++ в С - C++
Необходимо переделать код из с++ в с, что до меня не доходит как это сделать, помогите пожалуйста #include <iostream> ...

Переделать из C# в C++ - C++
Всем привет. У меня есть старый мой проект написанный на Visual c# у меня есть задание сделать тоже только на Vosual c++. я чтоб заново не...

Переделать из С в С++ - C++
Переделайте пожалуйста на С++ #include <stdio.h> #include <locale.h> #include <conio.h> void slau_3(double , double *,...

переделать из с++ в си - C++
// Условие: Написать 3 функ-ии: // 1-ая: получает размерность массива, создает динамический массив и возвращает указатель на начало...

6
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
16.09.2013, 12:06 #2
А что именно не получается? Напиши, что переделал и где возникают проблемы? Тут то знаний С++ первые 20 страниц любого учебника.
1
pmipmi
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 44
16.09.2013, 15:30  [ТС] #3
int i,k,N,indm;
int array[300000];

m[1]=true; // ? что тут
indm=floor(power(2,k));


for (int i=1;i<indm;i++)
{ m[indm+i]:=not(m[i]);
if indm>=N;
break;
indm=floor(power(2,k));
until false; // ?? а это как?
write(N);
if m[N]=false then write(0:2) else write(1:2); // тут совсем непонятно
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
16.09.2013, 15:35 #4
Цитата Сообщение от pmipmi Посмотреть сообщение
until false
На сколько я понимаю until выполняется до тех пор пока условие после него будет не выполнено, а после него стоит false - следовательно цикл бесконечный -
C++
1
2
3
4
while(true)
{
...
}
0
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
16.09.2013, 16:09 #5
Цитата Сообщение от pmipmi Посмотреть сообщение
int i,k,N,indm;
int array[300000];

m[1]=true; // ? что тут
indm=floor(power(2,k));


for (int i=1;i<indm;i++)
{ m[indm+i]:=not(m[i]);
if indm>=N;
break;
indm=floor(power(2,k));
until false; // ?? а это как?
write(N);
if m[N]=false then write(0:2) else write(1:2); // тут совсем непонятно
m[1]=true в С++ будет m[0]=true так как в С++ индекс массива начинается с 0
так же и цикл for начинаться должен с 0.
вместо uses crt в С++ будет #include <iostream> для ввода/вывода

короче как то так будет, проверь

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    
    int i,k=0,N,indm;
    bool m[290000];
    m[0]=true;
    indm=pow(2.0,k);
    N=98568;
    do
    {
        for(int i=0;i<=indm;i++)
            m[indm+i]=!m[i];
        if (indm>=N) break;
        k++;
        indm=pow(2.0,k);
    }
        while(true);
        cout<<N<<endl;
        if (!m[N]) cout<<"0";
        else cout<<"1"; 
}
1
pmipmi
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 44
16.09.2013, 16:20  [ТС] #6
Peperovich, большое спасибо
но не работает...
может в начальном коде ошибка..

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function aaa(x: integer):boolean;
var b: integer;
begin                    
b:=1;
While (x-b*2)>0 do b:=b*2;
x:=x-b;
if x<>1 then
   result:=not(aaa(x))
   else
   result:=false;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var x: integer;
    znach: boolean;
begin
try
x:=StrToInt(edit1.Text);
if x=1 then label1.Caption:='1' else
begin
znach:=aaa(x);
if znach=true then label1.Caption:='1' else label1.Caption:='0';
end;
0
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
16.09.2013, 16:56 #7
А что выдает компилятор, потому что у меня собирается и даже что то выводит.

Добавлено через 24 минуты
Сейчас прочитал твое задание из первого поста и не понял зачем тебе переменная indm?
По заданию должно вот так быть.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    
    int i,N;
    bool m[290000];
    m[0]=true;
 //   indm=pow(2.0,k);  не нужно
    N=98568;
        for(int i=1;i<=N;i++)
            m[i]=!(m[--i]);
       // indm=pow(2.0,k);  тоже не понятно для чего
        cout<<N<<endl;
        if (!m[N]) cout<<"0";
        else cout<<"1"; 
}
0
16.09.2013, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2013, 16:56
Привет! Вот еще темы с ответами:

Переделать программу - C++
Нужно переделать программу так, чтобы она выводила на консоль сумму в виде 5+10+15+20+25+...+95=950 (я думаю последовательность ясна). У...

Переделать программу - C++
Ребят помогите девушке не понимаю сама как решить вот есть программа #include &lt;iostream&gt; using namespace std; void...

Переделать файл - C++
Имеется файл, элементами которого являются ОТДЕЛЬНЫЕ символы. Все цифры этого файла переписать в другой файл, а остальные символы - в...

Переделать с Паскаля на С++ - C++
Составить неразветвленную программу на языке Turbo Pascal. Текст программы: Program lab_1; Var x ,y : real; Begin write( 'X =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.