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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Максимальное число
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

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

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


Ну это Clane по-моему примитивщина.Мне кажется здесь надо писать алгоритмы посложнее.Например слияние, переворот на 90 градусов и тд и тп.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Может это и примитивщина, но для новичков сойдет.. Тем более что просто никто ничего не пишешь, вот я решил что-то черкнуть..
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

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

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


Определение максимального из 2-х чисел:
max:=int((abs(a-B)+a+B)/2);
усе.............


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


Бывалый
***

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

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


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

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


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


Бывалый
***

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

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


ЧО написать-то не понял!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


Clane, во 2-м цикле не for i := 1 to 10, а for i := 2 to 10, зачем лишний раз сравнивать Max и A[1]=Max. К тому же begin и end в цикле с одним оператором не нужны. Знающий поймет, но ты же для новичков пишешь, должно быть как конфетка.


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


Гость






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


Бывалый
***

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

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


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


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

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


Гость






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

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


Lonely_Raven
****

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

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


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


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





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

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


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

Пример:

первоя строка[1 0 1 0 0]
втрая строка  [1 1 1 1 1]
третья строка[1 0 1 0 1]
в этой матрице программа должна вывести строку№2, т.к. в ней сумма       элементов равных 1 больше чем в остальных строках.
Никак не разберусь, хожу только вокруг да около.
Заранее большое  благодарю тем, кто поможет разобраться с этой задачей.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Lonely_Raven
****

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

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


:D sorry
а только 1 и 0 или друг числа


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





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

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


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

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

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


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





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

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


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


...
*****

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

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


to Chucha: я не по-русски сказал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






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

а ещё лучше то же нахождение максимума, только раз в 10 больше кода. вот тогда ты действительно станешь настоящим Программистом. ;D
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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

 





- Текстовая версия 21.12.2024 23:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name