Форум: "Потрепаться";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
ВнизЗадачи на Паскаль Найти похожие ветки
← →
Jackson (2002-12-12 21:17) [0]Ув.Мастера!!!Завтра контрольная,а я не знаю даже как примерно сделать то,что от меня хотят...Подскажите,пожалуйста,как их решать!!
Задача1:
вычислить:
y = sin2x - 3cosx + 4x на промежутке [-2;3] с шагом 0.3;
Задача2:
Дано: В = 54
Найти все простые числа меньше В.
Задача3:
Найти все четырёхзначные числа, которые являются полными квадратами некоторых натуральных чисел.
Огромное человеческое ПЛИЗ!!!!Буду рад любой помощи!!!
← →
Opuhshii (2002-12-13 00:05) [1]1. и в чем вопорос?? уравнение у вас есть... параметры тоже... невижу вопроса.
2. наверное у вас возникли проблемы с пониманием простого числа. лечится чтением учебника по алгебре.
3. определить х для границ известных y и все что находится в диапазоне x будет решением,..
← →
Мазут Береговой (2002-12-13 02:06) [2]Поздно уже...
Опоздали мы...
← →
Jackson (2002-12-18 23:08) [3]Мазут Береговой
ещё не поздно - контрольную перенесли на неделю(послезавтра)!!
← →
Anatoly Podgoretsky (2002-12-18 23:23) [4]Ничего еще раз опождать можно, не привыкать
← →
VictorT (2002-12-18 23:27) [5]Извеняюсь, недели маловато, чтоб такую задачу решить, за две смогу, попробуй ещё оттянуть контрольную :)
← →
Jackson (2002-12-20 00:00) [6]Приколисты....:)Издеваетесь?
← →
Aristarh (2002-12-20 00:09) [7]>Jackson © (20.12.02 00:00)
>Приколисты....:)Издеваетесь?
Нет, не издеваемся!
А вообще не надо здесь спрашивать (хороший совет)
Когда я делал курсовой по програмированию (си билдер) в 1998 году, то я с ним протрахался (извините) пол года. Хотя, если бы я знал об этом сайте, то он бы занял у меня 2 месяца (от силы).
Никогда не станешь стоящим программером, если постоянно будешь у кого-нибудь спрашивать. А вот если кучу ночей не поспишь и будешь сам доходить до алгоритмов - тогда у тебя есть будущее.
Я начинал со спекрума, и провел немало бессоных ночей за открытием самых банальных алгоритмов. Но я это сделал сам!
← →
Marser (2002-12-20 00:31) [8]Как раз к вопросу о программерах и кодерах.Задачи примитивнейшие!
← →
OlDemon (2002-12-20 07:10) [9]2 Jackson> Пиши свой e-mail лентяй :)))
Или тебе на chung@korona.lg.ua писать?
ЗЫ с тебя кола! :)))
← →
zavdim (2002-12-20 07:23) [10]Я с МК-61 начинал, потом на СМ-4 Fortran.
литературы тогда по нулям (о форумах ....), зато когда сделаешь - ощущения прекрасные.
> OlDemon © (20.12.02 07:10)
> 2 Jackson> Пиши свой e-mail лентяй :)))
> Или тебе на chung@korona.lg.ua писать?
> ЗЫ с тебя кола! :)))
Колы мало будет, да и к чему?
← →
grifon (2002-12-20 08:16) [11]Задача 2:
Выводит все простые числа меньше некоторого числа:
uses crt;
var num, i: integer;
function type_number(n: integer): boolean;
var s: integer;
begin
for s := 2 to (n - 1) do
if (n mod s = 0) then {непростое}
begin
type_number := false;
exit;
end;
type_number := true;
end;
begin
clrscr;
write("Введите число: ");
readln(num);
for i := 1 to num do
if type_number(i)=true then write(i, " ");
while not keypressed do ;
end.
← →
zavdim (2002-12-20 08:20) [12]ну да - встретились два одиночества.
(или приведенный пример - шутка, показывающая как не надо решать данную задачу?)
← →
Sha (2002-12-20 09:05) [13]2 grifon © (20.12.02 08:16)
Любая училка будет в восторге.
← →
OlDemon (2002-12-20 09:12) [14]2 zavdim>
> Колы мало будет, да и к чему?
Колы много не бывает в принципе :))
Просто так, трупопаскакаль падший в небытие вспомнить, да и человеку помочь. ИМХО если это не сложно и не отнимет много времени грех не помочь.
>ну да - встретились два одиночества.
>(или приведенный пример - шутка, показывающая как не надо >решать данную задачу?)
что ты имеешь против? в принципе пример рабочий. Конечно он не лишен огрехов как тоfor i := 1 to num do
а надо до num-1, и можно написать красивее, но вариант рабочий.
← →
zavdim (2002-12-20 09:27) [15]
> и человеку помочь. ИМХО если это не сложно и не отнимет
> много времени грех не помочь.
Стоит ли? Если за неделю самостоятельно нельзя решить такие задачи, то стоит ли помогать - по-моему это диагноз.
> что ты имеешь против? в принципе пример рабочий. Конечно
> он не лишен огрехов как то for i := 1 to num do а надо до
> num-1, и можно написать красивее, но вариант рабочий.
Ну да рабочий - Сколько нужно прапорщиков чтобы забить гвоздь в стену? - тоже рабочий вариант предлагается.
Я думаю будет весело проверить на простоту такое число - 15485863.
← →
OlDemon (2002-12-20 09:34) [16]2 zavdim> В данной интерпретации программа не будет работать вообще с такими числами. С longint примерно часов 8 займет (P3 800) :))) Ты свой вариант предложи. Интересно было бы посмотреть. Хотя бы идею.
← →
zavdim (2002-12-20 09:41) [17]За намного меньшее время чем 8 часов, я на Пне166 нашел первый миллион простых чисел (писал на BP - причем сейчас вижу еще варианты ускорения) - приведенное мной и есть миллионное простое число.
Мощности компов возросли - но отменять думалку не надо.
Можете мне прислать любое число до 239 812 014 798 221
и я вам скажу - простое оно или нет, и если нет - дам его разложение. Хотя мой пень слабее чем 800.
← →
OlDemon (2002-12-20 09:58) [18]2 zavdim>
а) ты меняешь задачу - бала задача вывести все простые до указанного, а ты проверяешь число на простоту.
указанная тобой задача решается за 7 секунд - замерял секундомером
б) ты так и не привел лучший код к указаной задаче
в) варианты оптимизации я и сам вижу мне интресно есть ли что-то принципиально новое
← →
zavdim (2002-12-20 10:10) [19]нет так я и вывел все простые вплоть до указанного.
их всего миллион. Смотрим 7*1000000=7000000 сек.
И это простых. А учитывая все остальное, ну за пару лет управитесь.
Код не скажу - сами подумайте, - подумайте, ведь все так просто.
Посмотрите число - 1812812831. И засеките сколько будет считаться оно. Можете засекать по настенным часам - плюс минус час не в счет.
А я посчитаю у себя - и честно(честно) напишу время счета.
Идет? Прям избиение младенцев какое-то.
← →
Внук (2002-12-20 10:22) [20]>>OlDemon ©
Да, такое ощущение, что, например, про метод "Решето Эратосфена" народ не слышал :)
Да и если обычным перебором работать, все равно достаточно ограничиться не (n-1) в цикле, а всего-то Round(Sqrt(n)). Простейшие теоремы теории чисел надо бы помнить :)
← →
zavdim (2002-12-20 10:25) [21]Ну накрапал на Дельфи. Для последнего числа.
Время засекал GetTickCount.
Так вот он зараза говорит за 0 тиков - то есть меньше чем 1 получается?
← →
zavdim (2002-12-20 10:26) [22]Ну вот, Внук - не дали людям голову почесать.
← →
Внук (2002-12-20 10:28) [23]zavdim ©
Не вынесла душа поэта :)
Но я ведь код не привел.
← →
OlDemon (2002-12-20 10:42) [24]2 zavdim>
"Я думаю будет весело проверить на простоту такое число - 15485863" - это не твои слова? Если да то скажи это не изменение задачи? "7*1000000=7000000 сек" так умножать нельзя, сам поймешь почему? И избивать меня не надо да и хлопотно это :)))
2 Внук> Не надо меня лечить всякими "решетами". Повторяю - Я знаю как оптимизировать алгоритм. Мне интересно есть ли что-то новое - например вычисление этих самых простых чисел самому.
ЗЫ: Дабы прекратть косвенные намеки на мою некомпетентность скажу что занял 3 место на области по программерству еще в школе (конечно если это что-то говорит)
И можно на "ты" :))
← →
zavdim (2002-12-20 10:54) [25]
> OlDemon © (20.12.02 10:42)
> 2 zavdim>
> "Я думаю будет весело проверить на простоту такое число
> - 15485863" - это не твои слова? Если да то скажи это не
> изменение задачи? "7*1000000=7000000 сек" так умножать нельзя,
> сам поймешь почему? И избивать меня не надо да и хлопотно
> это :)))
Ну ведь весело получилось - правда? Это не изменение. Там есть проверка каждого числа на простоту - функция написана дико.
Я не говорю о разных способах проверки - можно и по AlgoList"у полазить. В пределах школы - эта программа оптимизируется неимоверно. Я к тому что так писать и проверять нехорошо.
Насчет умножения - ясен пень, но боюсь, что результат будет все равно примерно таков. Ну сам(это по поводу ты) подумай: Дано 1000003 - простое. или проверять 1000000 чисел или около 500, для проверки его простоты. Мне кажется - это принципиальное изменение алгоритма - или не так?
> 2 Внук> Не надо меня лечить всякими "решетами". Повторяю
> - Я знаю как оптимизировать алгоритм. Мне интересно есть
> ли что-то новое - например вычисление этих самых простых
> чисел самому.
О таком здесь был недавно разговор. Если уже не в архиве, то ветка гденить возле конца.
> ЗЫ: Дабы прекратть косвенные намеки на мою некомпетентность
> скажу что занял 3 место на области по программерству еще
> в школе (конечно если это что-то говорит)
> И можно на "ты" :))
Да никто не воюет - если что извини. А область какая?
← →
esu (2002-12-20 10:58) [26]С добрым утром
Мне кажется что так будет оптимально:
делаем динамический массив известных простых чисел. И начинам считать с 2х.
Сначала там пусто, так что заносим 2 в простые. потом проверяем 3 на делимости на 2. Не делится - в простые. 4ка делится на 2 - идем дальше. 5 на 2 и на 3 не делится - в простые и так далее.
Четные можно и не проверять - для скорости.
Считаться будет однозначно быстрее предложенного
← →
zavdim (2002-12-20 11:06) [27]Есть только одна проблема - в TP нет динамических массивов. Только самому организовать, но по запрашиваемому вопросу видно, что это - квадратура круга.
← →
esu (2002-12-20 11:23) [28]
> zavdim © (20.12.02 11:06)
С динамическим массивом я явно погорячился. Он только до 255 элементов может содержать.
Постоянно перераспределять память тоже плохо. Лучше всего сделать список. Там уж точно поместиться пока память не кончится.
ЗЫ А при чем тут квадратура круга ?
← →
OlDemon (2002-12-20 11:28) [29]2 Дмитрий> Ладно сойдемся на том, что изменение алгоритма ведущее к снижению вариантов хотя бы на 50% является принципиальным :))) А область Пермская. Можно было и по анкете догадаться. Хотя судя по ней мне 7 месяцев :)))).
← →
zavdim (2002-12-20 11:40) [30]
> esu © (20.12.02 11:23)
> > zavdim © (20.12.02 11:06)
> ЗЫ А при чем тут квадратура круга ?
Ну как Вы думаете, человек вопрошавший справится с последними вариантами или нет? На самом деле можно и жестким массивом обойтись. Можно примерно прикинуть сколько простых лежит в определенных пределах. Например до 1000 их меньше 150.
← →
Sha (2002-12-20 11:44) [31]Не забывайте: не рекомендуется предлагать преподавателю решения, качество которых превышает качество преподавания.
← →
esu (2002-12-20 11:47) [32]
> zavdim © (20.12.02 11:40)
Ну так сказано, что N. Как тут прикинешь...
А вообще правда, в ближайшее время так точно :)
← →
esu (2002-12-20 11:49) [33]
> Sha © (20.12.02 11:44)
Тогда просто массив на 64k
← →
zavdim (2002-12-20 11:49) [34]p(x)~x/ln(x). Если не ошибаюсь.
p(x) - число простых не превышающее x.
← →
grifon (2002-12-20 13:50) [35]Че-то все над одной задачкой засели, а ведь задачки-то три!
Насчет корявого алгоритма скажу, что это моя контр. работа по информатике двумесячной давности и тут мне надо было оптимизировать не время работы машыны, а время написания программы. И в моем условии надо было найти все простые числа стоящие до данного включительно. Так что я решил ее правильно, ну а создателю топика надо и самому хотябы немножко разобраться и понять, что ему подходит, а что надо исправить.
← →
han_malign (2002-12-20 14:46) [36]1. 5 - строк, включая инициализацию ординатной переменной и begin, end.
3. помоему вообще издевательство - в одну строку пишется
З.Ы.
> Дабы прекратть косвенные намеки на мою некомпетентность скажу что занял 3 место на области по программерству еще в школе (конечно если это что-то говорит)
- а я второе, но если бы сейчас у меня остался тот код - мне было бы невыносимо стыдно :))) (а как я обиделся когда меня на экзамен по информатике не пустили - мол "А ты чего пришел, у тебя давно 5 стоит")
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.009 c