Языки программирования

Изучите §2 "Языки программирования".

Внимательно изучите примеры.

Высокоуровневые языки программирования

•  C++;

•  JavaScript;

•  Python;

•  Perl;

•  Pascal (Delphi);

•  Fortran;

•  С#;

•  VisualBasic;

•  Java;

•  Lisp

Компилятор — транслятор, преобразующий исходный код с какого-либо языка программирования на машинный. В результате создается исполняемый файл, который может быть выполнен непосредственно в операционной системе.

Интерпретатор — транслятор, который может работать двумя способами:

•  читать код и исполнять его сразу (чистая интерпретация);

•  читать код, создавать в памяти промежуточное представление кода (байт-код или p-код), выполнять промежуточное представление кода.

Парадигмы программирования

Структурное программирование - любая программа состоит из трех базовых управляющих структур: ветвление, цикл и последовательность; кроме того, используются подпрограммы

Процедурное программирование — парадигма программирования, при которой последовательно выполняемые команды можно собрать в подпрограммы с помощью механизмов самого языка

Функциональное программирование — парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании.

Объектно-ориентированное программирование (ООП) — парадигма программирования, основанная на представлении программы в виде совокупности объектов и отражении их взаимодействия.

Большинство современных языков программирования являются мультипарадигменными — поддерживают сразу несколько парадигм программирования.

Отдельно рассматривают такие классы языков программирования, как учебные и эзотерические языки программирования.

Основные структурные элементы языка программирования

Алфавиты

Большинство распространенных языков программирования содержат в своем алфавите следующие элементы:

  • буквы — {AaBbCcDd…};

  • цифры — {0 1 2 3 4 5 6 7 8 9};

  • знаки арифметических операций — { / + …};

  • знаки сравнения — {< > = …};

  • разделители — {. , ; : ( ) { } [ ]… };

  • служебные слова — {if while for и т. д.};

  • комментарии — любой набор символов и др.

Операторы

  • оператор присваивания,

  • оператор условного перехода (ветвления),

  • оператор цикла,

  • оператор выбора,

  • составной оператор,

  • иногда используют пустой оператор,

  • оператор безусловного перехода и др.

Данные

Подпрограммы

Алгоритм, реализующий решение отдельной части основной задачи, называют вспомогательным, а его запись на языке программирования — подпрограммой. Подпрограммы могут быть реализованы в виде функций или процедур.

Функция описывает процесс вы числения определенного значения, зависимого от некоторых аргументов, поэтому для функции всегда указывается тип возвращаемого значения.

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

Упражнения

  1. Напишите программы для решения следующих задач.

    1. Определите последнюю цифру натурального числа N. (Это может помочь)

    2. Два отрезка на плоскости задаются координатами своих концов. Определите, какой из них короче.

    3. Найдите сумму 1 + 1/22 + 1/32 + ... + 1/N2 для заданного N. (Это может помочь)

    4. Вводится строка текста. Определите, является ли она палиндромом. (Это может помочь)

    5. Вводятся два целых числа, являющихся числителем и знаменателем дроби. Сократите дробь, выведите полученные числитель и знаменатель.

Подсказка: можно воспользоваться алгоритмом Евклида. (Наибольший общий делитель (НОД) двух чисел a и b)

var a, b: integer;

begin

write('a = ');

readln(a);

write('b = ');

readln(b);

while (a <> 0) and (b <> 0) do

if a >= b then a := a mod b

else b := b mod a;

write(a + b)

end.

    1. *Дед Мазай и заяц играют в очень простую игру. Перед ними — гора из N одинаковых морковок. Каждый из игроков во время своего хода может взять из нее любое количество морковок, равное неотрицательной степени числа 2 (1, 2, 4, 8, …). Игроки ходят по очереди. Кто возьмет последнюю морковку, тот и выигрывает. Составьте алгоритм, который при заданном значении N определяет победителя в этой игре. Учтите, что каждый из игроков хочет выиграть и не делает лишних ходов, т. е. играет оптимально.

2*. Предложенные ниже алгоритмы записаны разными способами. Определите, что делает каждый из предложенных алгоритмов, и реализуйте их на языке Pascal.

Алгоритмический язык

ввод а

n := Длина(а)

m := 1

b := Извлечь(а, m)

нц для i от 7 до n

с := Извлечь(а, i)

b := Склеить(b, с)

кц

вывод b

Для слова «энергетика» программа выводит «этика».

Python

a = int(input())

k = 0

s = 1

while k < a:

k = k + 1

s = s + 1.0/k

print(s)

При a = 5 программа выводит 3.2833333333333337.

Basic

INPUT X

L = 0

M = 0

WHILE X > 0

M = M + 1

IF X MOD 3 <> 0 THEN

L = L + 1

END IF

X = X \ 3

WEND

PRINT L

PRINT M

Для значения 5637 программа выводит 4 и 8.

С++

int F(int x)

{

return x*x + 16*x + 15;

}

int main()

{

int a, b;

cin >> a >> b;

int M = 0;

for (int t = a; t <= b; t++)

if (F(t) > 0)

M = M + 1;

cout << M;

return 0;

}

При a = –3, b = 5 программа выводит 6.

3*. Изобразите любой алгоритм из упражнения 2 в виде блок-схемы