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

Перевод с pascal на c++ - C++

Восстановить пароль Регистрация
 
salaikus
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 14
14.01.2014, 16:53     Перевод с pascal на c++ #1
привет всем , помогите ПОЖАЛУЙСТА перевести с pascal на c++.
пытался перевести, но с++ сложноват , на изучение языка времени катастрофически не хватает, еще до конца с pascal не закончил.
программа на pascal:
Кликните здесь для просмотра всего текста

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 var
 i,kolzagl,kolmal,j:integer; // kolzagl,kolmal - количество заглавных и маленьких букв
 s,s1:string;
begin
 writeln('Vvedite text:');
 readln(s);
kolzagl:=0;kolmal:=0;
 for i:=length(s) downto 1 do
  begin
   if  s[i] in ['A'..'Z','А'..'Я','Ё'] then kolzagl:=kolzagl+1;
   if  s[i] in ['a'..'z','а'..'я','ё'] then  kolmal:=kolmal+1;
  end;
 writeln('kol.propisnih:   ',kolzagl,'        kol.strochnih:   ',kolmal);
 
 
 if (kolmal<kolzagl)then
  begin
    for i:=length(s) downto 1 do //идем с конца строки
      begin
           if   s[i] in ['A'..'Z','А'..'Я','Ё'] then
         begin
          s1:=s1+'('+ inttostr(kolzagl)+')'; //формируем строку состоящую из скобок и номера прописной буквы,причем номером
          //считается ее номер как прописной буквы
          insert(s1,s,i+1); //вставляем  эту строку с номером буквы после самой буквы
          delete(s1,1,length(s));
          kolzagl:=kolzagl-1;//следующий номер строчной буквы будет на 1 меньше ( меньше,потому что идем с конца строки)
         end;
      end;
  end
 
 else
 for i:=length(s) downto 1 do
  begin
   if  s[i] in ['A'..'Z','А'..'Я','Ё'] then  
    begin
     j:=ord(s[i])+32; //прибавляем к коду символа 32 ,чтобы сделать букву строчной
      delete(s,i,1);    
     insert(chr(j),s,i); //вставляем ту же букву,только маленькую
    end;
      end;
 
 writeln(s);
 
end.

Текст задания: Дан текст.Определить (строчных или прописных) букв в нем больше, и преобразовать следующим образом ;если больше прописных чем строчных, то после каждой прописной буквы записать её номер в скобочках; в противном случае все буквы преобразовать в строчные.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2014, 16:53     Перевод с pascal на c++
Посмотрите здесь:

перевод из Pascal в C++ C++
перевод из PASCAL в C++ C++
C++ Перевод с Pascal на C++
C++ Перевод из Pascal в C++
Перевод из Pascal в С++ C++
C++ Перевод из Pascal на C++
C++ Перевод из Pascal в C++
Перевод из Pascal в C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.01.2014, 23:22     Перевод с pascal на c++ #2
Цитата Сообщение от salaikus Посмотреть сообщение
Дан текст.Определить (строчных или прописных) букв в нем больше, и преобразовать следующим образом ;если больше прописных чем строчных, то после каждой прописной буквы записать её номер в скобочках; в противном случае все буквы преобразовать в строчные.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <cctype>
#include <string>
#include <sstream>
#include <iostream>
 
struct Letter_count {
  int uppercase_letter;
  int lowercase_letter;
};
 
Letter_count count_letters(const std::string& s) {
  using namespace std;
  
  //--------------------------------
  typedef string::size_type index_t;  
  //--------------------------------
    
  Letter_count lc = {0, 0};
  
  for(index_t i = 0; i < s.length(); ++i) {
    if(isupper(s[i]))
      ++lc.uppercase_letter;
    else if(islower(s[i]))
      ++lc.lowercase_letter;
  }
  
  return lc;
}
 
void transform_string(std::string& s) {  
  using namespace std;
  
  //--------------------------------
  typedef string::size_type index_t;
  //--------------------------------
    
  Letter_count lc = count_letters(s);  
  
  if(lc.uppercase_letter > lc.lowercase_letter) {    
    index_t seq_num = 0;
    ostringstream stream;
    for(index_t i = 0; i < s.length(); ++i) {      
      if(isupper(s[i])) {
        ++seq_num;  
        stream.str("");
        stream << '(' << seq_num << ')';        
        s.insert(i + 1, stream.str());
      }      
    }    
  }
  else {
    for(index_t i = 0; i < s.length(); ++i)
      s[i] = tolower(s[i]);
  }    
}
 
int main() {  
  std::string s;
  std::getline(std::cin, s);  
  transform_string(s);
  std::cout << s << std::endl;
}
Yandex
Объявления
14.01.2014, 23:22     Перевод с pascal на c++
Ответ Создать тему
Опции темы

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