Максимальное число |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Максимальное число |
Clane |
13.11.2002 19:31
Сообщение
#1
|
Гость |
Вот алгоритм поиска максимального числа в массиве.
Код program maxmassiv(input,output); var a: array [1..10] of Byte; Max:integer; I:byte; begin I:=0; for I:=1 to 10 do begin writeln('Enter an integer:'); readln(a[i]); end; Max:=A[1]; For I:=1 to 10 do begin if Max<A[I] then Max:=A[I]; end; writeln(Max); readln; readln; end. Сообщение отредактировано: volvo - 17.12.2004 11:55 |
Alex |
13.11.2002 20:33
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 201 Репутация: 0 |
Ну это Clane по-моему примитивщина.Мне кажется здесь надо писать алгоритмы посложнее.Например слияние, переворот на 90 градусов и тд и тп.
|
Clane |
13.11.2002 20:50
Сообщение
#3
|
Гость |
Может это и примитивщина, но для новичков сойдет.. Тем более что просто никто ничего не пишешь, вот я решил что-то черкнуть..
|
Ivs |
13.11.2002 21:22
Сообщение
#4
|
Бывалый Группа: Пользователи Сообщений: 209 Репутация: 0 |
Определение максимального из 2-х чисел:
max:=int((abs(a-B)+a+B)/2); усе............. -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Ivs |
14.11.2002 21:32
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 209 Репутация: 0 |
Цитата Ну это Clane по-моему примитивщина.Мне кажется здесь надо писать алгоритмы посложнее.Например слияние, переворот на 90 градусов и тд и тп. Ну напиши -- посмотрим........... -------------------- Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
|
Alex |
15.11.2002 16:01
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 201 Репутация: 0 |
ЧО написать-то не понял!!!!
|
Alex |
15.11.2002 17:30
Сообщение
#7
|
Бывалый Группа: Пользователи Сообщений: 201 Репутация: 0 |
Если переворот на 90 градусов(например вправо), то вот он алгоритм(мой):
program perevorot; Код uses Crt; const n=5; var a,c:array [1..n,1..n] of integer;i,j,s:integer; begin ClrScr; Randomize; s:=n; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(21)+10; c[j,s]:=a[i,j]; write(a[i,j],' '); end; s:=s-1; writeln; end; writeln; for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=c[i,j]; write(a[i,j],' '); end; writeln end; readln end. если на 180 градусов (тоже вправо), то алгоритм чуть-чуть изменяется на: Код s:=n; for i:=1 to n do begin k:=n; for j:=1 to n do begin a[i,j]:=Random(21)+10; c[s,k]:=a[i,j]; write(a[i,j],' '); k:=k-1; end; s:=s-1; writeln; end; соответственно переменную k надо описать. Сообщение отредактировано: volvo - 17.12.2004 11:56 |
Dogmatic |
30.11.2002 20:56
Сообщение
#8
|
Группа: Пользователи Сообщений: 9 Репутация: 0 |
Clane, во 2-м цикле не for i := 1 to 10, а for i := 2 to 10, зачем лишний раз сравнивать Max и A[1]=Max. К тому же begin и end в цикле с одним оператором не нужны. Знающий поймет, но ты же для новичков пишешь, должно быть как конфетка.
-------------------- "Разум есть оружее лени, лишь умный человек может позволить себе быть ленивым" (Я)
|
Clane |
30.11.2002 21:42
Сообщение
#9
|
Гость |
Угу.. Понял.. Просто иногда сложно в час ночи выловить какие - то баги.. Спасибки еще раз.. Рад видеть тебя на форуме..
|
Vit |
4.01.2003 3:39
Сообщение
#10
|
Бывалый Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: 0 |
Кстати если кого интересует как это сделать в дельфи, то в модуле Math есть готовая функция для этого
-------------------- With the best regards Vit
Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой |
chucha |
23.04.2003 7:47
Сообщение
#11
|
Гость |
Может, кто поможет составить программу!!!
В Pascale – только учусь Не могу составить программу: Дана матрица а:array[1..n,1..m] мне необходимо суммировать в каждой строке элементы, которые равны 1, потом полученные результаты от каждой строки сравнить между собой и вывести на экран номер той строки, в которой сумма будет максимальной. Например: - в этой матрице программа должна вывести строку№2, т.к. в ней сумма элементов равных 1 больше чем в остальных строках. Никак не разберусь, хожу только вокруг да около. Заранее большое благодарю тем, кто поможет разобраться с этой задачей. |
Shadow |
23.04.2003 10:59
Сообщение
#12
|
Lonely_Raven Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: 1 |
:D
их индексы равны единице или сами числа -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
chucha |
23.04.2003 11:29
Сообщение
#13
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
равны единице
сами числа Пример: первоя строка[1 0 1 0 0] втрая строка [1 1 1 1 1] третья строка[1 0 1 0 1] в этой матрице программа должна вывести строку№2, т.к. в ней сумма элементов равных 1 больше чем в остальных строках. Никак не разберусь, хожу только вокруг да около. Заранее большое благодарю тем, кто поможет разобраться с этой задачей. |
Shadow |
23.04.2003 12:23
Сообщение
#14
|
Lonely_Raven Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: 1 |
:D sorry
а только 1 и 0 или друг числа -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
chucha |
23.04.2003 12:52
Сообщение
#15
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
В принципе подсчет только тех элементов матрицы, которые =1, а остальные не важно ноль там стоит или другое число.
вообще матрица должна вводится в ходе программы, т.е. программа должна сделать запрос на ввод матрицы с клавиатуры. |
Shadow |
23.04.2003 20:24
Сообщение
#16
|
Lonely_Raven Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: 1 |
:'(
отвратиетельный дебильный код написал но работает вроде --- там протестируешь ----- кстати насчет нахождение иаксимально числа в массиве а не проще его от сортировать по возраст и взять последнее число из массива --- Код Uses Crt,Dos; Const color : Array [0..6,0..6] Of byte = ((1,1,1,1,1,1,1),{4} (1,1,1,1,1,8,1), {6} (1,1,1,1,1,8,8), {5} (6,7,8,1,1,1,1), {4} (1,1,1,1,6,1,1), {3} (1,1,6,7,5,1,1), {2} (1,2,4,0,5,6,0)); {1 13 chtuck} Var x,y,x1,y1,d,v,g,n,n1,sum:byte; x2:byte; y2:byte; s,s1,s2,s3,s4,s5,s6:byte; p,p1,p2,p3,p4:byte; st:array[0..7] of integer; label we; BEGIN n:=6; n1:=6; for x:=0 to n do for y:=0 to n1 do begin x1:=color[x,y]; if x1=1 then begin sum:=sum+1; end; if x=0 then if y=n then begin s:=sum; st[0]:=s; sum:=0; end; if x=1 then if y=n then begin s1:=sum; st[1]:=s1; sum:=0; end; if x=2 then if y=n then begin s2:=sum; st[2]:=s2; sum:=0; end; if x=3 then if y=n then begin s3:=sum; st[3]:=s3; sum:=0; end; if x=4 then if y=n then begin s4:=sum; st[4]:=s4; sum:=0; end; if x=5 then if y=n then begin s5:=sum; st[5]:=s5; sum:=0 end; if x=6 then if y=n then begin s6:=sum; st[6]:=s6; sum:=0; end; end; st[7]:=78; asm mov ax,3 int 10h end; write('0st=',s,'; 1-st=',s1,'; 2st=',s2,'; 3st=',s3); write('; 4st=',s4,'; 5st=',s5,'; 6st=',s6); asm mov ah,0 int 16h end; g:=0; v:=0; repeat p:=st[v]; v:=v+1; {0} p1:=st[v]; {1} if p=78 then goto we; if p>p1 then begin st[v]:=p; {1} v:=v-1; st[v]:=p1;{0} v:=0; end; Until KeyPressed; we: gotoxy(10,10); write('st0=',st[0],' st1=',st[1],' st2=',st[2],' st3=',st[3]); write(' st4=',st[4],' st5=',st[5],' max sum in matrix 1 st6=',st[6]); asm mov ah,0 int 16h end; END. Сообщение отредактировано: volvo - 17.12.2004 11:56 -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
chucha |
24.04.2003 2:15
Сообщение
#17
|
Группа: Пользователи Сообщений: 3 Репутация: 0 |
Огромное спасибо Shadow !!! :D
|
AlaRic |
24.04.2003 10:36
Сообщение
#18
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
to Chucha: я не по-русски сказал?
|
wormball |
24.04.2003 17:33
Сообщение
#19
|
Гость |
Цитата Ну это Clane по-моему примитивщина.Мне кажется здесь надо писать алгоритмы посложнее.Например слияние, переворот на 90 градусов и тд и тп. а ещё лучше то же нахождение максимума, только раз в 10 больше кода. вот тогда ты действительно станешь настоящим Программистом. ;D |
Shadow |
24.04.2003 20:18
Сообщение
#20
|
Lonely_Raven Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: 1 |
:D
--- есчли просто отсортировать масс по возрост и взять последнее -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Текстовая версия | 19.10.2024 18:54 |