Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
1

перевести программу на С++

25.04.2013, 08:08. Показов 1244. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
помогите перевести программу с паскаля на С++.
Pascal
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
uses crt; 
var i,n:integer; 
     a1,a2,a,eps:real; 
      l:boolean; 
begin 
 clrscr; 
 l:=false; 
 writeln($$n,eps $$); 
  
 readln(n,eps); 
 a1:=1; 
 a2:=2; 
i:=2; 
 repeat 
 i:=i+1; 
  a:=(a1+a2)/2;   
  a2:=a1; 
  a1:=a; 
 if ((a1-a2))and(l=false) then 
   begin 
     l:=true; 
     writeln($$наименьший номер члена последовательно*сти $$,i); 
   end; 
 writeln(a); 
 if i mod 25=0 then readln; 
 until(i>=n); 
 if l=false then writeln($$Такой номер не найден$$); 
readln 
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2013, 08:08
Ответы с готовыми решениями:

Перевести программу с С++
#include<stdio.h> #include<stdlib.h> #include<string.h> struct node{ bool...

Перевести программу с C++ на C#
Здравствуйте, имеется код на cpp. Помогите преобразовать его в c#. #include <iostream> #include...

Перевести программу из C++ в Си
#include<iomanip> #include<iostream> #include<fstream> using namespace std; int...

Перевести программу с С# на Си
Добрый вечер! Написал программу на С#, которую нужно перевести на язык Си. 1) Использование...

21
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 08:30 2
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
27
28
29
#include <iostream>
using namespace std;
int main(){
    int i,n; 
    float a1,a2,a,eps; 
    bool l;
    l=false;
    cout<<"n eps \n";
    cin>>n>>eps;
    a1=1; 
    a2=2;
    i=2;
    do{
        i=+1;
        a=(a1+a2)/2;
        a2=a1;
        a1=a;
        if((a1-a2) || (l=false)){
            l=1;
            cout<<"Наименьший номер члена последовательности: "<<i<<"\n";
        };
        cout<<"a="<<a<<"\n";
        if (i%25==0) {cin.get();}
        
    }while(i>=n);
    if (l==false) {cout<<"\nТакой номер не найден.\n";}
    cin.get();
    return 0;
};
Добавлено через 1 минуту
Пожалуйста.
Только вопрос. Что за ряд считает эта программа?
1
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 09:20  [ТС] 3
Найти наименьший номер члена последовательно*сти, для которого выполняется условие https://www.cyberforum.ru/cgi-bin/latex.cgi?|{a}_{n}-{a}_{n-1}|<\varepsilon.
Выве*сти на экран этот номер и все элементы аi, где i = 1, 2..... n. ε=0.001

последовательность:
https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n}=({a}_{n-1}+{a}_{n-2})/2, {a}_{1}=1, {a}_{2}=2

Добавлено через 1 минуту
а вы случаено не проверяли, она работает?
0
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 09:37 4
Программа рабочая, а вот насчет правильной работы. Я переписал Ваш код. Так что если на паскале программа работает верно, то и тут она будет работать верно. =)

