Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.007 c
7-25115
ugin
2002-10-30 15:20
2003.01.09
Работа с LPT


3-24780
EternalWonderer
2002-11-29 13:09
2003.01.09
Parse to Execute Ratio = 101


1-24922
Евгений Зеленоград
2002-12-25 19:13
2003.01.09
Наличие текста в MASKEDIT?


1-24852
Dm9
2002-12-27 18:43
2003.01.09
Результат работы консольной программы


1-24960
Kventin
2002-12-26 19:41
2003.01.09
Класс - контейнер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский