Страница 2 из 3

Re: Задача по Turbo Pascal

Добавлено: 30 ноя 2007, 11:38
Хыиуду
я бы сделал так:

Код: Выделить всё

function is_duplicate(c:char; s:string):boolean;
begin
  is_duplicate:=(pos(c,s)>0) and (pos(c, copy(s, pos(c,s)+1, length(s)))>0);
end;

for i:=1 to length(s) do
begin
  c:=s[i];
  if is_duplicate(c,s) do
      while pos(c,s)>0 do
        delete(s,pos(c,s),1);
end;
Если я, конечно, не ошибся в применении функции pos - там вроде бы первым идет char, а потом string?

Re: Задача по Turbo Pascal

Добавлено: 03 дек 2007, 15:52
BBB
Хыиуду писал(а):Если я, конечно, не ошибся в применении функции pos - там вроде бы первым идет char, а потом string?
Можно не только char, но и строку. А последовательнось параметров правильная:

Код: Выделить всё

[b]function[/b] Pos(Substr: [b]string[/b]; S: [b]string[/b]): Integer;

[b]Description[/b]

Pos searches for a substring, Substr, in a string, S. Substr and S are string-type expressions.

Pos searches for Substr within S and returns an integer value that is the index of the first character of Substr within S. Pos is case-sensitive. If Substr is not found, Pos returns zero.

Re: Задача по Turbo Pascal

Добавлено: 04 дек 2007, 02:03
Игорь Акопян
офтопище.
вот за что я люблю паскаль - интуитивно понятный порядок параметров "позиция подстроки в строке"
пардоны...

офтопище на офтопище.

Добавлено: 04 дек 2007, 10:25
BBB
Игорь Акопян писал(а):офтопище.
вот за что я люблю паскаль - интуитивно понятный порядок параметров "позиция подстроки в строке"
пардоны...
Имхо, насчет "интуитивных понятий" - это все относительно. У кого-то одна интуиция, у кого-то другая. При словах "Автомобиль движется из точки A в точку B" половина людей представит движение автомобиля справа налево, другая половина - слева направо.

Читал когда-то, что формулировку "плоскость разделена прямой на две полуплоскости, в одной и которых находтся точка A" образно можно представить вообще 4-ми способами: прямая - горизонтальная или вертикальная, точка - в верхней или нижней (правой или левой) полуплосткостях. И если эту задачу будут обсуждать между собой (без наличия рисунка) два человека из "разных подможеств", то у них определенно возникнут трудности взаимопонимания.

Re: Задача по Turbo Pascal

Добавлено: 16 янв 2008, 14:31
Zenit
Помогите кто может пожалуйста, мне к пятнице надо решить 8 задач но я весь семестр болел и поэтому ничего не получается, с 3 почти разобрался но помогите решить эту ваще незнаю что с ней делать
Задание
Выполнить необходимую обработку, при этом описать рекурсивную процедуру или функцию, исходя из условия задачи. Исходные данные задать самостоятельно, учитывая специфику задачи.
Задача
Дана последовательность, состоящая из n действительных чисел, найти максимальное по величине число.
Заранее спасибо.

Re: Задача по Turbo Pascal

Добавлено: 16 янв 2008, 14:52
MOTOCoder
Интересно, зачем здесь рекурсия, решение и так простое(или без рекурсии нельзя?)?

[syntax='delphi']
program maxval;
const
N=10;
var
a:array[1..N]of real;
i:integer;
max:real;

begin
writeln('Введите значения членов последовательности');
for i:=1 to N do
readln(a);

max:=a[1];

for i:=2 to N do
if a>max then
max:=a;

writeln('Наибольшее значение ',max:0:5);
readln;
end.
[/syntax]

Re: Задача по Turbo Pascal

Добавлено: 16 янв 2008, 15:06
Zenit
спасибо большое но там без рекурсии нельзя вот в этом та и вся проблема. А разве код Delphi в Pascal пойдёт.

Нахождение максимума

Добавлено: 16 янв 2008, 15:33
BBB

Re: Задача по Turbo Pascal

Добавлено: 16 янв 2008, 15:40
Zenit
&quot писал(а):Тыц!
Так я бы решил, но мне надо решить использовав рекурсию, а про неё по этой ссылке ничего нет.Я ваще не представляю как с помошью рекурсии решать.

Re: Задача по Turbo Pascal

Добавлено: 16 янв 2008, 17:04
somewhere
Рекурсия - это совершенно другой подход к решению задачи, и пихать ее куда попало не всегда получается. Тоже самое что попытаться скрепить два стальных листа используя нитку с иголкой заместо сварки - в теории все возможно, но вот сколько с этим придется *заниматься сексом* - это уже другой вопрос.