- •Лабораторная работа 1. Реализация линейных алгоритмов
- •Вариант 1
- •1. Даны два ненулевых числа. Найти их сумму, разность, произведение и частное.
- •Вариант 2
- •1. Даны два числа. Найти среднее арифметическое их квадратов и среднее арифметическое их модулей.
- •Вариант 3
- •1. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U < V). Время движения лодки по озеру T1 ч, а по реке (против течения) — T2 ч. Определить путь S, пройденный лодкой.
- •Вариант 4
- •1. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили удаляются друг от друга.
- •Лабораторная работа 2. Условный оператор
- •Лабораторная работа 3. Оператор варианта.
- •Лабораторная работа 4. Строки. Операторы цикла.
- •Программирование численных циклических алгоритмов. Циклы «до» и «пока»
- •Лабораторная работа 5. Подпрограммы
- •Лабораторная работа 6. Массивы
- •Лабораторная работа 7. Множества
- •Лабораторная работа 8. Комбинированный тип данных (Запись)
- •Лабораторная работа 9. Работа с файлами
- •Лабораторная работа 10. Процедуры и функции модуля GraphABC
- •Графические примитивы
- •Подпрограммы для работы с пером
- •Лабораторная работа 11. Создание собственных модулей.
- •Лабораторная работа 12. Решение простейших задач в Console Application
- •Лабораторная работа 13. Динамические массивы
- •Лабораторная работа 14. Тип данных Variant
- •Лабораторная работа 15. Тип TDateTime
- •Лабораторная работа 16. Простейшие задачи на форме
- •Лабораторная работа 17. Флажки и переключатели
- •Лабораторная работа 18. Работа с меню
- •Главное меню
- •КОНТЕКСТНОЕ МЕНЮ
- •Лабораторная работа 19. Работа со списками
- •СПИСКИ ВЫБОРА
- •ВЫПАДАЮЩИЕ СПИСКИ
- •Лабораторная работа 20. Таймер. Работа с календарем
- •Лабораторная работа 21. Таблица строк
- •Лабораторная работа 22. Графика в Delphi
- •Лабораторная работа 23. Калькулятор
- •Лабораторная работа 24. Моделирование движения. Пуля
- •Лабораторная работа 25. Моделирование движения по кругу
- •Лабораторная работа 26. Цветомузыка
- •Лабораторная работа 27. Проигрыватель
- •Лабораторная работа 28. Цветочная поляна
- •Лабораторная работа 29. QUEST
- •Лабораторная работа 30. Тир
- •Лабораторная работа 31. Компоненты Delphi для взаимодействия с серверами автоматизации MS Office
- •Лабораторная работа 32. Обмен данными между программами с помощью DDE
- •Лабораторная работа 33. Технология Drag & Drop
- •Лабораторная работа 34. Использование динамически подключаемых библиотек (DLL).
- •Лабораторная работа 35. Создание собственного класса
- •Лабораторная работа 36. Конструкторы и деструкторы
- •Лабораторная работа 37. Создание собственных компонентов
2.Найти элементы массива не равные четным числам и вывести их индексы.
3.В двумерном массиве найти сумму элементов всех диагоналей матрицы
4.Вывести массив следующего вида. Размерность произвольная.
1 2 2 2
3 1 2 2
3 3 … 2
3 3 3 1
Вариант 4.
1.Заполнить массив случайными числами, вывести этот массив, уменьшить все элементы в три раза и снова вывести получившийся массив на экран.
2.Найти элементы массива не равные 10 и вывести их индексы.
3.В двумерном массиве найти сумму элементов главной диагонали.
4.Вывести массив следующего вида. Размерность произвольная.
0 0 0 0
0 1 0 0
0 0 … 0
00 0 N-1
Лабораторная работа 7. Множества
Множество – любой набор объектов, который понимается как единое целое. Объекты – элементы множества. Множества равны, если они содержат одни и те же элементы.
Множество в языке программирования – набор элементов базового типа. Базовый тип должен быть порядковым типом. Количество значений базового типа не может превышать 256. Номера значений 0..255.
Пример базового типа: BYTE, CHAR, 25..30
Пример множеств – [1,2,5], ['0'..'9']
Неправильные примеры: [1,2,'А'], [0,9,3.5]
Определение типа: TYPE <имя типа> = SЕT OF <базовый тип>;
© ИМПИ ОГПУ
Примеры:
TYPE NUMB = SET OF BYTE; DAY = SET OF 1..31;
Переменная базового типа может содержать любое подмножество базового типа. Порядок элементов не имеет значения. [1,2] = [2,1].
Пример: Написать в алфавитном порядке все буквы, введенные в заданную строку.
Program Primer;
Type qset = set of char; Var s : string; m : qset;
c : char; begin
write(‘Введите строку’); readln(s);
m := [];
for i :=1 to length(s) do
m := m+ [s[i]];
for c := ‘a’ to ‘z’ do
if c in m then write(с,‘ ’); end.
Задания для самостоятельной работы
Пример. Из двух первых сотен натуральных чисел найти все простые.
program primer; |
|
|
const n = 200; |
of 2..n; |
|
type |
mnog = set |
|
var |
pq, qq : mnog; |
|
|
p, k : 2..n; |
|
begin |
{ Множество проверяемых чисел } |
|
qq := [2..n]; |
||
pq := []; |
{ Множество найденных простых чисел } |
|
p |
:= 2; |
{ Первое простое число } |
repeat |
in qq) do p := p+1;{ Ищем следующее простое } |
|
|
while not(p |
|
|
pq := pq+[p]; { Добавляем его к уже найденным } |
k := p; {Удаляем из мн-ва проверяемых все числа, кратные
найденному простому:}
repeat qq := qq-[k]; k := k+p until k>n; until qq=[];
{ Печатаем простые числа } for k := 2 to n do
if k in pq then write(k,' ');
© ИМПИ ОГПУ
writeln |
|
|
|
|
|
end. |
|
|
|
|
|
1. |
Изучите |
работу программы. |
Протестируйте |
программу, изменяя |
|
значения константы N. Измените программу так, чтобы |
она выводила все |
||||
составные числа из интервала [2..N] в порядке убывания. |
|
||||
2. |
Дана непустая |
последовательность символов. Требуется построить и |
|||
напечатать множество, |
элементами |
которого являются встречающиеся в |
|||
последовательности: |
|
|
|
|
Вариант 1.
Буквы от "Т" до "Х" и знаки препинания.
Вариант 2.
Цифры от "5" до "9" и знаки арифметических операций.
Вариант 3.
Знаки арифметических операций и знаки препинания.
Вариант 4.
Цифры и знаки арифметических операций.
Лабораторная работа 8. Комбинированный тип данных (Запись)
Комбинированный тип данных применяются при описании сложных объектов, обладающих различными свойствами при создании баз данных.
Запись – структура данных, состоящая из фиксированного числа компонентов, называемых полями. Поля могут быть разных типов. Поэтому записи – наиболее общий и гибкий тип данных.
Записи, как и массивы, используются для описания последовательности величин.
Их отличия от массивов:
1)компоненты записи могут быть различных типов;
2)обращение к элементам массива производится по индексам, а к полям - по именам.
©ИМПИ ОГПУ
Описание записи:
Record
{описание полей} <имя поля1> : <тип>;
…
end;
Примеры:
Program Primer;
Type Address = Record
City : string;
Street : string;
House : integer;
End;
Flat : integer;
mas = array [1..5] of Address;
Procedure In_Adr (var a : address);
Begin
Write ('city '); Readln(a.city);
Write ('street '); Readln(a.street);
Write ('house, flat '); Readln(a.house, a.flat);
End;
Procedure In_Mas(var m : mas); var i : integer;
begin
for i := 1 to 5 do In_Adr(m[i]); end;
Procedure Out_Adr(a : address);
Begin
Writeln('г.',a.city,'ул.',a.street,'д.',a.house,' кв.',a.flat)
End;
Procedure Search(m : mas); var i : integer;
begin
For i := 1 to 5 do
end;If m[i].city='Оренбург' then Out_Adr(m[i]);
Var x : mas; i : integer;
Begin
In_Mas(x);
Search(x)
End.
© ИМПИ ОГПУ