Добавлено через 8 минут
Там я в одной строчке знаки перепутал, исправил, но программа все равно выводит один и тот же результат. Вы уверены, что программа на паскале рабочая?
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
27
28
29
#include <iostream>
using namespace std;
int main(){
    int i,n; 
    float a1,a2,a,eps; 
    bool l;
    l=false;
    cout<<"n eps \n";
    cin>>n>>eps;
    a1=1; 
    a2=2;
    i=2;
    do{
        i=i+1;
        a=(a1+a2)/2;
        a2=a1;
        a1=a;
        if((a1-a2) || (l=false)){
            l=true;
            cout<<"Наименьший номер члена последовательности: "<<i<<"\n";
        };
        cout<<"a="<<a<<"\n";
        if (i%25==0) {cin.get();}
        
    }while(i>=n);
    if (l==false) {cout<<"\nТакой номер не найден.\n";}
    cin.get();
    return 0;
};
Добавлено через 2 минуты
Вот это точно работающий вариант.
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
27
28
29
#include <iostream>
using namespace std;
int main(){
    int i,n; 
    float a1,a2,a,eps; 
    bool l;
    l=false;
    cout<<"n eps \n";
    cin>>n>>eps;
    a1=1; 
    a2=2;
    i=2;
    do{
        i=i+1;
        a=(a1+a2)/2;
        a2=a1;
        a1=a;
        if((a1-a2) || (l=false)){
            l=true;
            cout<<"Наименьший номер члена последовательности: "<<i<<"\n";
        };
        cout<<"a="<<a<<"\n";
        if (i%25==0) {cin.get();}
        
    }while(i<=n);
    if (l==false) {cout<<"\nТакой номер не найден.\n";}
    cin.get();
    return 0;
};
Там с условием конца цикла был косяк =)
1
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 09:45  [ТС] 5
а у вас нет случаено ссылки на борланд 5.5? просто у меня 4.5 и он некоторые команды не читает? заранее огромное спасибо!!
0
Заблокирован
Автор FAQ
25.04.2013, 09:49 6
Цитата Сообщение от art3330 Посмотреть сообщение
}while(i<=n);
- ну что за ерунда, в задании что казано
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
ε=0.001
- надо останавливать подсчёт когда разница между членами ряда будет меньше эпсилон, даже нет сравнения с
Цитата Сообщение от art3330 Посмотреть сообщение
>eps;
, ужастик просто а не код...
0
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 09:52 7
Ом. А что именно он не читает ?

Кстати, Вы уверены в правильности работы Вашей программы на паскале? Заметил такой момент, что там eps в коде не используется, и мелкие разные косяки
0
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 09:53  [ТС] 8
Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
Найти наименьший номер члена последовательно*сти, для которого выполняется условие https://www.cyberforum.ru/cgi-bin/latex.cgi?|{a}_{n}-{a}_{n-1}|<\varepsilon.
Выве*сти на экран этот номер и все элементы аi, где i = 1, 2..... n. ε=0.001

последовательность:
https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n}=({a}_{n-1}+{a}_{n-2})/2, {a}_{1}=1, {a}_{2}=2

Добавлено через 1 минуту
а вы случаено не проверяли, она работает?
вот это задание. а там что-то не правильно?
0
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 09:53 9
-=ЮрА=-, я просто переписал код с паскаля, особо не вникая в его смысл.
0
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 09:54  [ТС] 10
не уверена, я ее не проверяла, т.к. мой компилятор не читает некоторые команды. поэтому и спрашивала о работоспособности
0
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 09:54 11
Теперь уже заметил эти косяки.
0
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 09:58  [ТС] 12
а если по заданию, то что мне нужно исправить?
0
Заблокирован
Автор FAQ
25.04.2013, 10:02 13
Вот более менее приемлимое решение
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
#include <stdio.h>
#include <math.h>
 
int main()
{
    long    n;
    double e = 0;//íàøà ïîãðåøíîñòü
    printf("Enter e : ");scanf("%lf", &e);
    double an_2 = 1;
    double an_1 = 2;
    double an   = (an_1 + an_2) / 2;
    
    for(n = 0; e < fabs(an_2 - an_1); n = n + 1)
    {
        printf("\rn : %d an : %lf error : %lf", n, an, fabs(an_2 - an_1));
        an_2 = an_1;
        an_1 = an;
        an   = (an_1 + an_2) / 2;
    }
    printf("\n\tCalculations stoped\n");
    printf("\rn : %d an : %lf error : %lf\n", n, an, fabs(an_2 - an_1));
    printf("Enter any key for exit...");
    getchar();
    return 0;
}
Миниатюры
перевести программу на С++  
2
-=ЮрА=-
25.04.2013, 10:03
  #14

Не по теме:

vasilisa-9090, одно к вам пожелание, если хотите чтобы вам быстро а главное правильно помагали, сразу цепляйте полное задание, тогда помощь не заставит себя ждать.

