Среда, 08.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Модератор форума: Seqular, Pavel  

палиндромы
snaper1993Дата: Понедельник, 27.10.2008, 19:08 | Сообщение # 1
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Задача 1!
Назовем число палиндромом, если его десятичная запись читается одинаково слева- направо и справа-налево. Сколько из введенных чисел являются палиндромами?
Входные данные: в стандартном входном потоке записанные числа в десятичной системе исчисления, каждое в красной строке. Все числа положительные и не превышают 2 000 000 000.
Исходные данные: в первую строку стандартного исходного потока вывести искомое количество чисел- палиндромов.
Пример входных и исходных данных:
Стандартный входной поток:
12
321
1
212
222
213
Стандартный исходный поток:
3

Задача 2!
"Двоичные палиндромы"
С клавиатуры вводится число n (в десятичной системе исчисления). Вывести из интервала [n, 2*n] все числа (в двоичной системе исчисления), двоичная запись которых является палиндромом.
Входные данные: с клавиатуры вводится единое число n (0<n<50000).
Исходные данные: вывести на экран двоичные записи чисел- палиндромов из заданного интервала, каждое число в красной строке.
Пример входных и исходных данных:
Стандартный входной поток:
3
Стандартный исходный поток:
11
101
Объяснение: при n=3 интервал [3; 6] содержит 4 числа (3; 4; 5; 6), двоичные записи которых соответственно (11; 100; 101; 110).
Задачка 3!
"Палиндром-1"
Задана строка, которая составляется из малых латинских букв. Разрешается удалять из строки определенные буквы. Сколькими разными образами можно при этом получить палиндром?

Входные данные: заданная строка находится в файле palindrome1.dat, длина его не превышает 30 символов
Исходные данные: в первую строку файла palindrome1.sol надо вывести искомое количество образов получения палиндрому.
Пример входных и исходных данных:
palindrome1.dat
aab
palindrome1.sol
4
Объяснение: палиндром можно получить, удалив символы: 1) 1 и 2; 2) 1 и 3; 3) 2 и 3; 4) 3.
Задача 4!
"Палиндром-2"
Задана строка, которая составляется из малых латинских букв. Нужно разбить его на минимальное возможное количество палиндромов.
Входные данные: заданная строка находится в файле palindrome2.dat, длина не превышает 2000 символов
Исходные данные: в первую строку файла palindrome2.sol нужно вывести минимальное количество палиндромов, на которые можно разбить строку
Пример входных и исходных данных:
palindrome2.dat
abbacbb
palindrome2.sol
3
Объяснение: abbacbb = abba + c + bb


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Понедельник, 27.10.2008, 20:04 | Сообщение # 2
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
1) Для перевода числа в строку используется процедура str. Проверка строки уже обсуждалась http://pascal-for-all.ucoz.ru/forum/11-271-1 .
2) В данном случае палиндромом может быть только чётное число. Поэтому нужно каждое чётное число из интервала перевести в строку и проверить.
3)
Quote
palindrome1.dat
aab
palindrome1.sol
4
Объяснение: палиндром можно получить, удалив символы: 1) 1 и 2; 2) 1 и 3; 3) 2 и 3; 4) 3.

