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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2013, 13:22   #1
Just-Joni
 
Регистрация: 26.12.2013
Сообщений: 7
Вопрос Реализовать функцию Pos(a, n) через другие функции. (Turbo Delphi)

Здравствуйте, пожалуйста помогите решить задачу:
"Реализовать функцию Pos(a, n), возвращающую индекс первого вхождения элемента n в массиве целых чисел a, либо -1." Реализовать нужно через другие функции, вроде "Delete", "Insert", "Copy" и т.д.
Just-Joni вне форума Ответить с цитированием
Старый 26.12.2013, 13:50   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
массиве целых чисел
Цитата:
Реализовать нужно через другие функции, вроде "Delete", "Insert", "Copy"
При чем эти функции и массив? В массиве просто цикл и сравнение
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.12.2013, 13:51   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
function Pos(s,c:String):Integer;
var i:Integer;
begin
 for i:=1 to Length(s)-Length(c) do
  if copy(s,i,Length(c))=s then begin Pos:=i; break; end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.12.2013, 14:12   #4
Just-Joni
 
Регистрация: 26.12.2013
Сообщений: 7
По умолчанию

Большое спасибо! Очень выручили!
Just-Joni вне форума Ответить с цитированием
Старый 26.12.2013, 14:14   #5
Just-Joni
 
Регистрация: 26.12.2013
Сообщений: 7
По умолчанию

Если не сложно - не могли бы помочь с ещё одним заданием: http://www.programmersforum.ru/showthread.php?t=252101
Just-Joni вне форума Ответить с цитированием
Старый 26.12.2013, 14:15   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не совсем верно, нужно в начале иницилизацию -1 сделать:
Код:
function Pos(s,c:String):Integer;
var i:Integer;
begin
 Pos := -1; 
 for i:=1 to Length(s)-Length(c) do
  if copy(s,i,Length(c))=s then begin Pos:=i; break; end;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2013, 19:07   #7
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
не совсем верно, нужно в начале иницилизацию -1 сделать:
-1, конечно, хорошо.. но всё же стандартный Pos в случае отсутствия подстроки в строке вернет 0..
Poma][a вне форума Ответить с цитированием
Старый 26.12.2013, 21:10   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
-1, конечно, хорошо.. но всё же стандартный Pos в случае отсутствия подстроки в строке вернет 0..
так. Невнимательность Вас погубит.
цитирую
Цитата:
Сообщение от Just-Joni Посмотреть сообщение
Здравствуйте, пожалуйста помогите решить задачу:
"Реализовать функцию Pos(a, n), возвращающую индекс первого вхождения элемента n в массиве целых чисел a, либо -1."
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2013, 21:14   #9
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
так. Невнимательность Вас погубит.
цитирую
Снова..
Уж простите..
Poma][a вне форума Ответить с цитированием
Старый 29.12.2013, 15:55   #10
Just-Joni
 
Регистрация: 26.12.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не совсем верно, нужно в начале иницилизацию -1 сделать:
Код:
function Pos(s,c:String):Integer;
var i:Integer;
begin
 Pos := -1; 
 for i:=1 to Length(s)-Length(c) do
  if copy(s,i,Length(c))=s then begin Pos:=i; break; end;
end;
Преподаватель сразу сказал что ошибка: в задании сказано о МАССИВЕ, а тут - про СТРОКУ
Just-Joni вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BlockInput и другие элементарные функции Dimarik Win Api 1 06.02.2011 22:24
выразить arcctg(x) через другие функции? KimiRaikkonen Общие вопросы C/C++ 2 20.11.2009 21:17
Помогите сделать задачу через Turbo Delphi Alibastr007 БД в Delphi 0 05.03.2009 15:33