Перевод кода с Pascal на Си или С++ (рекурсия) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, помогите, пожалуйста, перевести код с Pascal на С++, либо на Си. Задание состояло в следующем: «Описать рекурсивную логическую функцию sym(s,i,j), проверяющую, является ли симметричной часть строки s, начинающаяся i-ым и кончающаяся j-ым её элементами».
Листинг программы
  1. function sym(var s: string; i, j: integer): boolean;
  2. begin
  3. if i > j then
  4. Result := True
  5. else
  6. Result := (s[i] = s[j]) and sym(s, i+1, j-1);
  7. end;
  8. var
  9. s: string;
  10. i, j: integer;
  11. begin
  12. write('Введите строку: '); readln(s);
  13. write('Введите номер элемента, с которого нужно проверить часть строки: '); readln(i);
  14. write('Введите номер элемента, которым заканчивается проверяемая часть строки: '); readln(j);
  15. writeln('Часть строки ', not sym(s, i, j) ? 'не ' : '', 'симметрична.')
  16. end.
Благодарю.

Решение задачи: «Перевод кода с Pascal на Си или С++ (рекурсия)»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4.  
  5. bool sym(char * s, int i, int j){
  6.  
  7.     if (i > j) return true;
  8.     else{
  9.         if(s[i] == s[j]) sym(s, i+1, j-1);
  10.         else return false;
  11.     }
  12.  
  13. }
  14.  
  15. int main(){
  16.    
  17.     setlocale(LC_ALL, "rus");
  18.     int i=0, j=0, n = 20;
  19.     char * s = (char*) malloc(n*sizeof(char));
  20.     printf("Введите строку: ");
  21.     scanf("%s", s);
  22.     printf("Введите номер элемента, с которого нужно проверить часть строки: ");
  23.     scanf("%d", &i);
  24.     printf("Введите номер элемента, которым заканчивается проверяемая часть строки: ");
  25.     scanf("%d", &j);
  26.     printf("\nЧасть строки ");
  27.     if (sym(*&s, i, j)) printf("не");
  28.     printf("симметрична.");
  29.  
  30.     return 0;
  31. }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию sym, которая выполняет рекурсию для проверки симметрии строки
  3. В функции main устанавливаем локальную кодировку, выделяем память под строку и запрашиваем у пользователя ввод строки, номер первого элемента и номер последнего элемента для проверки
  4. Вызываем функцию sym с передачей первого и последнего элементов в качестве аргументов
  5. Выводим результат на экран
  6. Возвращаем 0, чтобы указать на успешный конец работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут