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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.12.2007, 20:52   #1
Вввова
 
Регистрация: 21.12.2007
Сообщений: 4
По умолчанию Задача на строки в паскале

Помогите пожалуйста, не могу решить задачу:
Напишите функцию, дающую первое местоположение в строке s1 символа встречающегося в строке s2.
Вот написал что-то но выводит неправильно:

Код:
program stroki;
uses crt;
var
s1, s2:string;
y:integer;
 function FirstLforS1(s1,s2:string):string;
  var
  i, k:integer;
  s3:string;
 begin
  for i:=1 to length(s2) do
  while pos(s2[i],s1)>0 do
  i:= pos(s2[i],s1);
   s3:=copy(s1,i,1);
    delete(s1,i,1);
     s1:=concat(s3,s1);
      FirstLforS1:=s1;
 end;
  begin
  clrscr;
   writeln('wwedite  s1');
    readln(s1);
     writeln('wwedite s2');
      readln(s2);
       writeln(FirstLforS1(s1,s2));
  end.
Цитата:
Код вставляем в тег [CОDE][/СОDЕ] или пользуемся кнопкой # (расширенный режим). Модератор.

Последний раз редактировалось AlDelta; 21.12.2007 в 21:04.
Вввова вне форума
Старый 21.12.2007, 21:17   #2
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

есть функция pos(w,s) в строке s отыскивается первое вхождение строки w.
north вне форума
Старый 21.12.2007, 21:37   #3
Вввова
 
Регистрация: 21.12.2007
Сообщений: 4
По умолчанию

ну вот я ей и пользовался в стр. 13
Вввова вне форума
Старый 21.12.2007, 22:03   #4
north
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.11.2007
Сообщений: 68
По умолчанию

так что ещё надо? Ты присвоил переменной i позицию, вот и выводи ее.
north вне форума
Старый 21.12.2007, 22:15   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

1.
Цитата:
function FirstLforS1(s1,s2:string):string;
Функция ищет первое вхождение, т.е. порядковый номер, сл-но ф-я должна возвращать результат типа integer, а не string.
2.Для хранения номеров нужна не строка, а массив [1..n]of integer.
Короче работа функции должна заключаться в следующем:
1.В двойном цикле сравнение элементов строки S2 с элементами строки S1.
При совпадении элементов включаем счетчик к:=к+1; номер совпавшего элемента в строке S1 заносим в массив a[k]:=pos(S2[j],S1); и так до конца. Затем сортируем массив a[k] по возрастанию и FirstLforS1:=a[1].
Все.
puporev вне форума
Старый 21.12.2007, 22:42   #6
Вввова
 
Регистрация: 21.12.2007
Сообщений: 4
По умолчанию

а как сравнить элементы строк?
Вввова вне форума
Старый 21.12.2007, 22:57   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Примерно так.
Код:
program Fstr;
uses crt;
var s1,s2:string;
function FirstPos(a,b:string):integer;
var i,j,k,x:integer;c:array[1..50]of integer;
begin
while i<=length(s2) do
    begin
      for j:=1 to length(s1) do
      if b[i]=a[j] then
          begin
             k:=k+1;
             c[k]:=pos(b[i],a);
          end;
        i:=i+1;
   end;
for i:=1 to k-1 do
for j:=1 to k-1 do
if c[j]>c[j+1] then
  begin
    x:=c[j];c[j]:=c[j+1];c[j+1]:=x;
  end;
FirstPos:=c[1];
end;
begin
clrscr;
write('S1:');readln(s1);
write('S2:');readln(s2);
write('Rezultat=',FirstPos(s1,s2));
readln;
end.
puporev вне форума
Старый 22.12.2007, 15:06   #8
Вввова
 
Регистрация: 21.12.2007
Сообщений: 4
По умолчанию

!!!Спасибо огромное я видимо вобще не так задание понял!!
хотя я бы его и не решил.
Вввова вне форума
Старый 08.06.2010, 00:18   #9
ЛенкО
Новичок
Джуниор
 
Аватар для ЛенкО
 
Регистрация: 07.06.2010
Сообщений: 2
По умолчанию

помогите решить))) программа, которая при вводе 2 целых чисел, преобразует их в строки, а потом объединяет в одну строку и выводит на экран))))
ЛенкО вне форума
Старый 08.06.2010, 13:33   #10
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

var chislo1,chislo2:integr;
var str1,str2,str:string;

str1:=IntToStr(chislo1);
str2:=IntToStr(chislo2);
str:=str1+str2;
writeln(str);

PS^Как сдавать собираешься, если даже такую легкую прогу не можешь написать?
Snejnaya вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в Паскале istragon Помощь студентам 6 28.12.2009 18:18
Задача на строки Juhn Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 16:10
Строки в Паскале Обработка текста quqer Помощь студентам 3 11.03.2008 11:22
Строки в паскале Exact Паскаль, Turbo Pascal, PascalABC.NET 8 08.02.2008 20:45
задача на строки Hostlman Помощь студентам 2 26.12.2007 03:17