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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2009, 13:50   #1
RrR5
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 13
Вопрос Pascal нужны комментарии к процедуре.

Код:
procedure proverka(k:integer);
var i:integer;
begin
z:=0;
for i:=1 to N do begin
if (p^[i]=k) then z:=z+1;end;
write(' ',z); if z<min then min:=z;
if z>max then max:=z;
end;
Подскажите пожалуйста, как работает данная процедура, т.е. что на каком шаге делает?
И за что отвечает переменная k.
Заранее спасибо.
RrR5 вне форума Ответить с цитированием
Старый 27.01.2009, 14:17   #2
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

А ты уверен что это рабочий код? Я что-то не встречал такое чтобы оператор брали в квадратные скобки
Hollander вне форума Ответить с цитированием
Старый 27.01.2009, 14:30   #3
RrR5
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 13
По умолчанию

Это от сюда:
Код:
Program Massiv;
Uses crt;
const N=10000;
type Diapaz=1..N;
     celmas=array[Diapaz] of integer;
var i,j,k,z:integer;
    p:^celmas;
    x:integer;
Procedure Proverka(k:integer);
var i:integer;
begin
z:=0;
for i:=1 to N do begin
if (p^[i]=k) then z:=z+1;end;
write(' ',z);
end;

Procedure Uporiad;
var i,j:integer;
begin
for i:=1 to N do begin
for j:=N downto 1 do
begin
if p^[j-1]>p^[j] then
       begin
       x:=p^[j-1];
       p^[j-1]:=p^[j];
       p^[j]:=x;
       end;
end;
write(' ',p^[i]);
end;end;

begin
Clrscr;
Randomize;
new(p);
for i:=1 to N do
begin
p^[i]:=random(21);
end;
Uporiad;
writeln;
for j:=0 to 20 do begin
Proverka(j);end;
dispose(p);
end.
RrR5 вне форума Ответить с цитированием
Старый 27.01.2009, 14:48   #4
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

у тебя тела в процедурах разные - ты определись, и лучше, если ты остановишься на втором варианте - лучше для тебя

Код:
procedure proverka(k:integer);
var i:integer;
begin
z:=0;
for i:=1 to N do begin
if (p^[i]=k) then z:=z+1;end;
write(' ',z); if z<min then min:=z;
if z>max then max:=z;
end;
Код:
Procedure Proverka(k:integer);
var i:integer;
begin
z:=0;
for i:=1 to N do begin
if (p^[i]=k) then z:=z+1;end;
write(' ',z);
end;
а процедура твоя считает количество элементов массива, которые равны задаваемому числу k, вот только лучше, если ты константу N (размер массива) скинешь как формальный параметр процедуры, потому что процедура должна выглядеть как максимально независимая от головной программы программа - ну это так - совет
capta1n вне форума Ответить с цитированием
Старый 27.01.2009, 15:16   #5
RrR5
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 13
По умолчанию

А упорядочивание
Код:
Procedure Uporiad;
var i,j:integer;
begin
for i:=1 to N do begin
for j:=N downto 1 do
begin
if p^[j-1]>p^[j] then
       begin
       x:=p^[j-1];
       p^[j-1]:=p^[j];
       p^[j]:=x;
       end;
end;
write(' ',p^[i]);
end;end;
вставками?
RrR5 вне форума Ответить с цитированием
Старый 27.01.2009, 15:29   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Это простой обмен, разновидность пузырька.
puporev вне форума Ответить с цитированием
Старый 28.01.2009, 13:20   #7
RrR5
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 13
По умолчанию

Procedure Proverka(k:integer);
var i:integer;
begin
z:=0;
for i:=1 to N do begin
if (p^[i]=k) then z:=z+1;end;
write(' ',z);
end;

Зачем тут нужен параметр k
RrR5 вне форума Ответить с цитированием
Старый 28.01.2009, 13:22   #8
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Цитата:
а процедура твоя считает количество элементов массива, которые равны задаваемому числу k
читай то что тебе пишут внимательнее
capta1n вне форума Ответить с цитированием
Старый 28.01.2009, 13:22   #9
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

с k(передается из программы) сравниваются элементы, а затем выводится их количество(элементы равные k)
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 28.01.2009, 13:23   #10
RrR5
Пользователь
 
Регистрация: 25.01.2009
Сообщений: 13
По умолчанию

препод говорит не то..
нужно объяснить что именно делает сама k
RrR5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диспетчер задач нужны комментарии Naymen Общие вопросы Delphi 1 20.12.2008 12:28
Комментарии к коду Juhn Паскаль, Turbo Pascal, PascalABC.NET 6 24.12.2007 20:29
Комментарии к коду Ярослав Помощь студентам 4 23.11.2007 16:57