Пособие по Turbo Pascal
методическая разработка по информатике и икт (9 класс) по теме
Краткое пособие к проведению занятий по программированию в среде Turbo Pascal
Скачать:
| Вложение | Размер |
|---|---|
| 988 КБ |
Предварительный просмотр:
Программирование в среде Turbo Pascal 7.0.
Введение.
Первая версия языка программирования Паскаль была разработана на кафедре информатики университета швейцарским ученым Никлаусом Виртом в 1968 году. Язык Паскаль, названный в честь французского математика и философа Блеза Паскаля (1623 - 1662), был создан как учебный язык программирования.
В 1985 г. появилась первая версия Турбо Паскаля (версия 3.0).
В 1992 г. фирма Borland International представила пользователям последнюю версию 7.0.
Запуск программы.
Запуск осуществляется активизацией файла turbo.exe (C:\BP\BIN\turbo.exe) или через ярлык программы, находящейся на рабочем столе
Общий вид программы:
- полоса меню – является основным доступом ко всем командам меню.
- Строка статуса: горячие клавиши, подсказки, советы, содержит информацию о том, какая функции выполняются.
- Рабочее окно программы.
- Закрывающая кнопка
- Номер открытого окна
- Позиция курсора в рабочем окне
- Полосы прокрутки
- Имя редактируемого файла
- Курсор
- Кнопка для просмотра окон
Двойная рамка - признак активного окна.
Активное окно – это окно, с которым вы в настоящий момент работаете.
Строка меню (F10):
File: позволяет выполнять все основные операции с файлами (создать - New, загрузить – Open (F3), сохранить – Save (F2), вывод на печать, выход из среды программирования Turbo Pascal(Alt+X));
Edit: позволяет выполнять все основные операции редактирования текста (копировать – Copy (Ctrl + Ins),вырезать - Cut (Shift + Del), вставлять – Paste (Shift + Ins), удалять фрагменты текста – Clear (Ctrl + Del), восстанавливать первоначальный вариант);
Search: позволяет осуществлять поиск фрагментов текста и при необходимости производить замену найденного фрагмента новым;
Run: позволяет запустить программу (Ctrl + F9), находящуюся в рабочей зоне, выполнять пошагово программу или её часть;
Compile: позволяет осуществлять компиляцию программы, которая находится в рабочей зоне;
Debug: содержит команды, облегчающие процесс поиска ошибок (Breakpoints- точки остановки, окно отладки Watch, окно используемых подпрограмм, окно регистров, окно выходных результатов и некоторые другие);
Tools: позволяет выполнять некоторые программы, не выходя из Турбо Паскаля;
Options : позволяет установить необходимые для работы параметры компилятора;
Window: позволяет выполнять все основные операции с окнами(открыть, закрыть, переместить, изменить размер);
Help: позволяет получить справочную информацию;
Функциональные клавиши:
F1- помощь, вызов подсказки;
F2- сохранить файл;
F3- открыть файл;
F4- запуск программы до строки, на которой стоит курсор;
F5- масштабирует окно;
F6- переход к следующему открытому окну;
F7- запуск программы в режиме отладки с заходом внутрь процедур;
F8- запуск программы в режиме отладки, минуя вызов процедур;
F9- компиляция;
F10- выход в главное меню.
Горячие клавиши редактирования.
Shift + стрелки- выделить фрагмент текста;
Ctrl + Del- удалить выбранный текст;
Ctrl + Ins-копирует, выбранный текст в буфер;
Shift + Del- помещает выбранный текст в буфер и удаляет его;
Shift + Ins- помещает текст из буфера в окно;
Ctrl + N- вставка новой строки;
Ctrl + Y- удаление строки, в которой находится курсор;
Alt + X- завершение работы с Турбо Паскалем.
Структура программы языка
Турбо Паскаль.
1.Алфавит языка состоит из:
а) больших и малых латинских и русских букв, символ подчеркивание, которое принято считать буквой и пробел.
б) 10 цифр и 22 специальных символа.
2. Паскаль программа состоит из 3-х частей:
- заголовок;
- декларация (описание всех объектов);
- оперативная часть.
Каждая конструкция заканчивается символом ( ; ).
Program <имя>;
<декларация>;
Begin
<операторы>;
End.
В декларацию включается:
Описание меток: label
констант: const
типов: type
переменных: var
процедур: procedure
функций: function
Alt+F5 – просмотр результата.
Компиляция осуществляется через меню Compile команда Compile (Alt+F9).
Компилятор преобразует (транслирует) всю программу в модуль на машинном языке, после этого программа записывает в память компьютера и лишь потом исполняет.
Компиляция и запуск программы осуществляется через меню Run команда Run (Ctrl + F9).
ТИПЫ ДАННЫХ
Простые Составные
1. Числовые: 1. Множества (set);
а) целочисленные; 2. Строковый (string);
б) вещественные; 3. Массивы (array);
2. Символьный (char); 4. Записи (record);
3. Логический (boolean); 5. Файлы (file).
Арифметические операции.
+ сложение
- вычитание
* умножение
/ деление
div целочисленное деление
mod остаток от деления
Операции отношения
= равенство
< меньше
> больше
<= меньше либо равно
>= больше либо равно
<> неравенство
Операторы ввода и вывода.
Write(x); – оператор вывода, который выводит на экран значение какой-либо переменной или текст, при этом оставляет курсор в той же строке.
Writeln(x); – оператор вывода, который выводит на экран значение какой-либо переменной или текст, при этом переводит курсор на новую строку.
Writeln; - переводит курсор на начало следующей строки.
Замечание 1: Оператор Write(x) и Writeln(x) выводят текст, заключенный в апострофы.
Пр: Write(‘Я изучаю Паскаль!’);
Замечание 2: Если вместе с текстом выводится значение переменной, то они друг от друга отделяются запятой.
Read(x); – оператор ввода, который считывает в память компьютера значения с клавиатуры и при этом оставляет курсор в строке с которой вводилось значение.
Readln(x); - ввода, который считывает в память компьютера значения с клавиатуры и при этом курсор переводится на новую строку.
Readln; - пустой оператор, заставляет компьютер ждать нажатия клавиши Enter.
Оператор присваивания.
Пр: в математике в Паскале
x=2 x:=2; (x присвоить 2)
x=1, где x увеличивается с шагом 1 x:=x+1;
Целочисленный тип данных.
тип | название | диапазон | память |
Byte | Байтовый без знака | 0..255 | 1 байт |
ShortInt | Короткое целое | -128..127 | 1 байт |
word | Целое без знака | 0..65535 | 2 байта |
integer | целый | -32768..32767 | 2 байта |
longInt | Длинное целое | -2147483648..2147483647 | 4 байта |
Вещественный тип данных.
тип | название | диапазон | память |
single | Вещественное одинарной точности | 1,5*10-45..3,4*1038 | 4 байта |
real | Вещественный | 2,9*10-39..1,7*1038 | 6 байт |
double | Вещественное двойной точности | 5,0*10-324..1,7*10308 | 8 байт |
comp | Вещественное очень длинное | -9,2*1018..9,2*1018 | 8 байт |
extended | Вещественное расширенное | 3,4*10-4932..1,1*104932 | 10 байта |
Встроенные функции, применяемые к типам данных.
Название | Обозначение | Объяснение |
x2 | Sqr(x) | Возведение в квадрат переменной x |
x | Sqrt(x) | Корень квадратный из переменной x |
|x| | Abs(x) | Модуль переменной x |
π | pi | Число Пи |
Sin x | Sin(x) | Синус от переменной x |
Cos x | Cos(x) | Косинус от переменной x |
Arctg x | Arctan(x) | Арктангенс от переменной x |
ex | Exp(x) | Нахождение экспоненты от переменной x |
Ln x | Ln(x) | Натуральный логарифм переменной x |
Frac(x) | Дробная часть от переменной x | |
Int(x) | Целая часть от переменной x | |
Round(x) | Округление перемен- | |
Random | Случайное число из диапазона (0..1) | |
Random(x) | Случайное целое число из диапазона (0..199) | |
Odd(x) | Проверяет переменную x на четность | |
Ord(x) | Находит порядковый номер переменной x | |
Trunc(x) | Находит целую часть числа x, причем дробную часть отбрасывает | |
Succ(x) | Следующее значение переменной | |
Pred(x) | Предыдущее значение переменной |
Процедуры, применяемые к типам данных.
Обозначение | Объяснение |
Randomize | Обеспечивает несовпадение последовательностей случайных чисел |
Dec(x,k) | Уменьшает значение x на k, если k не задано, то на 1 |
Inc(x,k) | Увеличивает значение x на k, если k не задано, то на 1 |
Задача: составить программу нахождения длины третьей стороны треугольника и его S по заданным двум сторонам и углу между ними в радианах.
program treyg;
var a, b, x, c, S: real;
begin
writeln ( 'Введите значение первой стороны' );
readln (a);
writeln ( 'Введите значение второй стороны' );
readln (b);
writeln ( 'Введите угол' )
readln (x);
C: = sqrt ( a * a + b * b-2 * a * b * cos (x));
S: = a * b * sin (x)/2;
writeln ( 'C = ', C );
writeln ( 'Площадь S = ', S );
end.
Символьный тип данных.
Данные символьного типа описываются с помощью слова Char.
Значением переменной символьного типа может быть любой символ – буквы, цифры, знаки препинания и специальные символы. Каждому символу алфавита соответствует индивидуальный числовой код от 0 до 255.
Примечание: Наиболее распространенной международной системой кодирования символов является система ASCII. Символы с кодами от 0 до 127 составляют так называемую основную таблицу кодов ASCII. Символы с кодами от 128 до 255 составляют так называемую национальную кодовую таблицу. Именно в ней располагаются, например, русские буквы.
К символьным данным применимы операции сравнения. Символ меньше тот, который встречается в таблице ASCII раньше.
Замечание 1: Обычно значения для переменных типа CHAR задаются в апострофах.
Пр: Ch := ‘*’; A := ‘3’; Letter := ‘G’;
……………
Замечание 2: Кроме того, имеется возможность задавать значения непосредственно указанием ASCII – кода.
Пр: kd := #65; (символ ‘A’)
S := #13; (код клавиши Enter)
Первые 32 символа ASCII являются управляющими.
Функции, применяемые к символьному типу данных.
Chr (x) – определяет символ, стоящий по порядковому номеру x.
Ord (x) – определяет порядковый номер по символу.
Succ (x) – возвращает следующий по порядку символ x.
Pred (x) - возвращает предыдущий по порядку символ x.
Пр: chr (68)=’D’,
ord (‘D’)=68.
Задания:
- ord (‘:’)=58
- ord (‘A’)=65
- chr (128)= ‘Б’
- pred (‘Б’)= ‘А’
- succ (‘Г’)= ‘Д’
- write (chr (ord (succ (pred (‘+’))))).
Задача 1. Написать программу, которая выдает код символа, введенного пользователем. Программа должна завершать работу после вывода сообщения.
Кроме указанных типов используются также ограниченный и перечисляемые типы.
Ограниченный тип.
Одним из способов создания нового типа является ограничение (сужение) допустимого диапазона значений некоторого типа.
Это ограничение задаётся указанием минимального и максимального значений диапазона.
Пр. N: 1..10;
P: ‘a’.. ‘h’;
Замечание: В качестве базового типа можно использовать любой простой тип, кроме Real.
Перечисляемый тип.
Новый тип можно создать путем явного перечисления всех возможных его значений.
Пр.
Type
Color = ( Red, Yellow, Green ); { список заключается в круглые
скобки.}
var
S: Color;
………..
Begin
S:= Red;
……….. Или
пр. var S: (Red, Yellow, Green );
Оператор безусловного перехода.
Goto <метка>;
Пр. label ab;
…………
Goto ab;
ab: x: = y + 3;
Условный оператор.
В Турбо Паскале имеются два вида операторов позволяющих совершать какие-либо операции в зависимости от выполнения заданного условия. Эти операторы нарываются операторами условного перехода или условными операторами.
Полная форма оператора условного перехода:
If <условие > then <оператор 1>
Else <оператор 2>;
Неполная форма оператора:
If <условие> then <оператор>;
Задача: определить каким будет число вводимое с клавиатуры
Program Z;
Var a: integer;
Begin
Write (‘Введите целое число а=’);
Readln (a);
If a>0 then write (‘положительное’)
Else write (‘отрицательное’);
Readln (a);
End.
Задача: Найти наименьшее из трех введенных с клавиатуры чисел.
Задача: Найти наибольшее из трех введенных с клавиатуры чисел.
Логический тип данных.
(булевский тип)
Переменные типа boolean являются логическими переменными и могут принимать не только два значения: TRUE (истина) и FALSE (ложь).
Операции над булевскими переменными:
= равенство
< меньше
> больше
<= меньше либо равно
>= больше либо равно
<> неравенство
Логические операции:
and - логическое И.
or - логическое ИЛИ
xor -логическое исключающее ИЛИ
not -логическое НЕ.
Операция | Выражение | a | b | Результат |
not | Not a | TRUE | FALSE | |
FALSE | TRUE | |||
and | a and b | TRUE | TRUE | TRUE |
TRUE | FALSE | FALSE | ||
FALSE | TRUE | FALSE | ||
FALSE | FALSE | FALSE | ||
or | a or b | TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE | ||
FALSE | TRUE | TRUE | ||
FALSE | FALSE | FALSE | ||
xor | a xor b | TRUE | TRUE | FALSE |
TRUE | FALSE | TRUE | ||
FALSE | TRUE | TRUE | ||
FALSE | FALSE | FALSE |
Порядок выполнения операций:
- not
- *, /, div, mod, and
- +, -, or, xor
- =, <>, <, >, <=, >=.
Задача: Сравнить 2 вводимых целых числа и напечатать логическое заключение.
program Sravnenie;
var a, b: integer;
test: boolean;
begin
write ( 'Введите 2 числа:' );
readln (a, b);
test := a>b;
writeln ( 'C = C );
writeln ('a больше b - ', test);
end.
Задача. Определить результат логического выражения:
(a>3) and (b=a+6) or not(c=4) при a=2, b=8, c=5.
Составной оператор.
В условном операторе может быть несколько операторов после then и else.
Эти операторы заключаются между словами: begin и end, которые принято называть операторскими скобками. А конструкцию получившеюся называют составным оператором.
Задача. По вопросу из компьютера задается арифметическая операция. Если это сложения, то вводятся d целых числа и находятся их суммой, иначе водится в квадрат целое число вводимое с клавиатуры.
Program Zadacha;
Var Otret: char;
A, b: integer;
Begin
Write (‘Ввести арифметическую операцию:’)
Readln (otret);
If Otret = ‘+’ then
Begin
Write (‘Введите 2 целых числа:’);
Readln (a, b);
Writeln (‘a+b=’, a+b)
End
Else
Begin
Write (‘Введите целое число:’);
Readln (a);
Writeln (‘sqr (a)=’, a*a);
End;
Readln;
End.
Задача: Осуществить диалог с компьютером.
Модуль CRT.
Понятие библиотечного модуля является одним из основных в программировании языка Турбо Паскаль. Они служат средством создания библиотек подпрограмм (процедур и функций).
Библиотечный модуль – это результат компиляции в режиме Compile с установленной директивой одной или нескольких процедур и функций. Модуль имеет имя, при упоминании которого в разделе USES любой программы можно получить доступ к каждой из находящихся в нем процедур и функций.
Стандартный модуль CRT устанавливает режим работы адаптера дисплея, организует прямой вывод в буфер экрана.
Управление курсором.
Clrscr; -данная процедура полностью очищает экран или текущее окно и помещает курсор в левый верхний угол экрана с координатами 1, 1 (выполняется только в текстовом режиме работы экрана).
Clreol; - данная процедура стирает все символы в строке, начиная с текущей позиции курсора до конца строки.
Gotoxy(x,y); - процедура перемещает курсор в позицию, заданную координатами
X (столбец) и Y (строка), где X=1..80, Y=1..25.
WhereX:byte; - данная функция позволяет определить координату курсора по оси X.
WhereX:byte; - данная функция позволяет определить координату курсора по оси Y.
Управление цветом.
Textcolor(c); - данная процедура устанавливает цвет выводимых символов.
Textbackground(c); - данная процедура устанавливает цвет фона.
Цвет фона можно установить только 8 значениями: от 0 до 7.
Цветовая шкала.
0 | Black | Черный |
1 | Blue | Синий |
2 | Green | Зеленый |
3 | Cyan | Голубой |
4 | Red | Красный |
5 | Magenta | Фиолетовый |
6 | Brown | Коричневый |
7 | Lightgray | Светло-серый |
8 | Darkgray | Темно-серый |
9 | Lightblue | Светло-синий |
10 | Lightgreen | Светло-зеленый |
11 | Lightcyan | Светло-голубой |
12 | Lightred | Светло-красный |
13 | Lightmagenta | Светло-фиолетовый |
14 | yellow | Желтый |
15 | white | Белый |
16 | blink | мерцающий |
Построение окон.
Window(x1,y1,x2,y2);
где x1,y1,x2,y2 :integer;
пр. Window(1,1,80,25); - {окно во весь экран}
Window(19,7,59,16); - {окно в центре экрана}
Задача1: Построить на черном фоне в центре экрана окно синего цвета с тенью.
Program Zadacha;
Uses crt;
Begin
Clrscr;
Textbackground(0);
Clrscr;
Window(11,6,71,21);
Textbackground(7);
Clrscr;
Window(10,5,70,20);
Textbackground(1);
Clrscr;
Readln;
End.
Добавить в центре окна слово «привет».
Program Zadacha;
Uses CRT;
Begin
Clrscr;
Textbackground(0);
Clrscr;
Window(11,6,71,21);
Textbackground(7);
Clrscr;
Window(10,5,70,20);
Textbackground(1);
Clrscr;
Gotoxy(27,7);
Textcolor(4);
Write(‘привет’);
Readln;
End.
Задача2:
Последнюю надпись оформить мерцающим зеленым цветом.
Управление звуком.
Sound(i); данная процедура включает внутренний динамик, где i – частота звука в герцах.
i:word;
nosound; данная процедура отключает динамик.
Delay(c); задерживает программу на время c, указанное в милисекундах.
c:word;
Частота звучания нот.
Нота | Большая октава | Малая октава | Первая октава | Вторая октава |
До | 130.81 | 261.63 | 523.25 | 1046.50 |
Ре | 146.83 | 293.66 | 587.33 | 1174.07 |
Ми | 164.81 | 329.63 | 659.26 | 1318.05 |
Фа | 174.61 | 349.23 | 698.46 | 1369.09 |
Соль | 196.00 | 392.00 | 784.99 | 1568.00 |
Ля | 220.00 | 440.00 | 880.00 | 1760.00 |
си | 246.94 | 493.88 | 987.77 | 1975.00 |
Задача: Проиграть в первой октаве все ноты.
Program Zadacha;
Uses CRT;
Begin
Sound(523);
Delay(100);
Nosound;
Sound(587);
Delay(100);
Nosound;
Sound(659);
Delay(100);
Nosound;
Sound(698);
Delay(100);
Nosound;
Sound(785);
Delay(100);
Nosound;
Sound(880);
Delay(100);
Nosound;
Sound(988);
Delay(100);
Nosound;
End.
Операторы цикла.
Цикл – это многократно повторяющаяся последовательность операторов; программа содержащая цикл называется циклической.
Задача: Вывести на экран текст: «Это тело цикла».
Program Zadacha;
Label m1;
Begin
m1: writeln(‘Это тело цикла’);
goto m1;
readln;
End.
CTRL+BREAK(PAUSE) – прерывание работы.
CTRL+F2 – убрать полосу с экрана.
Выход из цикла поможет выполнить условный оператор.
Задача: При помощи цикла напечатать на экране:
3 5 7 9
- Program Zadacha;
Label m;
Var f: integer;
Begin
f:=3;
m: write(f,‘ ’);
f:=f+2;
if f <= 9 then goto m;
readln;
end.
- Program Zadacha;
Label m1,m2,m3;
Var f: integer;
Begin
f:=3;
m1: if f <= 9 then goto m3
else goto m2;
m3: write(f,‘ ’);
f:=f+2;
goto m1;
m2: ;
readln;
end.
Оператор с постусловием.
Repeat {повторяй до тех пор, пока…}
<оператор 1>;
<оператор 2>;
<оператор 3>;
………
<оператор n>;
until <условие>;
Сначала компьютер по очереди выполняет операторы, стоящие после слова Repeat, пока не дойдет до слова until, после чего проверяет истинность условия, стоящего после слова until.
Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и т. д. Если условие оказывается истинным, то работа данного оператора прекращается и компьютер переходит к выполнению следующего по порядку оператора.
Задача: При помощи цикла напечатать на экране:
3 5 7 9
Program Zadacha;
Var f: integer;
Begin
f:=3;
Repeat
write(f,‘ ’);
f:=f+2;
until f>9;
readln;
End.
Задача: Компьютер предлагает человеку ввести слова, после чего распечатывает это слово, добавив восклицательный знак. Затем снова предлагает ввести слово, и так далее до тех пор, пока человек не введет слово «хватит». После чего компьютер отвечает: «Хватит, так хватит».
Program Zadacha;
Var slovo: string;
Begin
Repeat
Write(‘Ввести слово: ’);
Readln(slovo);
Writeln(slovo, ‘!’);
Until slovo= ’хватит’;
Writeln(‘Хватит, так хватит’);
Readln;
End.
Оператор цикла с предусловием.
While <условие> do <оператор>; {пока … делать}
Пока условие истинно делает оператор, а если условие ложно оператор не выполнится ни разу.
Если после проверки условия необходимо выполнить несколько операторов, тогда после слова do ставятся операторские скобки.
While <условие> do
Begin <оператор1>;
<оператор2>;
………
< оператор n>;
end;
Задача: При помощи цикла напечатать на экране:
3 5 7 9
Program Zadacha;
Var f: integer;
Begin
f:=3;
While f<=9 do
Begin
write(f,‘ ’);
f:=f+2;
end;
readln;
end.
Задача: Вычислить квадратные корни из чисел 900, 893, 886, 879 и т. д. До тех пор, пока это можно будет делать.
Задача: Подсчитать количество цифр заданного натурального числа n.
Оператор цикла с параметром.
Задача: Двести раз напечатать слово «Футбол».
Program Zadacha;
Label m1,m2;
Var i: integer;
Begin
i:=1;
m1: if i >200 then goto m2;
writeln(‘Футбол’);
i:=i+1;
goto m1;
m2: ;
readln;
end.
Нам пришлось организовать специальную переменную, значение которой в каждый момент выполнения программы говорит о том, в какой раз выполняется цикл. Переменная с такими свойствами называется счетчиком цикла.
For <имя переменной>:=< выражение 1> to <выражение 2 > do <оператор>;
Оператор стоящий после слова do может быть составным, т. е. заключенным в операторские скобки.
For <имя переменной>:=< выражение 1> to <выражение 2 > do
Begin <оператор 1>;
<оператор 2>;
…………
<оператор n>;
end;
выражение 1< выражение 2, причем должны быть порядкового типа.
Данный оператор позволяет не только увеличивать, но и уменьшать переменную цикла. В этом случае пишем вместо to – downto.
For <имя переменной>:=< выражение 1> downto <выражение 2 > do <оператор>;
Задача: Вывести на экран информацию:
- Футбол
- Футбол
- Футбол
………
Program Zadacha;
Var i: integer;
Begin
For i:=1 to 150 do
Begin
Write(i);
Write(‘футбол’);
End;
Readln;
End.
Задача: Напечатать прямой и обратный счет: [-4;4] и [4;-4].
Генератор случайных величин.
Randomize; - процедура, которая обеспечивает несовпадение последовательностей случайных чисел.
Random – данная функция возвращает случайное число из интервала (0;1).
Random(x) - данная функция возвращает случайное число из интервала (0;x).
Задача: Вывести на экран 10 случайных чисел из интервала от 0 до 100, используя все циклы (For ,While, Repeat).
…
Randomize;
For i:=1 to 10 do Writeln(Random(100));
…
Randomize;
i:=1;
While i<=10 do
Begin
Writeln(Random(100));
Inc(i); {i:=i+1;}
End;
…
Randomize;
i:=1;
repeat
Writeln(Random(100));
Inc(i); {i:=i+1;}
Until i>10;
…
МАССИВЫ
Массив – это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
Одномерный массив – это фиксированное количество элементов одного и того же типа объединенных одним именем, при чем каждый элемент массива имеет номера, и они идут по порядку.
<Имя>: Array [<начальный номер>.. <конечный номер>] of <тип элемента>;
Различные способы формирования одномерного массива.
- по формуле.
Пр. for i: = 1 to 10 do
m [i]: = i*3;
- задание каждого элемента генератором случайных чисел.
Пр. randomize;
for i: = 1 to 10 do
m [i]: = random (10);
- ввод с клавиатуры.
Пр. for i: = 1 to 10 do
begin
write (‘введите ’, i,’ -й элемент массива’);
readln (m[i]);
end;
Задача: Составить программу, формирующую одномерный массив вводом с клавиатуры, находит в массиве элементы, заданные пользователем, подсчитывает их количество и выводит номер первого найденного элемента.
program zadacha;
const c = 10;
m: array [1.. c] of byte = (2, 2, 3, 4, 5, 2, 7, 8, 9, 2);
var N, A, B, I : byte;
begin
writeln (‘Исходный массив: ’);
for i: = 1 to С do write (m [i] : 3, ‘ ‘);
writeln;
writeln;
a : = 0;
b : = 0;
write (‘ Введите значение элемента массива для поиска ‘);
readln (N);
for i: = 1 to С do
if m[i] = N then
begin
if B = 0 then a : = i;
B : = B + 1;
end;
if B = 0 then Writeln ( ‘ Нет таких элементов в массиве ‘ )
else
begin
writeln ( ‘ Количество элементов массива, имеющих зн-е ‘ , N, ‘ – ‘, B);
writeln ( ‘ Первый элемент – ‘, A);
end;
end.
Задача: Составить программу, формирующую одномерный массив выполняет поиск элемента с заданными свойствами и удаляет его из массива.
Program zadacha1;
const
c = 10;
a : array [1.. c] of byte = (33, 43, 2, 33, 90, 78, 60, 33, 33, 21);
var X, Y, I, N : byte;
begin
writeln (‘Исходный массив: ’);
for i: = 1 to С do write (a [i] : 3, ‘ ‘);
writeln;
write (‘ Введите удаляемый элемент: ‘);
readln (x);
N: = с; Y: = 0; I : = 0;
repeat
i : = i + 1;
while a [i] = x do
begin
Y: = i;
repeat
a(Y) : = a [Y + 1];
Y: = Y + 1 ;
until Y > = N;
N: = N – 1;
end;
until I> = N;
if N < C then
for i: = N + 1 to C do a [i] : = 0;
writeln (‘Полученный массив: ’);
for i: = 1 to C do write (a [i],’ ’);
writeln;
end.
Задача: Составить программу, формирующую одномерный массив случайных чисел, выполняет поиск максимального элемента, а затем выводит на экран его значение и порядковый номер в массиве.
Program zadacha2;
const
c = 20;
var m : array [1.. c] of byte;
max, I, N : byte;
begin
randomize;
for i: = 1 to С do
begin
m[i]:=random(c*2)+1;
write (m [i], ‘ ‘);
end;
writeln;
max:=m[1];
N:=1;
for i: = 2 to С do
begin
if m[i]>max then
begin
max:=m[i];
N:=i;
End;
End;
writeln (‘Максимальный элемент массива: ’,max);
writeln (‘Он расположен на: ’,N, ‘ месте’);
end.
Сортировка элементов массива.
Задача: Отсортировать одномерный массив по убыванию.
- Сортировка методом “пузырька”
Program sort1;
Uses CRT;
Var a: array[1..10] of integer;
I, j, r : integer;
Begin
{формирование массива}
randomize;
for i:=1 to 10 do
a[i]:=random(100);
{вывод массива на экран}
for i:=1 to 10 do
write(a[i], ‘ ‘);
writeln;
{сортировка массива}
for i:=1 to 9 do
for j:=i+1 to 10 do
begin
r:=a[i];
a[i]:=a[j];
a[j]:=r;
end;
{вывод на экран отсортированного массива}
for i:=1 to 10 do
write(a[i], ‘ ‘);
readln;
end.
- Сортировка методом перебора (прямого выбора).
Program sort2;
Uses CRT;
Var a: array[1..10] of integer;
I, j, k,x : integer;
Begin
{формирование массива}
randomize;
for i:=1 to 10 do
a[i]:=random(100);
{вывод массива на экран}
for i:=1 to 10 do
write(a[i], ‘ ‘);
writeln;
{сортировка массива}
for i:=1 to 9 do
begin
k:=i;
x:=a[i];
{поиск наименьшего в оставшейся части массива}
for j:=i+1 to 10 do
if a[j]
begin
k:=j;
x:=a[j];
end;
a[k]:=a[i];
a[i]:=x;
end;
write(a[i], ‘ ‘);
readln;
end.
Модуль GRAPH.
В модуле содержится 79 графических процедур, функций, десятки стандартных констант и типов данных.
Запуск графической системы:
- Подключить модуль GRAPH: uses graph;
- Установить графический режим с помощью 2 переменных:
Var d, m: integer;
Инициализация видеорежима.
Необходимо установить подходящий видеорежим. Для этого необходимо вызвать процедуру Initgraph, которая устанавливает один из возможных графических режимов.
Initgraph (d, m, p);
Стандартная константа Detect.
Если d:= Detect; (d:=0), то процедура автоматически инициализирует нужный драйвер и установит наиболее подходящий режим.
Параметр p задает маршрут к модулю GRAPH (если он расположен в активной директории, то вместо маршрута ставятся два апострофа).
Закрытие видеорежима.
Когда все графические работы выполнены, необходимо выйти из графического режима процедурой Closegraph;
Очистка графического экрана:
Cleardevice;
Вывод точки.
Putpixel (x, y, c);
x, y: integer; координаты точки
c: word; -цвет точки
Вывод линии.
Line(x1,y1,x2,y2);
x1,y1,x2,y2:integer;
где x1,y1- координаты начала, x2,y2- координаты конца линии.
Установка стиля линии.
Setlinestyle (l, p, t);
l, p, t: word;
l – тип линии,
p – образец,
t – толщина линии (1 – нормальная, 3 – жирная линия).
Типы линий:
0 – непрерывная,
1 – линия из точек,
2 - линия из точек и тире,
3 – штриховая,
4 – тип пользователя.
Установка цвета линии.
Setcolor (c);
C:word;
C – цвет линии.
Построение прямоугольника.
Rectangle(x1,y1,x2,y2);
x1,y1,x2,y2:integer;
где x1,y1- координаты верхнего левого угла, x2,y2- координаты правого нижнего угла.
Построение закрашенного прямоугольника.
Bar (x1,y1,x2,y2);
x1,y1,x2,y2:integer;
где x1,y1-координаты верхнего левого угла, x2,y2- координаты правого нижнего угла.
Построение параллелепипеда.
Bar3D(x1,y1,x2,y2,d,t);
x1,y1,x2,y2: integer; d : word;
t: boolean;
где x1,y1- координаты верхнего левого угла, x2,y2- координаты правого нижнего угла,
d – расстояние между боковыми ребрами, t – обозначает присутствие или отсутствие верхней грани параллелепипеда (t:= true или t:= false).
Построение дуги:
Arc (x, y, b, e, r);
x, y: integer; b, e, r: word;
где x, y-координаты центра дуги, b – начальный угол построения дуги, e – конечный угол построения дуги, а r – радиус дуги.
Построение окружности:
Circle (x, y, r);
x, y: integer; r: word;
где x, y-координаты центра окружности, а r – радиус окружности.
Построение эллиптической дуги:
Ellipse (x,y,b,e,r1,r2);
x, y: integer; b,e,r1,r2: word;
где x, y - координаты центра дуги, b – начальный угол построения дуги, e – конечный угол построения дуги, а r1 – радиус дуги по горизонтали, r2 – радиус дуги по вертикали.
Построение закрашенного эллипса:
FillEllipse (x, y, r1,r2);
x, y: integer; r1,r2: word;
где x, y - координаты центра дуги, а r1 – радиус дуги по горизонтали, r2 – радиус дуги по
вертикали.
Установка стиля заливки:
Setfillstyle (s, c);
S, c: word;
S – стиль заливки, c – цвет заливки.
Стандартные стили заполнения.
0 заполнение цветом фона,
- текущим цветом,
- заполнение символами ---, выбранным цветом.
- //, нормальной толщины, выбранным цветом.
- //, удвоенной толщины, выбранным цветом.
- \\, удвоенной толщины, выбранным цветом.
- \\, нормальной толщины, выбранным цветом.
- Заполнение вертикально-горизонтальной тонкой штриховкой, выбранным цветом.
- Штриховка крест-накрест по диагонали, редкими тонкими линиями, выбранным цветом.
- Штриховка крест-накрест по диагонали, частыми тонкими линиями, выбранным цветом.
- Заполнение редкими точками, выбранным цветом.
- Заполнение частыми точками, выбранным цветом.
- Заполнение по определению пользователем.
Заполнение внутренней и внешней области фигуры.
Floodfill (x, y, c);
x, y: integer; c: word;
где x, y - координаты точки внутри или вне фигуры, c – цвет границы заливаемой области.
Установка цвета фона:
Setbkcolor (c);
C: word;
C – цвет фона.
Задача: Построить все фигуры и установить на них различные цвета линий.
Работа с текстом в графическом режиме.
Outtext (t); - выводит текст в начале координат.
t: string;
Outtextxy (x, y, t); - выводит текст в точке с координатами x, y.
x, y: integer; t: string;
settextstyle (f, d, c); - установка стиля текста, где f – выбранный шрифт, d – направление (0 – горизонтальное, 1 - вертикальное), c – размер выводимого текста.
Шрифты
0 8*8 битовый шрифт (поддерживает русский язык);
- Штриховые шрифты;
- Малый шрифт;
- Сансериф;
- Готический.
Движение объектов в модуле GRAPH.
Динамическая память – представляет собой совокупность элементарных ячеек для хранения информации – байтов, каждый из которых имеет свой собственный номер. Эти номера называются адресами.
Указатель – это адрес 1-го байта, с которого начинается часть зарезервированной памяти.
Например, p^, p: pointer;
Pointer – стандартный тип указателя, служит для объявления указателя и при этом не связывает его с каким-либо конкретным типом данных.
Процедуры и функции, предназначенные для работы с динамической памятью.
Imagesize (x1, y1, x2, y2);
x1, y1, x2, y2: integer;
возвращает количество памяти необходимое для хранения рисунка. Результатом данной функции будет целое число равное количеству памяти отводимое под рисунок.
Getmem (p, s);
p: pointer; s: word;
резервирует память для хранения рисунка.
GetImage (x1, y1, x2, y2, p^);
x1, y1, x2, y2: integer; p: pointer;
помещает в память картинку, начиная с указанного адреса.
PutImage (x1, y1, p^ , xorput);
Отображает из памяти рисунок по указанному адресу, где x1, y1 – координаты верхнего левого угла изображения, xorput – условие отображения, при котором двойная прорисовка стирает изображение.
ЗАПИСИ.
Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов.
Объявление типа запись начинается со служебного слова record и заканчивается служебным словом end.
Между ними заключен список компонентов, называемый полями с указанием типа каждого поля.
Type
<имя типа>=record
<поле 1>:<тип>;
<поле 2>:<тип>;
<поле 3>:<тип>;
…
<поле N>:<тип>;
end;
var <имя1, имя2,…>:<имя типа>;
пример:
Type
Car=record
Number:integer; {Номер}
Marka:string[20]; {Марка автомобиля}
FIO:string[40]; {Фамилия, имя, отчество}
Address:string[60]; {Адрес}
end;
var M,V:Car;
…
Обращение к значению поля осуществляется с помощью имени переменной и именем поля, разделенных точкой.
Такая комбинация называется составным именем.
Пример:
Вывести на экран из переменной M Фамилию, имя, отчество первой машины:
…
Writeln (M.FIO);
…
Оператор With … do.
Данный оператор позволяет один раз указывать имя переменной при выполнении ряда операций над ее полями.
Заполнение полей:
Readln (M.FIO);
Readln (M.Marka);
…
with M do
begin
Readln (FIO);
Readln (Marka);
end;
Записи с вариантами.
Записи также можно объявлять с помощью оператора Case …of.
Пример:
Type
Person=record;
Surname,name,adress,city:string[20];
Telephone:integer;
Case hobby: (computer, misic) of
Computer :(type_Computer:string[20];
Mbyte:byte;
Music: Instrument: array[1..3] of string[10];
End;
По теме: методические разработки, презентации и конспекты
Конспект урока с презентацией "Графика на языке программирования Turbo Pascal"
Урок для учащихся 11 класса по теме "Графика на языке программирования ТР". Содержит теоретический материал, практическую работу и презентацию к уроку. Надеюсь, многим учителям информатики пригодится!...

Turbo Pascal. Разработка программ, содержащих оператор ветвления
Изучение программирования и языков программирования, таких как Basic, Pascal, C++, Delphi и др. является неотъемлемой частью информатики. С помощью языков программирования можно создавать свои п...

Реализация циклического алгоритма в среде Turbo Pascal. Оператор цикла с параметром
Урок по предметной области “Информатика” для 9-10 класса Данный материал представляет разработку урокапо теме “Реализация циклического алгоритма в среде TurboPascal. Оператор цикла с парам...
Сборник тестов «Структуры данных в языке Turbo Pascal» к разделу «Алгоритмизация и программирование» курса информатика и ИКТ в профильной классах.
Цель использования разработкиПроведение входного, текущих и итоговых контрольных работ в форме тестов по темам:массивы;строковый тип данных;записи;файлы,а также для подготовки к ЕГЭ....
Циклы в Turbo Pascal
Циклы в TurboPascal. Решение задач на циклы....

Пособие по программированию на языке Turbo Pascal
Данный учебник представляет собой пособие по программированию на языке Turbo Pascal. Текст построен в виде практического применения языка. Сопровождается большим количеством иллюстративных, демон...

Turbo Pascal v.6.0, 7.0 учебно-дидактическое пособие для средних учебных заведений (процедурно - ориентированный блок
Пособие писалось в те времена, когда с учебно - методической литературы били большие проблемы......