Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Но второй вариант самый простой. Посмотрите внимательно - там запись трижды в одну переменную. Массив для обработки многих однородных элементов
Нет, не туго. Неумесное замечание с Вашей стороны, и совсем не дружественное...
Вообще-то я очень дружелюбный человек, но твой вопрос не соответствует тому в чём не получается решить эту проблему. Что плохого в моём вопросе? Если без массива сможешь сделать то что надо, то и вопрос будет другой. В отличии от многих на этом форуме я стараюсь направить мысль в нужном направлении, а не писать примеры кода. Исключением являются вопросы которые я не знаю и которые надо проверять прежде чем что-то говорить по этому поводу.
Примерно вот так происходит довольно часто:
1 краткость кода, короче код быстрее выполнение.
2 меньшее количество переменных в работе, меньше переменных меньше памяти занимает программа в озу.
3 заменять "дорогие" функции "дешевыми", в данном случае цена это машинное время, если функция выполняется дольше, чем ее аналог по времени, замените ее аналогичной функцией.
4 рекурсивный вызов, если это необходимо, вместо написания дополнительной функции, вызов функции самой себя с новыми параметрами вместо написания дополнительной функции которая делает то же самое что и первая.
а еще говорят краткость сестра таланта.
с уважением.
P.S. таже функция без лишних слов. )))
к чему нужно стремиться.
1 краткость кода, короче код быстрее выполнение.
2 меньшее количество переменных в работе, меньше переменных меньше памяти занимает программа в озу.
3 заменять "дорогие" функции "дешевыми", в данном случае цена это машинное время, если функция выполняется дольше, чем ее аналог по времени, замените ее аналогичной функцией.
4 рекурсивный вызов, если это необходимо, вместо написания дополнительной функции, вызов функции самой себя с новыми параметрами вместо написания дополнительной функции которая делает то же самое что и первая.
а еще говорят краткость сестра таланта.
с уважением.
P.S. таже функция без лишних слов. )))
Насчет короче код быстрее выполнение хочу Вас разочаровать. Вот два примера, результат одинаков. Длинный выполняется быстрее
Какой-то любитель краткости может записать так
А вот такой вариант дает тот же результат, но у кого-то вызовет недоумение
Согласно легенде, школьный учитель математики юного Гаусса, чтобы занять детей на долгое время, предложил им сосчитать сумму чисел от 1 до 100. Гаусс заметил, что попарные суммы с противоположных концов одинаковы: 1+100=101, 2+99=101 и т. д. Как только учитель закончил, он сказал: Готово, 5050. Программист-математик, знающий прогрессии написал бы короче и быстродействующе.Насчет короче код быстрее выполнение хочу Вас разочаровать. Вот два примера, результат одинаков. Длинный выполняется быстрее
Какой-то любитель краткости может записать так
А вот такой вариант вполне допустим, но у кого-то вызовет недоумение
Согласно легенде, школьный учитель математики юного Гаусса, чтобы занять детей на долгое время, предложил им сосчитать сумму чисел от 1 до 100. Гаусс заметил, что попарные суммы с противоположных концов одинаковы: 1+100=101, 2+99=101 и т. д. Как только учитель закончил, он сказал: Готово, 5050. Программист-математик, знающий прогрессии написал бы короче и быстродействующе.меня вы не разочаруете, смотрите пункт 3.
и вам станет понятно почему математическая операция, приведенная вами, выполняется быстрее. в теле цикла мы тратим машинное время не только на математику(она там присутствует по любому как и в примере 1), но и на 1 запоминание переменной 2 ее приращение 3 сравнение с условием и это на каждом сложении. получаем что самым скоростным из всех ваших примеров будет последний. с уважением.
Спасибо за солидарность и развернутое пояснение. Потом проверил исправил выбросил (int). Компьютер выполняет все действия поочередно. И после каждого сложения результат запоминается. В зависимости от оптимизации транслятором запоминать может в регистре (что быстрее), а может в оперативной памяти. В варианте с циклом также могут использоваться регистровые переменные
Спасибо за солидарность и развернутое пояснение. Потом проверил исправил выбросил (int). Компьютер выполняет все действия поочередно. И после каждого сложения результат запоминается. В зависимости от оптимизации транслятором запоминать может в регистре (что быстрее), а может в оперативной памяти. В варианте с циклом также могут использоваться регистровые переменные
с уважением.
почему считает так и выдает ошибку.
(1+100)результат101
101/2 результат 50 (почему 50 скажете вы да потому что здесь по умолчанию применяются числа INT что в результате дает округление до целых)
50*100=5000
как написать чтоб получить верный ответ в таком порядке?
можно так (1.0+100.0)/2.0*100.0, тут мы сразу все числа приводим к формату DOUBLE
а можно привести только первое число к этому формату и все выражение будет считаться в этом формате(не проверял, но по идее должно работать.)
(1.0+100)/2*100
с уважением.
Вы глубокий аналитик. Желаю больших достижений