Программа паскаль является ли слово палиндромом

Вводится строка. Удалить из нее все пробелы. После этого определить, является ли она палиндромом (перевертышем), т.е. одинаково пишется как с начала, так и с конца.

Задача состоит из двух подзадач: 1) удаление всех пробелов из строки и 2) проверка строки на «палиндромность».

Для удаления пробелов надо перебрать по символам строку. Если очередной символ пробел, то удалить его. При этом следующий символ окажется на месте текущего, а значит не следует увеличивать значение счетчика. Если очередной символ не пробел, то надо перейти к проверке следующего, т.е. увеличить значение счетчика.

Для проверки, является ли строка палиндромом, надо сравнить первую и вторую половины строк. При этом половинки сравниваются так, что первый символ сравнивается с последним, второй — с предпоследним, третий — с третьим с конца, и т. д. То есть если длина строки l, а символ первой половины i, то символ второй половины имеет индекс l-i+1.

Pascal

var

Решаем задачи с собеседований по JS. Палиндром


s: string;
i,l: byte;
begin
readln(s);
l := length(s);
if l < 2 then exit;

i := 1;
while i if s[i] = ‘ ‘ then begin
delete(s,i,1);
l := l — 1;
end
else
i := i + 1;
end;
writeln(s);
if l < 2 then exit;

for i:=1 to l div 2 do
if s[i] <> s[l-i+1] then begin
writeln(‘это не палиндром’);
exit;
end;
writeln(‘это палиндром’);
end.

ракушка лежит на песке .. .
ракушкалежитнапеске.
это не палиндром

o nee no
oneeno
это палиндром

Язык Си

#include < stdio.h>
#include < string.h>
#define N 100
main() char str[N];
int i, f;
i = 0;
while ((str[i] = getchar()) != ‘n’)
if (str[i] != ‘ ‘) i +=1;
str[i] = ‘’;
printf(«%sn»,str);

f = 1;
for (i=0; i < strlen(str); i++)
if (str[i] != str[strlen(str)-1-i]) printf(«Non»);
f = 0;
break;
>
if (f == 1) printf(«Yesn»);
>

Читайте также:
В какую папку лучше устанавливать программы

90 w ! w 0 9
90w!w09
Yes

Здесь при заполнении строки как массива символов исключаются пробелы.

Python

# Вариант 1 — без использования строковых методов

s_with_spaces = input()

s = »
for i in s_with_spaces:
if i != ‘ ‘:
s += i
print(s)

s_len = len(s)
i = 0
f = 1
while i < s_len // 2:
if s[i] != s[-1-i]:
print(‘Не палиндром’)
f = 0
break
i += 1

if f == 1:
print(‘Палиндром’)

# Вариант 2

s = input()
s = s.split()
s = ».join(s)
print(s)

if s == s[::-1]:
print(«Палиндром»)
else:
print(«Не палиндром»)

КуМир

алг палиндром

Программирование на С++. Урок 90. Палиндром


нач
лит s
цел i, l, f

ввод s
l := длин(s)

нц пока s[l] = » »
l := l-1
s := s[1:l]
кц
i := 1
нц пока i если s[i] = » » то
s := s[1:i-1] + s[i+1:l]
l := l — 1
иначе
i := i + 1
все
кц
вывод s, нс

f := 1
нц для i от 1 до div(l,2)
если s[i] <> s[l-i+1] то
вывод «Это не палиндром»
f := 0
выход
все
кц
если f = 1 то
вывод «Палиндром»
все
кон

Basic-256

input str$
arr$ = explode(str$,» «)
str$ = «»
for i=0 to arr$[?] — 1
str$ = str$ + arr$[i]
next i
print str$

l = length(str$)
for i=1 to l2
if mid(str$,i,1) <> mid(str$,l-i+1,1) then
print «no»
end
endif
next i

print «yes»

898 9 8
89898
yes

Функция explode() разбивает строку на подстроки по указанному разделителю. При этом создается массив, состоящий из подстрок.

Источник: gospodaretsva.com

Developing.ru

Исходный текст вводится пользователем с экрана в виде одной или нескольких строк. На экране необходимо сохранить протокол работы: исходный и преобразованный текст. В исходном тексте выделить цветом заданные фрагменты (фразы — которые являются палиндромом). Определить, является ли строка текста палиндромом, т.е. читаемой в прямом и обратном направлении (например, строка «А роза упала на лапу Азора» — палиндром). При проверке строки убрать из нее все знаки препинания.

Читайте также:
Программа сотовые вышки локатор для Андроид как пользоваться инструкция

