• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите написать програмы на C++ и в Паскале

  • Автор темы Автор темы sllava
  • Дата начала Дата начала

sllava

Ученик
Регистрация
14 Май 2011
Сообщения
1
Реакции
0
Баллы
0
Помогите написать програмы на C++ и в Паскале

4. Задан одномеpный массив, содеpжащий n элементов. Опpеделить длину наиболее длинной подпоследовательности, содеpжащей одинаковые элементы.
5. Задан двухмеpный массив, содеpжащий n стpок и m столбцов. Дополнить его n+1 стpокой и m+1 столбцом, в котоpых записать суммы соответствующих стpок и столбцов. Элемент, находящийся в n+1 стpоке и m+1 столбце должен содеpжать сумму элементов исходного массива.
6. Дана стpока (не более 150 символов), слова в котоpой pазделяются одним или несколькими пpобелами. Pазpаботать подпpогpамму, котоpая опpеделяет, является ли заданная стpока палиндpомом, т.е. читается одинаково слева напpаво и спpава налево, напpимеp, "А pоза упала на лапу Азоpа".
 
6. Дана стpока (не более 150 символов), слова в котоpой pазделяются одним или несколькими пробелами. Pазpаботать подпpогpамму, котоpая опpеделяет, является ли заданная стpока палиндpомом, т.е. читается одинаково слева напpаво и спpава налево, напpимеp, "А pоза упала на лапу Азоpа".
Пожалуйста. Только два замечания:
1. Язык Паскаль (на Си я, к сожалению, не пишу).
2. Поскольку приходится отрабатывать регистр, т.е., например, приводить всю фразу к строчным буквам, с кириллицей заморачиваться я, уж не взыщите, не буду. По причине множественности кодировок, неудобства таблиц и пр. Так что программа работает ТОЛЬКО с латиницей. Проверить можете на примере A roza upala na lapu Azora.
Код:
VAR
 S,S1:String;
 i,k,Lng:Byte;
BEGIN
 WriteLn('Enter the string:');
 ReadLn(S);
{Все прописные буквы заменяем строчными}
 For i:=1 to Length(S) do
  If (Ord(S[i])>64) and (Ord(S[i])<91) then
   S[i]:=Chr(Ord(S[i])+32);
{Полностью удаляем все пробелы}
 i:=0;
 Repeat
  Inc(i);
  If S[i]=' ' then
   begin
    k:=0;
    repeat
     Inc(k);
    until S[i+k]<>' ';
    Delete(S,i,k);
   end;
 Until i=Length(S);
{Инициализируем строковую переменную S1}
 S1:=S;
{Заполняем S1 символами строки S в обратном порядке}
 For i:=1 to Length(S) do
  S1[i]:=S[Length(S)-i+1];
{Сравниваем строки S и S1 и выводим результат}
 If S=S1 then
  Writeln('The string is a palindrome')
 else
  Writeln('The string is not a palindrome');
 Readln;
END.
 
Назад
Сверху