Перевод кода с Pascal на Си или С++ (рекурсия) - C (СИ)
Формулировка задачи:
Здравствуйте, помогите, пожалуйста, перевести код с Pascal на С++, либо на Си. Задание состояло в следующем: «Описать рекурсивную логическую функцию sym(s,i,j), проверяющую, является ли симметричной часть строки s, начинающаяся i-ым и кончающаяся j-ым её элементами».
Благодарю.
function sym(var s: string; i, j: integer): boolean; begin if i > j then Result := True else Result := (s[i] = s[j]) and sym(s, i+1, j-1); end; var s: string; i, j: integer; begin write('Введите строку: '); readln(s); write('Введите номер элемента, с которого нужно проверить часть строки: '); readln(i); write('Введите номер элемента, которым заканчивается проверяемая часть строки: '); readln(j); writeln('Часть строки ', not sym(s, i, j) ? 'не ' : '', 'симметрична.') end.
Решение задачи: «Перевод кода с Pascal на Си или С++ (рекурсия)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <locale.h> bool sym(char * s, int i, int j){ if (i > j) return true; else{ if(s[i] == s[j]) sym(s, i+1, j-1); else return false; } } int main(){ setlocale(LC_ALL, "rus"); int i=0, j=0, n = 20; char * s = (char*) malloc(n*sizeof(char)); printf("Введите строку: "); scanf("%s", s); printf("Введите номер элемента, с которого нужно проверить часть строки: "); scanf("%d", &i); printf("Введите номер элемента, которым заканчивается проверяемая часть строки: "); scanf("%d", &j); printf("\nЧасть строки "); if (sym(*&s, i, j)) printf("не"); printf("симметрична."); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию sym, которая выполняет рекурсию для проверки симметрии строки
- В функции main устанавливаем локальную кодировку, выделяем память под строку и запрашиваем у пользователя ввод строки, номер первого элемента и номер последнего элемента для проверки
- Вызываем функцию sym с передачей первого и последнего элементов в качестве аргументов
- Выводим результат на экран
- Возвращаем 0, чтобы указать на успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д