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

Перевод кода из Pascal в С++

07.04.2018, 11:53. Показов 1222. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я недавно занимался программированием в школе. Я попытался изменить Pascal на c++ , но я не мог никак понять, как это изменить:

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
45
46
47
48
49
50
51
52
53
54
55
56
57
program c4;
 
{ delta - разница между порядковым номером буквы в английском алфавите и ее кодом в таблице ASCII}
const delta = ord('a')-1;
 
var sum: array[1..26] of integer;
    letters: array[1..26] of char;
    s:string;
    i,j,k,tmp:integer;
    c:char;
 
begin
 // инициализируем массивы в массив
 for i:=1 to 26 do
 begin
     sum[i] := 0;
     letters[i] := chr(ord(i)+delta);
 end;
 s:='';
 while s<>'*' do
 begin
    // Дополняем строку пробелом спереди. 
    // Так мы можем не проверять отдельно первый символ.
    s := ' '+s;
    for i:=1 to length(s)-1 do
    begin
       // Проверка начала слова
       if (s[i]=' ') and (s[i+1]<>' ') then
          inc(sum[ord(s[i+1])-delta]);
    end;
    // Считываем следующую строку
    readln(s);
 end;
 // Сортируем пузырьком синхронно два массива: частот и букв
 // Критерий сортировки: по убыванию частот
 for k:=1 to 26 do
     for j:=1 to 26-k do
     begin
        if sum[j]<sum[j+1] then
        begin
           tmp:=sum[j];
           sum[j]:=sum[j+1];
           sum[j+1]:=tmp;
           c:=letters[j];
           letters[j]:=letters[j+1];
           letters[j+1]:=c;
        end;
     end;
 i:=1;
 // Выводим все ненулевые элементы массива
 for i:=1 to 26  do
 begin
     if sum[i]>0 then
        writeln(letters[i],' ', sum[i]);
 end;
 readln;
end;
в C++.
Спасибо заранее.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2018, 11:53
Ответы с готовыми решениями:

перевод кода из pascal в c++
function SumRange(A, B : integer) : integer; var i, t : integer; begin t := 0; if A &gt; B then SumRange := 0 else begin ...

Перевод кода с Pascal на C++
Здравствуйте нужна помощь в переводе кода Pascal на C++. Я пробовал сам перевести но не получается, много ошибок сначала было а потом...

Перевод кода с с Pascal на С++
Совсем не знаю язык Pascal, а нужно перевести кусочек кода с этого языка на С++. Помогите, пожалуйста! Задан текст. По правилам...

2
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
07.04.2018, 13:33
Лучший ответ Сообщение было отмечено arozi как решение

Решение

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
// C++11
#include <iostream>
#include <string>
#include <cctype>
 
const int delta{'a'};
 
template<typename T>
void swap(T &x, T &y)
{
    T temp{x};
    x = y;
    y = temp;
}
 
int main(void)
{
    unsigned sum[26]{};
    char letters[26]{};
    std::string str{};
    for (unsigned i{}; i < 26; ++i)
    {
        letters[i] = i + delta;
    }
    while (std::getline(std::cin, str)
        && str != "*")
    {
        bool isFirstChar{true};
        for (unsigned i{}; i < str.length(); ++i)
        {
            if ((std::isspace(str[i]) && !std::isspace(str[i + 1]))
                || isFirstChar)
            {
                if (std::isalpha(str[i + !isFirstChar]))
                {
                    ++sum[std::tolower(str[i + !isFirstChar]) - delta];
                    isFirstChar = false;
                }
            }
        }
    }
    for (unsigned i{}; i < 26; ++i)
    {
        for (unsigned j{i}; j < (26 - i - 1); ++j)
        {
            if (sum[j] < sum[j + 1])
            {
                swap(sum[j], sum[j + 1]);
                swap(letters[j], letters[j + 1]);
            }
        }
    }
    for (unsigned i{}; i < 26; ++i)
    {
        if (sum[i])
        {
            std::cout << letters[i]
                << ' ' << sum[i] << std::endl;
        }
    }
}
1
0 / 0 / 0
Регистрация: 03.04.2018
Сообщений: 7
07.04.2018, 23:38  [ТС]
Большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.04.2018, 23:38
Помогаю со студенческими работами здесь

Перевод кода с Pascal
Переведите, пожалуйста, код с Pascal на C++ const maxn = 10; var n: integer; a: array of integer; used: array of Boolean; ...

Перевод кода с Pascal в C++
ребятки, помогите с переводом с паскаля на C++ данный код var n,s,t,n1,kk,e1,x,i,ss,h:integer; ///возводит x в степнь e1 по...

Перевод кода с Pascal
const p=1; const x=2.1; var t,a,b,y:real; begin write('t='); readln(t); b:=sin(p*p)+Power(x,3); a:=Power(exp(1),...

Перевод кода из Pascal в Си++
Type ST = Record Num: Integer; Name: String; Fak: String; Group: String; Angl: Integer; Physic: Integer; var Table: Array ...

Перевод кода с Pascal
uses crt; const n = 17; var arr: array of integer; sum: integer; i: byte; k,d,e: integer; begin


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru