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

Программирование линейных алгоритмов

1.

ПРОГРАММИРОВАНИЕ
ЛИНЕЙНЫХ АЛГОРИТМОВ
НАЧАЛА ПРОГРАММИРОВАНИЯ

2.

Ключевые слова
• вещественный тип данных
• целочисленный тип данных
• символьный тип данных
• строковый тип данных
• логический тип данных

3.

Числовые типы данных
Стандартные функции языка Паскаль:
Функция
Назначение
Тип аргумента
Тип
результата
abs (x)
Модуль x
integer, real
Такой же, как у
аргумента
sqr (x)
Квадрат x
integer, real
Такой же, как у
аргумента
sqrt (x)
Квадратный корень
integer, real
real
round (x)
Округление х до
ближайшего целого
real
integer
int (x)
frac (x)
Целая часть x
integer
random
Случайное число
от 0 до 1
real
real
-
random (x)
Случайное число
integer
integer
из x
Дробная часть x
от 0 до x
real
real

4.

Исследование функций round, int и frac
program n_3;
var x: real;
begin
writeln ('Исследование функций round, int, frac');
write ('Введите x>>');
readln (x);
writeln ('Округление: ', round(x));
writeln ('Целая часть: ', int(x));
writeln ('Дробная часть: ', frac(x))
end.
Выполните программу несколько раз для
x {10,2; 10,8; –10,2; –10,8}.
Какой будет тип результата каждой из этих функций?
?

5.

Целочисленный тип данных
Операции над целыми числами в языке Паскаль:
Операция
Обозначение
Тип результата
Сложение
+
integer
Вычитание
-
integer
Умножение
*
integer
Получение целого частного
div
integer
Получение целого остатка
деления
mod
integer
/
real
Деление

6.

Операции div и mod
Трёхзначное число можно представить в виде следующей
суммы: x = a·100 + b·10 + c, где а, b, с - цифры числа.
Программа нахождения суммы цифр вводимого с
клавиатуры целого трёхзначного числа:
program n_4;
var x, a, b, c, s: integer;
begin
writeln ('Нахождение суммы цифр трёхзначного числа');
write ('Введите исходное число>>');
readln (x);
a:=x div 100;
b:=x mod 100 div 10;
c:=x mod 10;
s:=a+b+c ;
writeln ('s= ', s)
end.

7.

Символьный и строковый типы
данных
Символы – это все буквы и значки, которые есть на
клавиатуре. Для ввода в программу символьных переменных
необходимо указать для них символьный тип данных char.
Функция ord преобразовывает букву в её числовой код.
Функция chr преобразовывает числовой код символа в сам
символ.
W
%
S
4
ord
87
37
52
83
chr
W
%
S
4
Значением строковой величины (тип string) является
произвольная последовательность символов, заключенная в
апострофы.
var c: string
c:= chr(52)+chr(37)
4%
с

8.

Символьный и строковый типы
данных
program n_5;
var a: char; kod: integer; b: string;
begin
writeln ('Код и строка');
write ('Введите исходную букву>>');
readln (a);
kod:=ord(a);
b:=chr(kod–1)+a+chr(kod+1);
writeln ('Код буквы ', a, '-', kod);
writeln ('Строка: ', b)
end.
Вывод на экран
кода буквы,
введённой с
клавиатуры
Вывод на экран
строки из трёх
букв.
Каких?

9.

Логический тип данных
Величины логического типа принимают всего два значения:
false и true;
false < true.
Логические значения получаются в результате выполнения
операций сравнения числовых, символьных, строковых и
логических выражений.
В Паскале логической переменной можно присваивать
результат операции сравнения.

10.

Логический тип данных
Пусть ans - логическая переменная,
n - целая переменная.
В результате выполнения оператора присваивания
ans:=n mod 2=0
переменной ans будет присвоено значение true при любом
чётном n и false в противном случае.
program n_6;
var n: integer; ans: boolean;
begin
writeln ('Определение истинности высказывания о чётности числа');
write ('Введите исходное число>>');
readln (n);
ans:=n mod 2=0;
writeln ('Число ', n,' является четным - ', ans)
end.

11.

Логический тип данных
Логическим переменным можно присваивать значения
логических выражений, построенных с помощью логических
функций и (and), или (or), не (not).
Логическая операция
в Паскале
Название операции
and
конъюнкция
(логическое умножение)
or
дизъюнкция
(логическое сложение)
not
отрицание (инверсия)

12.

Логический тип данных
program n_7;
var a, b, c: integer; ans: boolean;
begin
writeln ('Определение истинности высказывания
о равнобедренном треугольнике');
write ('Введите значения a, b, c>>');
readln (a, b, c);
ans:=(a=b) or (a=c) or (b=c);
writeln ('Треугольник с длинами сторон ', a, ',', b,
',', c, ' является равнобедренным - ', ans)
end.

13.

Самое главное
Типы данных в языке Паскаль:
• вещественный
• целочисленный
• символьный
• строковый
• логический и другие.
Для них определены соответствующие операции и
функции.

14.

Вопросы и задания
Исследуйте
работу
функции
random
, запустив
многократно
Разработайте
Запишите
на
языке
программу,
Паскаль
которая
программу,
запрашивает
реализующую
три на
Для
Идёт
заданного
k-я координаты
секунда
x вычислите
суток.
уРазработайте
по
формуле
программу,
Известны
вершин
A,
B,
C
треугольника.
Если
сумма
налога
исчисляется
в рублях
и вычислите
копейках,
Одна
компания
выпустила
лотерейные
билеты
трёх
выполнение
программу:
По
заданным
координатам
точек
А
и
В
Составьте
программу,
вводящую
true
, сдачу
если
строковые
алгоритм
работы
величины
кассира,
выдающего

покупателю
взаимосвязанные
3
2
которая
по
введённой
k

секунде
суток
определяет,
Напишите
программу,
вычисляющую
площадь
этого
Известны
длины
сторон
треугольника
a,
b,стариков.
c. рубля
у
= х +для
2,5
х
– х +1.
Запишите
на
языке
Паскаль
программу,
которая
для
то
налоговая
служба
округляет
её
до
ближайшего
program
n_8;
разрядов:
молодежи,
для
взрослых
и
для
прилагательное,
существительное
и
глагол,
а
затем
отрезка
АВ
.
высказывание
является
истинным,
и
false
в (противном
(длину
s)Даны
наименьшим
количеством
банкнот
по 500
kпрошло
500), 100
значения
целочисленных
переменных:
треугольника.
сколько
целых
часов
h
и
целых
минут
m
с
Напишите
программу,
вычисляющую
площадь
этого
произвольного
двузначного
числа
определяет:
var
x,
n:
integer;
При
этом:
(до
50
копеек
с
недостатком,
свыше
50
копеек
печатает
все
варианты
фраз лежат
с использованием
случае:
Номера
билетов
каждого
разряда
в пределах:
a
=
10,
b
=
20.
(начала
k
100),
50
(
k
50)
и
10(
k
10)
рублей.
суток.
Запишите
на
языке
Паскаль
программу,
которая
треугольника.
а)
сумму
и
произведение
его
цифр;
begin
(включая
50)
с
избытком).
а)
операцию
возведения
в
степень
использовать
введённых
слов.
Пример
Запишите
входных
на
данных
языке
Паскаль
Пример
программу,
которая
данных
а)
сумма
цифр
трёхзначного
числа
x+выходных
является
чётным
Чему
будет
равно
значение
логической
переменной
rez
для
молодёжи
от
1
до
100;
выводит
на
экран
строку
символов,
коды
которых
б)
число,
образованное
перестановкой
цифр
Например,
если
k
=13257=3
х
3600
40
х
60
+
57,
writeln
('Исследование
функции
random');
Используйте
компьютер,
чтобы
ввести
точную
сумму
запрещено;
вычисляет
сумму
кодов
букв ввыходных
слове БАЙТ.
числом;
Пример
входных
данных
Пример
данных
после
выполнения
операции
присваивания?
равны
66,
69,
71,
73,
78.
исходного
числа.
randomize
(*для
генерации
различных
случайных
чисел
налога
и
вывести,
сколько
следует
уплатить.
то
h
=3
и
m
=
40.
для
взрослых
от
101
до
200;
Пример
входных
данных
Пример
выходных
данных
б)
в одном со
операторе
можно
xaб)
=при
2треугольник
| AB присваивания
| *);
= 10.0
сторонами
a,
b,
с
является
каждом
запуске
программы
а)
rez:=(a=10)
or
(b>10)
Выведите
на
экран
фразу:
Itарифметической
is … hours … minutes
.
для
стариков
от
201
до
250.
использовать
не
более
одной
операции
разносторонним.
xa
s = 16.0
a
32
6.0
ya==write
1 ('Введите x>>');
Вместо
многоточий
программа
должна
выводить
Пример
входных
данных
Пример
выходных
данных
845
Следует
сдать:
(сложение,
умножение,
вычитание);
б)
rez:=(a>5)
and
(b>5)
and
(a<20)
and
(b<30)
С
помощью
компьютера
выберите
случайным
readln
(x);
ya
b
xb==41
10
ЗЕЛЁНЫЕ
РАСПУСКАЮТСЯ
значения
h и mn>>');
, может
отделяя
их использовано
отЛИСТЬЯ
слов
ровно
ЗЕЛЁНЫЕ
банкнот
по 500
руб.
–одним
1 шт.
в)
в
программе
быть
не
более
write
('Введите
образом
лотерейный
билет
в
каждом
разряде.
в)
rez:=(
(not(a<15))
or
(b>20)
xb
сyb
==56
7
ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ ЛИСТЬЯ
пробелом.
ЛИСТЬЯ
пяти
операторов
присваивания.
readln (n);
банкнот по 100 руб. – 3 шт.
ЛИСТЬЯ
ЗЕЛЁНЫЕ РАСПУСКАЮТСЯ
yb
=writeln
5
РАСПУСКАЮТСЯ
('random(',
x, ')=', random(x));
банкнот
по 50
руб.ЗЕЛЁНЫЕ
– 0 шт.
Подсказка:
преобразуйте
выражение
к следующему
ЛИСТЬЯ
РАСПУСКАЮТСЯ
xcПример
=writeln
10 ('random(',
x, ')+', n,РАСПУСКАЮТСЯ
'=',Пример
random(x)+n)
входных данных
выходных
данных
ЗЕЛЁНЫЕ
ЛИСТЬЯ
банкнот
по
10
руб.

4 шт.
виду:
y
=((x
+
2,5
)x

1
)x
+
1.
end.
yc
1
РАСПУСКАЮТСЯ
ЗЕЛЁНЫЕ
13=257
It is 3 hoursЛИСТЬЯ
40 minutes.
Как
Как
можно
можно
получить
получить
случайное
случайное
число
число
изиз
промежутка
промежутка
(n;(0;
x+
x)?
x]?
n)?

15.

Опорный конспект
Типы данных в языке Паскаль: вещественный,
целочисленный, символьный, строковый, логический.
Тип данных в Паскале
Вещественные
Числовые
Целые
Символьные
ord, char
Логические
and, or, not
abs (x),sqr (x),
sqrt (x), +, -, *, /
English     Русский Правила