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

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

14.01.2014, 16:53. Показов 1342. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет всем , помогите ПОЖАЛУЙСТА перевести с 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.

Текст задания: Дан текст.Определить (строчных или прописных) букв в нем больше, и преобразовать следующим образом ;если больше прописных чем строчных, то после каждой прописной буквы записать её номер в скобочках; в противном случае все буквы преобразовать в строчные.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2014, 16:53
Ответы с готовыми решениями:

Перевод с Pascal на С++
Type predpr=Array of longint; rasp=Array of longint; На языке С++, как это будет...

Перевод из Pascal в С++
Помогите пожалуйста перевести программу из Паскали в С++ var k,n: integer; d: char; ...

Cформировать массив, в котором каждому элементу будет присвоено значение справа соседнего с ним (Pascal -> C++)
В файле W задан массив из девяти элементов. В новом файле WW сформировать массив, в котором каждому...

Перевод из pascal в c++
Переведите из pascal в c++ (Спасибо за ранее)) var i, n, firstnpos, firstpos, firstnneg,...

1
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
14.01.2014, 23:22 2
Лучший ответ Сообщение было отмечено salaikus как решение

Решение

Цитата Сообщение от 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;
}
1
14.01.2014, 23:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2014, 23:22
Помогаю со студенческими работами здесь

Перевод с Pascal на C++
Код на паскале, помогите его переписать в С ++ . Очень нужно ребят . Последняя задача. const mi...

Перевод с Pascal на C++
Пишу программу. Принципиальна скорость. Дальнейшие пути оптимизации не наблюдаются. Сообственно...

Вычислить значение суммы с помощью рекурсии (Pascal -> С++)
Для заданного целого N вычислить значение суммы(с помощью рекурсии) const n = 4; function...

Перевод из pascal в c++
Переведите пожалуйста код из pascal в c++ const nmax=20; var a: array of integer; ...

Перевод из Pascal в C++
Помогите,пожалуйста, с переводом программы из паскаля в C++ uses crt; function F(x:real):real;...

Перевод из Pascal в C++
Здравствуйте! Помогите,пожалуйста,перевести программу из паскаля в С++ uses crt; var A, B, x,...


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

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