![](/user_photo/2706_HbeT2.jpg)
- •Аннотация
- •Содержание
- •Интегрированная среда программирования Turbo Pascal 7.0
- •Основные понятия языка Turbo Pascal 7.0
- •Алфавит языка
- •Структура программы
- •Раздел объявления меток
- •Раздел объявления констант
- •Строковые и символьные константы
- •Простые типы данных
- •Выражения Арифметические выражения
- •Математические функции
- •Условные выражения и операции отношения
- •Логические выражения и операции
- •Процедуры ввода – вывода информации Процедуры ввода информации Read, ReadLn
- •Процедуры записи Write, WriteLn
- •Форматы процедуры вывода Write
- •Простые операторы
- •Оператор присваивания
- •Примеры решения задач
- •Оператор безусловного перехода Goto
- •Структурированные операторы
- •Составной оператор
- •Условный оператор If
- •Примеры решения задач
- •Условный оператор Case
- •Примеры решения задач
- •Оператор цикла For
- •Особенности выполнения оператора For
- •Примеры решения задач
- •Оператор цикла Repeat…Until
- •Особенности выполнения оператора Repeat
- •Примеры решения задач
- •Оператор повтора While
- •Особенности выполнения оператора While
- •Примеры решения задач
- •Вложенные циклы
- •Массивы
- •Одномерные массивы Основные понятия
- •Описание массива
- •Заполнение массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы поиска и присвоения значений элементам массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •6.2 Двумерные массивы
- •6.2.1 Основные понятия
- •6.2.2 Описание массива
- •6.1.3 Заполнение и вывод элементов двумерного массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы действий над элементами двумерного массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •7. Множества
- •7. 1 Операции над множествами
- •7.2 Примеры решения задач
- •8. Строки
- •8.1 Строковые выражения
- •8.2 Стандартные процедуры и функции для обработки строковых данных
- •Обнаруживает первое появление в строке St2 подстроки St1. Результат равен номеру той позиции, где находится первый символ подстроки St1.
- •8.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
- •9. Процедуры и функции, определенные пользователем
- •9.1 Процедуры пользователя
- •1 Вариант
- •2 Вариант
- •9.2 Функции пользователя Формат описания функции:
- •9.3 Параметры
- •9.3.1 Параметры – значения
- •9.3.2 Параметры - переменные
- •10 Модуль crt. Процедуры и функции модуля crt
- •11 Модуль Graph
- •11.1 Классификация типов драйверов и видеорежимов
- •11.2 Инициализация графики
- •11.3 Переключение между текстовым и графическим режимами
- •11.4 Система координат
- •Отображение строк
- •11.5 Управление текущим указателем
- •11.6 Отображение точки на экране
- •11.7 Определение параметров пикселов
- •11.8 Отображение отрезков прямых линий
- •11.9 Вычерчивание линий различных стилей
- •11.10 Построение прямоугольников
- •11.10.1 Построение прямоугольника на плоскости
- •11.10.2 Построение закрашенного прямоугольника
- •11.11 Установка стиля заполнения
- •11.13 Построение заполненных областей изображения
- •11.13.1 Построение заполненного сектора эллипса
- •11.13.2 Построение заполненного эллипса
- •11.13.3 Построение заполненных сложных геометрических фигур
- •Список литературы
7.2 Примеры решения задач
1. Создать множество из элементов типа Char, выход из фазы создания осуществить при вводе значения Z. Распечатать все элементы созданного множества в алфавитном порядке.
Var
S: Set of Char;
N: Char;
Begin
S:=[]; {пустое множество}
WriteLn(‘Введите элементы множества’);
Readln(N); {считывание первого элемента}
While True Do Begin
S:=S+[N]; {внесение значения элемента в множество}
ReadLn(N);
If N = ‘Z’ Then Exit
End;
{Вывод элементов множества в алфавитном порядке}
For N:=’A’ to ‘Z’ Do
If N in S Then WriteLn(N);
END.
-
Дано натуральное число n. Составить программу вывода цифр, не входящих в десятичную запись числа n (в порядке возрастания).
Type Mn=Set Of 0..9;
Var S : Mn;
N: LongInt;
I : Integer;
Begin
WriteLn(‘Ведите число’);
ReadLn(N);
S:=[0..9];
While N<>0 Do Begin
S:=S-[n mod 10]; {Исключаем цифру}
N:=N Div 10;
End;
For I:=0 To 9 Do
If I In S Then Write (I:2);
WriteLn;
End.
3. Смоделировать игру с машиной. Задумайте целое число от 0 до 15. в ЭВМ вводятся номера групп, в которых находится задуманное число. Например, я задумала число 5. в ЭВМ вводится 1, 3. компьютер выводит число 5.
Группы
-
1
2
3
4
0,1,2,3,4,5,6,7
0,1,2,3,8,9,10,11
0,1,4,5,8,9,12,13
0,2,4,6,8,10,12,14
1 способ
Type S=set of 0..15;
A=array[1..4] of S;
Const
X: A=([0..7],[0..3,8..11],[0,1,4,5,8,9,12,13],[0,2,4, 6,8,10,12,14]);
Var
R:S {Множество типа S}
K,I: Byte;
B: array[1..4] of Byte;
BEGIN
R:=[0..15]; {R- множество, в которое входит задуманное число}
For I:==1 To 4 Do Begin
Write(‘Введите 0, если не принадлежит ’, I,’ –ой группе, и 1, если принадлежит:’);
ReadLn(B[I]);
End;
For I;=1 To 4 Do
If B[I]=1 Then R:=R*X[I];
For I;=1 To 4 Do
If B[I]<>1 Then R:=R-X[I];
I:=0;
While I<=15 Do Begin
If I in R Then Begin WriteLn(‘Ваше число=’;I); Halt End;
I=I+1;
End;
END.
2 способ (с переводом в 2 с/c)
Var
A,I: Integer;
X: array[1..4] of Integer;
Y,Y1: Integer
BEGIN
For I;=1 To 4 Do
X[I]:=0;
For I;=1 To 4 Do Begin
WriteLn(‘Ведите номер группы’);
ReadLn(A);
X[A]:=1;
End;
Y1:=X[4]+2*(X[3}+2*(X[2]+2*X[1]));
Y:=15-Y1;
WriteLn(‘Ваше число= ’,Y);
END.
Примеры для самостоятельного решения:
-
Найти общие цифры в записи m чисел.
-
Найти простые цифры в интервале от 2 до n.
-
Вывести в алфавитном порядке элементы множества, составленного из произвольных букв от ‘A’…’Z’
8. Строки
Строка – последовательность символов. При использовании в выражениях строка заключается в апострофы. Количество символов в строке может изменяться от 0 до 255.
Определение строкового типа устанавливает максимальное количество символов, которое может содержать строка.
Формат
TYPE
<имя типа>=String[максимальная длина строки];
VAR
<идентификатор,…>:<имя типа>;
Переменную String можно задать и без описания типа.
Формат
VAR
<идентификатор,…>:string[максимальная длина строки];
Пример
CONST
Adres=’ул. Фестивальная 4’;
TYPE
Flot=String[125];
VAR
Fstr: Flot;
St1: String[34];
St2, St3: string[50];
Nazv: String[325]; {ошибка, длина>255}
Nay: String; {ошибка, не указана длина}
Для определения объема памяти в байтах, требуемой для размещения строки, к значению ее максимальной длины прибавляется 1. например, для размещения в памяти переменных Fstr, St1, St2, St3 требуется соответственно 126, 35, 51, 51 байт. Дополнительный байт расположен в самом начале строки ( имеет нулевой номер) и содержит значение текущей длины строки.