т.е. ab не палиндром?
4) Нужно в цикле проверить является ли палиндромом вся строка, если нет, то убрать последний символ и снова проверить и т.д. пока не встретим палиндром. Аналогично поступить со строкой без первого палиндрома(его мы только что нашли) и т.д. пока строка не станет пустой.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Понедельник, 27.10.2008, 20:22 | Сообщение # 3
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Alexander, Я в общем то все понял но одна проблема мне нужно на завтро ти не могби помоч !! Я то зделаю но (ето будет долго)) у меня черезвычайная ситуация!(помоги пожалуста(если не трудно)!!(Напиши в Паскале)!

Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 28.10.2008, 02:30 | Сообщение # 4
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
Напиши в Паскале

Ну уж нет, столь явной халявы не будет. Выкладывай свои исходники, если там будет не полный бред, то я их подправлю.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Вторник, 28.10.2008, 04:40 | Сообщение # 5
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
ну вот например первая, мне нужно штоби в стандартном входном потоке записанные числа в десятичной системе исчисления, каждое в красной строке. Все числа положительные и не превышают 2 000 000 000.
Ау меня можно вводить только одну строку ну вот смотри:
var i,k:integer;
s:string;
begin
k:=0;
read(s);
for i:=1 to (length(s) div 2) do
begin
if (s[i]<>s[length(s)-i+1]) then k:=0 else k:=k+1;
Break;
end;
writeln(k);
end.

Добавлено (27.10.2008, 21:40)
---------------------------------------------
2 и 3 задачу даже мисли нет !! Двоичную систему я не знаю! а 3 задача ти даже не обяснил!(помоги тебе што тежело)! Или как всекда Секюлера ждать!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Вторник, 28.10.2008, 05:44 | Сообщение # 6
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote
var i,k:integer;
s:string;
begin
k:=0;
read(s);
for i:=1 to (length(s) div 2) do
begin
if (s[i]<>s[length(s)-i+1]) then k:=0 else k:=k+1;
Break;
end;
writeln(k);
end.

Не, это вообще никуда не годится angry .
Во-первых в условии не сказано, как узнать, что все числа введены. Пусть ввод считается законченным при вводе не подходящего числа, т.е. меньше одного или больше двух миллиардов. Тогда получаем:
Code
uses crt;
var
     i,k,l:byte;
     x:longint;
     s:string;
     test:boolean;
begin
     ClrScr;
     k:=0;
     repeat
        ReadLn(x);
        if (x>2000000000) or (x<1) then
           break;
        Str(x,s);
        l:=length(s);
        test:=true;
        for i:=1 to l div 2 do
           if s[i]<>s[l-i+1] then
              begin
                 test:=false;
                 break;
              end;
        if test then
           Inc(k);
     until 1=0;
     WriteLn(k);
     ReadKey;
end.

Quote
Двоичную систему я не знаю!

Должен знать, раз в задании встретилось. Перевод из десятичной в двоичную можно осуществит, например, так:
Code
ReadLn(x);
     i:=1;
     while x<>0 do
        begin
           inc(i);
           s:=s+chr(x mod 2+$30);
    x:=x div 2;
        end;
     l:=Length(s);
     for i:=1 to l div 2 do
        begin
           c:=s[i];
    s[i]:=s[l+1-i];
    s[l+1-i]:=c;
        end;
     WriteLn(s);

Рекомендую выделить это в отдельную функцию.
Quote
а 3 задача ти даже не обяснил!

ну да, ступил(по накури и не такое бывает). Но сейчас вижу, что тебе первых двух надолго хватит.
Quote
Или как всекда Секюлера ждать!

да хоть Папу римского! Меня это совершенно не волнует.
З.Ы. И пиши по-русски, а то твои слова фиг расшифруешь.


Скажем дружно- нафиг нужно!

Сообщение отредактировал Alexander - Вторник, 28.10.2008, 05:46
 
SeqularДата: Вторник, 28.10.2008, 06:19 | Сообщение # 7
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ну что, я смотрю, без меня управились? )) молодцы.. Порадовали старика.

Поддерживаю также проект сообщество молодых сисадминов
 
snaper1993Дата: Среда, 29.10.2008, 19:07 | Сообщение # 8
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Ага тут еще 3 задачки!Ета била самая льохкая

Добавлено (28.10.2008, 08:42)
---------------------------------------------
Ой извеняюсь 2 осталось но они тежолие!

Добавлено (28.10.2008, 09:28)
---------------------------------------------
в 2 задаче у меня выбивает только 11 когда я ввоу 3 , а должно вибивать
11
101
ну вот смотри:
var x:longint;
i,l:integer;
s:string;
c:char;
begin
i:=1;
readln(x);
while x<>0 do
begin
inc(i);
s:=s+chr(x mod 2+$30);
x:=x div 2;
end;
l:=Length(s);
for i:=1 to l div 2 do
begin
c:=s[i];
s[i]:=s[l+1-i];
s[l+1-i]:=c;
end;
WriteLn(s);
end.
А в 1-ой задачке щитает все числа ! И палиндромы и не палиндромы! И еще одна просьба не могли би ви писать задачки без оттаких функций как "uses crt; ClrScr; ReadKey;" потому што нам не разришаеться пользоваться такими функцыями! И еще, Что означает эта функция "Str(x,s);"

Добавлено (28.10.2008, 09:30)
---------------------------------------------
1-ая задачка
var
i,k,l:byte;
x:longint;
s:string;
test:boolean;
begin
k:=0; repeat
readLn(x);
if (x>2000000000) or (x<1) then
break;
l:=length(s);
test:=true;
for i:=1 to l div 2 do
if s[i]<>s[l-i+1] then
begin
test:=false;
break;
end;
if test then
Inc(k) else k:=k+0; until 1=0;
WriteLn(k);

end.

Добавлено (28.10.2008, 19:27)
---------------------------------------------
Seqular, Alexander, может ви мне поможете! wink

Добавлено (29.10.2008, 12:07)
---------------------------------------------
Seqular, Ну помоги мне пожалуста! cry


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Среда, 29.10.2008, 23:13 | Сообщение # 9
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Времени сейчас совсем нет, завтра по сабжу отвечу если никто другой не объявится.

Скажем дружно- нафиг нужно!
 
AlexanderДата: Суббота, 01.11.2008, 03:50 | Сообщение # 10
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
А в 1-ой задачке щитает все числа ! И палиндромы и не палиндромы!

Ложь. Если уж я пишу полный исходник, то я его проверяю на работоспособность или оговариваю в посте обратное.
Code
в 2 задаче у меня выбивает только 11 когда я ввоу 3 , а должно вибивать

Ясное дело, я сразу написал, что это код для перевода числа из десятичной в двоичную систему счисления и не более того.
Quote (snaper1993)
Добавлено (28.10.2008, 09:30)
---------------------------------------------
1-ая задачка
...

а это ещё что? Я написал полностью рабочий код и перепечатывать его, да ещё и с ошибками, не нужно.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Суббота, 01.11.2008, 07:15 | Сообщение # 11
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Ой извеняюсь 1 работает! А как вторую зделаль штобы еще и палиндромы выводило!!
А 3 и 4 Помогы плиз Alexander, !!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Суббота, 01.11.2008, 07:52 | Сообщение # 12
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
А как вторую зделаль штобы еще и палиндромы выводило!!

смотри пост 2 в этой теме. Про перевод в двоичную я написал, про определение палиндромов тоже- теперь с этой задачей и шимпанзе справится.
Quote (snaper1993)
А 3 и 4 Помогы плиз Alexander, !!

сначала со второй надо разобраться.


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Суббота, 01.11.2008, 17:47 | Сообщение # 13
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
А что у меня здесь не правильно:
var i,k,l:integer;
x:longint;
s:string;
test:boolean;
c:char;
begin
ReadLn(x);
i:=1;
while x<>0 do
begin
inc(i);
s:=s+chr(x mod 2+$30);
x:=x div 2;
end;
l:=Length(s);
for i:=1 to l div 2 do
begin
c:=s[i];
s[i]:=s[l+1-i];
s[l+1-i]:=c;
end;
writeln(s);

Str(x,s);
l:=length(s);
test:=true;
for i:=1to l div 2 do
if s[i]<>s[l-i+1] then
begin
test:=false;
break;
end;
if test then
inc(k);
if (k>0) then writeln(s) else write('');
end.
Здвиги уже есть потомушто когда вводил 3 то выдавало 11, а сейчас выдайот
11
0
Подскажы в чом проблема!


Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
AlexanderДата: Воскресенье, 02.11.2008, 05:12 | Сообщение # 14
Всевышний
Группа: Модераторы
Сообщений: 475
Репутация: 16
Замечания: 0%
Статус: Offline
Quote (snaper1993)
Подскажы в чом проблема!

в том, что ты вообще ничего не понимаешь...
Попрошу ответить вот на какой вопрос:
Если в программе нам надо повторить одно и тоже действие n-ное количество раз, то какую управляющую конструкцию языка необходимо использовать?


Скажем дружно- нафиг нужно!
 
snaper1993Дата: Воскресенье, 02.11.2008, 16:36 | Сообщение # 15
Бывалый
Группа: Пользователи
Сообщений: 121
Репутация: 2
Замечания: 0%
Статус: Offline
Цыкл! Я знаю што нужно использовать цыкл!Просто задачка для меня не понятна!

Я - желанный гость Сайта взаимопомощи программистам Pascal А ты?
 
  • Страница 1 из 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;