Язык программирования
Язык программирования – формальная знаковая система, предназначенная для записи компьютерных программ.
Компьютерную программу можно считать последовательностью строк символов некоторого алфавита. Современные системы програм-мирования допускают использование визуальных элементов (окон, иконок и др.) для построения программ, в частности, для создания интерфейса пользователя. Такое программирование называют визуальным. Тем не менее, основная, алгоритмическая часть любой программы строится с использованием символьных средств.
PascalABC.NET
КуМир
Структурная организация данных
Информация, представленная в виде, пригодном для автоматизирован-ной обработки, называется данными.
Компьютер оперирует только одним видом данных – отдельными битами, или двоичными цифрами.
Под структурой данных в общем случае понимают множество элементов данных и множество связей между ними.
!
Различают простые и сложные структуры данных.
Простые структуры данных не могут быть разделены на составные части больше, чем бит.
К ним относятся:
числовые,
символьные,
логические и др.
На основе простых структур строятся сложные структуры данных:
массивы,
списки,
графы,
деревья и др.
Некоторые простые типы данных
Информация по каждому типу однозначно определяет:
множество допустимых значений, которые может иметь тот или иной объект описываемого типа;
множество допустимых операций, которые применимы к объекту описываемого типа;
объём выделенной памяти для хранения данных указанного типа
Основные элементы языка Pascal
алфавит языка:
латинские буквы;
арабские цифры;
специальные символы;
служебные слова, значение которых в языке программирования строго определено;
постоянные и переменные величины;
знаки операций;
стандартные функции;
выражения;
операторы (языковые конструкции, с помощью которых в программах записываются действия, выполняемые над данными в процессе решения задачи)
Идентификаторы
Все величины имеют имена (идентификаторы), формируемые по определённым правилам:
имя может состоять из буквы или последовательности букв латинского алфавита, цифр и символа подчёркивания, но начинаться такая последовательность должна с буквы или символа подчёркивания;
желательно, чтобы имя отражало смысл величины;
имя не должно совпадать ни с одним из зарезервированных слов.
!
12N
Summa X
Факториал
Program
N12
Summa_X
Factorial
MyProgram
Операции отношений | |
= | равно |
<> | не равно |
< | меньше |
> | больше |
<= | меньше или равно |
>= | больше или равно |
Операции в языке Pascal
Логические операции | |
not | логическое отрицание |
and | логическое И |
or | логическое ИЛИ |
xor | исключающее ИЛИ |
Приоритет операций | |
1 | not |
2 | *, /, div, mod, and |
3 | +, –, or, xor |
4 | =, <>, >, <, >=, <= |
Арифметические операции | |
+ | сложение |
– | вычитание |
* | умножение |
/ | деление |
div | целочисленное деление |
mod | остаток от целочисленного деления |
Блок описанияданных
Блок описания действий (программный блок)
Заголовок программы
Структура программы
program <имя программы>;
var <переменные с указанием типов>;
const <постоянные <с указанием типов>>;
begin
<последовательность команд>;
end.
Данные, обрабатываемые компьютером, хранятся в памяти. С точки зрения языка Pascal она разделена на секции, называемые переменными. Каждая переменная имеет имя, тип и значение; значения переменных могут меняться в ходе выполнения программы.
Блок описания действий начинается со слова begin, а заканчивается словом end и знаком точки. Действия представляются операторами. Операторы разделяются точкой с запятой.
Основные операторы языка Pascal
Название | Общий вид |
Присваивание | Имя переменной := Значение |
Ввод с клавиатуры | readln (список ввода) |
Вывод на экран | writeln (список вывода) |
Условный | If Условие then Оператор1 |
Цикл с предусловием | while Условие do Тело цикла |
Цикл с постусловием | repeat until Условие |
Цикл с параметром с шагом +1 | for Переменная := Нач_знач to Кон_знач do Тело цикла |
Цикл с параметром с шагом –1 | for Переменная := Нач_знач downto Кон_знач do Тело цикла |
Анализ программ. Трассировочные таблицы
Для анализа свойств алгоритма и проверки его соответствия решаемой задаче используются трассировочные таблицы. В них фиксируется пошаговое исполнение алгоритма (программы), что позволяет наглядно представлять значения переменных, изменяющиеся при его выполнении. Поэтому трассировочные таблицы иначе называют таблицами значений.
Используются трассировочные таблицы двух видов:
1
2
таблицы, каждая строка которых отражает результат одного действия
таблицы, каждая строка которых отражает результат выполнения группы действий
Пример 1. Дана программа:
program Number;
var X, Y: longint;
begin
readln(X);
Y := 0;
while X > 0 do
begin
Y := Y * 10 + X mod 10;
X := X div 10
end;
writeln (Y)
end.
Составить трассировочную таблицу при Х = 356.
Трассировочная таблица первого вида
В заголовке таблицы поместим имена всех переменных, используемых в программе. В отдельном столбце будем записывать команды и условия, имеющиеся в программе. Каждая строка таблицы соответствует одному шагу алгоритма.
program Number;
var X, Y: longint;
begin
readln(X);
Y := 0;
while X > 0 do
begin
Y := Y * 10 + X mod 10;
X := X div 10
end;
writeln (Y)
end.
Пример 2. Дана программа:
program Summa;
var k, x, S: integer;
begin
S := 0;
for k := 0 to 4 do
begin
x := k * 3 + 2;
S := S + x
end;
writeln (S)
end.
Определите, что будет напечатано в результате выполнения программы.
Трассировочная таблица второго вида
program Summa;
var k, x, S: integer;
begin
S := 0;
for k := 0 to 4 do
begin
x := k * 3 + 2;
S := S + x
end;
writeln (S)
end.
Построим трассировочную таблицу второго вида, отражая в каждой строке результат группы действий. Группу действий ограничим контрольной точкой (КТ): выполнение алгоритма продолжается до контрольной точки и приостанавливается после выполнения отмеченной ею строки.
Будем считать, что контрольная точка поставлена на заголовке цикла.
Ответ: S = 40
Другие приёмы анализа программ
Пример 3. Определите, какое число будет напечатано в результате выполнения программы.
var n, s: integer;begin n := 1; s := 0; while n <= 625 do begin s := s + 30; n := n * 5 end; write(s)end.
var n, S: integer;begin n := 1; S := 0; while n <= 625 do begin S := S + 30; n := n * 5 end; write(s)end.
Решение:
Выясним, при каком условии произойдёт выход из цикла. Цикл выполняется, пока n ≤ 625. Следовательно, цикл завершится при достижении S значения, большего 625 = 54, т.е. при n = 55.
Таким образом цикл выполнится 5 раз. Следовательно, S = 30 ∙ 5 =150.
Ответ: S = 150
Компьютерную программу можно считать последовательностью строк символов некоторого алфавита. Современные системы програм-мирования и языки допускают использование визуальных элементов (окон, иконок и др.) для построения программ и создания интерфейса пользователя. Тем не менее, основная, алгоритмическая часть любой программы строится с использованием символьных средств.
Компьютер оперирует только одним видом данных – отдельными битами, или двоичными цифрами. Задачи, решаемые с помощью компьютера, оперируют данными, имеющими форму чисел, символов, текстов и более сложных структур. Алгоритмы для обработки этих данных создаются с учётом их структуры – множества элементов данных и множества связей между ними.
Различают простые и сложные структуры данных. Простые структуры данных не могут быть разделены на составные части больше, чем бит. К ним относятся числовые, символьные, логические и другие данные. Простые структуры данных служат основой для построения сложных структур данных – массивов, списков, графов, деревьев и др.
Для анализа свойств алгоритма и проверки его соответствия решаемой задаче используются трассировочные таблицы. В них фиксируется пошаговое исполнение алгоритма (программы), что позволяет наглядно представлять значения переменных, изменяющиеся при его выполнении. Используются трассировочные таблицы двух видов:
таблицы, каждая строка которых отражает результат одного действия;
таблицы, каждая строка которых отражает результат выполнения группы действий.
Вопросы и задания
Задание 1. Ниже дана программа. Получив на вход натуральное число x, программа печатает число R. Укажи-те такое число x, при вводе которого будет напечатано двузначное число, сумма цифр которого равна 16. Если таких чисел несколько, укажите наименьшее из них.
var x, d, R: longint;begin readln(x); R := 0; while x > 0 do begin d := x mod 10; R := 10*R + d; x := x div 10 end; writeln(R)end.
var x, d, R: longint;begin readln(x); R := 0; while x > 0 do begin d := x mod 10; R := 10*R + d; x := x div 10 end; writeln(R)end.
Решение:
Ответ
Вопросы и задания
Задание 2. Получив на вход натуральное число x (x > 100), программа печатает число M. Укажите наименьшее значение переменой x, при вводе которого алгоритм печатает 26.
var x, L, M: integer;begin readln(x); L := x; M := 52; while L <> M do if L > M then L := L – M else M := M – L; writeln(M)end.
var x, L, M: integer;begin readln(x); L := x; M := 52; while L <> M do if L > M then L := L – M else M := M – L; writeln(M)end.
Решение:
Ответ
Вопросы и задания
Задание 3. Дана программа. Что будет напечатано после выполнения программы?
var k, S: integer;begin k := 10; S := 0; while k < 120 do begin S := S + k; k := k + 5 end; write (s)end.
var k, S: integer;begin k := 10; S := 0; while k < 120 do begin S := S + k; k := k + 5 end; write (s)end.
Решение:
Ответ
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.