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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Максимальное число
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 градусов и тд и тп.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ivs
сообщение 14.11.2002 21:32
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 209

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


Цитата
Ну это Clane по-моему примитивщина.Мне кажется здесь надо писать алгоритмы посложнее.Например слияние, переворот на 90 градусов и тд и тп.

Ну напиши -- посмотрим...........


--------------------
Если вы хотите чаще встречаться с понравившейся девушкой установите ей Windows'95
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Alex
сообщение 15.11.2002 16:01
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 201

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


ЧО написать-то не понял!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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 в цикле с одним оператором не нужны. Знающий поймет, но ты же для новичков пишешь, должно быть как конфетка.


--------------------
"Разум есть оружее лени, лишь умный человек может позволить себе быть ленивым" (Я)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Clane
сообщение 30.11.2002 21:42
Сообщение #9


Гость






Угу.. Понял.. Просто иногда сложно в час ночи выловить какие - то баги.. Спасибки еще раз.. Рад видеть тебя на форуме..
 К началу страницы 
+ Ответить 
Vit
сообщение 4.01.2003 3:39
Сообщение #10


Бывалый
***

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

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


Кстати если кого интересует как это сделать в дельфи, то в модуле Math есть готовая функция для этого


--------------------
With the best regards Vit

Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
chucha
сообщение 23.04.2003 7:47
Сообщение #11


Гость






Может, кто поможет составить программу!!!
В Pascale – только учусь
Не могу составить программу:

Дана матрица а:array[1..n,1..m]
мне необходимо  суммировать в каждой строке элементы, которые равны 1,
потом полученные результаты от каждой строки сравнить между собой и вывести на экран номер той строки, в которой сумма будет максимальной.
Например:
      - в этой матрице программа должна вывести строку№2, т.к. в ней сумма                                элементов равных 1 больше чем в остальных строках.
Никак не разберусь, хожу только вокруг да около.
Заранее большое  благодарю тем, кто поможет разобраться с этой задачей.
smile.gif
 К началу страницы 
+ Ответить 
Shadow
сообщение 23.04.2003 10:59
Сообщение #12


Lonely_Raven
****

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

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


:D
их индексы равны единице
или сами числа


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
chucha
сообщение 23.04.2003 11:29
Сообщение #13





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

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


равны единице
сами числа smile.gif

Пример:

первоя строка[1 0 1 0 0]
втрая строка  [1 1 1 1 1]
третья строка[1 0 1 0 1]
в этой матрице программа должна вывести строку№2, т.к. в ней сумма       элементов равных 1 больше чем в остальных строках.
Никак не разберусь, хожу только вокруг да около.
Заранее большое  благодарю тем, кто поможет разобраться с этой задачей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
chucha
сообщение 23.04.2003 12:52
Сообщение #15





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

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


В принципе подсчет только тех элементов матрицы, которые =1, а остальные не важно ноль там стоит или другое число.

вообще матрица должна вводится в ходе программы, т.е. программа должна сделать запрос на ввод матрицы с клавиатуры.

smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
chucha
сообщение 24.04.2003 2:15
Сообщение #17





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

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


Огромное спасибо Shadow !!! smile.gif :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AlaRic
сообщение 24.04.2003 10:36
Сообщение #18


...
*****

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

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


to Chucha: я не по-русски сказал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
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/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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