567.94K
Категория: ПрограммированиеПрограммирование

Основы программирования

1.

Основы
программирования

2.

Программа – это
• алгоритм, записанный на какомлибо языке программирования
• Набор команд для компьютера.
Команда – это
описание действий, которые должен
выполнить компьютер.

3.

Языки программирования
• Машинно-ориентированные (низкого уровня) –
каждая команда соответствует одной команде
процессора (ассемблер)
• Языки высокого уровня – приближены к
естественному (английскому) языку, легче
воспринимаются человеком, не зависят от
конкретного компьютера:
– для обучения: Бейсик, ЛОГО, Паскаль
– профессиональные: Си, Фортран, Паскаль
– для задач искусственного интеллекта: Пролог,
ЛИСП
– для Интернета: JavaScript, Java, Perl, PHP, ASP

4.

Немного истории…
Язык Паскаль был создан
Никлаусом Виртом в 1968—
1969 годах. Он был
опубликован в 1970 году
как небольшой и
эффективный язык. Язык был
назван в честь
французского ученого
Блеза Паскаля.

5.

Язык Паскаль
• 1970 – Никлаус Вирт (Швейцария)
– язык для обучения студентов
– разработка программ «сверху вниз»
Задача
Подзадача1
1.1
1.2
1.3
Подзадача2
2.1
2.2
Подзадача3
2.3
3.1
3.2
– разнообразные структуры данных
(массивы, структуры, множества)
3.3

6.

Программа
на Паскаль
Структура
программы
Описание данных,
с которыми
оперируют
действия
Описание
действий

7.

Структура программы на языке Паскаль
Структура программы
Заголовок программы
Описание данных
Служебное слово program
и имя программы
Описание констант(const) и
описание переменных (var)
Начинается словом begin и
Описание действий
заканчивается словом end
с точкой

8.

Program <имя>;
USES <список модулей>;
LABEL <список меток>;
CONST <описание констант>;
TYPE <описание пользовательских типов>;
VAR <описание переменных>;
PROCEDURE <имя> (формальные параметры);
FUNCTION <имя> (формальные параметры);
Begin
<Операторы программы>
Begin
end;
End.

9.

1. Program <имя>;
Заголовок — это имя программы.
Пример:
2. USES <список модулей>;
Данный раздел включает имена подключаемых модулей
(библиотек), которые либо написаны пользователем,
либо уже содержаться в системе Pascal.
Пример:

10.

Имена (идентификаторы)
• имя должно начинаться с буквы или _;
• имя должно содержать только буквы, знак подчеркивания
и цифры;
• прописные и строчные буквы не различаются в Паскале и
различаются в др. языках;
• длина имени практически не ограничена.
Примеры правильных имен:
Vasia, A, A13, A_and_B.
Примеры неправильных имен:
2late, Big gig,
Sюр (для С# - правильное)

11.

3. CONST <описание констант>;
В этом разделе описываются величины,
значения которых не будут изменяться при
исполнении программы.
Например:
const
weight = 61.5;
n = 10;
g = 9.8;

12.

Переменная – это величина, имеющая имя, тип и
значение. Значение переменной можно
изменять во время работы программы.
Простые типы данных
Название
Обозначение
Допустимые
значения
Область
памяти
Целочисленный
integer
- 32 768… 32 768
2 байта
со знаком
Вещественный
real
2,9 *10-39 …1,7*10+38
6 байтов
Символьный
char
Произвольный
символ алфавита
1 байт
Строковый
string
Последовательность
символов длиной
меньше 255
1 байт на
символ
логический
boolean
True и False
1 байт

13.

4. VAR <описание переменных>;
Раздел начинается со служебного слова var, за
которым следуют имена переменных с указанием
их типа. В случае, если есть несколько
переменных одного типа, то они перечисляются
через запятую.
var
Например:
a : integer;
var
b : real;
a : integer;
c : real;
b, c, d : real;
d : real;

14.

15.

5. Begin
<Операторы программы>
end.
Оператор – это команда языка программирования
высокого уровня.
Оператор присваивания служит для изменения
значения переменной.
Команда присваивания
<имя переменной> := <значение>

16.

Алфавит языка
Алфавит языка программирования Паскаль - набор допустимых
символов, которые можно использовать для записи программы.
Алфавит языка Паскаль
Латинские прописные
буквы
A, B, C, …, X Y, Z
Латинские строчные
буквы
a, b, c,…, x, y, z
Арабские цифры
0, 1, 2, …, 7, 8, 9
Специальные
символы
Знаки арифметические,
препинания, скобки и другие

17.

Алфавит языка
В алфавит языка Паскаль включены неделимые элементы
(составные символы).
Неделимые элементы
Знак операции
присваивания
Знаки больше или равно,
меньше или равно
Начало или конец
комментария
:=
>= и <=
*Текст комментария *
или
//

18.

19.

Служебное слово языка Паскаль
Значение служебного слова
and
и
array
массив
begin
начало
do
выполнить
else
иначе
for
для
if
если
of
из
or
или
procedure
процедура
program
программа
repeat
повторять
then
то
to
до (увеличивая до)
until
до (до тех пор, пока)
var
переменная
while
пока

20.

Специальные символы:
+
*
плюс
минус
умножение
[]
.
,
квадратные скобки
точка
запятая
/
>
<
деление
больше
меньше
;
:

точка с запятой
двоеточие
апостроф
>=
<=
<>
больше либо равно
меньше либо равно
не равно
{}
()
^
фигурные скобки
круглые скобки
тильда

номер
$
знак денежной
единицы

21.

Математические функции
Функции
Тип аргумента
Тип результата
Действие
Sqr(x)
Целое или вещественное
Совпадает с типом аргумента
x2
Abs(x)
Целое или вещественное
Целое или вещественное
│x│
Sqrt(x), x>0
Целое или вещественное
real
√x
Sin(x)
Целое или вещественное
real
sin(x)
Cos(x)
Целое или вещественное
real
cos(x)
arctan(x)
Целое или вещественное
real
arctg(x)
ln(x)
Целое или вещественное
real
ln(x)
Exp(x)
Целое или вещественное
real
ℓx
Random(x)
word
word
случайное число [0;x-1]
вещественное
[0,1)
Random
Odd(x)
целые типы
Boolean (булевский тип) –
true, false
t → x – нечет
f → ч – иначе
Socc(x)
любой порядковый
Совпадает с типом аргумента
следующее значение за x
Pred(x)
любой порядковый
Совпадает с типом аргумента
предшествующее x
Low(x)
любой порядковый
Совпадает с типом аргумента
наименьшее значение из
диапазона x
High(x)
любой порядковый
Совпадает с типом аргумента
наибольшее значение из
диапазона x

22.

program qq;
a
5
?
5
var a, b: integer;
begin
b
a := 5;
5+2
?
7
b := a + 2;
a
a := (a + 2)*(b – 3);
7*4
5
28
end.

23.

ОШИБКИ:
program qq;
var a, b: integer;
x, y: real;
имя переменной должно
begin
быть слева от знака :=
a := 5;
целая и дробная часть
10 := x;
отделяются точкой
y := 7,8;
нельзя записывать
b := 2.5;
вещественное значение в
целую переменную
x := 2*(a + y);
a := b + x;
end.

24.

Порядок выполнения
операций
•вычисление выражений в
скобках
•умножение, деление, div, mod
слева направо
•сложение и вычитание слева
направо

25.

Div и mod
Div – целое от деления;
Mod – остаток от деления.
54 div 13 = 4
54 mod 13 = 2
24 div 7 = 3
24 mod 7 = 3

26.

Ручная прокрутка программы
program qq;
var a, b: integer;
begin
a := 5;
b := a + 2;
a := (a + 2)*(b – 3);
b := a div 5;
a := a mod b;
a := a + 1;
b := (a + 14) mod 7;
end.
a
b
?
?
5
7
28
5
3
4
4

27.

Примеры
Математическая
запись
Запись на языке Pascal
37 (25+87,5)-17 (4,6+1,9)
37*(25+87.5)-17*(4.6+1.9)
ab
d4
c
a*b/c+d*d*d*d
a 2b 3c
5a 4
(a+2*b-3*c)/(5*a+4)
a b ab
a b 3,14
(a+b)/(a-b)+a*b/3.14
Десятичная запятая в Pascal обозначается точкой

28.

Математические функции
Функции
Тип аргумента
Тип результата
Действие
Sqr(x)
Целое или вещественное
Совпадает с типом аргумента
x2
Abs(x)
Целое или вещественное
Целое или вещественное
│x│
Sqrt(x), x>0
Целое или вещественное
real
√x
Sin(x)
Целое или вещественное
real
sin(x)
Cos(x)
Целое или вещественное
real
cos(x)
arctan(x)
Целое или вещественное
real
arctg(x)
ln(x)
Целое или вещественное
real
ln(x)
Exp(x)
Целое или вещественное
real
ℓx
Random(x)
word
word
случайное число [0;x-1]
вещественное
[0,1)
Random
Odd(x)
целые типы
Boolean (булевский тип) –
true, false
t → x – нечет
f → ч – иначе
Socc(x)
любой порядковый
Совпадает с типом аргумента
следующее значение за x
Pred(x)
любой порядковый
Совпадает с типом аргумента
предшествующее x
Low(x)
любой порядковый
Совпадает с типом аргумента
наименьшее значение из
диапазона x
High(x)
любой порядковый
Совпадает с типом аргумента
наибольшее значение из
диапазона x

29.

Задание:
Pascal.
преобразовать в запись для

30.

31.

Ответы:
1.Sqrt(1+x)
2.Sqrt(x+y)/(sqr(x)+y)
3.Abs(x1+x2)+y1/(y2+x1)
4.Sqrt(abs(sin(a))+abs(cos(b)))
5.Sqrt(a+sqrt(b+sqrt(c)))

32.

1.Процедуры ввода (чтения)
данных: оператор ввода
read ( a );
{ ввод значения
переменной a}
read ( a, b ); { ввод значений
переменных a и b}
Как вводить два числа?
25 a
30 b
через пробел:
25 30
через Enter:
25
30
25 a
30 b

33.

2.Процедуры вывода данных:
оператор ввода
write ( a );
{ вывод значения
переменной a}
writeln ( a ); { вывод значения
переменной a и переход на новую строчку}
writeln ( 'Привет!' ); {вывод текста}
writeln ( 'Ответ: ', c );
{ вывод текста и значения переменной }
writeln ( a, '+', b, '=', c );

34.

Вывод данных
Program pr1;
BEGIN
Write(‘Начали!’);
Write(8+1);
Write(5);
END.
Program pr1;
BEGIN
Writeln(‘Начали!’);
Writeln(8+1);
Writeln(5);
END.
Результат выполнения
Результат выполнения
Начали!95
Начали!
9
5

35.

Оператор вывода
Writeln('Мне 16 лет');
На экране появится: Мне 16 лет
a:=11;
Writeln('Я учусь в ', а,' классе');
На экране появится: Я учусь в 11 классе
х:=3; у:=6;
Writeln(х+у,' ','рублей');
На экране появится: 9 рублей

36.

Варианты организации
вывода

37.

Для удобства восприятия вывода задаётся
маска в виде:
Write (a : n : m),
где а – выводимое значение,
n – число позиций, отводимых под значение а,
m – число позиций под дробную часть числа а.
Для более красивого вывода можно
использовать запись:
Write (‘x1=‘, x1 : 8 : 3, ‘ ‘ : 10, ‘x2=‘, x2 : 8 : 3),
где 10 – количество пробелов между
значениями.

38.

39.

Program rprpr;
var
num:integer;
f1:real;
st:string;
Begin
num:=5;
f1:=2.84;
st:=’box’;
writeln(num);
writeln(f1);
write(st);
end.
Написать программу
и получить результат

40.

41.

Program rprpr;
var
num:integer;
f1:real;
Написать программу
st:string;
и получить результат
Begin
num:=5;
f1:=2.84;
st:=‘box’;
writeln(‘Это целое число ’, num,
‘ . Это дробное число ’, f1);
write(st, ‘- это строка’);
end.

42.

43.

Program rprpr;
var
num:integer;
f1:real;
Написать программу
st:string;
и получить результат
Begin
num:=5;
f1:=2.84;
st:=‘box’;
writeln(num:5);
writeln(f1:5:2);
write(st:10);
end.

44.

45.

Задача
Составить программу:

46.

Самостоятельно
Написать программу:
Ввести три числа, найти их
сумму и произведение.

47.

Задача
Даны числа А, В, С. Переприсвоить их значения следующим
образом: А В С.
Исходные данные: А=10, В=15, С=20.
Результат: А=20,
В=10, С=15.
Program Lin2;
Var A,B,C,D: Integer;
Begin
Writeln(‘введите значения переменных А, В, С’);
Read(А,В,С);
D:=C;
C:=B;
B:=A;
A:=D;
Writeln(‘A=‘,A,’B=‘,B,’C=‘,C);
End.

48.

https://disk.yandex.ru/d/qZvI2aE-TdCPcw
English     Русский Правила