program task03; uses WinCRT; var Str: string; function IsPalindrom(instr:string):boolean; const trash : set of char = [‘ ‘,’.’,’,’,’!’,’?’]; var left:string; i,Len:integer; ch:char; Pal:boolean; begin Pal := true; left:=»; for i:=1 to Length(instr) do begin ch := instr[i]; if ch in trash then else begin left:=left+Upcase(ch); end; end; Len := Length(left); for i:=Len downto 1 do begin if left[i]<>left[Len-i+1] then Pal := false; end; IsPalindrom := Pal; end; Begin write(‘Enter string:’);read(Str); if IsPalindrom(Str) then writeln(‘Eto palindrom’) else writeln(‘Eto fignya kakaya-to’); End.
Вопрос 1-й как сделать чтобы прога понимала русский.
Мне посоветовали
function UpCaseRus(ch:char):char; begin case ch of ‘а’:UpCaseRus:=’A’; ‘б’:UpCaseRus:=’Б’; . ‘я’:UpcaseRus:=’Я’; end; end;

Скажите плиз, в какое место кода это вставить.

Вопрос №2 — Нужно чтобы появлялся Конечный результат (то есть я вижу первоначальный текст, а ниже появляется результат) в цвете если палиндром (само предложение) или фраза «нет палиндромов».

Вопрос №3 Нужна возможность ввода 3 -4 или n-го кол-ва строк сразу. и чтобы прога обрабатывала эти строки отдельно (1, 2 ,3 строка. и т.д.).

Источник: www.developing.ru

Программа, определяющая является ли слово палиндромом — Pascal(Паскаль)

Разделитель — один из символов « ,.;. »’» (начиная с пробела и заканчивая апострофом). Буква — любой символ, отличный от разделителя. Слово — непустая последовательность букв, ограниченная с каждой стороны разделителем или концом строки. Например, в строке «x9i23!слово, ,» два слова — «x9i23» и «слово». Исходная строка вводится с клавиатуры, изменённая строка выводится на экран.

Если в задании используется «заданное» слово, оно также вводится с клавиатуры. Разделители в программе представляются как множество.

program fr; label 1; var i, n: integer; s, sub: string; mn: set of char; function make_palindrom: boolean; var map: array [‘!’ .. ‘z’] of integer; x: char; i, m, count: integer; result: boolean; begin m := length(sub); count := 0; for x := ‘!’ to ‘z’ do map[x] := 0; for i := 1 to m do if (sub[i] >= ‘!’) and (sub[i] = 2 then result := false else result := true; make_palindrom := result; end; begin mn := [‘ ‘, ‘,’, ‘.’, ‘;’, ‘:’, ‘!’, ‘?’, ‘»‘]; write(‘Vvedite slova: ‘); readln(s); n := 0; 1: for i := 1 to length(s) do if (s[i] in mn) then begin if i = 1 then begin delete(s, 1, 1); goto 1; end else begin inc(n); sub := copy(s, 1, i — 1); if not make_palindrom then writeln(n, ‘ slovo: ‘, sub) else writeln(‘ ‘, n, ‘ slovo: PALINDROM( ‘, sub, ‘ )’); end; delete(s, 1, i); goto 1; end; sub := s; if not make_palindrom then writeln(n + 1, ‘ slovo: ‘, sub) else writeln(‘ ‘, n + 1, ‘ slovo: PALINDROM( ‘, sub, ‘ )’); readln; end.

Читайте также:
Телевидение как способ создания художественных программ и фильмов

Похожие записи/страницы:

  • Найти в тексте самое короткое и самое длинное слово, содержащие хотя бы один раз заданный символ- Pascal(Паскаль)
  • Пусть дан текст, заканчивающийся точкой. Текст состоит из слов, разделенных пробелами. Слова представляют собой произ-…
  • С клавиатуры вводится текст, затем вводится слово которое нужно найти в тексте , а затем вводится еще одно слово для…
  • Ввести текст и узнать сколько раз в тексте встретится слово story- Pascal(Паскаль)
  • Вводится слово с клавиатуры, а надо, чтобы оно получилось наоборот. Например, вводишь слово CAT, нажимаешь Enter, и…
  • Дана непустая последовательность слов из строчных русских букв; между соседними словами — запятая, за последним словом -…
  • Создать текст. Вывести те слова текста, которые отличны от последнего слова и удовлетворяют следующему свойству: а)…
  • Определить слова, в которых нет буквы первого слова, используя множества — Pascal(Паскаль)

Источник: retrolib.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru