Новые сообщения · Правила  
Страница 2 из 3«123»
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Задачи со строками (строковые типы данных)
Задачи со строками
симметричные имеется ввиду слова-палиндромы?

Добавлено (27.10.10, 20:05)
---------------------------------------------
если честно мало что понятно из кода но алгоритм должен быть примерно такой:
1. пишем процедуру для получения слов - от пробела до пробела (если может вариант нескольких пробелом между словами, или пробело вначале и в кноце строки, то сначала удаляем лишние)
2. выделяем помледнее слово и сохраняем в какую то переменную.
3. берем каждое слово, сравниваем его с последним, если они не равны запускаем процедуру сравнения на палиндром.
проверять на палиндром можно находя середину слова - для нечетного количества букв в слова находим среднюю букву [i], а потом сравниваем попарно буквы с индексами i+1 i-1; i+2 i-2... - в палиднроме они попарно равны. для четного количества букв находим условную середину, берем целую часть от неё и проверяем бюуквы с индексами i i+1; i-1 i+2; i-2, i+3...


If you can't make it GOOD make it LOOK GOOD. B.Gates
21 | Автор: DoVe | 2011-05-28, 00:45   |  Репутация: [ + 48 ]
Уууу...что-то ты начудил в своём коде..:)
Держи:
var
a,b:string;
i,j:byte;n:char;
begin
readln(a);
for i:=1 to length(a) do
if (a[i]>chr(48)) and (a[i]<chr(57)) then b:=b+a[i];
for i:=1 to length(b) do
for j:=1 to length(b)-1 do
if b[j]>b[j+1] then begin n:=b[j+1];b[j+1]:=b[j];b[j]:=n;end;
writeln(b);
end.

"Спасибо" принимается повышением репутации ( Зелёный плюсик:) ). Спасибо


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
22 | Автор: Berestovskiy | 2011-05-28, 00:45 | Изменено: Berestovskiy - Вт, 2011-04-26, 02:14   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
22 | Автор: Berestovskiy | 2011-05-28, 00:45 | Изменено: Berestovskiy - Вт, 2011-04-26, 02:14   |  Репутация: [ + 211 ]
Условие понятно, кроме одной строчки:
Quote (clope)
Если строка не удовлетворяет условию, выдать сообщение.

что это означает?


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
23 | Автор: Berestovskiy | 2011-05-28, 00:45   |  Репутация: [ + 211 ]
сейчас проблема с выделением слов, он выделяет только одно слово, как вызвать процедуру так чтобы он шел дальше по послндовательности?
24 | Автор: salage | 2011-05-28, 00:46   |  Репутация: [ + 0 ]
Quote (Berestovskiy)
что это означает?

типичный еррор, write('Ворнинг! Данная строка не удовлетворяет условиям!');


Меня все время преследуют умные мысли... но я быстрее!!!
25 | Автор: guru | 2011-05-28, 00:46   |  Репутация: [ + 8 ]
Quote (guru)
типичный еррор, write('Ворнинг! Данная строка не удовлетворяет условиям!');

вопрос в том когда такое предупреждение вызвать)
судя по всему под условием подразумевается длинна строки, если длинна веденной строки определяется после чтения.
максимальную (или минимальную) длину можем или считать или в программе жестко указать.
Code
CONST minLenth = 5;
maxLength = 15;
function lengthValid (s: string): boolean;
begin
if ( (length(s)>=minLength) and (length(s)<=maxLength) ) then
result:=true
else
result:=false;
end;

потов в программе просто вызываем
Code
if lengthValid(s) then
begin
// код программы
end;


If you can't make it GOOD make it LOOK GOOD. B.Gates
26 | Автор: DoVe | 2011-05-28, 00:46   |  Репутация: [ + 48 ]
омг)
ну понятно что длинна строки не указывается, её length(a)`om определяешь и всё...
всё равно не понял я что-то))


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
27 | Автор: Berestovskiy | 2011-05-28, 00:46   |  Репутация: [ + 211 ]
Помогите сделать прогу, смысл которой:
Я ввожу предложение, например:
мама мыла раму
жму enter
ввожу число, допустим 3
прога выводит третье слово:
раму
соответственно, если ввожу 2 прога выводит слово, второе, соответственно:
мыла
количество пробелов не должно влиять на результат, слов может быть много.

за неделю мне удалось только неработающее это
uses crt;
var
s,str,temp:string;
n,x,i,j,o,p,q,c:integer;
a:array[1..250] of integer;
b:array[1..250] of integer;
p1,p2,p3,p4,p5,p6,p7,p8,p9,p10:integer;
begin
clrscr;
s:='a bs csd dsdf esdfg';
writeln(s);
o:=length(s);

for i:=1 to o do
begin
if (s[i]=' ') then
a[i]:=i;
end;
for i:=1 to o do
for j:=1 to o do
begin
if a[i]>0 then
begin
for j:=0 to o do
b[j]:=i;
write(b[j]);
end;
{write(a[j]);
}

b[1]:=p1;
b[2]:=p2;
b[3]:=p3;
b[4]:=p4;
b[5]:=p5;
b[6]:=p6;
b[7]:=p7;
b[8]:=p8;
b[9]:=p9;
b[10]:=p10;

begin
{writeln('vvedi nomer slova');
readln©;
}
if c=1 then
for j:=p1 to p2 do
writeln(s[j]);

if c=2 then
for j:=p2 to p3 do
writeln(s[j]);

if c=3 then
for j:=p3 to p4 do
writeln(s[j]);

if c=4 then
for j:=p4 to p5 do
writeln(s[j]);

if c=5 then
for j:=p5 to p6 do
writeln(s[j]);

if c=6 then
for j:=p6 to p7 do
writeln(s[j]);

if c=7 then
for j:=p7 to p8 do
writeln(s[j]);

if c=8 then
for j:=p8 to p9 do
writeln(s[j]);
end;
end;
readkey;
end.

заранее благодарю.


KING
28 | Автор: K1NG) | 2011-10-18, 12:14   |  Репутация: [ + 0 ]
program stroki;
uses crt;
var s,str,temp:string;
n,x,i,j,o,p,q,c:integer;
a:array[1..250] of integer;
b:array[1..250] of integer;
p1,p2,p3,p4,p5,p6,p7,p8,p9,p10:integer;
begin
clrscr;
s:='a bs csd dsdf esdfg';
writeln(s);
o:=length(s);

for i:=1 to o do
begin
if (s[i]=' ') then
a[i]:=i;
end;
for i:=1 to o do
for j:=1 to o do
begin
if a[i]>0 then
begin
for j:=0 to o do
b[j]:=i;
write(b[j]);
end;
write(a[j]);
b[1]:=p1;
b[2]:=p2;
b[3]:=p3;
b[4]:=p4;
b[5]:=p5;
b[6]:=p6;
b[7]:=p7;
b[8]:=p8;
b[9]:=p9;
b[10]:=p10;

begin
writeln('vvedi nomer slova',c=);
readln©;

if c=1 then
for j:=p1 to p2 do
writeln(s[j]);

if c=2 then
for j:=p2 to p3 do
writeln(s[j]);

if c=3 then
for j:=p3 to p4 do
writeln(s[j]);

if c=4 then
for j:=p4 to p5 do
writeln(s[j]);

if c=5 then
for j:=p5 to p6 do
writeln(s[j]);

if c=6 then
for j:=p6 to p7 do
writeln(s[j]);

if c=7 then
for j:=p7 to p8 do
writeln(s[j]);

if c=8 then
for j:=p8 to p9 do
writeln(s[j]);
end;
end;
readkey;
readln;
end;
end.
29 | Автор: anton94by | 2011-11-02, 20:38   |  Репутация: [ + 1 ]
Псих
Алгоритм нулевой..


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
30 | Автор: Berestovskiy | 2011-11-02, 23:09   |  Репутация: [ + 211 ]
Здравствуйте уважаемые программисты!
Задание:Дан текстовый файл. Найти самое длинное слово и слово с самым большим количеством слогов.

Есть такой код, но он не работаем.
Помогите, пожалуйста, найти ошибку!

Code
uses
  crt;
var f:text;
     sum:char;
     s,maxsl,max,s1:string;
     m,maxs,d:integer;

function sloga(s1:string):integer;
    var i,k:integer;
        sl:string;
begin
k:=0;
sl:='eyuioa';
for i:=1 to length(s1) do
  begin
   if pos(s1[i],sl)>0 then {ищет первое вхождение строки s1 в строку sl}
   k:=k+1;
  end;
sloga:=k;
end;
begin clrscr;
assign(f,'e:\file.txt');
reset(f);
writeln('<<Содержимое файла>>');
while not eof(f) do
   begin
    readln(f,s1);
    writeln(s1);
   end;
close(f);
writeln(' ');
d:=0;
maxs:=0;
assign(f,'e:\file.txt');
reset(f);
while not eof(f) do
  if not eoln(f) then
   begin
    read(f,s);
    if  d<length(s) then
     begin
      max:=s;
      d:=length(s);
     end;
    m:=sloga(s);
    if maxs<m then
     begin
      maxsl:=s;
      maxs:=m;
     end;
    end
   else
    readln(f);
    close(f);
    writeln('Максимум слогов в слове- ',maxsl);
    write('Самое длинное слово- ',max);

readln;
end.
31 | Автор: Swetlana | 2012-05-05, 06:57   |  Репутация: [ + 0 ]
Быть может твой файл не находиться там где нужно?)

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
32 | Автор: Berestovskiy | 2012-05-05, 14:46   |  Репутация: [ + 211 ]
Спасибо!
Исправила имя файла, программа заработала.
Но в ответе выдает не самое длинное слово, а самое длинное предложение.
И не слово с самым большим кол-вом слогов, а также, самое длинное предложение.
Из-за чего это может быть???

Добавлено (07.05.12, 06:30)
---------------------------------------------
Все, программу сделала.

33 | Автор: Swetlana | 2012-05-07, 06:30   |  Репутация: [ + 0 ]
"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:) ).

Если не сложно - выложи код сюда, вдруг кому-нибудь он поможет..


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
34 | Автор: Berestovskiy | 2012-05-07, 07:00   |  Репутация: [ + 211 ]
Написать программу, которая считает число слов в предложении.

Нойнер
35 | Автор: Вероника | 2012-05-08, 08:54   |  Репутация: [ + 0 ]
var
s:string;
q,i:byte;
begin
readln(s);
for i:=1 to length(s) do
if s[i]=' ' then q:=q+1;
writeln(q);
end.

"Спасибо" принимается в виде повышения репутации ( Зелёный плюсик:) ).Спасибо


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
36 | Автор: Berestovskiy | 2012-05-08, 15:18   |  Репутация: [ + 211 ]
Дана строка символов, состоящая из прописных и строчных латинских букв, цифр от 0 до 9 и пробелов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащих пробелов внутри себя, будем называть словами. Вывести на печать слова, являющиеся десятичными числами, в порядке убывания.
37 | Автор: scafandr | 2012-05-13, 14:50   |  Репутация: [ + 0 ]
опрeдeлить кол-во слов во ввeдённой строкe, окaнчивaющихся нa aя словa рaздeлeны одиночными пробeлaми.
38 | Автор: Gelw | 2012-05-30, 15:47   |  Репутация: [ + 0 ]
зaмeнить во ввeдёной строкe имя коля нa толя.словa рaздeлeны одиночными пробeлaми.
39 | Автор: Gelw | 2012-05-30, 15:49   |  Репутация: [ + 0 ]
39 | Автор: Gelw | 2012-05-30, 15:49   |  Репутация: [ + 0 ]
Пример ввода-вывода

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
40 | Автор: Berestovskiy | 2012-06-01, 09:42   |  Репутация: [ + 211 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Задачи со строками (строковые типы данных)
Страница 2 из 3«123»
Поиск: