IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> перевод на с++
Feagor
сообщение 24.01.2008 16:36
Сообщение #1


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


вот такой код на паскале
uses crt;
var k,l,m,i:longint;
function rif(n,m:longint):boolean;
var i:integer;
begin
        repeat
          inc(i);
          if odd(n) then n:=n*3+1
          else n:=n div 2;
        until (n=1) or (i>=m);
if i>=m then rif:=false
else rif:=true;
end;
begin
clrscr;
Writeln('Vvedite natural''nie chisla K,L,M');
readln(K,l,m);
if (k<0) or (l<0) or (k>l) or (m<0) then
        begin
          writeln('Vvedennie vami chisla ne vvedeni nepravilno');
          readkey;
          halt;
        end;
for i:=k to l do if rif(i,m)=true then writeln('dlya chiisla ',i,' vipolnjaetsa')
else writeln('dlya chiisla ',i,' ne vipolnjaetsa');
readkey;
end.

че-то на с перевожу ниче не полчается, помогите плиз!!!!!Прикрепленное изображение

Сообщение отредактировано: Feagor - 24.01.2008 18:11


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
klem4
сообщение 24.01.2008 17:07
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


на всякий случай задание напиши, порой легче заново написать, чем строчку за строчкой бездумно переводить ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Feagor
сообщение 24.01.2008 18:12
Сообщение #3


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


ну раз надо, то пожалуста, вот что накалякал на с, правда даже не компилится....
#include <stdio.h>
#include <conio.h>
#include <iostream.h> 
bool rif(int n, int m){
     int i;
     do{
     i++;
     if ((n % 2)==0) n=n*3+1;
     else n=n/2;}
     while ((n!=1) || (i!=m));
if (i>=m) return false;
else return true;
}
main(){
       int k,l,m,i;
       cout<<"Vvedite natural'nie chisla k,l,m\n";
       cin>>k>>l>>m;
       for (i=k;i<=l;i++){
           if (rif(i,m)==true) cout<<"false\n";
           else cout<<"true\n";
           }
       getch();
       }



--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 24.01.2008 18:23
Сообщение #4


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Feagor, тебя klem4 спросил задание, а не код на с smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Feagor
сообщение 24.01.2008 18:49
Сообщение #5


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


2 Michael_Rybak задание прикрепил вообще-то=)


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 24.01.2008 18:51
Сообщение #6


Гость






Feagor, а ничего что твоя программа на Паскале будет возвращать мусор? Вот перевод, подкорректированный в соответствии с замечанием. Что было добавлено - посмотри внимательно...

#include <iostream>
#include <conio.h>

bool rif(long n, long m) {
    int i = 0;
    do {
        n = ((n % 2)) ? (3 * n + 1): (n / 2);
    } while((n != 1 && ++i < m));
    
    return (bool)(i < m);
}

int main() {
    int K, L, M;

    std::cout << "Vvedite natural''nie chisla K,L,M" << std::endl;
    std::cin >> K >> L >> M;
    if( K < 0 || L < 0 || K > L || M < 0) {
        std::cout << "error" << std::endl;
        return -1;
    }
    
    for(int i = K; i <= L; ++i)
      std::cout << "dlya chiisla " << i << ((rif(i, M)) ? "":"ne") << " vipolnjaetsa" << std::endl;
    getch();
    return 0;
}

 К началу страницы 
+ Ответить 
Michael_Rybak
сообщение 24.01.2008 23:36
Сообщение #7


Michael_Rybak
*****

Группа: Модераторы
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Цитата
2 Michael_Rybak задание прикрепил вообще-то=)


Сорри, не заметил.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 8.08.2025 3:24
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"