- •Учебно-методический комплекс дисциплины «Информатика» Календарно-тематический план.
- •2. Тезисы лекций Тема 1. Понятие алгоритма, свойства, типы, исполнители
- •Тема 2. Система программирования TurboPascal. Исполняемые операторы. Словарь языка. Структура программы.
- •Имена, ключевые слова и знаки операций
- •Тема 3. Предопределенные типы переменных (простые), стандартные функции
- •Операции и выражения
- •Тема 4. Операторы Ввода-вывода Оператор вывода writeln
- •Тема 5. Операторы условий, выбора и безусловного перехода
- •Тема 6. Операторы циклов
- •Тема 7. Символьные типы данных. Обработка символьных данных.
- •Тема 8. Массивы
- •8.1. Одномерные массивы
- •8.2. Двумерные массивы (матрицы)
- •Обращение к компонентам массива
- •Тема 9. Строки. Строковые процедуры.
- •Неименованные константы
- •Действия с символами
- •Тема 10. Процедуры и функции Подпрограммы
- •Объявление и описание
- •Возвращаемые значения
- •Вызов подпрограмм
- •Параметр-константа
- •Функции
- •Параметр-значение
- •Тема 11. Множества (Set)
- •Тема 12. Файлы. Файловые переменные.
- •Разновидности файлов
- •Работа с текстовыми файлами
- •Тема 13. Записи
- •Описание записей
- •Задание записей константой
- •Доступ к полям
- •Оперирование несколькими полями
- •Вложенные операторы with
- •Запись с вариантной частью
- •Описание записи с вариантной частью
- •Тема 14. Построение изображений на экране Система координат
- •Управление текущим указателем
- •Отображение точки на экране
- •Отображение линий на экране
- •Построение прямоугольников на экране
- •Построение многоугольников
- •Построение дуг, эллипсов и окружностей
- •Тематика и краткое описание лабораторных и студийных работ
- •2. Связь функция-клавиатура в интегрированной среде Turbo Pascal
- •3. Команды экранного редактора:
- •3.1 Команды перемещения курсора
- •3.2 Команды вставки/удаления
- •3.3 Команды работы с блоками
- •4. Технология компиляции
- •5. Технология отладки программы
- •6. Программирование линейных алгоритмов
- •Лабораторная работа 2 программирование разветвляющихся вычислительных процессов
- •Краткие сведения из теории
- •Составить блок-схему и программу алгоритмов нахождения функции с выбором по расчетной формуле.
- •Лабораторная работа 3 программирование циклов с параметром
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 4
- •Лабораторная работа 5 программирование циклов с условием
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 6
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 7 работа с матрицами
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 8 обработка символьных строк
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Лабораторная работа 9 записи. Файлы
- •Краткие сведения из теории
- •Лабораторная работа 10 процедуры
- •Краткие сведения из теории
- •П р о г р а м м а
- •Лабораторная работа 11 функции
- •Краткие сведения из теории
- •П р о г р а м м а
- •П р о г р а м м а
- •Порядок работы
- •Содержание отчета
- •Лабораторная работа 12 графические средства паскаля
- •Краткие сведения из теории
- •Порядок работы
- •Лабораторная работа №14 Динамические структуры данных. Организация данных в списковые структуры
- •Кратное содержание теории
- •Краткое описание семинарских и практических занятий (планы, задания для проведения семинарских и практических занятий, срсп, срс)
- •Тема 1. Структура программы на паскале. Заголовок программы. Блок. Типы данных, их классификация. Переменные и константы. Синтаксис выражений. Порядок работы
- •Содержание отчета
- •Тема 2 конструкция операторов разветвления Порядок работы
- •Содержание отчета
- •Тема 3. Конструкция операторов цикла Порядок работы
- •Содержание отчета
- •Тема 4. Конструкция циклов с предусловием и постусловием Порядок работы
- •Содержание отчета
- •Тема 6. Составные типы данных. Создание одномерных массивов и стандартных процедур. Порядок работы
- •Содержание отчета
- •Тема 7. Создание двумерных массивов и стандартных процедур Порядок работы
- •Содержание отчета
- •Тема 8. Методы работы со строками и отдельными символами Порядок работы
- •Содержание отчета
- •Тема 9. Задачи классической комбинаторики. Записи и файлы. Порядок работы
- •Содержание отчета
- •Тема 10. Процедуры и функции Порядок работы
- •Содержание отчета
- •Тема 13. Динамические переменные. Структуры данных
- •5. Задания для самопроверки и подготовки к экзамену, в том числе тесты
- •5.1 Вопросы для самоконтроля по данному модулю/разделу (коллоквиума);
- •5.2. Контрольные работы по данному модулю/разделу;
- •Тема «Строки»
- •Тема «Множества»
- •6. Учебно-методические материалы по дисциплине
- •6.1.Список рекомендуемой литературы Основная литература
- •Дополнительная литература
П р о г р а м м а
begin
writeln ('Удаление парных пробелов.');
writeln ('Введите строку:' );
readln (s);
I:=pos (' ', s);
if l=0 then
writeln ('Удаления не было')
else
begin
while l >0 do {пока в строке есть парные пробелы}
begin
delete (s,pos (' ',s), 1);
I:=pos (' ',s)
end;
writeln ('Получена строка:');
writeln (s);
end;
end.
ПРИМЕР 2: В данном массиве из слов подсчитать количество слов, начинающихся и заканчивающихся гласной буквой.
П р о г р а м м а
program glasn;
const maxn = 100;
var s: array [1..maxn] of string;
l,n,i,k:integer;
begin
writeln ('n=');
readln (n);
writeln ('вводите элементы массива s');
for i:=1 to n do
readln (s[i]);
k:=0;
for i:=1 to n do
begin
l:= length (s[i]);
if (pos(s[i][1],'аоиуеыэюя АОИУЕЫЭЮЯ') > 0)
and (pos(s[i][1],'аоиуеыэюя АОИУЕЫЭЮЯ') > 0)
then k:=k+1
end;
writeln ('k=',k)
end.
Упражнения:
Даны два различных слова, в каждом из которых от 1 до 8 строчных латинских букв и за каждым из которых – пробел. Напечатать эти слова в алфавитном порядке.
В заданном тексте удалить часть текста, заключенную в скобки.
Напечатать самое длинное слово из заданного текста.
Найти сколько раз в тексте встречается заданное слово.
Написать программу, которая зашифрует заданный текст, представляя в словах символы наоборот.
В заданном тексте заменить символ пробел на символ запятая.
Написать программу, которая находить на какую букву начинается больше всего слов в тексте.
Дан текст. Если первый символ в тексте не является малой латинской буквой, то оставить без изменения. Если же это малая латинская буква, то заменить символом «*».
В заданном тексте везде заменить слово А1 на слово А2.
Задан текст длиной 255 символов. Найти сколько раз в тексте встречаются различные буквы русского алфавита.
Лабораторная работа 9 записи. Файлы
ЦЕЛЬ РАБОТЫ:
Изучить правила описания и использования переменных типа запись в языке Паскаль.
Получить практические навыки работы с файлами.
Краткие сведения из теории
Под записью понимается структура данных, об"единяющая под одним именем данные различных типов. Записи состоят из фиксированного числа элементов, называемых полями. Поле - это переменная определенного типа. Различные поля могут иметь (в отличии от элементов массива) различный тип. Обращение к элементу записи выполняется с помощью составного (уточненного) имени. Первая часть составного имени - это имя записи, вторая часть - имя поля. Между именем записи и именем поля ставится точка: ZAP.IMP, где ZAP - имя записи, IMP - имя поля.
При решении многочисленных задач обработки больших об"емов информации, бухгалтерского учета, ведения различных картотек, справочников и баз данных используются файлы, которые позволяют запоминать, изменять, хранить и читать различную информацию на внешних носителях (магнитных дисках). Файл представляет собой структурированный тип данных, содержащий последовательность компонентов (чаще всего записей) одного типа и одной длины. Число элементов в файле (длина файла) не фиксировано. Это является основным отличием файла от массива. Файл, не содержащий ни одного элемента, называется пустым, его длина равна нулю.
Файл можно представить как магнитную ленту, у которой есть начало, а конец не фиксирован. Элементы файла записываются на эту ленту последовательно, друг за другом с помощью некоторого устройства (указателя файла). При чтении или записи этот указатель перемещается к следующему элементу и делает его доступным для обработки. В каждый момент доступен для записи (чтения) только этот элемент файла, на который установлен указатель.
При необходимости формирования или использования файла в разделе описаний программы должна быть описана файловая переменная. Описание файловой переменной имеет следующий вид:
type имя-типа=file of базовый-тип;
var имя-файловой-переменной : имя-типа;
или
var имя-файловой переменной : file of базовый-тип;
В качестве базового типа элементов файла можно использовать любой тип данных (как простой, так и сложный), за исключением типа file.
Так как, по определению, число элементов файла не задается, то в Turbo Pascal введена стандартная функция
Eof(var F:file):boolean;
Когда будет достигнут конец файла, Eof(F) примет значение True, в в противном случае - False.
ПРИМЕР 1: Создать файл для хранения записей вида:
Запрос выводится с новой строки для каждого поля. Например:
Телевизор
Название . . . . . . . . . РЕКОРД
Цена (тыс.) . . . . . . . 3000
Диагональ . . . . . . . . 59
Изображение (ц/ч) . . Ц
Производитель . . . . .
Завод . . . . . . . . Фотон
Город . . . . . . . . Москва
Директор . . . . . Иванов
После записи файла осуществить поиск в нем названий телевизоров стоиостью менее 2 млн.руб.
program zapis;
const maxn = 30;
type TV = record
Name : string[20];
Price : 1 .. 32000;
Diagonal : 1 .. 50;
Color : char;
Proizv : record
city : string[25];
factory : string[50];
director : string[30];
end;
end;
tele = file от TV;
var f : tele;
was : boolean;
z:TV;
begin
writeln ('Ввод записей');
writeln ('Признак окончания ввода - *');
assing (f,'f.dat');
rewrite(f);
writeln (' Телевизор ');
write (' Название . . . . . .');readln(z.name);
while z.name <> ' * ' do
begin
write (' Цена (тыс.). . . . . .');readln(z.Price);
write (' Диагональ . . . . . .');readln(z.Diagonal);
write (' Изображение (ц/ч). . .');readln(z.Color);
writeln (' Производитель. . . . . ');
with z.Proizv do
begin
write (' Завод . . . . . . .');readln(city);
write (' Город . . . . . . .');readln(factory);
write (' Директор. . . . . .');readln(director);
tnd;
write (f,z)
writeln (' Телевизор');
write ('Название .......'); readln (z.name)
end;
close (f);
writeln ('Файл сформирован');
reset (f);
was:=false; {признак того, что искомые телевизоры найдены)
writeln ('Названия телевизоров стоимостью менее 2 млн.руб.');
while not eof(f) do
begin
read (F,Z);
if z.price < 2000 then
begin
writeln (z.name);
was:=true
end
end;
if was=false then
writeln ('Не найдены');
close(f)
end.
Упражнения:
Дан файл f, компоненты которого являются целыми числами. Найти наибольший и наименьший из компонентов файла.
Дан файл f, компоненты которого являются целыми числами. Найти количество четных чисел и количество квадратов нечетных чисел среди компонентов файла.
Даны символьные файлы f1 и f2.Поменять местами содержимое файлов, не используя стандартных процедур.
Дан файл f, компоненты которого являются действительными числами. Найти сумму и произведение компонентов файла, а также значение последнего элемента.
Дан файл f, компоненты которого являются символами. Получить копию файла в файле g, не используя стандартных процедур.
Дан файл f, компоненты которого являются целыми числами. Записать в файл g все четные числа файла f, а в файл n-все нечетные.
Дан файл f, компоненты которого являются символами. Записать в файл g компоненты файла f в обратном порядке.
Дан файл f, компоненты которого являются целыми числами.. Переписать компоненты файла f в файл g, так чтобы в файле g сначала или отрицательные, затем положительные числа.
Даны символьные файлы f и g. Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет, то получить номер первой компоненты, в которой файлы f и g отличаются между собой.
Дан символьный файл f. Найти самое длинное слово в файле.
Дан текстовый файл f. Получить самую длинную строку файла.
Дан текстовый файл f. Записать в перевернутом виде строки файла f в файл g.
Дан текстовый файл f и строка s. Получить все строки файла f, содержащие в качестве фрагмента строку s.
Дан текстовый файл f. Получить самую короткую строку файла.
Дан текстовый файл f. Проверить соответствие числа открывающих и закрывающих скобок.
Даны текстовые файлы f и g. Определить совпадают ли компоненты файлов.
Дан текстовый файл f. Определить сколько строк в файле начинаются с символа 'р'.
Дан текстовый файл f. Вывести на печать последнюю из строк длиною 45 символов.
Дан текстовый файл f. Исключить пробелы, стоящие в начале его строк. Результат поместить в файл f1.
Дан текстовый файл f. Записать в файл g строки, содержащие менее 50 символов.