Сортировка массива
Рассмотрим пример сортировки по возрастанию. То есть на начальной позиции в массиве должен стоять минимальный элемент, на следующей — больший или равный и т. д., на последнем месте должен стоять наибольший элемент.
Суть алгоритма такова. Во всём отыскиваем минимальный элемент, меняем его местами с начальным. Затем в оставшейся части массива (т. е. среди всех элементов кроме начального) снова отыскиваем минимальный элемент, меняем его местами уже со вторым элементом в массиве. И так далее.
Иллюстрация:
Программирование на Java
Совет. Для самопроверки задач на вычисления очень удобно использовать какой-либо инженерный калькулятор. В том числе есть варианты онлайн, например, wolframaplha — там нужно просто написать выражение в окно ввода, и сразу будет ответ. Например, для задачи «посчитать 1-2+3-4+5-6» можно ввести этот же текст в окно ввода и получить ответ -3, см. https://www.wolframalpha.com/input/?i=1-2%2B3-4%2B5-6 Программа не только всё посчитает, но ещё и покажет результат расчета по шагам, что тоже может помочь.
Кстати, если вдруг вам сложно установить Eclipse, Netbeans или IntelliJIdea, то можно сразу пробовать программировать в компиляторах онлайн. Вот например, https://www.jdoodle.com/online-java-compiler/.
В первой строчке объявлена переменная счётчик, которую мы будем постоянно печатать в цикле. Раз уж нам нужны числа от 50, то придадим переменной i новое начальное значение:
int i = 50;
while (i <= 201) // условие поменяем, чтобы дойти до 201 включительно
<
System.out.println (i); // сама печать
i ++;
>
В этом примере мы использовали базовый приём — кроме переменной счётчика, которая позволяет сделать последовательность 1,2,3. мы ввели отдельную переменную для хранения результата. Сейчас это сумма всех чисел, и мы назвали эту переменную sum. В начале она равна нулю. На первом обороте к ней прибавляется i=1, на втором i=2, и так постепенно накапливается результат суммирования всех нужных чисел 1+2+3+4+5+6+7+8+9.
В последующих примерах мы часто будем вводить свою переменную для хранения результата, и другие переменные для хранения всех промежуточных расчетов. Так что делайте переменных, сколько вам нужно, под каждый расчёт.
Пример 1.3.7 (есть в учебнике, тема 3). Посчитаем значения последовательности чисел по такому правилу:
a1 = 5,
a2 = a1*3 + 1,
a3 = a2*3 + 1,
…
a100 = a99*3 + 1.
Если a100 больше 2000000000000000000l, то вывести на экран фразу «до фига получилось!» 🙂 Также вывести количество пройденных оборотов цикла.
Такие последовательности будут нужны, если вас интересует набор чисел, заданных любым соотношением и следующее вычисляется из предыдущего по известному правилу. В коде это выглядит так же, как и в задании:
Пример 1.3.8 (есть в учебнике, тема 3). Распечатайте на экран вопрос, «Сколько будет 4*5?». Введите число с ответом клавиатуры. Если пользователь ответил правильно, то поздравьте его и завершите программу. Если же пользователь ответил неверно, то переспросите его, введите новое число, снова проверьте на правильность ответ и так далее, пока не ответит правильно.
Важно понимать – вы можете заставить программу повторить любой набор действий много раз, а не только вычислять что-либо в цикле.
Пример 1.3.9 (есть в учебнике, тема 3). Напишите калькулятор. Предложите пользователю ввести число, затем знак одной из арифметических операций +,—,*,/ . Введите ещё число, выполните операцию, распечатайте результат и предложите ввести новую. Если пользователь введёт q, то остановите программу.
Вариант работы программы:
Остановка программы буквой q
Введите число
10
Введите операцию
—
Введите число
100
Результат -90
Введите операцию
*
Введите число
2
Результат -180
Введите число
q
Окончательный результат -180
Пример 1.3.10 (есть в учебнике, тема 4). Распечатайте в программе таблицу умножения чисел от 1 до 10. На экране должно получиться:
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
Пример 1.3.11 (есть в учебнике, тема 4). Распечатать символ a, так что в первой строке всего один символ, во второй — два, в третьей — три, и так далее до 5.
Будет вот так:
a
aa
aaa
aaaa
aaaaa
Пример 1.3.12 (есть в учебнике, тема 4). Распечатать символ a, так что в первой строке всего один символ, во второй — два, в третьей — три, и так далее до 5. Распечатать последовательно три таких «пирамидки».
Пример 1.3.14 (Тема 1-3). С помощью цикла вычислите:
а) 1+2+3+4
б) 1+2+3+4+5+6+. +100
в) 2+4+6+8
г) 2+4+6+8 + . + 100
д) 3+4+5+6+7+8+9+. +100
е) (2+4+8+16+32+64+128)*100
а) 10
б) 5050
в) 20
г) 2550
д) 5047
е) 25400
int a = 10;
int i = 1; // это просто счетчик
while(i<=100)<
a=a+10;
System.out.println(«Это a»+i + » и она равна » + a);
i++;
>
Пример 1.3.17 (Тема 1-3). Вычислите последовательно числа (даны ниже) и выведите их на экран, и также посчитайте их сумму. То есть конкретно посчитайте a1+a2+a3+. +a10
Уточните, что результат укладывается в максимальное значение выбранного вами типа данных и что дробная часть нигде не отброшена.
Имейте в виду, что a1, a2, a3 нужно не только вычислить по отдельности, но ещё и сложить их всех между собой в какой-то отдельной переменной, чтобы посчитать сумму. Значение результата может не поместиться в double — оцените, начиная с какого номера a становится Infinity. Infinity обозначает бесконечность и это уже не обычное число, это значит, что программа работает не нормально. Старайтесь исправлять ситуации в боевых ситуациях, чтобы не приходилось иметь дело с такими огромными числами, а пока просто познакомимся с ними.
Задачи Python
Основы
Введение
При изучении любого языка программирования очень важно много практиковаться. В этом уроке Вы найдёте различные задачи, которые помогут Вам развить алгоритмическое мышление.
I like Python
Напишите программу, которая выводит на экран текст «I***like***Python» (без кавычек).
Управляемый разделитель
Напишите программу, которая считывает строку-разделитель и три строки, а затем выводит указанные строки через разделитель.
Сумма трёх чисел
Напишите программу, которая считывает три целых числа и выводит на экран их сумму. Каждое число записано в отдельной строке.
Следующее и предыдущее
Напишите программу, которая считывает целое число, после чего на экран выводится следующее и предыдущее целое число с пояснительным текстом.
Разделяй и властвуй
Напишите программу, которая считывает целое положительное число xx и выводит на экран последовательность чисел x, 2x, 3x, 4x, 5x, разделённых тремя черточками.
Расстояние в метрах
Напишите программу, которая находит полное число метров по заданному числу сантиметров.
Сама неотвратимость
Безумный титан Танос собрал все 6 камней бесконечности и намеревается уничтожить половину населения Вселенной по щелчку пальцев. При этом если население Вселенной является нечетным числом, то титан проявит милосердие и округлит количество выживших в большую сторону. Помогите Мстителям подсчитать количество выживших.
Пересчет временного интервала
Напишите программу для пересчёта величины временного интервала, заданного в минутах, в величину, выраженную в часах и минутах.
Трехзначное число
Напишите программу, в которой рассчитывается сумма и произведение цифр положительного трёхзначного числа.
Четырёхзначное число
Напишите программу для нахождения цифр четырёхзначного числа.
Пароль
При регистрации на сайтах требуется вводить пароль дважды. Это сделано для безопасности, поскольку такой подход уменьшает возможность неверного ввода пароля.
Напишите программу, которая сравнивает пароль и его подтверждение. Если они совпадают, то программа выводит: «Пароль принят», иначе: «Пароль не принят».
Четное или нечетное?
Напишите программу, которая определяет, является число четным или нечетным.
Роскомнадзор
Напишите программу, которая определяет, разрешен пользователю доступ к интернет-ресурсу или нет.
Формат входных данных
На вход программе подаётся целое число — возраст пользователя.
Формат выходных данных
Программа должна вывести текст «Доступ разрешен» если возраст не менее 18, и «Доступ запрещен» в противном случае.
Арифметическая прогрессия
Напишите программу, которая определяет, являются ли три заданных числа (в указанном порядке) последовательными членами арифметической прогрессии.
Наименьшее из четырёх чисел
Напишите программу, которая определяет наименьшее из четырёх чисел.
Только +
Напишите программу, которая считывает три числа и подсчитывает сумму только положительных чисел.
Принадлежность 1
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число промежутку от -1 до 17.
Принадлежность 2
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число указанным промежуткам: от минус бесконечности до -3 и от 7 до бесконечности.
Принадлежность 3
Напишите программу, которая принимает целое число x и определяет, принадлежит ли данное число указанным промежуткам: от -30 до -2 и от 7 до 25.
Високосный год
Напишите программу, которая определяет, является ли год с данным номером високосным. Если год является високосным, то выведите «YES», иначе выведите «NO». Год является високосным, если его номер кратен 4, но не кратен 100, или если он кратен 400.
Ход ладьи
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом ладьи можно попасть во вторую, или «NO» в противном случае.
Ход короля
Даны две различные клетки шахматной доски. Напишите программу, которая определяет, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести «YES», если из первой клетки ходом короля можно попасть во вторую, или «NO» в противном случае.
Вид треугольника
Напишите программу, которая принимает три положительных числа и определяет вид треугольника, длины сторон которого равны введенным числам.
Самописный калькулятор
Напишите программу, которая считывает с клавиатуры два целых числа и строку. Если эта строка является обозначением одной из четырёх математических операций (+, -, *, /), то выведите результат применения этой операции к введённым ранее числам, в противном случае выведите «Неверная операция». Если пользователь захочет поделить на ноль, выведите текст «На ноль делить нельзя!».
Цветовой микшер
Красный, синий и желтый называются основными цветами, потому что их нельзя получить путем смешения других цветов. При смешивании двух основных цветов получается вторичный цвет:
- если смешать красный и синий, то получится фиолетовый;
- если смешать красный и желтый, то получится оранжевый;
- если смешать синий и желтый, то получится зеленый.
Напишите программу, которая считывает названия двух основных цветов для смешивания. Если пользователь вводит что-нибудь помимо названий «красный», «синий» или «желтый», то программа должна вывести сообщение об ошибке. В противном случае программа должна вывести название вторичного цвета, который получится в результате.
Пересечение отрезков
На числовой прямой даны два отрезка: [a1; b1] и [a2; b2]. Напишите программу, которая находит их пересечение.
Пересечением двух отрезков может быть:
- отрезок;
- точка;
- пустое множество.
И, напоследок, как делать не надо ))
Пока не проверил, просто скопировал. Тем не менее спасибо огромное.
Спасибо большое! Благодарю ! Скопировала.
В последней задаче про определение отрезков ошибка.
if min(b1, b2) < max(a1, a2):
print('пустое множество')
Данное условие не является достаточным для подтверждения отсутствия пересечения, т.к. максимальное значение в 1 множестве может находиться в пределах второго множества.
Исправьте на:
if max(b1, b2) < min(a1, a2):
print('пустое множество')
Давайте, как принято в хорошей разработке, опираться на тесты. Вот набор данных, соответствующий Вашему утверждению «Данное условие не является достаточным для подтверждения отсутствия пересечения, т.к. максимальное значение в 1 множестве может находиться в пределах второго множества»:
1
5
4
6
Запускаем скрипт и проверяем:
4 5
Вывод: полное соответствие исходным условиям.
Если у Вас есть другой набор тестовых данных, при котором скрипт работает не правильно, прошу Вас его предоставить.
Возможно, Вас запутало невыразительное именование переменных. Здесь b1, b2 — правые концы отрезков, а a1, a2 — левые.