- •Практикум по Турбо Паскалю
- •Первые занятия Первое знакомство с системой программирования Турбо Паскаль
- •Команды редактора
- •Задания
- •Режим помощи
- •Первая программа
- •Запуск программы
- •Сохранение программы
- •Выход из системы программирования Турбо Паскаль
- •Простейшие линейные программы
- •Арифметический квадрат. Абсолютная величина
- •Целый и логический типы данных Условный оператор
- •Логический тип данных
- •Условный оператор
- •Вложенные операторы условия
- •Целый тип данных. Цикл с параметром
- •Цикл с параметром (разбор на примере)
- •Работа с окнами. Метод пошагового выполнения программ
- •Работа с окнами
- •Решение задач с использованием цикла с параметром
- •Вопросы для обсуждения
- •Трассировка примера
- •Цикл с постусловием
- •Алгоритм Евклида
- •Вложенные циклы
- •Решение задач с использованием циклов с условием
- •Простые типы данных
- •Задания
- •Решение задач
- •Вещественный тип данных
- •Задание
- •Решение задач
- •Ограниченный, перечисляемый типы данных. Оператор варианта
- •Ограниченный тип данных
- •Оператор варианта
- •Перечисляемый тип данных
- •Решение задач
- •Описание переменных, констант и типов Раздел описания констант
- •Раздел описания переменных
- •Раздел описания типов
- •Решение задач
- •Преобразование типов. Совместимость типов
- •Задания
- •Решение задач
- •Решение задач
- •Контрольные работы Контрольная работа №1
- •Контрольная работа №2
- •Основы Паскаля
- •X y22m размер gamma alfa r15
- •Процедуры и функции
- •Описание процедур и функций
- •Файловый тип
- •Описание файлового типа
- •Подпрограммы
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Write
- •Процедура Close
- •Функция FileSize
- •Функция FilePos
- •Текстовые файлы
- •Описание текстового файла
- •Консоль
- •Устройства
- •Соответствие текстовых файлов и логических устройств
- •Операции над текстовыми файлами
- •Процедура Assign
- •Процедура Reset
- •Процедура Rewrite
- •Процедура Append
- •Процедура Close
- •Функция Eof
- •Функция SeekEof
- •Блочные файлы Описание типа блочного файла
- •Процедура BlockRead
- •Процедура BlockWrite
- •Операции ввода-вывода
- •Регулярные типы данных Одномерные массивы. Работа с элементами
- •Способы задания одномерных массивов
- •Работа с элементами массива (разбор на примерах)
- •Методы работы с элементами одномерного массива Изменение значения некоторых элементов
- •Создание массива
- •Работа с несколькими массивами
- •Удаление элементов из одномерного массива Удаление элемента
- •Вставка элементов в одномерный массив Вставка одного элемента
- •Вставка нескольких элементов
- •Перестановка элементов массива
- •Перестановка части массива
- •Найти сумму элементов
- •Работа с несколькими массивами
- •Двумерный массив. Работа с элементами Изменение значений некоторых элементов, удовлетворяющих заданному свойству
- •Заполнение двумерного массива по правилу.
- •Вставка и удаление элементов двумерного массива
- •Перестановка элементов массива
- •Комбинированный тип данных (записи)
Условный оператор
Примечание. Для занятия необходимо подготовить плакаты (таблицы, рис. 2), поясняющие работу условного оператора.
Полный условный оператор |
If <условие> Then <оператор 1> Else <оператор 2> |
Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Простые условия записываются в виде равенств или неравенств. Сложные условия составляют из простых с помощью логических операций. Если условие истинно, то выполняется < оператор 1>, в противном случае - <оператор 2>. Если в качестве оператора должна выполниться серия операторов, то они объединяются в операторные скобки Begin-End.
Разбор оператора можно выполнить на следующем простом примере.
Пример:
Вывести на экран большее из двух данных чисел.
Program Example_2; Var x, y : integer; Begin Writeln('введите 2 числа'); Readln(x,y); {вводим два целых числа через пробел} If x>y Then Writeln(x) {если (If)x больше y, то (Then) выводим x,} Else Writeln(y); {иначе (Else)выводим y} Readln; End.
Введем два числа 5 и 7 - значение переменной x равно 5, а значение переменной y - 7 (x=5, y=7). Условие x>y не выполняется, так как 5 не больше 7, - работает оператор, стоящий после else, то есть writeln(y), а следовательно, на экране появится 7.
Примечание. Обратите внимание учащихся на то, что перед служебным словом else разделитель точка с запятой не ставится.
Неполный условный оператор |
If<условие> Then <оператор> |
Ветвь Else может отсутствовать, если в случае невыполнения условия ничего делать не надо. Например, если значение переменной x меньше 0, то поменять его на противоположное. В программе такой условный оператор выглядит следующим образом:
If x<0 Then x:= -x;
В первом случае условный оператор называется полным, а во втором - неполным.
Пример
Написать программу, проверяющую, принадлежит ли число, введенное с клавиатуры, интервалу (0,5).
Решение
Обозначим: x - число, вводимое с клавиатуры пользователем (это переменная целого типа). Принадлежность числа x интервалу (0,5) определяется следующей системой неравенств: X принадлежит заданному интервалу лишь в том случае, если одновременно выполняются оба условия:
Program Example_3; Var x : Integer; Begin Writeln('Введите число x'); Readln(x); If (x>0) And (x<5) Then Writeln(x,' принадлежит интервалу(0,5)') Else Writeln(x,' не принадлежит интервалу'); End.
Вложенные операторы условия
Часто приходится выбирать путь решения задачи не из двух, а из нескольких возможных. В программировании это можно реализовать, используя несколько условных операторов. В этом случае после служебных слов Then и Else записывается новый условный оператор.
Пример:
Даны целые числа a, b, c. Если a<=b<=c, то все числа заменить их квадратами, если a>b>c, то каждое число заменить наибольшим из них, в противном случае сменить знак каждого числа.
Решение
Условие задачи перепишем следующим образом:
a = a2, b = b2, c = c2, если a <= b <= c
a = c, b = c, если a>b>c
a = -a, b = -b, c = -c, в остальных случаях.
Program Example_4; Var a,b,c: Integer; Begin Writeln('Введите числа a, b, c'); Readln(a,b,c); If (a<=b) And (b<=c) Then Begin a:=sqr(a); b:=sqr(b); c:=sqr(c) End Else If (a>b) And (b>c) Then Begin a:=c; b:=c End Else Begin a:=-a; b:=-b; c:=-c End; Writeln(a:3,b:3,c:3); Readln End.
Примечание. Если элементами вложенных условных операторов служат неполные условные операторы (как например, в задаче, рассмотренной выше), то могут возникать неясности, связанные с установлением границ условных операторов. В таких случаях служебное слово else относится к ближайшему if.
Задание
В приведенной выше программе изменим условный оператор следующим образом:
If (a<=b) And (b<=c) Then Begin a:=sqr(a); b:=sqr(b); c:=sqr(c) Else If (a>b) And (b>c) Then Begin a:=c; b:=c End; Else Begin a:=-a; b:=-b; c:=-c End; End;
Как изменится выполнение данной программы? Сформулируйте условие задачи, выполняемой данной программой.
Решение
Определить значение логического выражения:
(-3>=5) Or Not(7<9) And(0<3)
Имеется условный оператор: If D<>10 Then writeln('ура!') Else Writeln('плохо...');. Можно ли заменить его следующими операторами:
If D=10 Then Writeln('ура!') Else Writeln('плохо...');
If Not(D=10) Then Writeln('ура!') Else Writeln('плохо...');
If Not(D=10) Then Writeln('плохо...') Else Writeln('ура!');
If Not(D<>10) Then Writeln('плохо...') Else Writeln('ура!').
Какими будут значения переменных j, k после выполнения условного оператора: If j>k Then j:=k-2 Else dec(k,2);, если исходные значения переменных равны:
j = 3, k = 5;
j = 3, k = 3;
j = 3, k = 2.
Запишите условный оператор, в котором значение переменной вычисляется по формуле: a + b, если a - нечетное и a*b, если a - четное.
Вычислить значение функции:
{ x2 + 5, при x>3 , x-8, при x<=3
Найти наибольшее из трех данных чисел.
Вывести на экран номер четверти, которой принадлежит точка с координатами (x, y), при условии, что x и y отличны от 0.
Вычислить значение функции:
{ x-12, при x>0, 5, при x=0, x2, при x<0
Даны три целых числа, найти среднее из них. Средним назовем число, которое больше наименьшего из данных чисел, но меньше наибольшего.
Написать фрагмент программы, подсчитывающий сумму только положительных из трех данных чисел.
Даны три числа. Написать фрагмент программы, подсчитывающий количество чисел, равных нулю.
После выполнения операторов
a := 0;
If a<>0 Then; a := 2
значение переменной равно двум. Объясните почему.
Используя составной оператор, упростите следующий фрагмент программы:
If a>b Then c := 1; If a>b Then d := 2; If a<=b Then c := 3; If a<=b Then d := 4.
Каким будет значение переменной a после выполнения операторов:
a := 3;
If a<4 Then Begin Inc(a,2); Inc(a,3); End.
Составьте программу нахождения произведения двух наибольших из трех введенных с клавиатуры чисел
Если целое число M делится нацело на целое число N, то вывести на экран частное от деления, в противном случае - сообщение ''M на N нацело не делится''.
Найти количество положительных (отрицательных) чисел среди четырех целых чисел A, B, C и D
Чему равны значения переменных a и b после выполнения последовательности действий:
a := 15 Div (16 Mod 7); b := 34 Mod a *5 - 29 Mod 5*2; a := 4 * 5 Div 3 Mod 2; b :=4 * 5 Div ( 3 Mod 2); a := a*b; b:= b*b.
Составьте программу, которая определяла бы вид треугольника (если данные отрезки позволяют его построить).
Составьте программу, которая уменьшает первое число в пять раз, если оно больше второго по абсолютной величине.
Составьте программу вычисления выражения:
max(x + y + z, xyz) + 3;
min(x2 + y2, y2 + z2) - 4, если x, y, z введены с клавиатуры.
Составьте программу, которая из трех введенных с клавиатуры чисел возводит в квадрат положительные, отрицательные оставляет без изменения.