0
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 10:04  [ТС] 15
спасибо огромное!!
0
10 / 10 / 1
Регистрация: 16.12.2012
Сообщений: 141
25.04.2013, 10:07 16
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
27
28
29
30
31
#include <iostream>
#include <math.h>
using namespace std;
int main(){
    int i,n; 
    float a1,a2,a,eps; 
    bool l;
    l=false;
    cout<<"n eps \n";
    cin>>n>>eps;
    a1=1; 
    a2=2;
    i=0;;
    do{
        i=i+1;
        a=(a1+a2)/2;
        a2=a1;
        a1=a;
        if(fabs(a1-a2)<eps){
            l=true;
            cout<<"#"<<i<<" fabs(a1-a2)="<<fabs(a1-a2)<<"\n";
            cout<<"Наименьший номер члена последовательности: "<<i<<"\n";
            break;
        };
        cout<<"#"<<i<<" a="<<a<<"\n";
        if (i%25==0) {break;}   
    }while(i<=n);
    if (l==false) {cout<<"\nТакой номер не найден.\n";}
    cin.get();
    return 0;
};
Добавлено через 1 минуту
Это Ваша программа, с исправленными ошибками.
0
-=ЮрА=-
25.04.2013, 10:13
  #17

Не по теме:

Цитата Сообщение от art3330 Посмотреть сообщение
Это Ваша программа, с исправленными ошибками.
art3330, в данном заднии не следует вводить n.
Цитата Сообщение от art3330 Посмотреть сообщение
cout<<"n eps \n";
* * cin>>n>>eps;
- NO!
Лучше всегда анализировать задание и сравнивать с предложенной реализацией, в которой была куча упущений и ошибок
Цитата Сообщение от art3330 Посмотреть сообщение
#include <math.h>
- инклудится в плюсах в новом стиле #include <cmath>

0
1 / 1 / 1
Регистрация: 30.03.2013
Сообщений: 108
25.04.2013, 10:14  [ТС] 18
что-то у меня не получается ее на стандартные команді С++ переделатью вот єту строчку:
C++
1
 printf("\rn : %d an : %lf error : %lf", n, an, fabs(an_2 - an_1))ж
просто нам с командами и библиотеками Си запрещают писать=((
0
-=ЮрА=-
25.04.2013, 10:16
  #19

Не по теме:

Цитата Сообщение от vasilisa-9090 Посмотреть сообщение
просто нам с командами и библиотеками Си запрещают писать=((
- хорошо сейчас будет на плюсах

0
Заблокирован
Автор FAQ
25.04.2013, 10:22 20
Вот на плюсах
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
27
28
29
30
#include <iostream>
#include <cmath>
using namespace std;
 
//Äëÿ 4-ãî áîðëàíäà øàïêó õåäåðîâ çàïèñàòü òàê
//#include <iostream.h>
//#include <math.h>
 
int main()
{
    long    n;
    double e = 0;//íàøà ïîãðåøíîñòü
    cout<<"Enter e : ";cin>>e;cin.get();
    double an_2 = 1;
    double an_1 = 2;
    double an   = (an_1 + an_2) / 2;
    
    for(n = 0; e < fabs(an_2 - an_1); n = n + 1)
    {
        cout<<"\rn : "<<n<<" an : "<<an<<" error : "<<fabs(an_2 - an_1);
        an_2 = an_1;
        an_1 = an;
        an   = (an_1 + an_2) / 2;
    }
    cout<<"\n\tCalculations stoped\n";
    cout<<"\rn : "<<n<<" an : "<<an<<" error : "<<fabs(an_2 - an_1)<<"\n";
    cout<<"Enter any key for exit...";
    cin.get();
    return 0;
}
Миниатюры
перевести программу на С++  
2
25.04.2013, 10:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.04.2013, 10:22
Помогаю со студенческими работами здесь

Перевести программу с C++
Пожалуйста переведите на язык Pascal, буду благодарен int compare(const void *arg1, const void...

Перевести программу с Си++ в Си
#include &lt;iostream&gt; using namespace std; #include &lt;iostream&gt; int main() { const int N =...

Перевести программу с С++
#include &quot;stdafx.h&quot; #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #include...

Перевести программу на Си
#include &lt;iostream&gt; using namespace std; void swap(int *a, int i, int j) { int s = a; a =...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru