Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 21:53   #1
pashka_dos
Пользователь
 
Аватар для pashka_dos
 
Регистрация: 19.11.2011
Сообщений: 83
Сообщение Задачи по строкам

1.В тексте найти самой короткое и самое длинное слово.
2.Установить можно-ли из слова А составить слово Б?
Заранее спасибо))
pashka_dos вне форума Ответить с цитированием
Старый 05.12.2011, 22:08   #2
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

2.
Код:
var
  i: integer;
  a, b: string;
  am, bm: set of char;

begin
  a := 'слово #1';
  b := 'слово #2';
  if length(a) <> length(b) then writeln('нельзя')
  else
  begin
    for i := 1 to length(a) do
    begin
      include(am, a[i]);
      include(bm, b[i]);
    end;
    if am = bm then writeln('можно')
    else writeln('нельзя');
  end;  
end.
unbanned вне форума Ответить с цитированием
Старый 05.12.2011, 23:11   #3
matr_
 
Регистрация: 10.01.2011
Сообщений: 8
По умолчанию

Код:
var a,b:string;
s,k,i,j:integer;
begin
read(a,b);
delete(b,1,1);
for i:=1 to length(a) do begin
 for j:=1 to length(b) do begin
 if a[i]=b[j] then k:=1;
 end;
 s:=s+k;
 end;
 if s=length(a) then write('da')
 else write('net');
 
 end.
matr_ вне форума Ответить с цитированием
Старый 06.12.2011, 08:20   #4
unbanned
Форумчанин
 
Аватар для unbanned
 
Регистрация: 23.11.2010
Сообщений: 530
По умолчанию

matr_
попробуй в своей программе ввести к примеру

Код:
a:='вася';
b:='сава';
unbanned вне форума Ответить с цитированием
Старый 06.12.2011, 08:44   #5
matr_
 
Регистрация: 10.01.2011
Сообщений: 8
По умолчанию

ну и что?
тут в условии не сказано можно ли использовать одну букву один раз!
matr_ вне форума Ответить с цитированием
Старый 06.12.2011, 09:00   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
тут в условии не сказано можно ли использовать одну букву один раз!
А на мой взгляд - сказано. составить слово из букв другого слова подразумевает, что все буквы исходного слова должны войти в новое слово и ровно столько же раз, сколько раз, сколько они были в исходном слове.

ну, представьте выложили буквами (типа детской азбуки или кубики с буквами) первое слово, потом их перемешали и попытались сложить второе слово. Причём это нужно сделать так, чтобы все буквы исходного слова вошли в новое (лишних кубиков остаться не должно).

p.s. но даже если подойти к этому с Вашей позиции, у Вас всё равно НЕВЕРНЫЙ код!
как Вы объясните, что
Цитата:
Код:
a:='вася'; b:='сава';
ваша программа говорит "ДА"
а на
Цитата:
Код:
a:='вася'; b:='aаaa';
она говорит нет?! Букву а можно исопльзовать только два раза, больше уже нельзя?!


ДОБАВЛЕНО
я бы предложил такой код:
Код:
var 
  a,b:string;
begin
{read(a,b); }
  a:='васа'; b:='авса';
  while (length(a)>0) and (Pos(a[1], b)>0) do begin
    Delete(b,Pos(a[1], b),1);
    Delete(a,1,1);
  end;
  if (Length(a)=0) and (Length(b)=0)
  then WriteLn('Da, mosjno sostavit.')
  else WriteLn('Net, nelzya sostavit.');
  Readln;
end.

Последний раз редактировалось Serge_Bliznykov; 06.12.2011 в 09:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.12.2011, 12:18   #7
psixovataya_osoba
 
Регистрация: 08.12.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
А на мой взгляд - сказано. составить слово из букв другого слова подразумевает, что все буквы исходного слова должны войти в новое слово и ровно столько же раз, сколько раз, сколько они были в исходном слове.

ну, представьте выложили буквами (типа детской азбуки или кубики с буквами) первое слово, потом их перемешали и попытались сложить второе слово. Причём это нужно сделать так, чтобы все буквы исходного слова вошли в новое (лишних кубиков остаться не должно).

p.s. но даже если подойти к этому с Вашей позиции, у Вас всё равно НЕВЕРНЫЙ код!
как Вы объясните, что

ваша программа говорит "ДА"
а на
она говорит нет?! Букву а можно исопльзовать только два раза, больше уже нельзя?!


ДОБАВЛЕНО
я бы предложил такой код:
Код:
var 
  a,b:string;
begin
{read(a,b); }
  a:='васа'; b:='авса';
  while (length(a)>0) and (Pos(a[1], b)>0) do begin
    Delete(b,Pos(a[1], b),1);
    Delete(a,1,1);
  end;
  if (Length(a)=0) and (Length(b)=0)
  then WriteLn('Da, mosjno sostavit.')
  else WriteLn('Net, nelzya sostavit.');
  Readln;
end.
ну если допустим попросить пользоателя ввести слова( а:=марго, b:=гора) составить можно, а программа пишет что составить нельзя.
psixovataya_osoba вне форума Ответить с цитированием
Старый 08.12.2011, 12:36   #8
psixovataya_osoba
 
Регистрация: 08.12.2011
Сообщений: 4
По умолчанию

в верхнем коде также... то есть получается что слова по длине должны быть одинаковы?
psixovataya_osoba вне форума Ответить с цитированием
Старый 08.12.2011, 13:10   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
в верхнем коде также... то есть получается что слова по длине должны быть одинаковы?
да.
здесь пример решает чуть-чуть другую задачу.
все буквы первого слова должны в обязательном порядке войти во второе. (лишних не должно оставаться).

у Вас же, насколько я могу судить задача стоит так:
Цитата:
Даны две строки А и В. Составьте программу, проверяю┐щую, можно ли из букв, входящих в А, составить В (буквы можно использовать не более одного раза и можно переставлять).Например, А:ИНТЕГРАЛ; В:АГЕНТ- составить можно; В:ГРАФ- составить нельзя.
но, это потребует совсем маленьких доработок кода..
проверяйте:
Код:
var 
  a,b:string;
begin
{read(a,b); }
  a:='васа'; b:='авса';
  while (length(b)>0) and (Pos(b[1], a)>0) do begin
    Delete(a,Pos(b[1], a),1);
    Delete(b,1,1);
  end;
  if (Length(b)=0)
  then WriteLn('Da, mosjno sostavit.')
  else WriteLn('Net, nelzya sostavit.');
  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.12.2011, 13:11   #10
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от psixovataya_osoba Посмотреть сообщение
в верхнем коде также... то есть получается что слова по длине должны быть одинаковы?
Если речь идёт о задаче
Цитата:
Установить можно-ли из слова А составить слово Б?
То да. Об этом Serge_Bliznykov написал выше, прочитайте.
Вадим Мошев вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа по строкам StasDeGraf Общие вопросы C/C++ 2 04.11.2011 19:07
Задачи по двумерным массивам и строкам VANOLORD Паскаль, Turbo Pascal, PascalABC.NET 1 29.05.2011 23:44
Задачи по строкам SoTwisted Помощь студентам 0 11.01.2011 01:03
По строкам Condor123 Помощь студентам 3 04.05.2010 10:09