- •1. Системы счисления
- •Десятичная система счисления
- •Двоичная система счисления
- •Восьмеричная и шестнадцатеричная системы счисления
- •Перевод чисел из любой системы счисления в десятичную
- •Перевод чисел из десятичной системы счисления в любую другую
- •2. Алгебра логики
- •2.1. Логические операции
- •Инверсия
- •Конъюнкция
- •Дизъюнкция
- •Эквиваленция (равнозначность)
- •Импликация
- •Антиконъюнкция
- •Антидизъюнкция
- •2.2. Нормальные формы
- •Конъюнктивная нормальная форма
- •Дизъюнктивная нормальная форма
- •3. Применение средств алгебры логики для описания функционирования устройств компьютера
- •Логические схемы
- •Построение логических схем
- •4. Практическая работа 1. Системы счисления
- •Вопросы для самоконтроля
- •5. Практическая работа 2. Алгебра логики
- •Решение логических задач средствами алгебры логики
- •Индивидуальное задание к модулю 1. Построение логических схем по заданным булевым выражениям
- •Приложение 1. Практическое занятие 1 «Системы счисления»
- •Приложение 2. Практическое занятие 2 «Алгебра логики»
- •Приложение 3. Индивидуальное задание. Модуль №1
- •Приложение 4
- •6. Введение в алгоритмизацию
- •7. Знакомство со средой Турбо Паскаль
- •7.1. Общие сведения
- •7.2. Запуск Турбо-Паскаля на выполнение
- •7.4. Работа с текстовым редактором Турбо-Паскаля
- •Клавиши перемещения курсора
- •Работа с блоками текста
- •8. Основы алгоритмизации
- •8.1. Алгоритм
- •8.2. Алгоритмические структуры
- •Самоконтроль
- •9.1. Алфавит языка
- •9.2. Арифметические выражения и правила их записи
- •Знаки операций
- •Операции div и mod
- •9.3. Типы данных
- •Целые типы
- •Логический тип
- •Символьный тип
- •Строковый тип
- •Вещественный тип
- •9.4. Стандартные функции
- •9.5. Структура программы на языке Паскаль
- •9.6. Описательная часть программы
- •9.7. Исполнительная часть программы
- •9.8. Оператор присваивания
- •9.9. Операторы ввода-вывода
- •Оператор ввода
- •Оператор вывода
- •9.10. Комментарии в программе
- •Самоконтроль
- •Задание
- •Пример программы линейной структуры
- •Приложение 1. Таблица вариантов задания №2
- •10. Ветвления
- •10.1. Операторы условия и перехода
- •Логический оператор
- •Операции отношения
- •Логические операции
- •10.2. Оператор выбора
- •Самоконтроль
- •Задание
- •Пример программы разветвленной структуры
- •Приложение 1. Таблица вариантов задания 3
- •11.2. Оператор цикла с постусловием
- •11.3. Оператор цикла с предусловием
- •11.4. Вложенные циклы
- •11.5. Оператор прерывания цикла
- •Самоконтроль
- •Задание
- •Пример программы циклической структуры
- •Приложение 1. Таблица вариантов задания 4
- •12. Операции с индексированными переменными
- •12.1. Массивы одномерные
- •12.2. Описание массивов
- •Ввод элементов массива
- •Вывод элементов массива
- •12.3. Обработка одномерных массивов
- •Самоконтроль
- •Задание
- •Пример программы обработки одномерного массива
- •Приложение 1. Таблица вариантов задания 5
- •13. Двумерные массивы
- •13.1. Матрицы
- •13.2. Описание двумерного массива
- •Ввод элементов двумерного массива
- •Вывод элементов двумерного массива
- •13.3. Обработка двумерных массивов
- •Самоконтроль
- •Задание
- •Пример программы обработки двумерного массива
- •Приложение 1. Таблица вариантов задания 6
- •Структура программы, содержащей процедуру (функцию)
- •14.2. Процедуры
- •14.3. Вложенные процедуры
- •Директива forward
- •14.4. Функции
- •Самоконтроль
- •Задание
- •Пример программы с использованием подпрограмм
- •Приложение 1. Таблица вариантов задания 7
- •15. Обработка строк текста
- •15.1. Символьные переменные
- •Фрагмент таблицы ASCII-кодов букв латинского алфавита
- •Фрагмент таблицы ASCII-кодов букв русского алфавита
- •15.2. Функции обработки символьных переменных
- •15.3. Строковые переменные
- •15.4. Функции обработки строковых переменных
- •15.5. Процедуры обработки строковых переменных
- •15.6. Примеры обработки строковых переменных
- •Самоконтроль
- •16. Структурированные типы данных
- •Записи
- •Самоконтроль
- •Задание
- •Пример программы использования массива записей
- •Приложение 1
- •Приложение 2. Таблица вариантов ИДЗ 2
По этому оператору проверяется <условие> и, если оно выполняется, то выполняется - P, после чего опять проверяется <условие> и т. д.
Итак, P выполняется до тех пор, пока выполняется <условие>.
Если условие ни разу не выполнилось, P игнорируется, управление передается следующему оператору.
Задача.
Вычислить сумму ряда:
y = |
sin x |
|
sin 2x |
|
sin 3x |
n+1 |
|
sin nx |
1! |
− |
2! |
+ |
3! |
−...+(−1 |
) |
n! |
где n! = 1*2*…*n
Значение аргумента х и количество итераций n ввести с клавиатуры. Введем дополнительную переменную для вычисления n! – f.
program cikl_2; uses
crt; var x,y : real; i,n,f : integer;
begin writeln (' введите x, n '); read (x, n); y: =0; f: =1; i:=1;
while i<=n do
{ составной оператор } begin
f:=f*I;
y:=y+sin(i*x)/f;
i:=i+1;
end;
writeln (' y = ', y:8:3); readln;
end.
11.4. Вложенные циклы
В теле любого оператора цикла могут находиться другие операторы цикла. При этом цикл, содержащий в себе другой, называется внешним, а цикл, находящийся в теле первого, - называется внутренним (вложенным). Правила организации внешнего и внутреннего циклов такие же, как и для простых циклов.
Рассмотрим задачу вывода на экран таблицы умножения, решение которой предполагает использование вложенных циклов.
var
i,j : byte; begin
writeln(‘ Таблица умножения ’); for i:=1 to 9 do
66
begin
for j:=1 to 9 do
writeln( i , ‘ * ‘ , j ,‘ = ’, i*j ); writeln;
end;
readln;
end.
При организации вложенных циклов необходимо помнить, что параметр внешнего цикла меняется медленнее, чем параметр внутреннего. При одном значении параметра внешнего цикла параметр внутреннего – пробегает все свои возможные значения.
11.5. Оператор прерывания цикла
Для досрочного прерывания цикла можно использовать оператор goto или стандартную процедуру break.
Рассмотрим фрагмент:
…
for i:=1 to n do begin p:=p* i;
if p>100 then break ; writeln(‘p=’, p); end;
…
Цикл будет прерван при достижении условия p>100 по процедуре break.
Самоконтроль
1.Что такое цикл?
2.Какие циклы можно организовать на языке Паскаль?
3.В каких случаях предпочтительней использовать оператор for …to … do для организации циклов?
4.Какой тип должна иметь переменная, которая является параметром цикла в операторе for …to … do ?
5.Сколько циклов будет пройдено, если в операторе while … do условие не выполнилось с первого раза?
6.Сколько циклов будет пройдено, если в операторе repeat … until условие выполнилось с первого раза?
7.Что такое вложенные циклы?
8.Как можно досрочно прервать цикл?
Задание
•ответить на вопросы самоконтроля;
•выполнить практическое задание №5, используя пример программы циклической структуры. Задание выбрать из таблицы по номеру варианта (Приложение 1).
67
Пример программы циклической структуры
Задача.
1. Формулировка задачи:
Составить программу расчета таблицы значений функции f(x) на интервале a<=x<=b в n равностоящих точках. Границы интервала a,b и количество точек n ввести с клавиатуры. Результаты вывести на печать.
f (x) = (1−e−x) ×sin(4πx)
Найти сумму положительных значений функции f(x) на заданном интервале. Формула для расчета шага изменения аргумента:
dx = (b-a)/(n-1)
2. Таблица идентификаторов
№ |
Наименование переменной |
Обозначения в программе |
1 |
Функция |
y |
|
|
|
2 |
Аргумент |
x |
3 |
Количество точек |
n |
4 |
Начальное значение x |
a |
5 |
Конечное значение x |
b |
6 |
Шаг изменения аргумента |
dx |
7 |
Сумма |
s |
|
|
|
3. Листинг программы
program cikl_3; uses
ctr; var
y,x,a,b,dx,s : real; I,n : integer; begin
clrscr;
writeln(‘Введите a,b,n’); readln(a,b,n);
{ шаг изменения аргумента} dx:=(b-a)/(n-1);
s:=0;
x:=a;
for i:=1 to n do begin
y:=(1-exp(-x)) * sin(4*pi*x); writeln(‘y=’,y:8:3);
68