- •Полный обучающий курс
- •Содержание
- •Ввод-вывод Занятие 1. Язык программирования Паскаль. Знакомство со средой программирования Турбо Паскаль. Основные понятия. Первая программа. Оператор присваивания.
- •Запуск интегрированной среды программирования.
- •Оператор присваивания. Арифметические выражения
- •Порядок выполнения операций
- •Основные определения. Типы данных.
- •Типы данных.
- •Сложные типы
- •Занятие 2. Ввод - вывод. Операторы Read (Readln), Write (Writeln). Простейшие линейные программы
- •Операторы Write и WriteLn
- •Операторы Read и ReadLn
- •I Арифметические функции
- •II Функции преобразования типов
- •III Функции для порядковых типов
- •IV Процедуры для порядковых типов
- •Графика Занятие 1: Графический режим. Инициализация графического режима. Построение точки, линии.
- •1) Инициализация графики, подготовительные работы, управление цветом, закрытие режима:
- •Система координат в графическом режиме.
- •Занятие 2: Построение дуги, окружности, прямоугольника, эллипса.
- •Установка стиля и цвета закраски. Закрашивание фигур.
- •Занятие 3: Вывод текста.
- •Занятие 4. Процедуры рисования закрашенных фигур.
- •Для любопытных. Окно в графическом режиме. Решение задач.
- •Операторы условия и выбора Занятие 1. Разветвляющиеся алгоритмы. Оператор условия If. Разветвляющиеся алгоритмы
- •Занятие 2. Логический тип данных. Логические операции not, and, or. Нахождение значений логических выражений. Самостоятельная работа. Логический тип данных
- •Самостоятельная работа
- •Занятие 3. Вложенные условные операторы. Решение задач.
- •I Выберите с учителем задачи для самостоятельного решения из предложенного списка:
- •II Выберите с учителем задачи для самостоятельного решения из предложенного списка:
- •Занятие 4. Оператор выбора case. Решение задач.
- •Занятие 5. Оператор безусловного перехода Goto. Решение задач.
- •Занятие 6. Контрольная работа
- •Для любознательных
- •Контрольные вопросы
- •Циклы Занятие 1. Циклические алгоритмы. Цикл с предусловием.
- •Цикл с предусловием.
- •Задачи для самостоятельного решения
- •Занятие 2. Цикл с предусловием в графике.
- •Задачи для самостоятельного решения
- •Занятие 3. Контрольная работа
- •Занятие 4. Цикл с постусловием repeat.
- •Задачи для самостоятельного решения
- •Занятие 5. Работа с клавиатурой. Стандартные процедуры read и readLn. Стандартные функции readKey и KeyPressed; их применение в циклах.
- •Стандартная функция readKey
- •Стандартная функция KeyPressed
- •Занятие 6. Цикл со счетчиком.
- •Занятие 7-8. Самостоятельное решение задач.
- •Процедуры и функции Занятие 1. Понятие подпрограммы. Процедуры и функции. Стандартные подпрограммы. Примеры употребления подпрограмм в решении задач.
- •Занятие 2. Формальные и фактические параметры. Вызов по ссылке и по значению. Локальные и глобальные переменные и подпрограммы Формальные и фактические параметры
- •Вызов по ссылке и по значению
- •Параметры-значения
- •Локальные и глобальные переменные и подпрограммы.
- •Занятие 3. Процедуры.
- •Занятие 4. Процедуры в графическом режиме.
- •Занятие 5. Функции.
- •Различие между процедурами и функциями.
- •Задачи для самостоятельного решения
- •Занятие 6. Решение задач
- •Для любознательных. Особенности использования процедур и функций.
- •Заголовок модуля
- •Интерфейсная часть
- •Реализационная часть
- •Инициализационная часть
- •Рекурсия Занятие 1. Понятие рекурсии.
- •Занятие 2. Примеры задач рекурсивного решения в текстовом и графическом режимах.
- •Занятие 3. Косвенная рекурсия.
- •Занятие 4. Решение задач
- •Для любознательных. Ханойские башни. Задача о разрезании прямоугольника
- •Анализ рекурсивных алгоритмов
- •Особенности отладки и компиляции программ, содержащих процедуры и функции
- •Одномерные массивы Занятие 1. Понятие массива. Одномерные массивы. Способы задания одномерных массивов
- •Способы задания одномерных массивов
- •Занятие 2. Доступ к элементам массива
- •Изменение значения некоторых элементов
- •Нахождение номеров элементов с заданным свойством
- •Нахождение количества элементов с заданным свойством
- •Есть ли в данном массиве элементы с данным свойством?
- •Занятие 3. Удаление элементов из одномерного массива.
- •Задачи для самостоятельного решения
- •Занятие 4. Вставка элементов в одномерный массив. Вставка одного элемента
- •Вставка нескольких элементов
- •Задачи для самостоятельного решения
- •Занятие 5. Перестановка элементов массива. Перестановка двух элементов
- •Перестановка части массива
- •Работа с несколькими массивами.
- •Занятие 6. Самостоятельное решение задач.
- •Двумерные массивы Занятие 1. Понятие двумерного массива. Описание типа массива. Формирование значений элементов массива случайным образом.
- •Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран
- •Занятие 2. Работа с элементами массива.
- •Нахождение количества элементов с данным свойством
- •Определить, отвечает ли заданный массив некоторым требованиям
- •Изменение значений некоторых элементов, удовлетворяющих заданному свойству
- •Заполнение массива по правилу
- •Задачи для самостоятельного решения
- •1. Найти сумму и количество элементов с заданным условием (хранить эти значения в массивах):
- •2. Найти и вывести на экран индексы заданных элементов массива (если их нет выдать соответствующее сообщение):
- •3. Используя функцию булева типа, определить:
- •4. Измените исходный массив в соответствии с заданием:
- •5. Решите задачу на заполнение массива по определенному правилу.
- •Занятие 3. Вставка и удаление строк и столбцов.
- •Вставка строк и столбцов
- •Удаление строк и столбцов
- •Задачи для самостоятельного решения
- •Занятие 4. Перестановка элементов массива.
- •Задачи для самостоятельного решения
- •Занятие 5. Самостоятельное решение задач.
- •I. Заполнение и анализ элементов массива
- •II. Работа с одномерным и двумерным массивами
- •Занятие 6. Контрольная работа
- •Для любопытных. Графические программы с применением массивов.
- •Методы сортировки массива Занятие 1. Сортировка массива. Способы сортировки массива.
- •Занятие 2. Сортировка вставкой. Сортировка выбором.
- •Сортировка выбором
- •Занятие 3. Сортировка методом простого обмена. Рекурсивная сортировка
- •Cортировка массива с помощью рекурсии.
- •Занятие 4. Сортировка методом слияний.
- •Для любопытных. Рекурсивная сортировка слиянием
- •Занятие 5-6. Самостоятельное решение задач.
- •Строки Занятие 1. Тип данных char. Операции над символами
- •Задачи для самостоятельного решения
- •Занятие 2. Строка. Тип данных string. Строковые переменные, их описание. Длина строки. Операции над строками
- •Задачи для самостоятельного решения
- •Занятие 3. Стандартные функции для работы со строками (concat,copy,length, pos,upcase). Функция Length
- •Функция Upcase
- •Функция Copy
- •Функция Pos
- •Функция Concat
- •Задачи для самостоятельного решения
- •Задачи для самостоятельного решения
- •Занятие 5. Контрольная работа
- •Занятие 6. Решение задач.
- •Для увлеченных программированием. Бегущая строка. Пример программы осыпающихся букв. Строки в графическом режиме.
- •Множества Занятие 1. Множественный тип данных. Множество. Элемент множества. Способы задания множества. Объединение множеств. Разность множеств. Пересечение множеств.
- •Занятие 2. Логические операции над множествами: проверка принадлежности элемента множеству, проверка включения элемента в множество, сравнение множеств.
- •Занятие 3. Примеры решений задач на применение множества.
- •Занятие 4. Самостоятельное решение задач.
- •Запись Занятие 1. Комбинированный тип данных. Запись. Описание записи. Доступ к полям записи. Оператор With. Примеры решения задач
- •Занятие 2. Самостоятельное решение задач
- •Занятие 3. Сортировка записей.
- •Занятие 4. Записи с вариантами.
- •Дополнительно. Решение задач
- •Файлы Занятие 1. Файлы. Виды файлов. Типизированные файлы
- •Процедуры и функции для работы с файлами любого типа
- •Примеры решения задач
- •Занятие 2. Процедуры и функции для работы с типизированными файлами
- •Функция ioResult
- •Занятие 3. Самостоятельное решение задач
- •I Выберите с учителем одну из предложенных ниже задач (тип Integer, real)
- •II Выберите с учителем одну из предложенных ниже задач (тип char)
- •III Выберите с учителем одну из предложенных ниже задач (тип string)
- •IV Выберите с учителем одну из предложенных ниже задач (тип record)
- •Занятие 4. Процедуры и функции работы с файлами. Решение задач
- •Тeкстовые файлы Занятие 1. Тeкстовые файлы, их описание и основные отличия от типизированных файлов.
- •Занятие 2. Способы обмена с текстовыми файлами.
- •Операции чтения из файла
- •Операции записи в файл
- •Логическая функция Eoln
- •Процедура открытия файла для дополнения
- •Занятие 3. Стандартные текстовые файлы Input и Output. Примеры задач
- •Занятие 4. Самостоятельное решение задач
- •Для любознательных. Текстовый режим. Модуль crt. Работа с цветом. Работа с экраном и курсором
- •Нетипизированные файлы Занятие 1. Нетипизированные файлы. Их отличия. Процедуры blockread и blockwrite.
- •Занятие 2. Решение задач
- •Занятие 3. Использование типизированных файлов в качестве нетипизированных
- •Занятие 4. Использование текстовых файлов в качестве нетипизированных.
- •Занятие 5. Примеры решения творческих задач
- •Для любознательных. Дополнительные процедуры и функции работы с файлами
- •Внешние устройства в качестве файлов.
- •Граф Занятие 1. Основные понятия.
- •Занятие 2. Представление деревьев. Основные операции над деревом.
- •Занятие 3. Самостоятельное решение задач.
- •Занятие 4. Идеально сбалансированное дерево.
- •Стек Занятие 1. Стек. Отличия стека от списка. Основные операции со стеком.
- •Занесение элемента в стек
- •Извлечение элемента из стека
- •Примеры решения задач.
- •Занятие 2. Самостоятельное решение задач
- •Занятие 3. Очереди. Основные операции над очередью.
- •Занесение элемента в очередь
- •Извлечение элемента из очереди
- •Примеры решения задач
- •Занятие 4. Самостоятельное решение задач
- •Занятие 5. Кольцо. Формирование кольца. Основные операции над кольцом.
- •Формирование кольца
- •Обход кольца
- •Занятие 6. Примеры решения задач с применением динамической структуры кольцо. Творческая работа.
- •Список Занятие 1. Список. Создание списка путем добавления элементов в конец списка. Просмотр списка.
- •Просмотр списка
- •Занятие 2. Создание списка путем вставления элементов в начало.
- •Занятие 3. Упорядочивание списка. Вставление элемента в середину списка.
- •Занятие 4-5. Примеры задач, решаемых с помощью списка. Решение задач.
- •Занятие 6. Удаление элемента из списка.
- •Занятие 7. Зачет.
- •Динамические структуры данных Занятие I. Динамические структуры данных. Статические и динамические переменные. Адреса. Указатели и их объявление.
- •Указатели и их объявление
- •Занятие 2. Присвоение значений указателю. Оператор @ с переменной. Оператор @ с параметром процедуры, переданным по значению. Оператор @ с параметром процедуры, переданным по ссылке.
- •Занятие 3. Список. Создание списка путем добавления элементов в конец списка. Просмотр списка
- •Занятие 4. Создание списка путем вставления элементов в начало.
- •Занятие 5. Упорядочивание списка. Вставление элемента в середину списка.
- •Примеры задач, решаемых с помощью списка
- •Занятие 6. Удаление элемента из списка.
Занятие 5. Контрольная работа
Вариант 1
1. Результатом вычисления функции Copy('программирование',4,5) будет слово
миров
грамм
программ
программа
грамми
2. Результатом работы программы:
Var x : string[6];
Begin
x := ‘мим’+’озадаченный’; writeln(x);
End.
будет слово:
мим озадаченный
мимозадаченный
мимоза
озадаченный мим
озадаченныймим
3. Составьте подпрограмму для решения задачи:
Выясните, какая из букв (первая или последняя) встречается в заданном слове чаще.
Вариант 1I
1. Результатом работы программы:
Program DemoUpcase;
Var
Word : string;
i : Byte;
Begin
Word := 'фирма Microsoft';
for i := 1 to Length (Word) do
Word[i] := UpCase (Word[i]);
writeln(Word); {выводится текст 'фирма MICROSOFT'}
End.
будет предложение:
'Фирма MICROSOFT'
'ФИРМА MICROSOFT'
'фирма Microsoft
'фирма MICROSOFT'
'фирма microsoft
2. Вызывая функцию Copy не нужно указывать:
•имя строки, из которой должен извлекаться копируемый фрагмент,
•позицию в строке, начиная с которой будет копироваться фрагмент,
•число копируемых символов;
имя строки, в которую копируется данный фрагмент
имя функции.
3. Составьте подпрограмму для решения задачи:
Сколько букв "у" в слове стоит на четных местах?
Вариант III
1. Результатом работы программы:
Program DemoFunctionLength;
Var
Word : string[9];
Begin
Word := 'Я люблю программировать';
writeln(Length (Word));
End.
будет:
9
23
'Я люблю программировать'
'Я люблю '
256
2. Результатом работы программы:
Program DemoFunctionPos;
Var
Word : string;
SearchWord : string[20];
Position : Byte;
Begin
Word := 'Карл у Клары украл кораллы. Клара у Карла украла кларнет.';
SearchWord := 'Карл';
Position := Pos(SearchWord, Word);
writeln (Position );
End.
будет:
1 и 37
37
28
1
0
3. Составьте подпрограмму для решения задачи:
Вычеркните i-ые буквы текста и посчитайте в нем количество введенных повествовательных предложений.
Вариант 1V
1. Встроенная функция Length позволяет определить: (а не, установленную при декларации):
фактическую длину текстовой строки, хранящейся в указанной переменной,
величину предельного размера строки,
предполагаемую величину строки,
начальную длину строки,
длину строки, заранее заданную пользователем.
2. Результатом работы программы:
Program DemoFunctionConcat;
Var
Word : string;
Word1, Word2 : string[20];
Begin
Word1 := ' Microsoft ';
Word2 := ' фирмы';
Word := Concat('Компьютеры ',Word1,Word2);
writeln(Word);
End.
будет текст:
' фирмы Компьютеры Microsoft',
' Microsoft Компьютеры фирмы ',
'Компьютеры фирмы Microsoft',
'Компьютеры Microsoft фирмы ',
'Компьютеры Microsoft фирмы '.
3. Составьте подпрограмму для решения задачи:
Вычеркните из слова Х те буквы, которые встречаются в слове Z.
Вариант V
1. При подсчете фактической длины строки
учитываются все входящие в нее символы,
учитываются все входящие в нее символы, кроме пробелов,
учитываются не все входящие в нее символы,
учитываются все входящие в нее символы, исключая служебные символы,
учитываются все входящие в нее символы, имеющиеся на клавиатуре.
2. Результатом работы программы:
Program DemoProcedureStr;
Var
Word : string;
Chislo : integer;
Begin
Chislo := 1560;
Str(Chislo:8, Word);
writeln(Word);
End.
будет текст:
'1500',
' 1560',
' 1560',
100000000',
'00001560'.
3. Составьте подпрограмму для решения задачи:
Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ.
Вариант V1
1. C помощью функции Pos Вы можете осуществить поиск некоторого фрагмента в строке. Если заданный фрагмент в строке присутствует, то:
функция возвращает количество фрагментов в строке,
функция возвращает нуль,
функция вырезает найденный фрагмент из строки,
функция заменяет найденный фрагмент на введенный ранее,
функция возвращает номер позиции, с которой начинается фрагмент.
2. Результатом работы программы:
Program DemoProcedureVal;
Var
Word : string;
Chislo, Code : integer;
Begin
writeln('Введите строку цифр ');
readln(Word);
Val(Word, Chislo, Code); {преобразование строки в число}
if Code <> 0
then
writeln(‘??????????????’);
End.
должно быть следующее сообщение:
'Ошибка! В позиции ',Code,' не ноль!',
'Ошибка! Цифра Code,' не закодирована!',
'Прекрасно! Число в переменной ',Code,' !',
'Ошибка! В позиции ',Code,' не цифра!',
'Прекрасно! Число в переменной ', Chislo,' !'.
3. Составьте подпрограмму для решения задачи:
Составьте программу вычисления суммы мест, на которых в слове Х стоят буквы "в" и "п".
Сформулируйте тексты решенных ниже задач
Примечание. При анализе алгоритмов Вам потребуются знания о некоторых операторах. В будущем применяйте их при решении задач.
GoTo – оператор, устанавливающий курсор в заданное параметрами знакоместо в текстовом режиме. Первый параметр – номер столбца, второй – номер строки. Общее количество строк 25, а столбцов – 80.
Delay – оператор задержки вывода на экран информации. Параметр равный 1000 соответствует 1 секунде.
Sound – оператор, включающий динамик компьютера с заданной частотой в виде параметра.
NoSound – оператор, выключающий динамик.
DelLine – оператор, выводящий строку из пробелов в строку, в которой находится курсор.
Window – оператор, организующий окно в текстовом режиме с координатами верхнего левого и правого нижнего углов, переданными как параметры.
Задача 1.
Program MiskovVadim;
Var
i, k,x : integer;
a, b, c : string;
Begin
write('введите строку>');
readln(a);
k := length(a);
repeat
for i := 1 to 2 do
c:=c+b;
x:=x+1;
b:=Copy(a,x,1);
until x=k+1;
writeln ('Ваше слово - ',s);
End.
Задача 2.
Program AlexeyDashkin;
Type
Stroka = string [100];
Var
Vhod, St1, InStr : Stroka;
Begin
St1 := ' Поставьте мне пятерку в зачетку!!!!';
ClrScr;
InStr := ' ';
St1:= St1+InStr;
for i := 1 to length(St1) do
begin
Delete(St1,1,1);
GoTo(1,10);
write(St1);
Delay(500);
Sound(1000);
Delay(900);
NoSound;
DelLine;
end;
End.
Задача 3.
Program AkulovE;
Var
y,i : integer;
Name, Bukva : string;
Begin
write ('Введите что-нибудь ');
read (Name);
for i := Length(Name) downto 1 do
begin
Bukva := Name[i];
Delete(name,i,1);
for y := 1 to 25 do
begin
Window(19,1,80,25);
GotoXY(i,y);
write(Bukva);
Delay(500);
ClrScr;
write(Name);
end;
end;
End.
Выберите с учителем задачи для самостоятельного решения:
1. Дана строка текста. В данной строке поменять местами каждые два слова из четырех первых. Если количество слов меньше заданного, то вывести об этом сообщение.
2. В заданном тексте найти и распечатать слово максимальной длины.
3. Написать (в порядке появления в тексте) все слова, длина которых попадает в интервал [X, Y]. Здесь X и Y целые числа, задающиеся пользователем.
4. В данном предложении найти количество слов, содержащих удвоенную согласную (буквы латинские). Слова в предложении разделяются пробелами, в конце предложения - точка.
5. Предложите пользователю ввести дату в предложенном формате ДД-ММ-ГГ. День и месяц могут быть указаны одиночными числами, т.е. 1-5-94, а не 01-05-94. Выделите числа представляющие день, месяц и год, и выведите каждое число с соответствующей поясняющей надписью на экран.
6. Предложите пользователю ввести число в интервале от 1 до 5 включительно. Ваша программа должна позволять пользователю вводить любую последовательность символов. Организуйте проверку ввода, и если ввод не длиннее одного символа, либо нецифровой, либо не попадает в допустимый интервал, тогда выведите сообщение об ошибке. Если ввод неправилен, тогда предложите пользователю повторить попытку.
7. Даны два текста А и Б. Проверьте, можно ли из букв, входящих в А, составить Б. (Буквы можно переставлять, но каждую букву можно использовать не более одного раза).
8. В строке, любое количество подряд следующих пробелов замените единственным пробелом.
9. Вычислите длину самого короткого слова в предложении из трех слов, разделенных пробелами.
10. Написать (в порядке появления в тексте) все слова, длина которых попадает в интервал [X, Y]. Здесь X и Y целые числа, указывающие, соответственно, наибольшую и наименьшую длину
11. Составьте программу, вычеркивающую каждую третью букву слова Х в заданном предложении.