IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задача по масиву
kyhner
сообщение 30.04.2006 14:44
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


помогите пожалуйста задание такое (даны 3-табл A(100) b (100) c (100) известно что существуют целые числа встречающиеся во всех 3-х табличах.найти одно такое число. лучше зделать это с помощью процидур и функций.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.04.2006 16:01
Сообщение #2


Гость






const
n = 100;
type
T = array[1 .. n] of integer;

Function max(A, B: Integer): Integer;
Begin
{ Здесь напишешь функцию, возвращающую максимум из значений A, B }
End;

Procedure Sort(Var ar: T; n: integer);
Begin
{ Любой алгоритм сортировки, на выбор ... }
End;

var
a, b, c: T;
i, i_a, i_b, i_c: integer;

begin
{ Здесь - заполнение массивов A, B, C }

sort(a, n);
sort(b, n);
sort(c, n);

i_a := 1; i_b := 1; i_c := 1;
while not ((a[i_a] = b[i_b]) and (b[i_b] = c[i_c])) do begin

if a[i_a] < max(b[i_b], c[i_c]) then
while a[i_a] < max(b[i_b], c[i_c]) do inc(i_a);

if b[i_b] < max(a[i_a], c[i_c]) then
while b[i_b] < max(a[i_a], c[i_c]) do inc(i_b);

if c[i_c] < max(a[i_a], b[i_b]) then
while c[i_c] < max(a[i_a], b[i_b]) do inc(i_c);

end;
writeln(a[i_a]:4, b[i_b]:4, c[i_c]:4);
end.

Вот и все...
 К началу страницы 
+ Ответить 
kyhner
сообщение 30.04.2006 20:42
Сообщение #3





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


спасибо!
а она попроще не делается а то чето алгоритм не получается у меня написать
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 1.05.2006 11:31
Сообщение #4


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Проще (в плане написания) только простым перебором.

find := false;
i := 1;
while (i <= 100) and not(find) do begin
j := 1;
while (j <= 100) and not(find) do begin
k := 1;
while (k <= 100) and not(find) do begin
find := (a[i] = b[j]) and (b[j] = c[k]);
if not(find) then inc(k);
end;
if not(find) then inc(j);
end;
if not(find) then inc(i);
end;

if find then writeln(a[i]);


Исправил

Сообщение отредактировано: volvo - 2.11.2006 1:01


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 26.07.2025 13:29
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"