Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Pascal
Перезагрузить страницу example
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
''PSV'' ''PSV'' вне форума
Новичок
 
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 16.03.2008
По умолчанию 23.03.2008, 16:52

Написать программу, которая выводит минимальный элемент введенного с клавиатуры массива целых чисел.
Ответить с цитированием
  (#2 (permalink)) Старый
kemiisto kemiisto вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.03.2008
По умолчанию 23.03.2008, 18:00

Вот, накидал на коленках:
Код:
program Project1;

var
  n, i, min: Integer;
  a: array[1..10] of Integer;

begin
  Write('Vvedite kol-vo elementov massiva (1..10): ');
  Readln(n);
  for i := 1 to n do
  begin
    Write('a[', i, '] = ');
    Readln(a[i]);
  end;
  min := a[1];
  for i := 2 to n do
    if a[i] < min then
      min := a[i];
  Writeln('Minimal''noe znachenie = ', min);
  Readln;
end.
Ответить с цитированием
  (#3 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 23.03.2008, 20:58

Блин, я же говорю, HeapSort рулит. Делать надо ТАК:
Код:
var n,i,f,b:longint;
    a:array[1..1000]of longint;
procedure swap(p,q:longint);
var c:longint;
begin
c:=a[p];
a[p]:=a[q];
a[q]:=c;
end;
procedure heapify(k:longint);
var t,l,r:longint;
begin
l:=k shl 1;
r:=l+1;
t:=k;
if l<=n then if a[l]<a[k] then t:=l;
if r<=n then if a[r]<a[t] then t:=r;
if t<>k then begin swap(t,k); heapify(t); end;
end;
procedure buildmheap;
var i:longint;
begin
for i:=f shr 1 downto 1 do heapify(i);
end;
procedure heapsort;
var t,i:longint;
begin
t:=n;
buildmheap;
for i:=1 to t do begin swap(1,n); dec(n); heapify(1); end;
n:=t;
end;
begin
n:=3;
f:=1;
b:=1;
while f<n do begin b:=b shl 1; f:=f+b; end;
for i:=1 to n do read(a[i]);
heapsort;
writeln(a[1]);
readln;
end.
Ответить с цитированием
  (#4 (permalink)) Старый
kemiisto kemiisto вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 08.03.2008
По умолчанию 23.03.2008, 21:22

Цитата:
Блин, я же говорю, HeapSort рулит.
Exmap, ничего личного , но:
  1. поиск min/max элемента и сортировка - совершенно разные классы задач;
  2. "рулит" прежде всего красиво оформленный код.*

* Приведенный тобой код и так достаточно сложен для новичка. Куча процедур (без коментариев, что они делают). Да и сам метод бинарных деревьев не так то прост.
Ответить с цитированием
  (#5 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 24.03.2008, 14:24

Цитата:
* Приведенный тобой код и так достаточно сложен для новичка. Куча процедур (без коментариев, что они делают). Да и сам метод бинарных деревьев не так то прост.
Так и надо.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Exmap Exmap вне форума
Member
 
Сообщений: 1,045
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.09.2007
По умолчанию 24.03.2008, 14:27

kemiisto, извини, но у тебя не особо сильно развито чувство юмора.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов