|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2010, 21:52 | #1 |
Пользователь
Регистрация: 26.09.2010
Сообщений: 11
|
значение счетчика
Обьясните что делает счетчик выделеный красным
uses crt; type m1=array[1..5,1..4] of integer; var a:m1; procedure Input(var g:m1); var x,y:integer; begin for x:=1 to 5 do for y:=1 to 4 do begin Write('g[',x,',',y,']='); ReadLn(g[x,y]); end; end; procedure Output(var g:m1); var x,y:integer; begin for x:=1 to 5 do for y:=1 to 4 do begin if y<>4 then Write(' g[',x,',',y,']= ',g[x,y]) else WriteLn(' g[',x,',',y,']= ',g[x,y]); end; end; procedure Search(var g:m1); var x,m,y,xx,yy:integer; el,max:real; k:boolean; begin m:=1; k:=false; max:=0; for x:=1 to 5 do for y:=1 to 4 do begin el:=g[x,y]; for xx:=1 to 5 do for yy:=1 to 4 do begin if (el=g[xx,yy]) and (m=1) then begin if (x<>xx) or (y<>yy) then begin max:=el; k:=true; m:=2; end; end else if (el=g[xx,yy])and (el>max) then if (x<>xx) or (y<>yy) then begin max:=el; end; end; end; if k=true then WriteLn('max=',max:1:4) else WriteLn('no max>1 raza'); end; begin Input(a); WriteLn; Output(a); WriteLn; Search(a); ReadLn; end. |
16.12.2010, 22:21 | #2 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Вы код оформлять пробовали???
Хакинг - не преступление, а способ выживания.
|
16.12.2010, 22:28 | #3 |
Пользователь
Регистрация: 26.09.2010
Сообщений: 11
|
Код:
|
16.12.2010, 22:39 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
это не счётчик.
здесь у Вас и K и m выступают в роли флажков. K - в начале программы false (это значит, максимум ещё не найден). Как только нашли максимум - делаем его true m в начале программы 1. Как только нашли 1-й максимум - присваиваем ему двойку, и уже алгорит идёт по другому пути: (if (el=g[xx,yy]) and (m=1) then - уже не срабатыет, а срабатывает else p.s. 1) наверняка можно обойтись одной переменной.. 2) в следующий раз, когда приводите код, указывайте задачу, которую этот код решает. Так проще понять, что в коде делается... |
16.12.2010, 22:45 | #5 | |
Пользователь
Регистрация: 26.09.2010
Сообщений: 11
|
Цитата:
Спасибо... В общем все понял , токо смушает m и то как он изменяется и зачем он это делает. А программа находит максимальный елемент встречаюшийся в масиве более 1 раза. |
|
16.12.2010, 22:46 | #6 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Согласитесь же, что так намного приятней читать текст...
В этой проге получается, что если переменной k хоть 1 раз присвоили true, то она по любому выведет значение max. А переменная m служит для ограничения присвоения true переменной k. Вроде так
Хакинг - не преступление, а способ выживания.
|
16.12.2010, 22:47 | #7 |
Форумчанин
Регистрация: 08.08.2010
Сообщений: 371
|
Похоже опоздал((
Хакинг - не преступление, а способ выживания.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка счетчика | doober | Microsoft Office Access | 3 | 21.02.2010 23:15 |
обнуление счетчика в бд | Tanuska___:) | БД в Delphi | 2 | 22.01.2009 23:10 |
Эмуляция счетчика | tolikman | Microsoft Office Access | 3 | 24.10.2008 11:13 |
Сброс счетчика | vldand | Microsoft Office Access | 1 | 20.10.2008 18:40 |