всё конечно очень классно, но не для новичков. если целевая аудитория продвинутые пользователи то нет смысла от фраз типа "ну вот тут новенькое for, while." для тех кто тут что-то понял это уже не новенькое)) а если для новичков, то лучше бы на более простых примерах рассматривать. Ну вот я лично как-то попал в ту небольшую нишу, для которой это видео, освежил в памяти некоторые моменты, что то новое узнал, за это спасибо.
Хороший урок. Скорость вполне подходящая, запускаю видеоурок и параллельно делаю. Успеваю ровно по времени. А с самостоятельным выполнением приходит и понимание :)
Можно было бы подчистить помарочки/заминки и перезаписать пару фрагментов по заранее написанному дикторскому тексту, в этом случае я бы оценил курс как профессиональную работу коллектива. На уровне платного курса. Но даже с этим - оценка отлично.
Здравствуйте! Когда вы написали trunc (sqrt(i)+1), то можно было написать просто trunc(sqrt(i)). Ещё когда был написан в коде первый вариант , то не выводилось простое число "2".
Артём Анатольевич Простое число - это натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя. Другими словами, число p простое, если оно больше 1 и делится только на 1 и на p. (Википедия)
можете помочь. Можете написать программу без функции без процедуры и без рандома Вам дан одномерный массив, содержащий n элементов. Создайте программу, которая печатает наименьший из элементов, предшествующих простому числу.
ребят у меня проблема, с переменной string. когда она у меня одна все работает, но если у меня из несколько все сбивается(с переменной integer все нормально) и еще один вопрос, подскажите какая переменная работает и с цифрами и буквами
Привет. Отличные у тебя уроки просто супер. У меня по этой задаче только вопрос в оформлении. Как спрятать сами числа ? Просто есть и время и числа. Зарание спасибо
Инструкция для ЧАЙНИКОВ ( *для тех, кто ещё не закипел* ). 1. Вам нужно как-то понять, что простых чисел СЛИШКОМ МНОГО ( *а точнее бесконечно* )... подсказка: НЕ ПОЛУЧИТСЯ ЭТОГО СДЕЛАТЬ. 2. прежде чем задавать вопросы *темы 5 класса* ну хоть *загуглите* сначала чтобы не позориться!
@@luckykulon да но в интернете НИЧЕГО бесплатного и по-понятнее *не найдёшь* , так что лучше довольствоваться этим. Если вы хотите понять Азы' то идите, напрмер, к *Эдуарду Мецкеру* .
С каких это пор единица стала простым числом? Простое число по определению - это число имеющее ровно два делителя (единицу и само себя). Составное число имеет больше двух делителей. А единица имеет ровно один делитель, поэтому оно не относится ни к простым, ни к составным. Что касается алгоритма, где используется решето Эратосфена, при нахождении очередного простого числа i программа в ролике "вычеркивает числа" начиная с 2i, на самом же деле достаточно "вычеркивать" начиная с i*i Учитывая что 2 - это первое простое число и к тому же единственное четное из простых, можно немного модифицировать алгоритм, где поиск простых числа будет начинаться с 3. ну т.е. 2 - само собой понятно что простое, в алгоритме же будем вычислять остальные простые числа. При этом необходимое место под массив можно сократить вдвое. var i,pnum,j,halfmax:integer; m:array of boolean; begin halfmax:=1000 shr 1; setlength(m,halfmax+1); for i:=0 to halfmax do m[i]:=false; // инициализация массива, не всегда обязательно делать, но желательно writeln(2); // двойка - первое простое число for i:=1 to halfmax do if not m[i] then begin pnum:=i+i; // Простое число вычисляется как pnum=2*i+1 inc(pnum); // Кто знаком с системой команд процессора - поймет почему лучше писать так writeln(pnum); // выводим простое число pnum j:=(i+1)*i shl 1; // вычеркивать начинаем с pnum^2, индекс в массиве=(pnum^2-1)/2=((2*i+1)^2-1)/2=(4i^2+4i)/2=(i+1)*i*2 while j
Школа программистов Просто, мне показалось, что если бы эти видео смотрел человек, абсолютно несведущий в программировании, то он бы мало что понял :-) Хотя посмотрев другие твои видео, наверное, забираю свои слова обратно. Извиняй. И за получившуюся фамильярность тоже :-)
1 - это ни простое, ни составное число. Простое число - это число, у которого 2 делителя: 1 и оно само, а составное число - это число, у которого 3 и больше делителей. А т.к. у 1 только один делитель, то это ни простое, ни сложное число
*For i:= ... to* - Это цикл. *i* - Это переменная. *max* - Это то, чему вы задавали числовое значение. *f:* - Это переменная типа *boolean (Логический тип, который имеет 2 формы: true* и *false* . *For j:= ... to* - Это внутренний цикл (который входит в цикл *For i* ).
Я поставил 10 000 000 в "max", вот результат:
92.398 seconds. - 1 способ
0.37 seconds. - 2 способ.
Спасибо за видеоУрок👍
В 2,5 тысяч раз быстрее..
@@Д.н.э , ого, вот это оптимизация💪🏻
Видео клас! Всё понятно и очень подробно разобрано. Не люблю коротких видео только про одну какую-то команду. А это то, что надо!
всё конечно очень классно, но не для новичков. если целевая аудитория продвинутые пользователи то нет смысла от фраз типа "ну вот тут новенькое for, while." для тех кто тут что-то понял это уже не новенькое)) а если для новичков, то лучше бы на более простых примерах рассматривать. Ну вот я лично как-то попал в ту небольшую нишу, для которой это видео, освежил в памяти некоторые моменты, что то новое узнал, за это спасибо.
Классный канал. Спасибо за урок!)
Если вы полный "чайник", то данные видео не совсем для вас. Приходите сюда, когда достигните определённого начального уровня.
Хороший урок. Скорость вполне подходящая, запускаю видеоурок и параллельно делаю. Успеваю ровно по времени. А с самостоятельным выполнением приходит и понимание :)
Проговаривай пожалуйста, что значит "boolean" или тому подобные команды которые новые в каждом видео)
Betveen Lor это тип данных, в котором может быть одно из двух значений: False(Ложно) или True(Верно).
+Шум Шумов Спс
сюда как бы и пришли,что бы учить азы
Очень интересно, спасибо!
Класс👍 очень хороший канал у вас, удачи!
Как говорит мой учитель по физике - "Знания берут, а не дают, запомните!" :)
Можно было бы подчистить помарочки/заминки и перезаписать пару фрагментов по заранее написанному дикторскому тексту, в этом случае я бы оценил курс как профессиональную работу коллектива. На уровне платного курса. Но даже с этим - оценка отлично.
Отличное видео, много нового узнал!
Здравствуйте! Когда вы написали trunc (sqrt(i)+1), то можно было написать просто trunc(sqrt(i)). Ещё когда был написан в коде первый вариант , то не выводилось простое число "2".
Для тех кому нихуя не понятно идите к Эдуарду Мерцкеру, а потом только сюда.
P.S. Спс за уроки! Узнаю много чего, что не преподают на курсе.
Вот я как раз от Эдуарда. Он получше разжёвывает. Без него сразу сюда было бы не подъёмно.
Проверил в паскале (inc - самая быстрая, += чуть дольше, x:=x+1 - самый долгий способ)
Лучше писать просто trunc(sqrt(i)),при trunc(sqrt(i)+1) не учитывается двойка которая также является простым числом
Класс!!! Можно ли графическому объекту присвоить переменную?
там где цикл с i его надо начинать не с 1, а с 2 и J соответственно с 3 так как 1 не есть простое число (его нужно вообще выключить)
Объясни, почему когда ты всунул функцию просчёта корня, скорость увеличилась?
школа из тебя норм учитель!!!!
Спасибо за урок !
Кстати, 1 это не простое число.
в смысле?
Артём Анатольевич Простое число - это натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя. Другими словами, число p простое, если оно больше 1 и делится только на 1 и на p. (Википедия)
seva moiseev Число 1 не является простым числом простые числа делятся только на 1 и на само себя к примеру 11
как-бы 1 делится только на 1 и на самого себя(1).
правильно это или нет неважно.
Где это можно применить?
Очень классно)) Единственное замечание, что слишком мало объяснений действий. Вот я- новичок в этом деле и мне не понятны выражения типа trunc и т.п.
можете помочь.
Можете написать программу без функции без процедуры и без рандома
Вам дан одномерный массив, содержащий n элементов. Создайте программу, которая печатает наименьший из элементов, предшествующих простому числу.
слушай а как делать эту скобку в начале первой команды, которая все обьединяет?
что за тип переменных 'boolean'?
Написал программку с использованием решета Эратосфена, теперь компьютер обрабатывает 50 тысяч чисел за 8 секунд))
ребят у меня проблема, с переменной string. когда она у меня одна все работает, но если у меня из несколько все сбивается(с переменной integer все нормально) и еще один вопрос, подскажите какая переменная работает и с цифрами и буквами
Спасибо тебе огромное!!!!!!!!!!!
Привет. Отличные у тебя уроки просто супер. У меня по этой задаче только вопрос в оформлении. Как спрятать сами числа ? Просто есть и время и числа. Зарание спасибо
гонки алгоритмов - это весело
У меня первая строка var Не отмечается, при компиляции создаёт новый проект с begin и end.
У меня взорвался мозг!
setlenght(m,max+1); выдаёт ошибку, что такой команды не существует
помогите, может яя и не правельно записал
Можешь показать как работать с graphabc
Подскажите, пожалуйста , как в последней программе(решето Эратосфена) сделать так, чтобы компьютер выводил все простые числа
Инструкция для ЧАЙНИКОВ ( *для тех, кто ещё не закипел* ).
1. Вам нужно как-то понять, что простых чисел СЛИШКОМ МНОГО ( *а точнее бесконечно* )... подсказка: НЕ ПОЛУЧИТСЯ ЭТОГО СДЕЛАТЬ.
2. прежде чем задавать вопросы *темы 5 класса* ну хоть *загуглите* сначала чтобы не позориться!
А зачем в первом методе из i вычитать один? Что это нам даёт?
Кстати, скорость вычислений так же зависет от вашего "железа".
Если делать не до max-1 а до корня из max то время выполнения даже для миллиарада будет секунд 5 ;)
а вот ты это написал, как сохранить чтобы открывать без этой программы
Что-то посмотрела половину, поняла, что ничего не понимаю. Пойду дальше искать где попроще объяснения...
убегать надо от таких "преподавателей", которые ничего подробно и просто не объясняют а занимаются самолюбованием
@@luckykulon да но в интернете НИЧЕГО бесплатного и по-понятнее *не найдёшь* , так что лучше довольствоваться этим.
Если вы хотите понять Азы' то идите, напрмер, к *Эдуарду Мецкеру* .
@@МихаилДовлинов хотел написать про Эдуарда, а за меня уже всё сделали
в первой у меня было 0,12 секунд, а во второй 0.02.видимо это от процессора зависит
А можно на паскале делать игры
Канеш
только такого типа как 'змейка' и '2048' ну и т.д.
Давайте еще урокиии!!!!
На кого возраста аудиторию рассчитаны данные видео?
а "1" это простое число?
да
Inc работает на 1 миллисекунду быстрее, чем "+=". При 100000 чисел
у тебя ошибка в первом алгоритме нада просматривать все делители до половины числа оно нацело не делится больше чем на половину
С каких это пор единица стала простым числом?
Простое число по определению - это число имеющее ровно два делителя (единицу и само себя).
Составное число имеет больше двух делителей.
А единица имеет ровно один делитель, поэтому оно не относится ни к простым, ни к составным.
Что касается алгоритма, где используется решето Эратосфена, при нахождении очередного простого числа i программа в ролике "вычеркивает числа" начиная с 2i, на самом же деле достаточно "вычеркивать" начиная с i*i
Учитывая что 2 - это первое простое число и к тому же единственное четное из простых, можно немного модифицировать алгоритм, где поиск простых числа будет начинаться с 3. ну т.е. 2 - само собой понятно что простое, в алгоритме же будем вычислять остальные простые числа. При этом необходимое место под массив можно сократить вдвое.
var
i,pnum,j,halfmax:integer;
m:array of boolean;
begin
halfmax:=1000 shr 1;
setlength(m,halfmax+1);
for i:=0 to halfmax do m[i]:=false; // инициализация массива, не всегда обязательно делать, но желательно
writeln(2); // двойка - первое простое число
for i:=1 to halfmax do
if not m[i] then
begin
pnum:=i+i; // Простое число вычисляется как pnum=2*i+1
inc(pnum);
// Кто знаком с системой команд процессора - поймет почему лучше писать так
writeln(pnum); // выводим простое число pnum
j:=(i+1)*i shl 1; // вычеркивать начинаем с pnum^2, индекс в массиве=(pnum^2-1)/2=((2*i+1)^2-1)/2=(4i^2+4i)/2=(i+1)*i*2
while j
Program1.pas(11) : Параметр цикла for в PascalABC.NET должен описываться в заголовке цикла
как исправить
простые числа 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,,,
Ты, может, и понимаешь-то всё неплохо, но преподаватель из тебя хреновенький...хоть мне и всё понятно, что ты делаешь
Очень жаль, что Вам не подходит мой кана.
Надеюсь, что Вы найдете именно тот, который Вам нужен.
Спасибо!
Школа программистов Просто, мне показалось, что если бы эти видео смотрел человек, абсолютно несведущий в программировании, то он бы мало что понял :-) Хотя посмотрев другие твои видео, наверное, забираю свои слова обратно. Извиняй. И за получившуюся фамильярность тоже :-)
из него не плохой учитель если внимательно слушать и проделавать вместе с ним вы всё поймёте
Школа программистов из тебя не плохой учитель
Я первый день изучаю Паскаль и мне все понятно.
отлично
*Ты можешь по-человечески обьяснить?*
хотя все правильно сделал
без оптимизации 500000 за 60 секунд,а с оптимизацией 1000000 за 0,812 секунд!!!!!
Не очень красивый код: слишком много ненужных Begin-End. А так, если что-то умеешь в Pascal (не новичок), то будет очень полезно.
Найс
Смысла прибавлять к корню единицу нет.
Грандиозный алгоритм менять временные циклы. Я слишком стар что бы начинать.
миллион за 0.511 )))
Попробуйте число 999999 при коде н1
Объяснять надо понятнее а не сразу всё печатать!
хорошо но все таки ты не обьясняешь команды что как и за что они отвечают)
Давай уроки на Си !!!
Да очень круто но чтобы понять нужно чтобы автор хоть что-то объяснял а не просто программу писал
1000000000 вот такое чисел за минуты6 справился
2 тоже простое число а 1 особенное
1 не простое число
На что оно делиться кроме одного и себя ?
1 - это ни простое, ни составное число. Простое число - это число, у которого 2 делителя: 1 и оно само, а составное число - это число, у которого 3 и больше делителей. А т.к. у 1 только один делитель, то это ни простое, ни сложное число
еще плиз
уроки
Inc(cx) быстрее cx=+1 на .004
Тест был про 500000 чистал
Ха у меня бьет нельзя преобразовывать тип dooelan к Integer
Неполохой бенчмарк. У меня 50000 так-же выводит за 0.5 секунд
Единица это не простое число!!!!!!
У меня паскаль кукарекает "-Неизвестное имя k"
У меня 10 млн за 10 сек!
ЕЩЕЕЕЕЕЕЕ УРОКИ
у меня миллисекунд не работает
скинь код
1 - НЕ ПРОСТОЕ!!!
[pabcnetc.exe]Старт компиляции сборки Program2.pas...
[pabcnetc.exe]Начало компиляции Program2.pas...
1 ошибок
Встречено 'for', а ожидалось ';'
[pabcnetc.exe]Компиляция завершена Program2.pas.
[pabcnetc.exe]Готов
Помогите!!!!
Да, забыл. Спасибо
пол секунды у меня. Ты там с калькулятора сидишь что ли?))
ещо
0.005 сек с 500000
ничего не понятно хотелось бы с азов
мой калькулятор 2003 года выпуска обработал быстрее
сука у меня ошибка
извините не досмотрел до конца видео
Даа ничего не понятно особенно с
for i :=1 to max do
begin
f:= true;
for j:=2 to i-1 do
*For i:= ... to* - Это цикл.
*i* - Это переменная.
*max* - Это то, чему вы задавали числовое значение.
*f:* - Это переменная типа *boolean (Логический тип, который имеет 2 формы: true* и *false* .
*For j:= ... to* - Это внутренний цикл (который входит в цикл *For i* ).
а "1" это простое число?
василий дмитриев нет
1 не простое число