PDA

View Full Version : Pascal


mitris
17-01-2006, 21:40
Собсно с названия все понятно.
Здесь советуем, помагаем тем у кого не получается и тд.

Fagot
17-01-2006, 21:41
первыйнах=)
зы.ГПДятибянинавижу,ктозна еттотпоймет...

Juk
17-01-2006, 21:49
Второй нах :d :d :d


Если нужно могу помочь. Имею опыт с 1991 года.

passtas
17-01-2006, 21:52
первыйнах=)
зы.ГПДятибянинавижу,ктозна еттотпоймет...
17-я форевер, ГПД-Ура!!!:)

mitris
17-01-2006, 21:52
Второй нах :d :d :d


Если нужно могу помочь. Имею опыт с 1991 года.
почему в первой проге не создается ТПУ фаил

passtas
17-01-2006, 21:54
Шо вы все нах, да нах... че разве у вас проблем мало было, например скомпилировать модуль в тпушку...:)
Например был один начинающий, который не мог его скомпилировать только из-за того что "не использовал" его другой программой, а копилировал чисто нажымая на ктрл+ф9...:):):)

mitris
17-01-2006, 21:57
Шо вы все нах, да нах... че разве у вас проблем мало было, например скомпилировать модуль в тпушку...=)
Например был один начинающий, который не мог его скомпилировать только из-за того что "не использовал" его другой программой, а копилировал чисто нажымая на ктрл+ф9...=)
и кто же это ? :rolleyes: :rolleyes:

D.A.R
17-01-2006, 21:58
Гриша самый рульный учитель, пасикофф тфарь, а ГПД-УРА!!! Иоб это истина, передаваемая из пакаленийа к пакаленийу

passtas
17-01-2006, 22:00
и кто же это ? :rolleyes: :rolleyes:
молчу......

passtas
17-01-2006, 22:01
Гриша самый рульный учитель, пасикофф тфарь, а ГПД-УРА!!! Иоб это истина, передаваемая из пакаленийа к пакаленийу
Пасихов тварь, но он хотя бы чему-то учит. Да ладно, на вкус и цвет учителя нет...:)

Juk
17-01-2006, 22:03
почему в первой проге не создается ТПУ фаил
Не понял вопроса.
Запусти BP.EXE и скомпилируй.
получишь вот это

Fagot
07-03-2006, 16:03
выложите плз ктото турбопаскаль 5.0 например
зы.особенно стасу адрессуется...

Sayks
08-03-2006, 20:40
выложите плз ктото турбопаскаль 5.0 например
зы.особенно стасу адрессуется...
на тебе ссылку http://www.borlpasc.narod.ru/programist/tp7.zip (ток это 7-мая)
1.10 MB

Террорист
08-03-2006, 21:54
кто С++ знает?

Akubens
08-03-2006, 23:01
кто С++ знает?
А кто его не знает...
Первый курс?

Террорист
08-03-2006, 23:07
А кто его не знает...
Первый курс?
угу угадал....=)
и я его не знаю :oops:
а куча задач задали......( :d пифо)

Akubens
08-03-2006, 23:10
угу угадал....=)
и я его не знаю :oops:
а куча задач задали......( :d пифо)
Учись сам)
Гыгыгыг)

ПС, чем смогу - помогу.

Террорист
08-03-2006, 23:14
Учись сам)
Гыгыгыг)

ПС, чем смогу - помогу.
=((((

Akubens
08-03-2006, 23:15
=((((
ПС, чем смогу - помогу.

Террорист
08-03-2006, 23:16
ПС, чем смогу - помогу.
я прочитал...только не понял это постскриптум или намёк "персональное сообщение" ? :d =)

Akubens
08-03-2006, 23:18
я прочитал...только не понял это постскриптум или намёк "персональное сообщение" ? :d =)
на персональное сообщение.

Ganesha
18-03-2006, 15:27
ггг... Какие-то праблы с паскалем? та у кого их нет???

Ganesha
18-03-2006, 15:46
Пасихов тварь, но он хотя бы чему-то учит. Да ладно, на вкус и цвет учителя нет...:)

+100% :cool:

Sven™
18-03-2006, 21:30
Нифига УАМ не круче! В паскале рисовать прикольно. Я вот недавно на уроке х...й в намалевал, учиха была в жахе а мы ржали...

mitris
18-03-2006, 22:03
Нифига УАМ не круче! В паскале рисовать прикольно. Я вот недавно на уроке х...й в намалевал, учиха была в жахе а мы ржали...
:| :|

LittlIS
23-03-2006, 15:22
Что можно сделать,чтоб в Паскале руские буквы печатались?

Magnetto
23-03-2006, 15:31
Что можно сделать,чтоб в Паскале руские буквы печатались?
установить 98 винду

LittlIS
23-03-2006, 15:35
установить 98 винду
а других вариантоав нет?на фри паскале буквы пишет,но почемуто нифига не компилирует.

Magnetto
23-03-2006, 15:42
а других вариантоав нет?на фри паскале буквы пишет,но почемуто нифига не компилирует.
сиводня спрошу насчет русских букв....
з.ы с фри паскалем дела не имел....только борланд....
з.ыыы попроси гугля...может что-то скажет по этому поводу....мне лично пох...я все на англицком пишу(не транслит а англицкий)

Ganesha
23-03-2006, 18:31
Что можно сделать,чтоб в Паскале руские буквы печатались?

эт от операционной зависит.
На 98-ой у меня всё в классе работает... Дома на икспишке ничего не видно.. Сплошные символы.

AngelDust
24-03-2006, 12:05
Гриша самый рульный учитель, пасикофф тфарь, а ГПД-УРА!!! Иоб это истина, передаваемая из пакаленийа к пакаленийу
это точно :=)

LittlIS
28-03-2006, 23:09
Выложите ктонить русфонт....плз...

Magnetto
28-03-2006, 23:14
Выложите ктонить русфонт....плз...
в ХР вроде вообще он не пашет

Fagot
28-03-2006, 23:15
в ХР вроде вообще он не пашет
ты выложи,а с операционкой разберемся...=)

Magnetto
28-03-2006, 23:22
ты выложи,а с операционкой разберемся...=)
не юзаю....на английском(не транслит) все пишу....

Coolman
29-03-2006, 13:02
UAM круче Pascal!
Это была шутка, кто не понял я не виноват! Но минус ставить :rolleyes:
UAM - это украинский Pascal, там теги не надо вводить, но он тупой и медленный!
Я респект :victory: Pascal! :cool:

Akubens
29-03-2006, 15:08
Это была шутка, кто не понял я не виноват! Но минус ставить :rolleyes:
UAM - это украинский Pascal, там теги не надо вводить, но он тупой и медленный!
Я респект :victory: Pascal! :cool:
Кого вводить не надо?

Coolman
29-03-2006, 15:16
Кого вводить не надо?
Ну "теги", не знаю как называются! :rolleyes:
Пример:
Program - алг
Var - арг

Akubens
29-03-2006, 15:22
Ну "теги", не знаю как называются! :rolleyes:
Пример:
Program - алг
Var - арг
Ясно. Скачал, смотрю, хахочу.

Elic
31-03-2006, 00:21
Вопрос: а Delphi здесь тоже в тему? :rolleyes: Есть задачка: GUI для консольной проги. Надо галочками, кнопочками и прочими элементами задать параметры, которые потом пойдут в командную строку, потом запустить программу, перехватить её stdout и по мере выполнения отображать результаты (процент готовности, предеупреждения, ошибки) в отдельном окне. Подготовку командной строки я уже сделал, а вот выполнение и перехват вывода - никак, и даже не знаю, с какого конца браться.
Хочется примерно так, как это сделано в программе mmg из пакета mkvtoolnix (http://www.bunkus.org/videotools/mkvtoolnix/), либо как в Mode2CDMaker GUI (http://dext.peque.org/xcd/m2cdmgui16.zip).

ЗЫ. Я работаю на C, а сделать это надо в Delphi 3, а я в нём плаваю...

Magnetto
31-03-2006, 02:34
Вопрос: а Delphi здесь тоже в тему? :rolleyes: Есть задачка: GUI для консольной проги. Надо галочками, кнопочками и прочими элементами задать параметры, которые потом пойдут в командную строку, потом запустить программу, перехватить её stdout и по мере выполнения отображать результаты (процент готовности, предеупреждения, ошибки) в отдельном окне. Подготовку командной строки я уже сделал, а вот выполнение и перехват вывода - никак, и даже не знаю, с какого конца браться.
Хочется примерно так, как это сделано в программе mmg из пакета mkvtoolnix (http://www.bunkus.org/videotools/mkvtoolnix/), либо как в Mode2CDMaker GUI (http://dext.peque.org/xcd/m2cdmgui16.zip).

ЗЫ. Я работаю на C, а сделать это надо в Delphi 3, а я в нём плаваю...
ууу....ничего не понял.... :cry: :cry: :cry:

Elic
31-03-2006, 08:52
ууу....ничего не понял.... :cry: :cry: :cry:Ну, вот первый этап: все параметры заданы, собрана командная строка (панель. Теперь надо эту команду запустить и её результаты по мере выполнения выдавать в Memo. Как это сделать?

Magnetto
31-03-2006, 11:18
Ну, вот первый этап: все параметры заданы, собрана командная строка (панель. Теперь надо эту команду запустить и её результаты по мере выполнения выдавать в Memo. Как это сделать?
ты не в меня спрашивай..я только начинаю учить паскаль... :cry:

Lenok
01-04-2006, 01:27
Ну не знаю, по-моему ГПД она полная ПД, а вот Пасихова лучше послушай. вот он может научить.
Главное уметь учится.

Elic
01-04-2006, 15:36
я только начинаю учить паскаль... :cry:Хм. Во времена MS-DOS было несколько компиляторов Паскаля (про Delphi, само собой, никто не слыхивал). Мы его изучали. Полный курс - два вечера. После первого вечера мы на нём свободно читали, после второго - свободно писали. Или ты учишь какой-то другой Паскаль? :rolleyes:

Magnetto
01-04-2006, 15:41
Хм. Во времена MS-DOS было несколько компиляторов Паскаля (про Delphi, само собой, никто не слыхивал). Мы его изучали. Полный курс - два вечера. После первого вечера мы на нём свободно читали, после второго - свободно писали. Или ты учишь какой-то другой Паскаль? :rolleyes:
пока что Turbo Pascal

Elic
01-04-2006, 16:54
пока что Turbo PascalВо-во. Тот самый. Два вечера.

Endy48
01-04-2006, 17:00
Может вопрос не совсем по теме, но есть ли здесь такие кто разбираеться в макро асемблере

*Barthez
04-04-2006, 21:55
Кто-то может помочь с алгоритмами шифрования текста.
ЗЫ У меня есть один но он не работает с кирилицей :(

ArmHorse
05-04-2006, 00:13
Вопрос: а Delphi здесь тоже в тему? :rolleyes: Есть задачка: GUI для консольной проги. Надо галочками, кнопочками и прочими элементами задать параметры, которые потом пойдут в командную строку, потом запустить программу, перехватить её stdout и по мере выполнения отображать результаты (процент готовности, предеупреждения, ошибки) в отдельном окне. Подготовку командной строки я уже сделал, а вот выполнение и перехват вывода - никак, и даже не знаю, с какого конца браться.
Хочется примерно так, как это сделано в программе mmg из пакета mkvtoolnix (http://www.bunkus.org/videotools/mkvtoolnix/), либо как в Mode2CDMaker GUI (http://dext.peque.org/xcd/m2cdmgui16.zip).

ЗЫ. Я работаю на C, а сделать это надо в Delphi 3, а я в нём плаваю...Посмотри в МСДН на ProcessStartInfo.RedirectStandardInput если мне не подводит память, то это то, что тебе нужно причём с примером, но меня терзают смутные сомения, что в Делфях этого нету.

ЗЫ. Каким макаром вызываешь консольную программу: CreateProcess, ExecAndWait, ShellExecute, WinExec? Если через CreateProcess, то хендл процесса хранится в lpProcessInformation, а там уже можно от этого хэндла плясать, чтобы легче было плясать, вот ноты:
AttachConsole
ReadConsole
ReadConsoleOutput
GetConsoleSelectionInfo

ЗЫЫ. Почему именно 3-и Делфя? Бери тогда уж первые :) интерфейс под 3.11 рулит.

ArmHorse
05-04-2006, 00:16
а других вариантоав нет?на фри паскале буквы пишет,но почемуто нифига не компилирует.Конечно есть другие варианты, ставь Делфи и пиши в консоли, разницы никакой, зато удобная среда разработки. И зарисоваться можно, тоже плюс :)
ЗЫ. Про графику прийдётся забыть.

ArmHorse
05-04-2006, 00:21
Кто-то может помочь с алгоритмами шифрования текста.
ЗЫ У меня есть один но он не работает с кирилицей :(
http://www.google.ru/search?hl=ru&q=%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC +%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD% D0%B8%D1%8F+%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0+% D0%B8%D1%81%D1%85%D0%BE%D0%B4%D0%BD%D0%B8%D0%BA&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=

ArmHorse
05-04-2006, 00:24
Среда разработки УАМа это вообще интерпритатор, как его с Паскалем сравнивать ума не приложу.
Сам УАМ это просто язык для алгоритмизации учебных примеров.

Elic
05-04-2006, 08:54
Почему именно 3-и Делфя? Бери тогда уж первые :)Не могу. Это для совместимости. На 3-м пишет kerberos002 (http://home.arcor.de/kerberos002/cdrtfe/index_en.html) (мы с ним на пару разрабатываем - он своё, а я своё (http://www.smart.vn.ua/forum/showthread.php?t=1684) :) ). У него есть почти нужный мне кусок - три сотни строк, разобраться пока не могу, а он писал очень давно и тоже всех тонкостей не помнит. :( ProcessStartInfo.RedirectStandardInput
[...]
чтобы легче было плясать, вот ноты:Ага. Сенькс!Каким макаром вызываешь консольную программу: CreateProcess, ExecAndWait, ShellExecute, WinExec?ХЗ... Я вообще-то привык такие вещи проделывать через fork() / dup2() / execxx(), но сильно сомневаюсь, что в Delphi можно безгеморройно юзать CRT. :rolleyes:

ArmHorse
05-04-2006, 15:39
ХЗ... Я вообще-то привык такие вещи проделывать через fork() / dup2() / execxx(), но сильно сомневаюсь, что в Delphi можно безгеморройно юзать CRT. :rolleyes:Я рекомендовал бы через CreateProcess, инфы по этому делу есть немеряно и работает оно как нужно, хотя если работает, но можно как угодно :)

Elic
05-04-2006, 21:56
Я рекомендовал бы через CreateProcess, инфы по этому делу есть немеряно и работает оно как нужно...то есть, по-микрософтовски - вот поднаберусь опыта и пойду сдавать экстерном на проктолога. :d

LittlIS
05-04-2006, 22:17
выложите ктонебудь русфонт плз............

ArmHorse
06-04-2006, 01:09
Выложите ктонить русфонт....плз...Тебе кейрус нужен что-ли?
На, держи, думаю как работает разберёшься.

*Barthez
08-04-2006, 15:16
:umnik2::umnik2::umnik2:Как создать ряд рэндомных значений от 1 до 10 чтобы они не повторялись?

Cronus
08-04-2006, 15:24
:umnik2::umnik2::umnik2:Как создать ряд рэндомных значений от 1 до 10 чтобы они не повторялись?
Создай массив из 10-ти элементов, в цикле делай примерно так:
a[1]:=random(10);
for i:=2 to 10 do
begin a[i]:=random(10);
1: for j:=1 to 10 do
begin if i<>j then
begin if a[i]=a[j] then begin a[i]:=random(10); goto 1; end;
end;
end;
end;
Вроде должно сработать.

ArmHorse
08-04-2006, 18:30
Создай массив из 10-ти элементов, в цикле делай примерно так:
a[1]:=random(10);
for i:=2 to 10 do
begin a[i]:=random(10);
1: for j:=1 to 10 do
begin if i<>j then
begin if a[i]=a[j] then begin a[i]:=random(10); goto 1; end;
end;
end;
end;
Вроде должно сработать.Программа неоправданно усложнена двумя циклами, если не ошибась, то оно не сработает, нужно вроде Randomize вызвать сначала, но могу ошибаться. Причём за вызов goto будут сильно бить и лабу не примут.
ЗЫ. Так вроде проще немного:
program rand;
uses crt;
var i,j : integer;
s : set of byte;
Begin
clrscr;
s := [0..9];
randomize;
while s <> [] do
begin
j := random(10);
if j in s
then begin
writeln(j+1);
s := s - [j];
end;
end;
repeat until keypressed;
End.

Elic
08-04-2006, 20:21
Так вроде проще немного:
program rand;
uses crt;
var i,j : integer;
s : set of byte;
Begin
clrscr;
[...]
end;
repeat until keypressed;
End.Это называется "проще"? %\ Я бы сделал так: массив result_array из 10 элементов, а дальшеvar
jx, jy: integer;
result_array[ 10 ]: integer;
begin
for jx := 1 to 10 do { начальная зачистка } result_array[ jx ] := 0;
jx := 1;
while ( jx <= 10 ) do begin
jy := int( random( 10 ) ) + 1;
if ( result_array[ jy ] > 0 ) then { такое число уже было } continue;
result_array[ jy ] := jx;
inc( jx );
end; { готово: во всех 10 элементах массива - случайные ненулевые значения, все разные).
end;ЗЫ. А на C это ещё изящнее %\

ArmHorse
08-04-2006, 21:58
Это называется "проще"? %\ Твой способ очень интересен.
Под словом "проще" я имел ввиду не очевидность кода, а скорость работы программы.
ЗЫ. Мне стало интересно и я провёл маленький тест:
1000000 раз вызвал оба кода и посмотрел сколько раз исполняются выч. операции:
В итоге функция Ранд вызавалась и в твоём коде и в моём примерно 29.28 раз.
Но самым интересным оказалось время работы, твой код выполнился миллион раз примерно за 2 сек, мой примерно за 9 сек.
А мне то всегда казалось, что работа с множествами быстрее чем с масивами.

Elic
08-04-2006, 23:12
твой код выполнился миллион раз примерно за 2 сек, мой примерно за 9 сек.
А мне то всегда казалось, что работа с множествами быстрее чем с масивами.Не-а. :d Множество реализуется через связный список, для которого требуется выделение памяти (из кучи или иным образом - неважно) на каждый элемент в отдельности, а при работе - сплошная беготня по указателям (в нашем случае, правда, это незаметно; а вот если бы элементов был миллион...); массив же выделяется один раз (или вообще берётся за счёт стека) - дальше только манипуляции индексным регистром.

ЗЫ. И вообще, я давно заметил: проги на C++ работают медленнее C'шных - когда вдвое, а когда и в миллионы раз... В объектном мире почти всякий изящный кусок исходника (даже пара строчек) всегда имеет шанс вылиться в целый косяк вызовов конструкторов/деструкторов... %\

ЗЗЫ. А ещё у тебя есть writeln и keypressed - вполне могли тоже внести свой алтын в тормозуку :rolleyes:

ЗЗЗЫ. Конструкция if j in s then - это ИМХО то же самое, чтоvar
tj: integer;
.........
j := 0;
for tj := 0 to мощность( s ) do begin
if ( s[ tj ] = чему-то ) then begin
j := tj;
break;
end;
end;
if ( j <> 0 ) thenт.е. неявный перебор по всему множеству, нет? :rolleyes:

*Barthez
08-04-2006, 23:45
Помогите:

У меня есть коды процедур для шифрования строк.

const
csCryptFirst = 20;
csCryptSecond = 230;
csCryptHeader = 'Crypted';

type
ECryptError = class(Exception);

function CryptString(Str:String):String;
var i,clen : Integer;
begin
clen := Length(csCryptHeader);
SetLength(Result, Length(Str)+clen);
Move(csCryptHeader[1], Result[1], clen);
For i := 1 to Length(Str) do
begin
if i mod 2 = 0 then
Result[i+clen] := Chr(Ord(Str[i]) xor csCryptFirst)
else
Result[i+clen] := Chr(Ord(Str[i]) xor csCryptSecond);
end;
end;

function UnCryptString(Str:String):String;
var i, clen : Integer;
begin
clen := Length(csCryptHeader);
SetLength(Result, Length(Str)-clen);
if Copy(Str, 1, clen) <>csCryptHeader then
raise ECryptError.Create('UnCryptString failed');
For i := 1 to Length(Str)-clen do
begin
if (i) mod 2 = 0 then
Result[i] := Chr(Ord(Str[i+clen]) xor csCryptFirst)
else
Result[i] := Chr(Ord(Str[i+clen]) xor csCryptSecond);
end;
end;


Проблема в том что Chr неработает с кирилицей может у кого-то есть какие-нибудь советы, что можна сделать....

ЗЫ Большое спасибо за оказаную помощь
ЗЗЫ и вообще это код Делфи написал сюда потому что тема популярная на неё отвечают активно:rolleyes:

ArmHorse
09-04-2006, 00:08
т.е. неявный перебор по всему множеству, нет? :rolleyes:В том то и дело, что нет. По идее 1 байт может хранить множество из 8 сущностей. И проверка принадлежности элемента сводится к проверке установлен ли определённый бит или нет, причём мы знаем точно адрес байта содержащего этот бит и расположение самого бита в байте, это тот же масив, только он содержит биты. Я не видел каким именно реализованы множества на Паскале, но боюсь, что через колено, как и сам язык.
writeln и keypressed на скорость не влияли, потому что в тесте я их естественно убрал. Попробую позже потестить этот код в среде Делфи, может там расклад изменится.
ЗЫ. Миллион элементов моим способом сделать не получится так как на Паскале множества не могут содержать больше 256 элементов, хотя почему нельзя было сделать индексацию не 8-ми битным ключём, а 16-битным я не понимаю.

ArmHorse
09-04-2006, 00:10
Проблема в том что Chr неработает с кирилицей может у кого-то есть какие-нибудь советы, что можна сделать....
Первый раз слышу, что Chr не работает с кирилицей, завтра проверю.

mitris
22-06-2006, 18:25
где можно скачать паскаль, очень нада!!!
Internet
где-то быс сайт, не могу найти...

Smartfon
27-08-2006, 16:56
в кого е дуже треба :confused:

reider
27-08-2006, 17:25
в кого е дуже треба :confused:
у меня есть.

Smartfon
28-08-2006, 11:40
у меня есть.
даш? :confused:

reider
28-08-2006, 11:42
даш? :confused:
Дам. Каким образом? Занимает он 21 Мб.

CodeGrinder
28-08-2006, 11:45
Дам. Каким образом? Занимает он 21 Мб.


Я так понял нужен паскаль?

Smartfon
28-08-2006, 11:50
Дам. Каким образом? Занимает он 21 Мб.
на сд :confused:

reider
28-08-2006, 11:52
на сд :confused:
Он у меня на винту, могу записать.

Ganriet
28-08-2006, 12:14
Он у меня на винту, могу записать.
а версия какая???

reider
28-08-2006, 12:27
а версия какая???
7.0 + учебник

EvoLuTioN | rOleX
29-08-2006, 00:57
Вот бы было круто если-бы я хоть что-то понимал с етого! :|
Не знаете на каком курсе в ВТК(Винницкий Техничиский Коледж) начинают учить еНту белеберДУ? :rolleyes:

reider
29-08-2006, 07:20
Вот бы было круто если-бы я хоть что-то понимал с етого! :|
Не знаете на каком курсе в ВТК(Винницкий Техничиский Коледж) начинают учить еНту белеберДУ? :rolleyes:
Знаю, что в ВНТУ(Политехе Универ) учат Паскаль с первого курса и только полгода, а плтом учат С и С++. Сам там учусь на програмера.

Smartfon
29-08-2006, 18:51
7.0 + учебник
запишешь?

reider
29-08-2006, 23:25
запишешь?
Постараюсь. Если че напишу, просто у меня сидюк не пишущий нада к друзякам идти.

LittlIS
09-10-2006, 17:24
как открывать файл для чтения...я забув :(
assign(f,'fail');
а потом?

Ну я
09-10-2006, 17:35
Var fiiii:text;
Reset(fiii);
Read(fiii, ///);
Close (fiiii);

LittlIS
09-10-2006, 17:37
Var fiiii:text;
Reset(fiii);
Read(fiii, ///);
Close (fiiii);
спасибо =)

Magnetto
22-10-2006, 19:21
є массив чисел які не більші 3000 по модулю...потрібно знайти таких три числа добуток яких найбільший з цих всіх чисел....вивести ці числа(з котрих добуток найбільший) на екран...
допоможіть будь ласка...

Magnetto
22-10-2006, 19:42
Найди тройку чисел с самыми большими модулями так, чтобы либо они все были со знаком "+", либо два из них были со знаком "-".
Сырой вариант алгоритма:
1. Отсортируй массив по спаданию модуля числа (т.е. получи что-то такого плана: [-10 -9 8 7 5 -3 2 1 0].
2. Бери первую тройку (-10, -9, 8), проверяй условие: ЕСЛИ произведение >=0 ТОГДА вывести его на экран ИНАЧЕ:
1) Если все числа негативные - отбрось меньшее из них и замени его ближайшим по отсортированному массиву позитивным;
2) Если два поз. и одно нег. - отбрось меньшее по модулю и замени на ближайшее число по массиву с противоположным знаком;
Вроде бы так :rolleyes:

у меня что то типа твоей идеи была....но застрял я на том что если например взять ряд чисел например 9 8 0 -1 то походу часое большое число должно быть из 9 8 и 0 ....но оно не проходит... так как даст ноль...
возможен такой быть вариант...
чтоб его нету нужно проверить все виды соединения чисел...вот тут я и соатновился...мозги уже не работают.. :cry:

нада чтоб было максимальное из всех возможных..

http://zvn.uriit.ru/
задание третьего занятия...
може тут лучше описано

Cronus
22-10-2006, 19:53
у меня что то типа твоей идеи была....но застрял я на том что если например взять ряд чисел например 9 8 0 -1 то походу часое большое число должно быть из 9 8 и 0 ....но оно не проходит... так как даст ноль...
возможен такой быть вариант...
чтоб его нету нужно проверить все виды соединения чисел...вот тут я и соатновился...мозги уже не работают.. :cry:

нада чтоб было максимальное из всех возможных..

http://zvn.uriit.ru/
задание третьего занятия...
може тут лучше описано
Если ты отсортируешь именно по модулю, то все нули соберутся в конце массива, и в выбранные тобой числа не попадут.
Т.е. твой пример [9 8 0 -1] будет отсортирован в вид [9 8 -1 0]. Так, как произведение первых трех меньше нуля, тогда макс. произведение, удовлетворяющее условие задачи, действительно будет ноль!
Можно еще и так:
1. Найти макс число во всем массиве.
2. Заменить его на ноль и продолжать поиск с таким рассчетом, чтобы произведение было найбольшим. И т.д, и т.п.
Но этот алгоритм не пройдет такой тест:
10 9 -8 -7 6 5 4, т.к.: 10*9*6=540, а 10*(-8)*(-7)=560.
Хотя, в принципе, и первый алгоритм не пройдет этот тест. Мда, надо подумать...

Magnetto
22-10-2006, 19:57
Если ты отсортируешь именно по модулю, то все нули соберутся в конце массива, и в выбранные тобой числа не попадут.
Т.е. твой пример [9 8 0 -1] будет отсортирован в вид [9 8 -1 0]. Так, как произведение первых трех меньше нуля, тогда макс. произведение, удовлетворяющее условие задачи, действительно будет ноль!
Можно еще и так:
1. Найти макс число во всем массиве.
2. Заменить его на ноль и продолжать поиск с таким рассчетом, чтобы произведение было найбольшим. И т.д, и т.п.
Но этот алгоритм не пройдет такой тест:
10 9 -8 -7 6 5 4, т.к.: 10*9*6=540, а 10*(-8)*(-7)=560.
Хотя, в принципе, и первый алгоритм не пройдет этот тест. Мда, надо подумать...
просто уже пятый час сижу над задачками....к вечеру голова вообще не варит...+ еще заболел..температура...

пришел к такому выходу что найбольшее произведение будет или меньше нуля (если в масиве есть или только одно плюсовое или все минусовые) или ноль(если произведение всех чисел дайет меньше нуля) или же плюсовое( два самых маленьких минуса и самый большой плюс)...

если же отсеивать по модулю тогда будет намного больше гемороя со знаком числа
чем сеять по фактическому значению числа

Cronus
22-10-2006, 19:58
ОК, идея такова:
1. Найти максимальное число Max_poz, т.е. найбольшее из положительных. Заменить его в массиве на ноль.
2. Найти ДВЕ пары числе: 2 найбольших положительных и два найбольших (по модулю) отрицательных. Проверить, что больше: Poz1*Poz2 или Neg1*Neg2. Вывести в файл Max_poz, и соответствующую пару чисел.

Cronus
22-10-2006, 20:00
пришел к такому выходу что найбольшее произведение будет или меньше нуля (если в масиве есть или только одно плюсовое или все минусовые) или ноль(если произведение всех чисел дайет меньше нуля) или же плюсовое( два самых маленьких минуса и самый большой плюс)...

Если есть хоть одно положительное число в массиве, то можно найти произведение, что будет больше нуля (минус на минус дает плюс).

Magnetto
22-10-2006, 20:01
ОК, идея такова:
1. Найти максимальное число Max_poz, т.е. найбольшее из положительных. Заменить его в массиве на ноль.
2. Найти ДВЕ пары числе: 2 найбольших положительных и два найбольших (по модулю) отрицательных. Проверить, что больше: Poz1*Poz2 или Neg1*Neg2. Вывести в файл Max_poz, и соответствующую пару чисел.
и умножить ее на максимальное положительное которое заменилось на ноль....

щас пойду похаваю....потестирую на разных видах масивов....скажу если что не так...
спасибо :good:

Cronus
22-10-2006, 20:04
и умножить ее на максимальное положительное которое заменилось на ноль....

щас пойду похаваю....потестирую на разных видах масивов....скажу если что не так...
спасибо :good:
А зачем еще что-то множить? Задание просит вывести именно тройку чисел, а не само произведение.

Пожалуйста :) Для меня это тоже неплохая гимнастика для мозга ;)

Magnetto
22-10-2006, 20:16
А зачем еще что-то множить? Задание просит вывести именно тройку чисел, а не само произведение.

Пожалуйста :) Для меня это тоже неплохая гимнастика для мозга ;)
таки да...твоя идея самая правильная...
не могу найти такой набор чисел который бы не подходил к твоей идеи...
спс...=)...

Cronus
22-10-2006, 20:18
таки да...твоя идея самая правильная...
не могу найти такой набор чисел который бы не подходил к твоей идеи...
спс...=)...
Всегда пожалуйста :)
ЗЫ: видно, годы обучения в лицее таки не прошли даром :)

EvoLuTioN | rOleX
25-04-2007, 18:14
Кто шарит в Turbo Pascal"е, просьба написать на этом языке пару задач. И по возможности обьяснить ход действий.

Teoden
25-04-2007, 18:15
Кто шарит в Turbo Pascal"е, просьба написать на этом языке пару задач. И по возможности обьяснить ход действий.
тебе это просто посчитать надо?

EvoLuTioN | rOleX
25-04-2007, 18:25
№2

Трикутник задано координатами вершин. Знайти периметр трикутника.

№3

Скласти програму обчислювального процесу:

а) з вик. повного розгалуження
б) з вик. короткого розгалуження

EvoLuTioN | rOleX
25-04-2007, 18:26
тебе это просто посчитать надо?
Нет. Мне надо полный листинг программы.

*Barthez
25-04-2007, 18:28
Помогите решить систему

Magnetto
25-04-2007, 20:35
№2

Трикутник задано координатами вершин. Знайти периметр трикутника.

№3

Скласти програму обчислювального процесу:

а) з вик. повного розгалуження
б) з вик. короткого розгалуження
№2
пусть координаты четырехугольника будут A(ax,ay) B(bx,by) C(cx.cy) D(dx,dy)
тогда периметр будет считатся за такой формулой
длина AB = sqrt(sqr(bx-ax) + (by - ay))
аналогично считаются все стороны...
№3
в первом случае делается
If
.then
..Begin
...//some code here
..End
.Else
..Begin
...//some code here
..End;

во втором
If
.Then
..Begin
...// some code here
..End;
и снова можно повторять разветвление

Teoden
25-04-2007, 20:52
Program xz;
var a,b,c,rez:real;
begin a=3; b=4; c=7;
rez:=((3*sin( a+(b/c))/((sin(c-b)/cos(c-b))+a*a))+b*c;
writeln(rez);
end;
если я правильно понял условие 1 задачи

EvoLuTioN | rOleX
26-04-2007, 12:44
To Magnetto & Teoden

Спасибо большое