
- •Программирование на языке Turbo Pascal Материалы к урокам
- •Тема №1: этапы решения задач на эвм. Алгоритмизация. Основные понятия. Блок-схемы.
- •Свойства алгоритма
- •Элементы блок-схемы
- •Тема №2: работа в среде turbo-pascal. Транслятор. Набор текста программы. Справочная система. Выполнение и отладка программы.
- •Основные понятия:
- •Встроенные стандартные математические функции, используемые в Turbo Pascal.
- •Переменные. Описание переменных.
- •Тип переменных указывается после списка переменных через двоеточие (: ). Числовые переменные можно описать по-разному, в зависимости от вида (целые, вещественные) и значности чисел:
- •Простейшие операторы работы в текстовом режиме.
- •Нестандартный оператор очистки экрана:
- •Операторы ввода данных в переменные с клавиатуры:
- •Оператор ожидания нажатия на клавишу.
- •Целочисленные арифметические операции:
- •Функции, преобразования числовых переменных:
- •Получение случайных чисел.
- •Тема №4: программирование на языке turbo-pascal. Прорядковые типы данных. Ветвление. Операторы условного и безусловного перехода. Составление программ с использование ветвления и переходов.
- •Порядковые типы переменных (дополнительные сведения)
- •Функции, используемые для работы с порядковыми переменными.
- •Условный оператор (выбор одного из двух направлений)
- •Оператор 1, оператор 2 – какой либо оператор, в том числе и составной оператор, т.Е. Несколько операторов, объединенных операторными скобками begin end.
- •Ветвление на несколько направлений (оператор – переключатель, или оператор выбора или оператор варианта):
- •Операторы безусловного перехода goto и halt:
- •Тема №5: программирование на языке turbo-pascal. Организация циклов. Операторы циклов. Составление программ с использование операторов цикла.
- •Оператор цикла с параметром.
- •Цикл с предварительным условием
- •Цикл с последующим условием
- •Особенности и отличия операторов цикла
- •Примеры программ
- •Ответить на вопросы
- •Тема №6: программирование на языке turbo-pascal. Процедуры. Функции. Составление программ с использование процедур и функций. Рекурсия.
- •Тема №7: программирование на языке turbo-pascal. Основные графические операции языка turbo pascal. Составление программ с использование операторов графики.
- •Примеры программ:
- •Составить программу Абстракция, которая выводит на экран всевозможные графические фигуры.
- •Тема №8: программирование на языке turbo-pascal. Массивы, одномерные и вдухмерные. Составление программ с использованием массивов.
- •Задача MaxMin. Программа для поиска максимального и минимального элемента массива, с указанием их номеров (maxmin.Pas).
- •Сортировка массивов
- •Сортировка методом «пузырька»
- •Сортировка методом выбора
- •Поиск элемента в упорядоченном массиве
- •Тема №9: данные типа strung.
- •Тема №8: файлы. Типизированные файлы. Текстовые файлы.
- •Пример записи в текстовый файл:
- •Приложение 1. Структура типов данных
- •Приложение 2. Таблица кодов ascii
- •Назначение некоторых кодов ascii
- •Приложение 3. Расширенные ascii –коды клавиш
- •Приложение 4. Кодировка символов по модифицированной альтернативной кодировке символов госта (десятичный код-символ)
- •Содердание
Ветвление на несколько направлений (оператор – переключатель, или оператор выбора или оператор варианта):
Позволяет выбрать из любого числа возможностей.
case <переменная или выражение> of
<список значений выбора1>:<оператор1>;
<список значений выбора2>:<оператор2>;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
<список значений выбора N>:<оператор N>;
[else <оператор>]
end;
Переменная может быть любого порядкового типа, кроме longint (word, boolean, integer, char… или перечисляемый тип). (см.приложение 1, СТРУКТУРА ТИПОВ ДАННЫХ)
Список значений выбора - это значения, которые могут принимать переменная или выражение, перечисленные через запятую или, если значения принадлежат какому-либо интервалу, с использованием лексемы " . . " (1..7 или 'а' ..'м')
Оператор - любой оператор, в том числе составной.
Принцип работы оператора:
Значение переменной или выражения сравнивается с предложенными списками значений
Если найдено нужное значение, выполняется соответствующий оператор
Если нужное значение не найдено в перечисленных списках, выполняется оператор после else
Если else отсутствует, то, когда нужное значение не найдено, выполняется следующий за case оператор.
Ветви здесь представлены элементами выбора, разграниченными точкой с запятой, а слово else с последующим оператором могут отсутствовать. Элемент выбора – это оператор, например составной, снабжённый одной или несколькими константами выбора:
-
Пример использования оператора:
Написать программу, которая запрашивает номер месяца и выводит название времени года
uses crt;
var month : integer;
begin
writeln (‘введите номер месяца от 1 – 12’);
readln (month);
case month of
1,2,12 : writeln(‘зима’);
3,4,5 : writeln(‘весна’);
6,7,8 : writeln(‘лето’);
9,10,11 : writeln(‘осень’);
else writeln (‘ошибка ввода!’);
end;
repeat until keypressed;
end.
Операторы безусловного перехода goto и halt:
goto <метка>
перейти к
halt [<код>]
выход из программы
Оператор безусловного перехода прерывает естественную последовательность выполнения операторов и передает управление оператору, помеченному меткой.
Метка - это любое целое число от 0 до 9999 или идентификатор
Метки необходимо описывать в разделе описаний перед описанием переменных.
Например, LABEL 1, 2, lab3;
Метки ставятся в программе перед операторами в начале строки, после метки - двоеточие.
Например, 1: repeat until keypressed;
ЗАМЕЧАНИЕ:
Нельзя входить и выходить из функций и процедур с помощью операторов goto и halt
Нельзя входить в циклы с помощью операторов goto и halt, но можно досрочно их заканчивать
Из программы можно выйти оператором halt
Пример использования оператора:
Составить программу проверки знания таблицы умножения. |
program pt1; uses crt; label 1; var a,b:integer;x,y,z:integer;t:char; begin clrscr; writeln ('ПРОГРАММА ПРОВЕРКИ ТАБЛИЦЫ УМНОЖЕНИЯ.'); writeln ('Выход из программы - Q, продолжение - любая другая клавиша'); randomize; 1: x:= random(10);y:= random(10); write(' ',x,' x ',y,' = ?'); read(z); if z=x*y then writeln ('правильно!') else writeln ('неправильно! '); writeln ('продолжить?(y/n)')t:=readkey; if (t='N') or (t='n') then halt else goto 1; end. |
Практические задания:
Отработка навыков использования операторов ветвления
Составить программу движения символа * под управлением клавиш 2,4,6,8. Q – выход из программы. |
uses crt; label 1; var x,y:word;q:char; begin clrscr; x:=40;y:=12; 1:textcolor(14);gotoxy(x,y);write('*'); q:=readkey; textcolor(0);gotoxy(x,y);write('*'); if q='2' then y:=y+1; if q='8' then y:=y-1; if q='4' then x:=x-1; if q='6' then x:=x+1; if (q='q') or (q=’Q’) then halt; goto 1; readkey;end. |
Составить программу подсчета суммы введенных с клавиатуры чисел. Признак конца ввода – число 0.
|
program pt1; uses crt; label 1; var x,z:integer;t:char; begin clrscr; writeln ('ПРОГРАММА ПОДСЧЕТА СУММЫ ВВЕДЕНЫХ ЧИСЕЛ.'); gotoxy(50,22);writeln ('Выход из программы - число 0'); 1: write('Введите число'); read(x); if х=0 then goto 2 else begin z:=z+x; goto 1;end; 2: writeln('сумма введенных чисел - ',z); readkey;end. |
Написать программу, которая проверяет, является ли четным введенное с клавиатуры число |
Uses crt; Var n:integer; Begin Readln(n); Write(‘число’, n,’-‘); If n mod 2=0 then writeln(‘четное’) else writeln(‘нечетное’); readkey; End. |
Написать программу, которая запрашивает номер месяца и выводит название времени года.
|
Uses crt; Var month: integer; Begin Writeln (‘Введите номер месяца от 1 – 12); Readln(month); Case month of 1,2,12: writeln(‘Зима’); 3..5: writeln(‘Весна’); 6..8: writeln(‘Лето’); 9..11: writeln(‘Осень’); else writeln(‘число д.б. от 1 до 12’); end; readkey;end. |
Задача. Развивая предельно возможную скорость своего движения, жираф пробегает за 23 с 335,8 м. Заяц пробегает за 55 с 918,5 м. Кому из этих животных вы присвоите звание чемпиона, сопоставляя их скорости?
А
лгоритм
решения задачи в виде блок-схемы приведен
ниже. Программу составить самостоятельно.