Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
stepansiy
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 17
10.01.2012, 09:14     Перевод программы на С++ с Паскаля #1
Код
[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 на С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2012, 09:14     Перевод программы на С++ с Паскаля
Посмотрите здесь:

Перевод из Паскаля в с++ C++
Перевод с Паскаля на С++ C++
C++ Перевод с паскаля на си
Перевод программы на С++ с Паскаля C++
Перевод из Паскаля в C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Минич
 Аватар для Минич
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;
}
voral
346 / 326 / 46
Регистрация: 16.03.2008
Сообщений: 1,698
10.01.2012, 15:36     Перевод программы на С++ с Паскаля #3
Цитата Сообщение от Минич Посмотреть сообщение
C
1
k = k+1;
Это ж не реигиозно.....

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

Добавлено через 10 минут
Да. Главное: я не ради споров или "опускания" на это обратил внимание. (Код в целом даже не смотрел - это бросилось в глаза). Просто сталкивался с преподом не профильного учебного заведения. А он бы сказал, что то типа: "Даа.... Ну, в целом неплохо, неплохо..... Но у нас сишников принято вот эти две строки более коротким способом записывать...... поэтому все ж немного снижу оценку"
Yandex
Объявления
10.01.2012, 16:29     Перевод программы на С++ с Паскаля
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru