Общие сведения о языках программирования Си, Паскаль и Python

Информатика 8 класс · тест: 5 вопросов

Процессор понимает только двоичные коды, а человеку удобнее писать слова и формулы. Между ними стоит язык программирования: на нём человек записывает алгоритм, а специальная программа переводит запись в команды процессора.

В этой главе мы разбираем три языка сразу — Си, Паскаль и Python. Идеи у них общие: переменные, ввод и вывод, ветвления, циклы. Отличается только запись. Над каждым примером кода есть вкладки: выбери свой язык, и сайт запомнит выбор.

Язык, программа, транслятор

Язык программирования — формальный язык для записи алгоритмов, которые может выполнить компьютер. Запись алгоритма на таком языке называется программой.

Компьютер не выполняет текст программы напрямую. Его сначала переводит транслятор. Трансляторы бывают двух видов:

  • компилятор переводит всю программу целиком и создаёт готовый исполняемый файл. Так работают Си и Паскаль;
  • интерпретатор читает программу и сразу выполняет её, команду за командой. Так работает Python.

Кроме транслятора, в систему программирования входят редактор, в котором пишут текст программы, и отладчик, который помогает искать ошибки.

Три языка — три истории

ЯзыкАвтор и годЗачем создавался
ПаскальНиклаус Вирт, 1970для обучения программированию: строгий, с понятной структурой
СиДеннис Ритчи, 1972для системного программирования — на нём написано ядро операционной системы UNIX
PythonГвидо ван Россум, 1991чтобы программы были короткими и легко читались

Паскаль назван в честь французского учёного Блеза Паскаля, который построил одну из первых механических счётных машин. Python — в честь комедийного шоу «Летающий цирк Монти Пайтона», а не змеи.

Алфавит и имена

Алфавит всех трёх языков — латинские буквы, цифры и специальные знаки: + - * / = < > ( ) ; , и другие. Русские буквы можно писать только внутри строк и комментариев.

Имена переменных строятся по общим правилам:

  • состоят из латинских букв, цифр и знака подчёркивания _;
  • не начинаются с цифры: score2 — можно, 2score — нельзя;
  • не содержат пробелов: вместо my score пишут my_score;
  • не совпадают со служебными словами языка (if, while, begin и т. п.).

Одно отличие важно запомнить: Си и Python различают большие и маленькие буквы, а Паскаль — нет. Для Си Score и score — две разные переменные, для Паскаля — одна и та же.

Типы данных

Переменная — это именованная ячейка памяти. Тип переменной говорит, что в ней хранится и какие действия с этим можно выполнять.

Что хранитсяСиПаскальPython
целое числоintintegerint
вещественное (дробное) числоdouble, floatrealfloat
один символcharcharстрока из одного символа
строкамассив символов char[]stringstr
логическое значениеint: 0 — ложь, не 0 — истина; в новых версиях есть bool (<stdbool.h>)booleanbool

В Си и Паскале каждую переменную нужно заранее объявить — назвать её имя и тип. В Python объявлять не нужно: переменная появляется, когда ей впервые присваивают значение, а тип определяется по этому значению.

Дробную часть числа во всех трёх языках отделяют точкой, а не запятой: 3.14.

Как устроена программа

Одна и та же задача: положить в переменную 10, увеличить на 5 и вывести результат.

#include <stdio.h>

int main(void) {
    int score;          // объявление переменной
    score = 10;
    score = score + 5;
    printf("%d\n", score);
    return 0;
}
program Score;
var
  score: integer;     { объявление переменной }
begin
  score := 10;
  score := score + 5;
  writeln(score);
end.
score = 10          # объявлять не нужно
score = score + 5
print(score)

Во всех трёх случаях программа выведет 15. Разберём, из чего состоит каждая запись.

  • Си. Строка #include <stdio.h> подключает библиотеку ввода-вывода. Программа — это функция main, её тело заключено в фигурные скобки { }. Каждая команда заканчивается точкой с запятой. return 0 сообщает системе, что программа завершилась без ошибок.
  • Паскаль. Заголовок program, раздел описания переменных var, затем тело программы между begin и end. После последнего end обязательно ставится точка.
  • Python. Ни заголовка, ни объявлений: программа — это просто команды, по одной на строке. Точка с запятой не нужна.

Присваивание и сравнение

Присваивание — команда «вычисли выражение справа и положи результат в переменную слева». Запись score = score + 5 не уравнение, а действие: взять старое значение, прибавить 5, записать обратно.

Знаки присваивания и сравнения в языках разные — это частая причина ошибок:

СиПаскальPython
присвоитьx = 5x := 5x = 5
проверить на равенствоx == 5x = 5x == 5
проверить на неравенствоx != 5x <> 5x != 5

Синтаксис коротко

СиПаскальPython
конец команды;;конец строки
блок команд{ … }begin … endотступ
объявление переменныхобязательнообязательно, в разделе varне нужно
комментарий// … или /* … */{ … } или // …# …
большие и маленькие буквыразличаютсяне различаютсяразличаются

Комментарий — пояснение для человека. Транслятор его пропускает, поэтому писать в комментариях можно что угодно, в том числе по-русски.

🎯 Самое главное

  • Программа — запись алгоритма на языке программирования. Выполнить её помогает транслятор: компилятор (Си, Паскаль) или интерпретатор (Python).
  • Имена переменных: латинские буквы, цифры и _, первой идёт не цифра.
  • Тип переменной определяет, что в ней хранится: целое, дробное, символ, строка, логическое значение.
  • В Си и Паскале переменные объявляют заранее, в Python — нет.
  • Присваивание: = в Си и Python, := в Паскале.

🤔 Проверь себя

1. Чем компилятор отличается от интерпретатора?

Компилятор переводит всю программу сразу и создаёт исполняемый файл; интерпретатор выполняет программу команду за командой, не создавая отдельного файла.

2. Какие из имён допустимы: total, 2nd, max_value, my name?

Допустимы total и max_value. 2nd начинается с цифры, в my name есть пробел.

3. Почему в Паскале x := 5, а x = 5 — это другое?

:= — присваивание, оно меняет значение переменной. = в Паскале — сравнение, оно только проверяет, равно ли x пяти.

4. Для Си Count и count — одна переменная или две? А для Паскаля?

Для Си — две разные: он различает регистр. Для Паскаля — одна.

Дальше научим программу разговаривать с пользователем: спрашивать данные и выводить ответ.

Проверь себя

5 случайных вопросов по этому уроку — при следующем открытии будут другие. Ответы проверяются сразу, без регистрации.