💻 Один и тот же код на Pascal, C++, Java и Python
Очень полезно иногда посмотреть не просто на решение задачи, а на то, как один и тот же алгоритм выглядит в разных языках программирования. Это сразу показывает:
1. сколько кода приходится писать
2. насколько язык удобен для обычных задач
Возьмем простую сортировку массива по возрастанию. Пузырьковая сортировка 👇
Pascal:
program SortExample;
var
a: array[1..5] of integer = (5, 2, 4, 1, 3);
i, j, t: integer;
begin
for i := 1 to 4 do
for j := 1 to 5 - i do
if a[j] > a[j + 1] then
begin
t := a[j];
a[j] := a[j + 1];
a[j + 1] := t;
end;
for i := 1 to 5 do
write(a[i], ' ');
end.
C++:
#include <iostream>
using namespace std;
int main() {
int a[5] = {5, 2, 4, 1, 3};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (int i = 0; i < 5; i++)
cout << a[i] << " ";
}
Java:
public class Main {
public static void main(String[] args) {
int[] a = {5, 2, 4, 1, 3};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i; j++) {
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (int i = 0; i < 5; i++) {
System.out.print(a[i] + " ");
}
}
}
Python:
a = [5, 2, 4, 1, 3]
for i in range(4):
for j in range(4 - i):
if a[j] > a[j + 1]:
a[j], a[j + 1] = a[j + 1], a[j]
print(*a)
Сравнение по количеству строк
Pascal: ~15-16 строк
C++: ~16-17 строк
Java: ~17-18 строк
Python: ~6 строк
🤔 Что важно заметить
Алгоритм везде один и тот же:
• сравниваем соседние элементы
• меняем местами
• повторяем несколько раз
Но язык сильно влияет на запись. Python уже выглядит проще, но самое интересное даже не это 👇
🔥 В Python можно вообще не писать сортировку
a = [5, 2, 4, 1, 3]
a = sorted(a)
print(a)
• одна строка вместо двух вложенных циклов
• меньше шансов ошибиться
• быстрее писать на экзамене
📌 Вывод
В Pascal, C++, Java - ты пишешь алгоритм руками
В Python ты можешь:
1. написать алгоритм (если нужно)
2. или просто использовать готовую функцию
И именно поэтому Python идеально подходит для экзаменов:
ты выбираешь самый простой путь к правильному ответу
‼️
на экзамене не проверяют, как красиво ты написал сортировку
проверяют правильный ответ
а значит иногда лучше не геройствовать, а просто написать sorted 😎
записаться на занятия 💜