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

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

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

Перевод программы на С++ с Паскаля - C++

10.01.2012, 09:14. Просмотров 947. Ответов 4
Метки нет (Все метки)

Код
[CPP][CPP]
var sn,s:string;
    l,k,kod:integer;
    v,p:real;
begin
writeln('Введите строку');
readln(s);
l:=length(s);
p:=1; k:=1;
repeat
  sn:='';
  while (s[k]>='0')and(s[k]<='9')and(k<=l) do
   begin
    sn:=sn+s[k];
    k:=k+1;
   end;
   if sn<>'' then
   begin
    val(sn,v,kod);
    p:=p*v;
   end;
   k:=k+1;
   until k>l;
   writeln(' p=',p);
end.[/CPP][/CPP]
Добавлено через 4 часа 46 минут
Помгите кто-небудь, ато я в переводах не фурычю

Добавлено через 3 часа 36 минут
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 "stdafx.h"
#include <stdio.h>
 
char sn,s;
int l,k,kod;
float v,p;
 
printf("string: \n");
l=length(s);
p=1; k=1;
for sn='';
  while (s[k]>='0')&&(s[k]<='9')&&(k<=l) do
  {
    sn=sn+s[k];
    k=k+1;
  }
   if sn<>'' ;
   {
    val(sn,v,kod);
    p=p*v;
   }
   k=k+1;
   until k>l;
   printf(" p= : \n");
}
Вот так получилось у меня

Добавлено через 40 секунд
но ошибки ещё остаются, помогите доиспровлять, буду признателен

Добавлено через 10 часов 16 минут
и объясните как перевести val на С++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 09:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перевод программы на С++ с Паскаля (C++):

Перевод программы с Паскаля на C++ - C++
program LABYRINTH; {BACKTRACK1, i.e. depth-first, no infinite cycle} const M = 7; N = 7; {Dimensions} var LAB : array of integer;...

Перевод программы на С++ с Паскаля - C++
var s: string; i: byte; begin readln(s); i := 1; // избавляемся от пробелов спереди while s = ' ' do...

Перевод программы на С++ с Паскаля - C++
Здравствуйте. Имеется следующая задача. Для двух заданных матриц A(n,n) и B(n,n) проверить, можно ли получить вторую из первой...

перевод программы из Паскаля в С++ - C++
var a,b,c:integer; begin read(a,b,c); writeln(a,'+',b,'+',c,'=',a+b+c); writeln(a,'*',b,'*',c,'=',a*b*c); ...

Перевод с паскаля на С++ - C++
Здравствуйте. Помогите,пожалуйста,перевести код на С++. const n = 67; var matrix: array of integer; i,p,q:integer; ...

Перевод из Паскаля в C++ - C++
Здравствуйте! Помогите перевести код из Паскаля в C++. Трансляторов смотрел в гугле, так и не разобрался. Вот задача Поменять местами...

4
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
10.01.2012, 15:33 #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
30
31
#include <iostream>
#include <string>
 
using namespace std;
 
int main(void)
{
    string str,s;
    cout << "Введите строку" << endl;
    getline(cin,str);
 
    int l = str.length(), k = 1, kod;
    double p = 1., v;
    do {
        s = "";
        while((s[k] >= '0') && (s[k] <= '9') && (k <= l))
        {
            s = s+s[k];
            k = k+1;
        }
        if (s != "")
        {
            val(s, v, kod); // а это процедура
            p = p*v;
        }
        k = k+1;
    } while(k > 1);
    cout << " p=" << p << endl;
 
    return 0;
}
0
voral
492 / 472 / 81
Регистрация: 16.03.2008
Сообщений: 2,228
10.01.2012, 15:36 #3
Цитата Сообщение от Минич Посмотреть сообщение
C
1
k = k+1;
Это ж не реигиозно.....

C++
1
 ++k;
0
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
10.01.2012, 15:49 #4
Цитата Сообщение от voral Посмотреть сообщение
Это ж не реигиозно.....
Не будем раздувать дискуссию! я бы сейчас то же мог сказать, что так короче, вы правы, но почему использовали префиксный инкремент, а не постфиксный! Яйца те же, а компилятор преобразует в конце концов к k = k+1
0
voral
492 / 472 / 81
Регистрация: 16.03.2008
Сообщений: 2,228
10.01.2012, 16:29 #5
Цитата Сообщение от Минич Посмотреть сообщение
Не будем раздувать дискуссию! я бы сейчас то же мог сказать, что так короче, вы правы, но почему использовали префиксный инкремент, а не постфиксный! Яйца те же, а компилятор преобразует в конце концов к k = k+1
Ну можно и k++;
я ж назвал это более "религиозным", а не серьезным упущением. Префиксный потому как это моя привычка. Правда основанная на осознанном выборе (по результатам обсуждения на этом форуме)

Добавлено через 10 минут
Да. Главное: я не ради споров или "опускания" на это обратил внимание. (Код в целом даже не смотрел - это бросилось в глаза). Просто сталкивался с преподом не профильного учебного заведения. А он бы сказал, что то типа: "Даа.... Ну, в целом неплохо, неплохо..... Но у нас сишников принято вот эти две строки более коротким способом записывать...... поэтому все ж немного снижу оценку"
0
10.01.2012, 16:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2012, 16:29
Привет! Вот еще темы с ответами:

Перевод из Паскаля в с++ - C++
Задача: Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность Есть решение на...

Перевод с Паскаля на С++ - C++
Не могу ни как перевести полностью вот этот кусок кода на Паскале на си++ function h(var key: TKey): integer; {Вычисление хеш-функции} ...

Перевод с Паскаля на C++ - C++
Здравствуйте. Помогите,пожалуйста,перевести код на С++. var z,x,v: text; st: string; begin ...

Перевод с паскаля на с++ - C++
С Паскаля на С++ var n: Integer; d: Longint; begin repeat Write('Введите N : '); ReadLn(n); until n in ; n:=n div 2*2; ...


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

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

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