Задача по Turbo Pascal

Модераторы: Duncon, Naeel Maqsudov, Хыиуду, Игорь Акопян

Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

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?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

03 дек 2007, 15:52

Хыиуду писал(а):Если я, конечно, не ошибся в применении функции 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.
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

04 дек 2007, 02:03

офтопище.
вот за что я люблю паскаль - интуитивно понятный порядок параметров "позиция подстроки в строке"
пардоны...
Изображение
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

04 дек 2007, 10:25

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

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

16 янв 2008, 14:31

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

16 янв 2008, 14:52

Интересно, зачем здесь рекурсия, решение и так простое(или без рекурсии нельзя?)?

[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]
Zenit
Сообщения: 6
Зарегистрирован: 16 янв 2008, 09:26

16 янв 2008, 15:06

спасибо большое но там без рекурсии нельзя вот в этом та и вся проблема. А разве код Delphi в Pascal пойдёт.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

16 янв 2008, 15:33

Zenit
Сообщения: 6
Зарегистрирован: 16 янв 2008, 09:26

16 янв 2008, 15:40

&quot писал(а):Тыц!
Так я бы решил, но мне надо решить использовав рекурсию, а про неё по этой ссылке ничего нет.Я ваще не представляю как с помошью рекурсии решать.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

16 янв 2008, 17:04

Рекурсия - это совершенно другой подход к решению задачи, и пихать ее куда попало не всегда получается. Тоже самое что попытаться скрепить два стальных листа используя нитку с иголкой заместо сварки - в теории все возможно, но вот сколько с этим придется *заниматься сексом* - это уже другой вопрос.
It's a long way to the top if you wanna rock'n'roll
Закрыто