методические указания по выполнению практических работ по дисциплине «Основы программирования»

Министерство образования Республики Башкортостан
УФИМСКИЙ ГОСУДАРСТВЕННЫЙ КОЛЛЕДЖ РАДИОЭЛЕКТРОНИКИ







УТВЕРЖДАЮ
Зам. директора
_____________ Л.Р. Туктарова
«_____» ______________2014 г.







СБОРНИК МЕТОДИЧЕСКИХ УКАЗАНИЙ

ДЛЯ СТУДЕНТОВ ПО ВЫПОЛНЕНИЮ

ЛАБОРАТОРНЫХ РАБОТ

ДИСЦИПЛИНА «ОСНОВЫ ПРОГРАММИРОВАНИЯ»

специальность 230115 «Программирование в компьютерных системах»

ДЛЯ СТУДЕНТОВ ОЧНОЙ И ЗАОЧНОЙ ФОРМ ОБУЧЕНИЯ




СОГЛАСОВАНО
________________________Р.М.Халилова

РАСCМОТРЕНО
на заседании кафедры программирования и информационных технологий
_______________________ М.Е. Бронштейн
«18» марта 2014 г.
РАЗРАБОТЧИК
____________ М.Е. Бронштейн











Уфа 2014 г.
СОДЕРЖАНИЕ


Стр.

Предисловие
3

Лабораторная работа № 1 «Составление линейной программы»
5

Лабораторная работа № 2 «Применение условного оператора»
8

Лабораторная работа № 3 «Применение оператора цикла с предусловием»
11

Лабораторная работа № 4 «Применение оператора цикла с постусловием»
14

Лабораторная работа № 5 «Применение оператора цикла с параметром»
17

Лабораторная работа № 6 «Программирование массивов»
21

Лабораторная работа № 7 «Программирование матриц»
23

Лабораторная работа № 8 «Программирование множеств»
26

Лабораторная работа № 9 «Программирование записей»
30

Лабораторная работа № 10 «Программирование процедур и функций»
33

Лабораторная работа № 11 «Программирование файлов»
37

Лабораторная работа № 12 «Выполнение работ в интегрированной среде разработчика»
41

Лабораторная работа № 13 «Разработка приложений»
48


































ПРЕДИСЛОВИЕ

Методические указания для студентов по выполнению лабораторных работ являются частью основной профессиональной образовательной программы Государственного бюджетного образовательного учреждения среднего профессионального образования «Уфимский государственный колледж радиоэлектроники» по специальности СПО 230115 «Программирование в компьютерных системах») в соответствии с требованиями ФГОС СПО третьего поколения.
Методические указания для студентов по выполнению лабораторных работ адресованы студентам очной, заочной и заочной с элементами дистанционных технологий формы обучения.
Методические указания созданы в помощь для работы на занятиях, подготовки к лабораторным работам, правильного составления отчетов.
Приступая к выполнению лабораторной работы, необходимо внимательно прочитать цель работы, ознакомиться с требованиями к уровню подготовки в соответствии с федеральными государственными стандартами третьего поколения (ФГОС-3), краткими теоретическими сведениями, выполнить задания работы, ответить на контрольные вопросы для закрепления теоретического материала и сделать выводы.
Отчет о лабораторной работе необходимо выполнить и сдать в срок, установленный преподавателем.
Наличие положительной оценки по лабораторных работам необходимо для допуска к экзамену, поэтому в случае отсутствия студента на уроке по любой причине или получения неудовлетворительной оценки за практическую необходимо найти время для ее выполнения или пересдачи.

Правила выполнения лабораторных работ
1. Студент должен прийти на практическое занятие подготовленным к выполнению лабораторной работы.
2. После проведения лабораторной работы студент должен представить отчет о проделанной работе.
3. Отчет о проделанной работе следует выполнять в журнале лабораторных работ на листах формата А4 с одной стороны листа.

Оценку по лабораторной работе студент получает, если:
- студентом работа выполнена в полном объеме;
- студент может пояснить выполнение любого этапа работы;
- отчет выполнен в соответствии с требованиями к выполнению работы;
- студент отвечает на контрольные вопросы на удовлетворительную оценку и выше.
Зачет по выполнению лабораторных работ студент получает при условии выполнения всех предусмотренных программой работ после сдачи журнала с отчетами по работам и оценкам.

Внимание! Если в процессе подготовки к лабораторным работам или при решении задач возникают вопросы, разрешить которые самостоятельно не удается, необходимо обратиться к преподавателю для получения разъяснений или указаний в дни проведения дополнительных занятий.





Обеспеченность занятия (средства обучения):

Учебно-методическая литература:
Фаронов В.В. Турбо Паскаль 7.0. Учебный курс: учебное пособие. – М.: КНОРУС", 2009;
Попов В.Б. Turbo Pascal – М.: Финансы и статистика, 2008;
Архангельский А.Я. Программирование в Delphi – М.: БИНОМ, 2010;
Культин Н.Б. Delphi в задачах и примерах - СПб.: «БХВ - Петербург», 2012


Справочная литература:
справочник по Turbo Pascal
справочник по Delphi

Технические средства обучения:
персональный компьютер.

Программное обеспечение: Turbo Pascal 7.0, Delphi 7.0

Отчет по выполнению лабораторных работ



Порядок выполнения отчета по лабораторной работе

Ознакомиться с теоретическим материалом по лабораторной работе.
Записать краткий конспект теоретической части.
Выполнить предложенное задание согласно варианту по списку группы.
Продемонстрировать результаты выполнения предложенных заданий преподавателю.
Записать код программы в отчет.
Ответить на контрольные вопросы.
Записать выводы о проделанной работе.




Лабораторная работа № 1

«Составление линейной программы»

Цель работы: научиться составлять линейные программы с использованием операторов ввода, вывода и присваивания.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Во всех приведенных примерах переменные могут быть типа REAL или INTEGER.
Кроме операторов, программа содержит описания переменных:
X: REAL;
Y, Z, T: INTEGER;
Каждая переменная, используемая в программе должна быть вписана в разделе описаний
VAR X: REAL;
Z, Y: INTEGER;
Схематически программа в Паскале выглядит следующим образом:
VAR A1;; Ak;
BEGIN – начало
P1;; Pn;
END. – конец – операционные скобки (служебные слова)
N – имя программы (идентификатор);
A1;; Ak – описание переменных;
P1;; Pn – операторы; выписываются в порядке следования друг за другом.
; - необходимо.

Пример: Программа ROOT1 вычисления корней квадратного уравнения ax2 + bx + c = 0, заданного коэффициентами a, b, c (предполагая, что a
· 0и что корни действительные)
VAR a, b, c, x1, x2: REAL;
BEGIN READ (a, b, c);
x1: = (- b + sqrt (sqr (b) – 4 * a * c) / (2 * a));
x2: = (- b – sqrt (sqr (b) – 4 * a * c) / (2 * a));
WRITE (x1, x2)
END.





Задания для лабораторной работы:

Разработать программу нахождения следующего значения согласно варианту и реализовать её на языке программирования Turbo Pascal:

№1 HYPER13 EQ \F(b+\r(;b2+4ac);2a) HYPER15-a3c+b-2 №2 HYPER13 EQ HYPER15HYPER13 EQ \F(d;c) HYPER15 * HYPER13 EQ \F(b;d) HYPER15 - HYPER13 EQ \F(ab-c;cd) HYPER15
№3 HYPER13 EQ \F(sinx+cosy;cosx-siny) HYPER15* tg xy

№4 HYPER13 EQ \F(x + y;x + 1) HYPER15 - HYPER13 EQ \F(xy-12;34+x) HYPER15 №5 HYPER13 EQ \F(3+ey-1;1 + x2 |y - tg x|) HYPER15 №6 x - HYPER13 EQ \F(x3;3) HYPER15+ HYPER13 EQ \F(x5;5) HYPER15

№7 ln| (y - HYPER13 EQ \r(;|x|) HYPER15)(x - HYPER13 EQ \F(y;x + \f(x2;4)) HYPER15) №8 (1 – tg x)-2 + cos(x – y) №9 HYPER13 EQ \F(ln|cos x|;ln(1 + x2))HYPER15

№10 ( HYPER13 EQ \F(x + 1;x - 1) HYPER15)3 + 18xy2 №11 (1 + HYPER13 EQ \F(1;x2) HYPER15)4 - 12x2y

№12 HYPER13 EQ \F(x2 - 7x + 10;x2 - 8x + 12) HYPER15

№13 HYPER13 EQ \F(cos x;(-2x) HYPER15 + 16x cos(xy) – 2 №14 x-3 – cosx + sin(2xy)
№15 2ctg(3x) - HYPER13 EQ \F(1;12x2 + 7x - 5) HYPER15

№16 |x2 – x3| - HYPER13 EQ \F(7x;x3 - 15x) HYPER15 №17 x ( ln x + HYPER13 EQ \F(y;cosx - \f(x;3)) HYPER15

№18 sinHYPER13 EQ \R(;x+1) HYPER15 - sinHYPER13 EQ HYPER15HYPER13 EQ \R(;x-1) HYPER15;

№19 ex - HYPER13 EQ \F(y2 + 12xy - 3x2;18y - 1) HYPER15 №20 HYPER13 EQ \F(1 + sin\r(;x + 1);cos(12y - 4)) HYPER15
№21 2ctg(3x) - HYPER13 EQ \F(ln cosx;ln(1 + x2)) HYPER15

№22 ex – x – 2 + (1 + x)2 №23 3 – 4x + (y - HYPER13 EQ \R(;|x|) HYPER15)

№24 x- 10sinx + |x4 – x5|

№25 x – 10sinx + cos(x – y) №26 HYPER13 EQ \F(1 + sin2(x + y);2 + |x - \f(2x;1 + x2 y2)|) HYPER15 + x
№ 27.Найти площадь равнобедренной трапеции с основаниями а и b и углом а при большем основании а.
№ 28. Вычислить корни квадратного уравнения ах2 + bх + с = 0, заданного коэффициентами a, b и с (предполагается, что а
· 0 и что дискриминант уравнения неотрицателен).
№ 29.Дано действительное число х. Не пользуясь никакими другими арифметическими операциями, кроме умножения, сложения и вычитания, вычислить за минимальное число операций
2x4 - Зх3 + 4x2 - 5х + 6.
№ 30.Дано х. Получить значения -2х + Зх2 - 4х3 и
1 + 2х + 3x2 + 4х3. Позаботиться об экономии операций,
№ 31.Найти площадь треугольника, две стороны которого равны а и b, а угол между этими сторонами равен g.
№ 32.Дано число а. Не используя никаких функций и никаких операций, кроме умножения, получить а8 за три операции; а10 и а16 за четыре операции.
№ 33.Найти сумму членов арифметической прогрессии, если известны ее первый член, знаменатель и число членов прогрессии,
№ 34.Найти все углы треугольника со сторонами а, b, с. Предусмотреть в программе перевод радианной меры угла в градусы, минуты и секунды.
№ 35.Три сопротивления R1 ,R2, R3 соединены параллельно. Найдите сопротивление соединения.
№ 36.Составить программу для вычисления пути, пройденного лодкой, если ее скорость в стоячей воде
· км/ч, скорость течения реки и км/ч, время движения по озеру t1 ч, а против течения реки t2 ч.


Контрольные вопросы
1. Для чего используется указание типа данных величин?
2. Как описывается тип величины в языке Паскаль?
3. Охарактеризуйте целочисленные типы данных: какие они могут принимать значения, в каких операциях могут принимать участие, сколько места занимают в памяти. Какие стандартные функции определены для целых чисел?
4. Какие типы отношений определены над данными вещественного типа?
5. Чем отличаются вещественные числа от целых?



Лабораторная работа № 2

«Применение условного оператора»

Цель работы: ознакомиться с условным оператором Паскаля и научиться составлять программы с его использованием.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Для того, чтобы переменной max присвоилось наибольшее из значений переменных x1 и x2, то необходимо сравнить значения x1 и x2 и в зависимости от результата сравнения выполнить либо оператор max: = x1, либо max: = x2. Действия такого рода задаются условным оператором:
if B then P1 else P2,
где В – условие, P1 и P2 – операторы, if – если, then – то, else – иначе. Если В соблюдается, то выполняется P1, иначе выполняется P2.
В качестве условий используются отношения. Отношения представляют собой записи равенств и неравенств. Примеры отношений: a = b; d
· 0; sqr (b) – 4 * a * c > 0.
В общем случае отношение – это два выражения, разделенные одним из знаков =, <, >,
·,
·,
· (<>, >=, <=)
Пример: Написать программу нахождения наибольшего значения из двух заданных целых чисел.
VAR x1, x2, max: INTEGER;
BEGIN
WRITE ('x1, x2');
READ (x1, x2);
IF x1>x2 THEN max: = a1
ELSE max: = x2;
WRITE (max);
END.
Оператор, расположенный после ELSE, может быть любым оператором; оператор, расположенный между THEN ELSE не может быть условным.

Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№ 1 Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень отрицательные.
№ 2 Даны две точки A(x1 ,у1) и B(х2, y2). Составить алгоритм, определяющий, которая из точек находится ближе к началу координат.
№ 3 Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным.
№ 4 Даны действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее их удвоенным произведением.
№ 5 На плоскости XOY задана своими координатами точка А. Указать, где она расположена: на какой оси или в каком координатном углу.
№ 6 Даны целые числа т, п. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями.
№ 7 Дано трехзначное число N. Проверить, будет ли сумма его цифр четным числом.
№ 8 Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа.
№ 9 Определить, является ли целое число N четным двузначным числом.
№ 10 Определить, является ли треугольник со сторонами а, b, с равносторонним.
№11 Определить, является ли треугольник со сторонами а, b, с равнобедренным.
№ 12 Определить, имеется ли среди чисел а, b, с хотя бы одна пара взаимно противоположных чисел.
№ 13 Подсчитать количество отрицательных среди чисел а, b, с.
№ 14 Подсчитать количество положительных среди чисел а, b, с.
№ 15 Подсчитать количество целых чисел среди чисел а, b, с.
№ 16 Определить, делителем каких чисел а, b, с является число k.
№ 17 Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц оплачиваются В р., а разговоры сверх установленной нормы оплачиваются из расчета С р. в минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.
№ 18 Даны три стороны одного и три стороны другого треугольника. Определить, будут ли эти треугольники равновеликими, т.е. имеют ли они равные площади.
№ 19 Программа-льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д иди М». В зависимости от ответа на экране должен появиться текст «Мне нравятся девочки!» или «Мне нравятся мальчики!».
№ 20 Грузовой автомобиль выехал из одного города в другой со скоростью
·1 км/ч. Через t ч в этом же направлении выехал легковой автомобиль со скоростью
·2 км/ч. Составить программу, определяющую, догонит ли легковой автомобиль грузовой через t1 ч после своего выезда.

№ 21 Перераспределить значения переменных х и у так, чтобы в х оказалось большее из этих значений, а в у меньшее.
№ 22 Определить правильность даты, введенной с клавиатуры (число от 1 до 31, месяц от 1 до 12). Если введены некорректные данные, то сообщить об этом.
№ 23 Составить программу, определяющую результат гадания на ромашке «любит не любит», взяв за исходное данное количество лепестков п.
№ 24 Написать программу нахождения суммы большего и меньшего из 3 чисел.
№ 25 Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольные. Если таковых нет, то вычислить величину угла С.
№ 26 Найти max{min(a, b), min(c, d)}.
№ 27 Даны три числа а, b, с. Определить, какое из них равно d. Если ни одно не равно d, то найти max(d-a, d-b, d-c).
№ 28 Даны четыре точки А1(х1,у1), А2(х2,у2), аз(х3,у3), А4(х4,,у4). Определить, будут ли они вершинами параллелограмма.
№ 29 Даны три точки А(х1 ,y,), В(х2, у2 )и С(х3, у3). Определить, будут ли они расположены на одной прямой.
№ 30 Даны действительные числа а, b, с. Удвоить эти числа, если а№ 31 На оси ОХ расположены три точки а, b, с. Определить, какая из точек b, с расположена ближе к а.
№ 32 Даны три положительных числа а, b, с. Проверить, могут ли они быть длинами сторон треугольника. Если да, то вычислить площадь этого треугольника.
№ 33 Написать программу решения уравнения ах3 + bх = 0 для произвольных а, b.
№ 34Дан круг радиуса R. Определить, поместится ли правильный треугольник со стороной а в этом круге.
№ 35 Написать программу, которая по заданным трем числам определяет, является ли сумма каких-либо двух из них положительной.
№ 36 Известно, что из четырех чисел а1 а2, а3 и а4 одно отлично от трех других, равных между собой; присвоить номер этого числа переменной n.

Контрольные вопросы:

Что такое оператор? Чем отличаются простые и структурные операторы?
Назначение, формы записи и порядок выполнения оператора условия if?
Как выглядит блок-схема программы с ветвлением?
Лабораторная работа № 3

«Применение оператора цикла с предусловием»

Цель работы: ознакомиться с оператором цикла с предусловием и научиться составлять программы с его использованием.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Многократно повторяемые действия могут быть заданы операторами цикла.
while условие do оператор
Выполняется этот оператор цикла так: проверяется условие, и если оно удовлетворяется, то выполняется оператор, а затем вновь проверяется условие и т.д. Как только на очередном шаге окажется, что условие не удовлетворяется, то выполнение оператора цикла прекращается.
while x
· 0 do x :=х+ 1, если значения х положительно, то выполнение оператора цикла прекратится после первой же проверки условия x
· 0, и значение переменной х не измениться. Если же значение х не положительно, то к этому значению будет добавляться по единице до тех пор, пока значение не станет положительным.
Пример:
Пусть даны числа a, b (a > 1) и надо получить все члены бесконечной последовательности a, a2, a3, меньше числа b.
var a, b, c : real;
begin
read (a, b); c := a;
while c < b do
begin
writeln (c); c := c * a
end
end.
Если a
· b, то не будет выведено ни одного члена последовательности a, a2, a3.

Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№ 1 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 + + HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 2 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15
№ 3 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 4 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15

№ 5 Даны натуральное n, действительное х. Вычислить:

S = sinx + sinsinx + sinsinsinx

n раз
№ 6 Даны действительное число а, натуральное число n. Вычислить:

Р = а (а + 1) х х (а + n- 1)
№7Дандействительное число а, натуральное число n. Вычислить:

Р = а (а - n)(а – 2n) х ... х (а - n2).
№ 8 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 9 Даны натуральное n действительное х. Вычислить:
sinx + sinx2 +...+ sinn.
№ 10 Дано натуральное n. Вычислить:
S - 1 2 +2 - 3 4 + ... + n (n + 1) х ... х 2n.
№ 11 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;22) HYPER15)(1 - HYPER13 EQ \F(1;33) HYPER15)**(1 - HYPER13 EQ \F(1;nn) HYPER15), где n>2

№ 12 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;2) HYPER15)(1 - HYPER13 EQ \F(1;4) HYPER15)(1 - HYPER13 EQ \F(1;6) HYPER15)**(1 - HYPER13 EQ \F(1;2n) HYPER15)
№ 13 Дано натуральное число n. Вычислить:
S= 1! + 2! + 3! + ... + n! (n>1).
№ 14 Дано натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;32) HYPER15 + HYPER13 EQ \F(1;52) HYPER15 + HYPER13 EQ \F(1;72) HYPER15+ + HYPER13 EQ \F(1;(2n + 1)2) HYPER15
№ 15 Дано натуральное n. Вычислить: у - 1 3 5 х ... х (2n - 1).
№ 16 Дано натуральное n. Вычислить: у - 2 4 6 x ... х (2n).
№ 17 Вычислить: у = cosx + cosx2 + cosx3 + ... + cosxn.
№ 18 Вычислить: у = sinl + sinl,l + sinl,2 + ... sin2.
№ 19 Дано натуральное число N. Вычислить:
S = 1 - HYPER13 EQ \F(1;2) HYPER15 + HYPER13 EQ \F(1;4) HYPER15 - HYPER13 EQ \F(1;8) HYPER15 + + (-1)n * HYPER13 EQ \F(1;2n) HYPER15
№ 20 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 ++HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 21 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15 ,
№ 22 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 23 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15
№ 24 Даны натуральное n, действительное х. Вычислить:

S = sinx + sinsinx + sinsinsinx

n раз
№ 25 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 26 Дано действительное х. Вычислить: HYPER13 EQ \F((x - 1)(x - 3)(x - 7)(x - 63);(x - 2)(x - 4)(x - 8)(x - 64)) HYPER15

№ 27 Вычислить: (1 + sin0,l)(l + sin0,2) х ... х (1 + sinl0).


Контрольные вопросы:

Каково назначение операторов повтора (цикла)?
Какие требования предъявляются к выражениям, управляющим повторениями?
В каких случаях используется оператор цикла с предусловием?


Лабораторная работа № 4

«Применение оператора цикла с постусловием»

Цель работы: ознакомиться с оператором цикла с постусловием и научиться составлять программы с его использованием.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
repeat оператор until условие
Выполняется этот оператор так: выполняются операторы, проверяются условие, если оно не выполняется, то вновь выполняются операторы, если условие выполняются, – цикл заканчивается. Если условие выполняется с самого начала, то операторы выполняются один раз. Если условие никогда не выполняется, то группа операторов выполняется бесконечное число раз, происходит "зацикливание".
repeat c := c + 1/ x; x := x – 1
until x = 0;
Сначала выполняется оператор c := c + 1/ x; x := x – 1, затем проверяется условие х = 0. Если х
· 0, то проверяется выполнение указанных операторов, если х = 0, то управление передается на оператор, следующий за строкой until x = 0.
Пример: Вычислить сумму: 1 + 1/2+ 1/3 + + 1/50 с использованием оператора цикла repeat until.
var S : real; N : integer;
begin
S := 0; N := 1;
repeat S := S + 1 / N; N := N + 1;
until N > 50;
write (S)
end.
Результат S = 4,499
Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№ 1 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 + + HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 2 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15
№ 3 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 4 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15

№ 5 Даны натуральное n, действительное х. Вычислить:

S = sinx + sinsinx + sinsinsinx

n раз
№ 6 Даны действительное число а, натуральное число n. Вычислить:

Р = а (а + 1) х х (а + n- 1)
№7Дандействительное число а, натуральное число n. Вычислить:

Р = а (а - n)(а – 2n) х ... х (а - n2).
№ 8 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 9 Даны натуральное n действительное х. Вычислить:
sinx + sinx2 +...+ sinn.
№ 10 Дано натуральное n. Вычислить:
S - 1 2 +2 - 3 4 + ... + n (n + 1) х ... х 2n.
№ 11 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;22) HYPER15)(1 - HYPER13 EQ \F(1;33) HYPER15)**(1 - HYPER13 EQ \F(1;nn) HYPER15), где n>2
№ 12 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;2) HYPER15)(1 - HYPER13 EQ \F(1;4) HYPER15)(1 - HYPER13 EQ \F(1;6) HYPER15)**(1 - HYPER13 EQ \F(1;2n) HYPER15)
№ 13 Дано натуральное число n. Вычислить:
S= 1! + 2! + 3! + ... + n! (n>1).
№ 14 Дано натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;32) HYPER15 + HYPER13 EQ \F(1;52) HYPER15 + HYPER13 EQ \F(1;72) HYPER15+ + HYPER13 EQ \F(1;(2n + 1)2) HYPER15
№ 15 Дано натуральное n. Вычислить: у - 1 3 5 х ... х (2n - 1).
№ 16 Дано натуральное n. Вычислить: у - 2 4 6 x ... х (2n).
№ 17 Вычислить: у = cosx + cosx2 + cosx3 + ... + cosxn.
№ 18 Вычислить: у = sinl + sinl,l + sinl,2 + ... sin2.
№ 19 Дано натуральное число N. Вычислить:
S = 1 - HYPER13 EQ \F(1;2) HYPER15 + HYPER13 EQ \F(1;4) HYPER15 - HYPER13 EQ \F(1;8) HYPER15 + + (-1)n * HYPER13 EQ \F(1;2n) HYPER15
№ 20 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 ++HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 21 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15
№ 22 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 23 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15
№ 24 Даны натуральное n, действительное х. Вычислить:

S = sinx + sinsinx + sinsinsinx

n раз
№ 25 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 26 Дано действительное х. Вычислить: HYPER13 EQ \F((x - 1)(x - 3)(x - 7)(x - 63);(x - 2)(x - 4)(x - 8)(x - 64)) HYPER15

№ 27 Вычислить: (1 + sin0,l)(l + sin0,2) х ... х (1 + sinl0).

Контрольные вопросы:

Каково назначение операторов повтора (цикла)?
Какие требования предъявляются к выражениям, управляющим повторениями?
В чём отличия операторов повтора while и repeat?

Лабораторная работа № 5

«Применение оператора цикла с параметром»

Цель работы: ознакомиться с оператором цикла с параметром и научиться составлять программы с его использованием.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы

for i := число 1 to число 2 do оператор
i – переменная типа integer, которая называется параметром цикла. Такой оператор цикла
заставляет i принимать значения число 1, число 1 + 1, число 1 + 2, , число 2. Для каждого из
значения выполняется оператор. Если число 1 > число 2, оператор не будет выполнен не разу.
S = 0;
for i := 1 to n do S := S + i * i * i
После выполнения S = 13 + 23 + + n3.

Пример: Программа вычисления n!.
Применяется, когда число шагов легко определить по исходным данным.
var n, i, p : integer;
begin read (n); p := 1;
for i := 1 to n do p := p * i;
write (n'! = ', p)
end.

Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№ 1 Дано натуральное число N. Вычислить:
S = 1 - HYPER13 EQ \F(1;2) HYPER15 + HYPER13 EQ \F(1;4) HYPER15 - HYPER13 EQ \F(1;8) HYPER15 + + (-1)n * HYPER13 EQ \F(1;2n) HYPER15
№ 2 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 ++HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 3 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15 ,
№ 4 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 5 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15
№ 6 Даны натуральное n, действительное х. Вычислить:

S = sinx + sinsinx + sinsinsinx

n раз
№ 7 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 8 Дано действительное х. Вычислить: HYPER13 EQ \F((x - 1)(x - 3)(x - 7)(x - 63);(x - 2)(x - 4)(x - 8)(x - 64)) HYPER15

№ 9 Вычислить: (1 + sin0,l)(l + sin0,2) х ... х (1 + sinl0).

№ 10 Дано натуральное число N. Вычислить:
S = HYPER13 EQ \F(1;sin1) HYPER15 + HYPER13 EQ \F(1;sin1 + sin2) HYPER15 + + HYPER13 EQ \F(1;sin1 + sin2 + +sinN) HYPER15

№ 11 Дано натуральное число N. Вычислить произведение первых N сомножителей
P = HYPER13 EQ \F(2;3) HYPER15 ( HYPER13 EQ \F(4;5) HYPER15 ( HYPER13 EQ \F(6;7) HYPER15 ( ( HYPER13 EQ \F(2N;2N + 1) HYPER15
№ 12 Дано натуральное число N. Вычислить:
HYPER13 EQ \F(cos1;sin1) HYPER15( HYPER13 EQ \F(cos1 + cos2;sin1 + sin2) HYPER15 ( ( HYPER13 EQ \F(cos1 + cos2 + + cosN;sin1 + sin2 + + sinN) HYPER15

№ 13 Дано действительное число х. Вычислить:
x - HYPER13 EQ \F(x3;3!) HYPER15 + HYPER13 EQ \F(x5;5!) HYPER15 - HYPER13 EQ \F(x7;7!) HYPER15 + HYPER13 EQ \F(x9;9!) HYPER15 - HYPER13 EQ \F(x11;11!) HYPER15 + HYPER13 EQ \F(x13;13!) HYPER15

№ 14 Даны натуральное n, действительное х. Вычислить:
S = sinx + sinsinx + sinsinsinx

n раз
№ 15 Даны действительное число а, натуральное число n. Вычислить:

Р = а (а + 1) х х (а + n- 1)
№ 16 Даны действительное число а, натуральное число n. Вычислить:

Р = а (а - n)(а – 2n) х ... х (а - n2).
№ 17 Даны действительное число а, натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;a) HYPER15 + HYPER13 EQ \F(1;a2) HYPER15 + HYPER13 EQ \F(1;a4) HYPER15 + + HYPER13 EQ \F(1;a2n-2) HYPER15
№ 18 Даны натуральное n действительное х. Вычислить:
sinx + sinx2 +...+ sinn.
№ 19 Дано натуральное n. Вычислить:
S - 1 2 +2 - 3 4 + ... + n (n + 1) х ... х 2n.
№ 20 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;22) HYPER15)(1 - HYPER13 EQ \F(1;33) HYPER15)**(1 - HYPER13 EQ \F(1;nn) HYPER15), где n>2
№ 21 Дано натуральное число n. Вычислить:
P = (1 - HYPER13 EQ \F(1;2) HYPER15)(1 - HYPER13 EQ \F(1;4) HYPER15)(1 - HYPER13 EQ \F(1;6) HYPER15)**(1 - HYPER13 EQ \F(1;2n) HYPER15)
№ 22 Дано натуральное число n. Вычислить:
S= 1! + 2! + 3! + ... + n! (n>1).
№ 23 Дано натуральное число n. Вычислить:
S = HYPER13 EQ \F(1;32) HYPER15 + HYPER13 EQ \F(1;52) HYPER15 + HYPER13 EQ \F(1;72) HYPER15+ + HYPER13 EQ \F(1;(2n + 1)2) HYPER15
№ 24 Дано натуральное n. Вычислить: у - 1 3 5 х ... х (2n - 1).
№ 25 Дано натуральное n. Вычислить: у - 2 4 6 x ... х (2n).
№ 26 Вычислить: у = cosx + cosx2 + cosx3 + ... + cosxn.
№ 27 Вычислить: у = sinl + sinl,l + sinl,2 + ... sin2.


Контрольные вопросы:

В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?
Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?
Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?

Лабораторная работа № 6

«Программирование массивов»

Цель работы: ознакомиться с основными приемами действий над массивами.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы

В Турбо Паскале могут использоваться объекты, содержащие множество однотипных элементов. Это массивы -формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект - массив измерений.
При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:
Var А : array [1..10] of Real; b : array [0..50] of Char; с : array [-3..4] of Boolean;
При описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квадратных скобках указывается тип-диапазон, с помощью которого компилятор определяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива, так что массив А состоит из 10 элементов, массив В - из 51, а массив С - из 8 элементов. За словом ОF указывается тип элементов, образующих массив.

Пример. В массиве хранятся данные о выпавших осадках за последние 20 лет. Найти среднее значение и отклонения от среднего для каждого года.
Var А : array [1..20] of Real; I: integer; S: real;
Begin
{Ввод массива”}
for I:=1 to 20 do read(A[I]);
{Нахождение среднего значения”}
for I:=1 to 20 do S:=S+A[I];
S:=S/20;
{Нахождение отклонения от среднего ”}
for I:=1 to 20 do write(abs(A[I]-S));
end.



Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№1. Дан массив из 100 целых чисел. Написать программу нахождения суммы положительных элементов массива.
№2. Дан массив из 100 целых чисел. Написать программу нахождения произведения положительных элементов массива.
№3. Дан массив из 100 целых чисел. Написать программу нахождения суммы четных элементов массива.
№4. Дан массив из 100 целых чисел. Написать программу нахождения произведения четных элементов массива.
№5. Дан массив из 100 целых чисел. Написать программу нахождения абсолютного значения суммы отрицательных элементов массива.
№6. Дан массив из 100 целых чисел. Написать программу нахождения произведения отрицательных элементов массива
№7. Дан массив из 100 целых чисел. Написать программу нахождения количества положительных элементов массива.
№8. Дан массив из 100 целых чисел. Написать программу нахождения количества отрицательных элементов массива.
№9. Дан массив из 100 целых чисел. Написать программу нахождения количества четных элементов массива.
№10. Дан массив из 100 целых чисел. Написать программу замены всех отрицательных элементов средним значением массива.
№11. Дан массив из 100 целых чисел. Написать программу нахождения суммы нечетных элементов массива.
№12. Дан массив из 100 целых чисел. Написать программу нахождения произведения нечетных элементов массива.
№13. Дан массив из 100 целых чисел. Поменять местами наибольший и наименьший элементы массива.
№14. Дан массив из 100 целых чисел. Написать программу замены всех положительных элементов средним значением массива.
№15. Дан массив из 100 целых чисел. Написать программу нахождения суммы элементов массива с четными индексами.
№16. Дан массив из 100 целых чисел. Написать программу нахождения произведения элементов массива с четными индексами.
№17. Дан массив из 100 целых чисел. Написать программу нахождения суммы элементов массива с нечетными индексами.
№18. Дан массив из 100 целых чисел. Написать программу нахождения произведения элементов массива с нечетными индексами.
№19. Дан массив из 100 целых чисел. Написать программу нахождения среднего значения среди положительных элементов массива
№20. Дан массив из 100 целых чисел. Написать программу замены всех отрицательных элементов значением их произведения.
№21. Дан массив из 100 целых чисел. Заменить первые К элементов на противоположные по знаку.
№22. Дан массив из 100 целых чисел. Заменить максимальный по модулю отрицательный элемент нулем.
№23. Дан массив из 100 целых чисел. Заменить минимальный по модулю положительный элемент нулем.
№24. Дан массив из 100 целых чисел. Умножить все элементы, кратные трем, на третий элемент массива.
№25. Дан массив из 100 целых чисел. Заменить элементы между минимальным и максимальным нулем.

Контрольные вопросы:
Что такое массив?
Как определить местоположение элемента в массиве?
Что такое индекс? Каким требованиям он должен удовлетворять?
Особенности расположения элементов массива в памяти ЭВМ. Особенности расположения в памяти элементов многомерных массивов.
Каким образом задаётся описание массива, что в нём указывается?
Лабораторная работа № 7

«Программирование матриц»

Цель работы: ознакомиться с основными приемами действий над двумерными массивами (матрицами).

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Объектами обработки некоторых алгоритмов нередко являются прямоугольные таблицы данных, называемые иначе двумерными массивами. Примером такого массива может быть таблица Пифагора – квадратная таблица А из 10 строк и 10 столбцов, каждый элемент которой определяется формулой аij = i*j (i,j=1,2,,10). Положение элемента аij в таблице задаётся двойным индексом: первый (i) обозначает номер строки элемента, а второй (j) – номер его столбца, на пересечении которых стоит элемент (нумерация строк производится сверху вниз, а столбцов –
слева на право). К двумерным массивам относятся также таблицы соревнований, коэффициенты систем уравнений, шахматные доски, таблицы распределения температур некоторого тела и т.д. Реже на практике встречаются массивы, содержащие три и более измерений.
Объявление двумерных массивов пишется аналогично одномерным, но для прямоугольной таблицы надо указать границы изменения индексов как по горизонтали, так и по вертикали. Например, объявим таблицу А, содержащую целые числа и состоящую из 9 строк и 10 столбцов. Вот это объявление:
Var А: array [1..9, 1..10] of integer;

Пример: Дана квадратная матрица размерностью 10х10, состоящая из целых чисел. Найти произведение элементов главной диагонали матрицы.
Var A: array[1..10,1..10] of integer; i,j,P: integer;
Begin
{Ввод матрицы’}
for i:=1 to 10 do
for j:=1 to 10 do read(A[i,j]);
{ Нахождение произведения элементов главной диагонали матрицы’ }
P:=1;
for i:=1 to 10 do
for j:=1 to 10 do
if i=j then P:=P*A[i,j];
write(P);
end.

Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

№1. В целочисленной матрице размерностью 10*10 найти наибольший элемент и номер строки, в которой он находится.
№2. В целочисленной матрице размерностью 10*10 найти наименьший элемент и номер столбца, в которой он находится.
№3. В целочисленной матрице размерностью 10*10 найти номер столбца содержащего максимальный элемент матрицы.
№4. В целочисленной матрице размерностью 10*10 найти номер строки, содержащей минимальный элемент матрицы.
№5. В целочисленной матрице размерностью 10*10 найти номер строки, содержащей наибольшее среднее значение.
№6. В целочисленной матрице размерностью 10*10 найти номер столбца, содержащего наибольшее среднее значение.
№7. В целочисленной матрице размерностью 10*10 найти номер строки, содержащей наименьшее среднее значение.
№8. В целочисленной матрице размерностью 10*10 найти номер столбца, содержащего наименьшее среднее значение.
№9. В целочисленной матрице размерностью 10*10 найти разность между наибольшим и наименьшим элементами матрицы.
№10. В целочисленной матрице размерностью 10*10 поменять местами наибольшие и наименьшие элементы матрицы.
№11. В целочисленной матрице размерностью 10*10 найти номер строки, содержащей наибольшее произведение её элементов.
№12. В целочисленной матрице размерностью 10*10 найти номер строки, содержащей наименьшее произведение её элементов.
№13. В целочисленной матрице размерностью 10*10 найти номер столбца, содержащего наибольшее произведение элементов.
№14. В целочисленной матрице размерностью 10*10 найти номер столбца, содержащего наибольшее произведение его элементов.
№15. В целочисленной матрице размерностью 10*10 найти сумму элементов четных строк.
№16. В целочисленной матрице размерностью 10*10 найти произведение элементов четных строк.
№17. В целочисленной матрице размерностью 10*10 найти сумму элементов нечетных строк.
№18. В целочисленной матрице размерностью 10*10 найти произведение элементов нечетных строк.
№19. В целочисленной матрице размерностью 10*10 найти произведение элементов нечетных столбцов.
№20. В целочисленной матрице размерностью 10*10 найти сумму элементов нечетных столбцов.
№21. В целочисленной матрице размерностью 10*10 найти сумму элементов четных столбцов.
№22. В целочисленной матрице размерностью 10*10 найти произведение элементов четных столбцов.
№23. В целочисленной матрице размерностью 10*10 найти сумму положительных элементов четных строк.

№24. В целочисленной матрице размерностью 10*10 найти сумму положительных элементов нечетных строк.
№25. В целочисленной матрице размерностью 10*10 найти сумму отрицательных элементов четных строк.
№26. В целочисленной матрице размерностью 10*10 найти сумму отрицательных элементов нечетных строк.
№27. В целочисленной матрице размерностью 10*10 найти произведение положительных элементов четных столбцов.
№28. В целочисленной матрице размерностью 10*10 найти произведение отрицательных элементов нечетных столбцов.
№29. В целочисленной матрице размерностью 10*10 определить, каких элементов: положительных или отрицательных больше.
№30. В целочисленной матрице размерностью 10*10 определить, каких элементов: четных или нечетных больше.
Контрольные вопросы:

1.Что такое матрица?
2.Как определить местоположение элемента в матрице?
3.Что такое индекс? Каким требованиям он должен удовлетворять?
4.Особенности расположения в памяти элементов многомерных массивов.
5.Каким образом задаётся описание матрицы, что в нём указывается?
Лабораторная работа № 8

«Программирование множеств»

Цель работы: ознакомится с основными приемами действий с множествами.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Множественный тип данных Паскаля напоминает перечислимый тип данных. Вместе с тем множественный тип данных – набор элементов не организованных в порядке следования.
В математике множественный тип данных – любая совокупность элементов произвольной природы. Операции, которые производятся над множествами, по существу заключаются во включении и исключении элементов из множества.
Понятие множества в языке программирования значительно уже математического понятия.
В Паскале под множественным типом понимается конечная совокупность элементов, принадлежащих некоторому базовому типу данных.
В качестве базовых типов могут использоваться:
перечислимые типы;
символьный;
байтовый;
диапазонные на основе вышеперечисленных.
Такие ограничения связаны с формой представления множественного типа данных в Паскале и могут быть сведены к тому, чтобы функция ord() для используемого базового типа лежала в пределах от 0 до 255.
После того, как базовый тип задан, совокупность значений соответствующего множественного типа данных определяется автоматически. В нее входят все возможные множества, являющиеся произвольными комбинациями значений базового типа. Все эти множества являются отдельными значениями определенного множественного типа данных.
Описание множественного типа данных Паскаля
Type <имя_типа>= set of <базовый_тип>
Пример множественного типа данных Паскаля
Type symbol= set of char; {описан множественный тип symol из букв} Var letter, digits, sign: symbol; {описаны три переменные множественного типа}
Для того чтобы придать переменной множественного типа значение, используют конструктор множества – перечисление элементов множества через запятую в квадратных скобках. Например,
sign:= [+’, -];
Конструктор множества может содержать диапазон значений базового типа. Тогда во множества включаются все элементы диапазона. Например,
digits:= [0’ .. 9’]; letter:= [a’ .. z’];
Обе формы конструирования множеств могут сочетаться. Например,
letter:= [a’ .. z’, A’ .. Z’];
Конструктор вида [ ] обозначает пустые множества.
В программе можно использовать множественны тип как константы, в этом случае их определяют следующим способом:
Const YesOrNo= [Y’, y’, N’, n’];
Можно множественный тип определить как типизированную константу:
Const digits: set of char= [0’ .. 9’];
При описании множественного тип как констант допускается использование знака “+” (слияние множеств). Например,
Const Yes= [Y’, y’]; No= [N’, n’]; YesOrNo= Yes+ No;

Операции над множественными типами Паскаля
С множественными типами Паскаля можно выполнять действия объединения, исключения и пересечения.
Объединение множественных типов содержит элементы, которые принадлежат хотя бы одному множеству, при этом каждый элемент входит в объединение только один раз. Операция объединения множеств обозначается знаком +’.
Пример множественных типов Паскаля
Type symbol= set of char; Var small, capital, latin: symbol; small:= [a’ .. z’]; capital:= [A’ .. Z’]; latin:= small + capital; {образованы множества латинских букв путем объединения множеств small и capital}
Возможно объединять множественные типы и отдельные элементы. Например,
small:= [c’ .. z’]; small:= small + [a’] +[b’];
Исключение определяется как разность множественных типов, в котором из уменьшаемого исключаются элементы, входящие в вычитаемое. Если в вычитаемом есть элементы, отсутствующие в уменьшаемом, то они никак не влияют на результат. Операция исключения обозначается знаком -.
Пример исключения множественных типов Паскаля
letter:= [a’ .. z’]; {множества букв латинского алфавита} glasn:= [a’, e’, o’, u’, i’, y’]; {множества гласных букв} soglasn:= letter-glasn; {образовано множества согласных букв путем исключения из множества всех букв множества гласных букв}
Пресечение множественных типов– множества, содержащие элементы, одновременно входящие в оба множества. Операция пересечения множеств обозначается знаком *’.
Пример пересечения множественных типов
Type chisla= set of byte; Var z,x,y: chisla; .. x:= [0..150]; y:= [100..255]; z:= x*y {получено множества чисел из диапазона 100..150 в результате пересечения двух множеств}
Операции отношения множественных типов Паскаля
Наряду с рассмотренными выше операциями, над значениями множественного типа определены и некоторые операции отношения. Операндами операций над множественными значениями в общем случае являются множественные выражения. Среди операций отношения над значениями множественного типа особое место занимает специальная операция проверки вхождения элемента во множества, обозначаемая служебным словом in. В отличие от остальных операций отношения, в которых значения обоих операндов относятся к одному и тому же множественному типу значений, в операции in первый операнд должен принадлежать базовому типу, а второй – множественному типу значений, построенному на основе этого базового типа. Результатом операции отношения, как обычно, является логическое значение (true или false).
a’ in glasn значение операции true; o’ in soglasn значение операции false;
Операция сравнения на равенство множественных типов Паскаля. Множества считаются равными (эквивалентными), если все элементы одного множества присутствуют в другом и наоборот. Для операции сравнения на равенство или неравенство используются символы =’ и <>’.
A:= [2,1,3]; D:= [1,3,2];
Тогда операция A=D имеет значение true, а операция A<>D имеет значение false.
Проверка включения. Одно множество считается включенным в другое (одно множество является подмножеством другого), если все его элементы содержатся во втором множестве. Обратное утверждение может быть и несправедливым. Операции проверки включения обозначаются <=’ и >=’.
letter >= glasn; soglan <= letter;
Следует отметить, что применение операций < и > над операндами множественного типа недопустимо.
Задания для лабораторной работы:

A-множество букв имени студента
B-множество букв фамилии студента
C-множество букв отчества студента

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

Var d:char, A,B,С: set of char;
begin
For d:= 'a' to 'z' do
If d in A+B then write (d);
writeln;
For d:= 'a' to 'z' do
If d in A*C then write (d);
writeln;
For d:= 'a' to 'z' do
If d in B-C then write (d);




Контрольные вопросы:

Что такое множество? Каким требованиям должны удовлетворять все элементы множества?
Что такое базовый тип множества? Как он задается?
Как задается описание множественного типа?
Что называется объединением множеств? Что называется пересечением множеств? Лабораторная работа № 9

«Программирование записей»

Цель работы: ознакомится с основными приемами действий с комбинированными типами.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Понятие комбинированного типа (для чего нужен?).
Рассмотрим следующую ситуацию: необходимо хранить сведенья о группе учащихся. Нас будет интересовать: Ф. И. О., год рождения, номер группы, пол и т.д.
Каждая из характеристик имеет свой тип:
Ф. И. О. – строки, - string (array [ ] of char);
год рождения – число – integer;
номер группы – строка – string;
пол – логически (boolean), мужской – true, женский – false.
Ни один из рассмотренных ранее типов не позволяет манипулировать с такой
совокупностью данных. В частности, такие структуры необходимы при создании базы данных.
В Паскале реализован такой тип данных, который позволяет работать с такой
совокупностью, он называется комбинированным типом, значения которого называются
записями.
Записи состоят из полей. Каждое поле имеет уникальное имя и тип.
Пример: Создать комбинированный тип student, полями которого являются: фамилия, имя,
номер группы, год рождения, пол студента.

Type STUDENT = record
Name: string [10];
Full name: string [15];
Gr_Num: string [3];
Year: integer;
Sex: char;
End;
Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:


№1. Найти количество и вывести на экран фамилии, имена и номера групп студентов, подлежащих отчислению по итогам сессии, состоящей из трех экзаменов.
№2. Вывести на экран названия экзаменационных дисциплин и средний балл за экзамен по каждой из дисциплин.
№3. Найти количество и вывести на экран фамилии, имена и номера групп студентов, имеющих средний балл > 4.2 по итогам сессии, состоящей из трех экзаменов.
№4. Найти и вывести на экран фамилию преподавателя и название дисциплины, по которой больше всего хороших и отличных оценок за экзамен.
№5. Найти и вывести на экран средний балл по итогам сессии по каждой группе.
№6. Найти и вывести на экран фамилию преподавателя и название дисциплины, по которой больше всего неудовлетворительных оценок за экзамен.
№7. Найти среди сотрудников предприятия количество мужчин призывного возраста и вывести на экран их фамилии, имена и должности.
№8. Найти среди сотрудников предприятия количество мужчин и женщин пенсионного возраста и вывести на экран их фамилии, имена и должности (сначала мужчин, затем женщин).
№9. Найти среди сотрудников предприятия фамилию, имя, отчество и должность самого старшего.
№10. Найти среди сотрудников предприятия фамилию, имя, отчество и должность самого младшего.
№11. Найти среди сотрудников предприятия количество человек, проработавших на этом предприятии более 10 лет и вывести на экран их фамилии, имена и должности.
№12. Найти среди сотрудников предприятия количество ветеранов, проработавших на этом предприятии более 20 лет и вывести на экран их фамилии, имена и должности.
№13. Найти и вывести на экран фамилии, имена и номера групп студентов, имеющих наибольший средний балл по итогам сессии.
№14. Найти и вывести на экран фамилии, имена и номера групп студентов, имеющих наименьший средний балл по итогам сессии.

№15. Вывести на экран данные о днях рождения студентов по месяцам.
№16. Среди студентов группы найти имя и фамилию самого старшего.
№17. Среди студентов группы найти имя и фамилию самого младшего.
№18. Вывести на экран фамилии, имена, отчества сотрудников предприятия, имеющих детей младше 15 лет. Найти их количество.
№19. Вывести на экран фамилии, имена, отчества и должности незамужних женщин в возрасте старше 18 лет. Найти их количество.
№20. Вывести на экран фамилии, имена, отчества и должности холостых мужчин в возрасте старше 18 лет. Найти их количество.
№21. Вывести на экран фамилии, имена, номера групп студентов, проживающих в Уфе. Найти их количество.
№22. Вывести на экран фамилии, имена, номера групп студентов, имеющих право по возрасту принять участие в выборах. Найти их количество.
№23. Вывести на экран фамилии, имена, номера групп иногородних студентов (не проживающих в Уфе). Найти их количество.
№24. Вывести на экран список старост групп колледжа: указать фамилию, имя, номер группы.
№25. Найти процент мужчин и процент женщин, работающих на предприятии. Сделать вывод о том, кого больше.
№26. Найти количество и вывести на экран фамилии, имена и номера групп студентов, имеющих задолженность хотя бы по одной дисциплине.
№27. Среди студентов колледжа найти процент студентов, имеющих «хорошие» и «отличные» оценки по итогам сессии.
№28. Среди студентов колледжа найти процент студентов мужского пола призывного возраста.
№29. Среди студентов колледжа найти процент иногородних и «уфимских» студентов. Сделать выводы о том, кого больше.
№30. Среди сотрудников предприятия найти фамилию, имя, должность
сотрудника, имеющего максимальный стаж.

Контрольные вопросы:

Почему запись называют комбинированным типом данных?
Как определяется тип записи? Что называется полем записи?
Чем определяется объем памяти, требуемый для размещения записи?
Что такое составное имя поля записи? Из каких частей оно состоит и как записывается.
Лабораторная работа № 10

«Программирование процедур и функций»

Цель работы: научиться составлять программы с использованием подпрограмм.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования
- принципы структурного и модульного программирования

Краткие теоретические и учебно-методические материалы по теме лаораторной работы

Подпрограмма программа, реализующая вспомогательный алгоритм. Основная программа программа, реализующая основной алгоритм решения задачи и содержащая в себе обращения к подпрограммам. В Паскале существуют два типа подпрограмм: подпрограммы-функции и подпрограммы-процедуры. Используемые в программе нестандартные подпрограммы должны быть описаны в разделе описания подпрограмм.
Подпрограмма-функция имеет следующий формат описания:
Function <имя функции>(<параметры-аргументы>):<тип функции> ;
<блок>;
Тип функции может быть только простым типом (в Турбо-Паскале исключением из этого правила является тип string). Блок содержит локальные для функции описания и раздел
операторов. Обращение к функции является операндом в выражении.
Подпрограмма-процедура имеет следующий формат описания:
Procedure <имя процедуры> (<параметры>); <блок>;
В качестве результата процедура может возвращать в вызывающую программу множество простых или структурированных величин или не возвращать никаких значений. Среди параметров процедуры указываются как аргументы, так и результаты. Параметры-результаты должны быть обязательно параметрами-переменными (описанными после служебного слова Var). Обращение к процедуре отдельный оператор.
Обмен данными между вызывающей программой и подпрограммой может происходить не только через параметры, но и через глобальные переменные.
Пример:
Вычислить разность двух простых дробей:
HYPER13 EQ \F(a;b) HYPER15 - HYPER13 EQ \F(c;d) HYPER15 (а, b, c, d – натуральные числа). Результат получить в виде простой несократимой дроби е/f.
Решение. Следует вычислить числитель и знаменатель по правилам вычитания дробей, и сократить их на наибольший общий делитель (НОД). Вычисление НОД двух чисел оформим
в виде подпрограммы, используя известный в математике алгоритм Евклида.
Составим два варианта программы решения этой задачи: с подпрограммой-функцией и подпрограммой-процедурой.
Решение 1
Program subl;
Var А,В,С,D,G,E,F: integer;
Function Nod (М,N: integer):integer; {Описание функции }
begin { вычисления НОД
while M<>N do { двух натуральных чисел по }
if М>N then М: = М-N {алгоритму Евклида }
else N: = N-М;
Nod := М
еnd;
begin write (' Введите числители и знаменатели дробей:') ;
rеаdln (А,В,С,D);
Е:=А*D-В*С; {основная программа вычитания }
F:=B*D; {дробей и сокращения результата }
If Е=0 then writeln (Е) {Обращение к функции }
Else begin {производится дважды }
Е:=Е div Nod (Abs (Е) , F) ;
F:=F div Nod (Abs (Е) ,F);
writeln ('Ответ: ' , Е ,' /', F)
end
еnd.
Решение 2
Program Sub2;
Var А, В, С, D, G, F, E: integer;
Procedure Nod(М, N: integer; Vаг К : integer);
begin while M<>N do { процедура вычисления НОД }
if М>N then М: = М-N {двух натуральных чисел }
else N: = N-М; {по алгоритму Евклида }
К:=M
end;
begin write (' Введите числители и знаменатели дробей:') ;
rеаdln (А,В,С,D); {Основная программа }
Е:=А*D-В*С; {Обращение к процедуре }
F:=B*D; { происходит один раз }
If Е=0 then writeln (Е) { Результат получается }
else begin { в переменной G }
Nod (abs (Е) , F, G) ;
Е:=Е div G;
F:=F div G;
writeln ('Ответ: ' , Е ,' /', F)
end
еnd.
Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:


№ 1 Треугольник задан координатами своих вершин. Составить программу вычисления его площади.
№2 Составить программу нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел
(НОК(А, В) = HYPER13 EQ \F(А*В;НОД(А,В)) HYPER15
№ 3 Составить программу нахождения наибольшего общего делителя четырех натуральных чисел.
№ 4 Составить программу нахождения наименьшего общего кратного трех натуральных чисел.
№ 5 Написать программу нахождения суммы большего и меньшего из 3 чисел.
№ 6 Вычислить площадь правильного шестиугольника со стороной а, используя подпрограмму вычисления площади треугольника.
№ 7 На плоскости заданы своими координатами га точек Составить программу, определяющую между какими из пар точек самое большое расстояние.
Указание. Координаты точек занести в массив.
№ 8 Проверить, являются ли данные три числа взаимно простыми.
№ 9 Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.
№ 10 Даны две дроби HYPER13 EQ \F(А;В) HYPER15 и HYPER13 EQ \F(С;D) HYPER15 (А, В, С, D натуральные числа). Составить программу:
деления дроби на дробь;
умножения дроби на дробь;
сложения этих дробей.
Ответ должен быть несократимой дробью.
№ 11 На плоскости заданы своими координатами л точек. Создать матрицу, элементами которой являются расстояние между каждой парой точек.
№ 12 Даны числа X, Y, Z, Т длины сторон четырехугольника. Вычислить его площадь, если угол между сторонами длиной Х и Y прямой.
№ 13 Сформировать массив X(N), N-й член которого определяется формулой Х(N)= HYPER13 EQ \F(1;N) HYPER15
№ 14 Составить программу вычисления суммы факториалов всех четных чисел от m до n.
№ 15 Заменить отрицательные элементы линейного массива их модулями, не пользуясь стандартной функцией вычисления модуля. Подсчитать количество произведенных замен.

№ 16 Дан массив А(N). Сформировать массив В(М), элементами которого являются большие из двух рядом стоящих в массиве А чисел. (Например, массив А состоит из элементов 1, 3, 5, -2, 0, 4, 0. Элементами массива В будут 3, 5, 4.)
№ 17 Дан массив А(N) (N - четное). Сформировать массив В(М), элементами которого являются средние арифметические соседних пар рядом стоящих в массиве А чисел. (Например, массив А состоит из элементов 1, 3, 5, -2, 0, 4, 0, 3. Элементами массива В будут 2; 1,5; 2; 1,5.)
№ 18 Дано простое число. Составить функцию, которая будет находить следующее за ним простое число.
№ 19 Составить функцию для нахождения наименьшего нечетного натурального делителя k (k
·1) любого заданного натурального числа n.
№ 20 Дано натуральное число N. Составить программу формирования массива, элементами которого являются цифры числа N.
№21 Составить программу, определяющую, в каком из данных двух чисел больше цифр.
№ 22 Заменить данное натуральное число на число, которое получается из исходного записью его цифр в обратном порядке (например, дано число 156, нужно получить 651).
№ 23 Даны натуральные числа К и N. Составить программу формирования массива А, элементами которого являются числа, сумма цифр которых равна К и которые не больше N.
№ 24 Даны три квадратных матрицы А, В, С n-го порядка. Вывести на печать ту из них, норма которой наименьшая. Нормой матрицы считать максимум из абсолютных величин ее элементов.
№ 25 Два натуральных числа называются «дружественными», если каждое из них равно сумме другого (например, числа 220 и 284). Найти все пары «дружественных чисел», которые не больше данного числа N.
№ 26 Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары «близнецов» из отрезка [n, 2n], где n - заданное натуральное число больше 2.
№ 27 Написать программу вычисления суммы HYPER13 EQ \F(p;q) HYPER15 = 1 - HYPER13 EQ \F(1;2) HYPER15 + HYPER13 EQ \F(1;3) HYPER15 - ... + HYPER13 EQ \F((-1)n+1;n) HYPER15
для заданного числа n. Дробь HYPER13 EQ \F(p;q) HYPER15 должна быть несократимой {р, q - натуральные)
№ 28 Написать программу вычисления суммы 1 + HYPER13 EQ \F(1;2) HYPER15 + HYPER13 EQ \F(1;3) HYPER15 + ... + HYPER13 EQ \F(1;n) HYPER15 для заданного числа n.
Результат представить в виде несократимой дроби HYPER13 EQ \F(p;q) HYPER15 (р, q - натуральные).
№ 29 Натуральное число, в записи которого л цифр, называется числом Амстронга, если сумма его цифр, возведенная в степень n, равна самому числу. Найти все эти числа от 1 до k.
№ 30 Написать программу, которая находит и выводит на печать все четырехзначные числа вида abcd, для которых выполняется: а, b, с, d - разные цифры; б) ab - cd = а + b + с + d.

Контрольные вопросы:

1. Что понимают под структурным программированием? Зачем оно применяется?
2. В чем заключается метод нисходящего программирования?
3. Что называется подпрограммой?
4. В чем состоит сходство и различие подпрограмм-процедур и подпрограмм-функций в языке Турбо Паскаль?
5. В чем различие между стандартными и определенными пользователем подпрограммами?
Лабраторная работа № 11

«Программирование файлов»

Цель работы: научиться составлять программы с использованием подпрограмм.

Образовательные результаты, заявленные во ФГОС третьего поколения:
Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы

Файлом называется совокупность данных, записанная во внешней памяти под определенным именем. Имя файла – это любое выражение строкового типа, содержит до 8 разрешенных символов (латинские буквы, цифры и символы: ! @ # % ^ & ( ) ' ~ - _ ), за именем может быть разрешение – последовательность до 3-х разрешенных символов, отделяется от имени точкой.
В большинстве случаев файлы состоят из текстовых строк, или записей. Для описания файла используется сочетание file of:






Для доступа к файлу описывается специальная файловая переменная и обозначается как F, если файл состоит из записей, то описывается ещё переменная для доступа к полям записи R.
type
<имя типа> = <тип компонентов>;
var
: file of <имя типа>;
: <имя типа>;
Каждому файлу в языке ставится в соответствии файловая переменная определенного типа, поэтому для работы с файлом надо установить данное соответствие. Для этого используется процедура Assign (var F; Name: string); F – переменная любого типа.
Способы открытия файла:
Reset( var F: file); - открывает существующий файл;
Rewrite( var F: file); - создает и открывает новый файл.
Для нетипизированных файлов добавляется параметр RecSize типа Word, который устанавливает длину записи для функций обмена с файлом:
Reset( var F: file; RecSize: word);
Закрытие файла: Close (var F);
Переименование неоткрытого файла: Rename (var F; NewName: string);
Удаление неоткрытого файла: Erase (var F);
Типы файлов:
Текстовый файл – последовательность символов, разбитую на строки длиной от 0 до 256 символов. Описание: var
F: text; {F – файловая переменная}
Процедуры:
Append( var F: text); открывает уже существующий файл и ставит указатель на конец файла;
Readln – то же, что и Read, и дополнительно – чтение маркера конца строки и переход к новой строке; Readln(var F: text; V1 [,V2,Vn]; V1Vn – переменные разных типов.
Writeln – запись всех величин с установкой маркера конца строки в файл;
Writeln(var F: text; V1 [,V2,Vn]; V1Vn – переменные разных типов.
Функции:
Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) возвратил значение Truе. Во всех других случаях значение функции будет False.
Eof(var F:text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом, и False – в противном случае.

Типизированные файлы – файлы строго определенного типа. Применяются для создания баз данных.
type
FileRec=record

end;
var
F: file of FileRec

Нетипизированные файлы – эти файлы не имеют определенного типа (UntypedFile: File;)
Для таких файлов самым важным параметром служит длина записи в байтах. Открытие нетипизированного файла с длиной записи в 1 байт можно выполнить следующим образом: Rewrite(UntypedFile, 1); или Reset(UntypedFile, 1);
Для более быстрого ввода-вывода: BlockRead(var F: file ; var Buf ; Count : word
BlockWrite(var F: file ; var Buf ; Count : word
Buf – любая переменная, используемая для накопления информации из файла F.
Count – число считываемых блоков.

Пример: Дан файл f, компоненты которого являются действительными числами. Найти сумму компонент файла.

Var f: file of real; i, n: integer; s, m: real; a: string;
Begin
a:= назв.файла.txt’;
{связываем переменную f с внешним файлом и открываем файл для записи}
assign(f,a); rewrite(f);
randomize;
write(Vvedite n’); readln(n);
for i:=1 to n do
begin
{получаем случайные числа, выводим их на экран и записываем их в файл}
m:=random(45);
Write(m:5:2,’ );
Write(f,m);
end;
{закрываем файл}
Close(f); Writeln;
{связываем переменную f с внешним файлом и открываем файл для чтения}
Assign(f,a); reset(f);
S:=0;
{пока не достигнут конец файла, считываем поочередно числа из файла, выводим их на печать и находим сумму элементов}
While not eof(f) do
Begin
Read(f,m); Write(m:5:2,’ );
S:=S+m;
End;
{закрываем файл, выводим результаты на экран}
Close(f);
Write(s:5:2,’ );
End.

Задания для лабораторной работы:

Разработать и реализовать на языке программирования Turbo Pascal программу, выполняющую следующие действия:

Дан файл f, компоненты которого являются действительными числами. Найти произведение компонент файла.
Дан файл f, компоненты которого являются действительными числами. Найти наименьшее из значений компонент с четными номерами.
Дан символьный файл f. Записать в файл Н с сохранением порядка следования те символы файла F, которым в этом файле предшествует буква “a”.
Дан файл f, компоненты которого являются действительными числами. Найти сумму квадратов компонент файла.
Дан файл f, компоненты которого являются действительными числами. Найти сумму наименьшего и наибольшего из значений компонент с четными номерами.
Дан символьный файл f. Записать в файл Н с сохранением порядка следования те символы файла F, в след за которыми в этом файле идет буква “a”.
Дан файл f, компоненты которого являются действительными числами. Найти модуль суммы и квадрат произведения компонент файла.
Определить количество слогов в символьном файле.
Дан файл f, компоненты которого являются действительными числами. Найти последнюю компоненту файла.
Дан файл f, компоненты которого являются действительными числами. Найти среднее арифметическое элементов.
Дан файл f, компоненты которого являются действительными числами. Найти разность первой и последней компонент файла.
Дан файл f, компоненты которого являются действительными числами. Найти сумму чисел, находящихся в диапазоне от М до N.
Дан файл f, компоненты которого являются целыми числами. Найти количество чётных чисел среди компонент.
Дан файл f, компоненты которого являются целыми числами. Найти количество удвоенных нечётных чисел среди компонент.
Дан файл f, компоненты которого являются целыми числами. Найти количество квадратов нечётных чисел среди компонент.
Дан файл f, компоненты которого являются целыми числами. Найти минимальное среди чисел кратных трём.
Дан файл f, компоненты которого являются целыми числами. Найти количество простых чисел в файле.
Дан файл f, компоненты которого являются целыми числами. Определить каких чисел в файле больше, чётных или нечётных.
Дан файл f, компоненты которого являются целыми числами. Найти произведение чисел кратных трём и не превосходящих числа В.
Дан символьный файл. Добавить в файл символы Е, N, D.
Дан символьный файл. Подсчитать число вхождений в файл сочетаний АВ.
Дан символьный файл. Определить, входит ли в файл сочетание abcdef.

Контрольные вопросы:

Что такое файл? Для каких целей используются файлы?
Каковы требования к именам файлов?
Назовите общие и отличительные черты текстовых, типизированных и нетипизированных файлов.
Что общего у процедуры Reset и Rewrite и чем они отличаются?
Какие отличия существуют в использовании процедуры Reset при открытии различных типов файлов (текстовых, нетипизированных)?
Лабораторная работа № 12

«Выполнение работ в интегрированной среде разработчика»

Образовательные результаты, заявленные во ФГОС третьего поколения:

Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования
- принципы объектно-ориентированного программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Визуальное программирование представляет собой процесс создания Windows-приложений, при котором возможно одновременно конструировать, изменять, отлаживать приложение, используя интегрированную среду разработки IDE (Integrated Development Environment). По сути, визуальное программирование – это единство двух взаимосвязанных процессов: наглядного конструирования типового Windows-окна приложения и написания кода. Интегрированная среда разработки Delphi представляет собой многооконную систему, определяемую настройками пользовательского интерфейса:
Главное окно (Delphi6 – Project I).
Окно Обозреватель дерева объектов (Object Tree View).
Окно Инспектора объектов (Object Inspector).
Окно Конструктора формы (Forml).
Окно Редактора кода (UnitI.pas).
и др.
Модуль служит для размещения кода программы пользователя. Любая программа Delphi состоит из файла проекта (*.dpr), одного или нескольких модулей (*.pas). Имена в Delphi задаются латинскими буквами, цифрами и знаком подчеркивания. Интерфейс Delphi. Элементы интерфейса. Главное окно/ Главное окно осуществляет основные функции управления проектом создаваемой программы и состоит из:
Строки заголовка
Строки меню
Панели инструментов
Палитры компонентов
Внимание. Главное окно остается открытым все время работы IDE. Закрывая его, вы тем самым закрываете Delphi и все открытые в нем окна.
[ Cкачайте файл, чтобы посмотреть картинку ]
Строка заголовка главного окна отображает имя открытого в данный момент проекта.  По заголовку главного окна можно определить, в каком режиме открыт проект.
Текст заголовка
Режим работы

Delphi 6 – Project1
Редактирование

Delphi 6 – Project1 [Running]
Выполнение

Строка меню содержит команды, необходимые для разработки и тестирования приложений и используется так же, как любое стандартное Windows-меню. Панель инструментов. Панель инструментов представляет собой набор кнопок для быстрого доступа к необходимой функции меню. На этой панели есть, в частности, кнопка сохранения проекта на диске, кнопка открытия проекта, кнопка запуска программы на выполнение. Пользователь может изменить конфигурацию панели инструментов. Для этой цели используется окно пользовательских настроек, с помощью которого можно отображать, скрывать или менять положение на панели инструментов тех или иных инструментов.  Окно пользовательских настроек можно открыть, щелкнув правой кнопкой мыши на панели инструментов. С помощью  появившегося контекстного меню можно произвести необходимые настройки. Палитра компонентов устроена в виде наборов пиктограмм. На палитре компонентов, представляющей собой множественные тематические страницы, располагаются визуальные и невизуальные компоненты вашей будущей программы. Они составляют библиотеку визуальных компонентов (VCL – Visual Component Library).  Примечание. Невизуальные компоненты видны только при проектировании приложения. 
Окно проектировщика формы
Окно проектировщика формы – главное место, где происходит сборка программы из компонентов, содержащихся в палитре компонентов. Сама форма – это уже готовая к исполнению программа. В указанное место формы будет вставлен объект - экземпляр компонента выбранного типа.
[ Cкачайте файл, чтобы посмотреть картинку ]
Окно инспектора объетов
[ Cкачайте файл, чтобы посмотреть картинку ]
Окно инспектора объектов (Object Inspector) - отображает свойства, активизированного щелчком мыши какого-либо компонента или самой формы. Имя активизированного компонента находится под заголовком окна. Это окно имеет две закладки – Свойства ( Properties) и События ( Еvents). На первой закладке ( Properties) постоянно отображаются все доступные свойства выбранного компонента. В левой колонке содержится список, а в правой – текущие значения по умолчанию. На второй закладке ( Events) отображаются возможные обработчики событий для выбранного компонента. В левой колонке - названия, а в правой - соответствующие свойства или процедуры.  Что же такое свойства и реакции на события?

Каждый объект в Delphi, даже само окно разрабатываемого приложения, имеют определенные свойства: цвет, размер, отображаемый текст и т.п.  Эти свойства можно менять еще до запуска проектируемой программы на выполнение. В зависимости от изменяемого свойства результат можно просматривать уже сразу. Реакции на события, это результат произошедшего системного события, например, щелчок мыши, нажатие на кнопку, открытие окна и т.п. Реакцию на событие назначают программно, указывая список действий, которые необходимо произвести. Например, если пользователь выполняет клик по кнопке, производится копирование файла.
Окно редактора кодов

[ Cкачайте файл, чтобы посмотреть картинку ]
По ходу работы система формирует в окне Редактора кодов текст программы на языке Object Pascal, связанной с формой.  После загрузки Delphi это окно спрятано за окном формы, и его можно увидеть, щелкнув на кнопке Toggle Form/Unit в панели инструментов. 

На момент первого запуска это окно имеет заголовок Unit1.  В редакторе кода могут быть открыты сразу несколько файлов. Каждый открытый файл размещается на отдельной странице, а его название отображается на вкладке в верхней части.  Если в вашей программе три окна, то они будут взаимодействовать в процессе работы с тремя так называемыми модулями (Unit). Все эти модули и отображаются в редакторе. В окне кода программист непосредственно пишет текстовую часть программы. Текстовая часть разбивается на несколькие части, называемые процедурами и функциями, которые работают отдельно одна от другой.  Пользователь может дополнять текст программы самостоятельно или по предложению системы в момент размещения объектов в форме.
Пример
Открыть новый проект.
Разместить в форме следующие компоненты: метку Label и две кнопки Button. 
[ Cкачайте файл, чтобы посмотреть картинку ]


Выделить кнопку Button2, перейти в Object Inspector на страницу Properties (свойства), найти Caption (заголовок) и изменить заголовок Button2 на заголовок Выход.
Перейти на страницу Events (события) Object Inspector, найти событие OnClick, справа от него дважды щелкнуть мышкой. Оказавшись в коде программы, точнее, в заготовке процедуры кнопки Button2, надо написать лишь одну команду: 
procedure TForm1.Button2Click(Sender: TObject); begin   Close; end;

обязательно поставить точку с запятой после Close.
Сохранить проект под именем, например, Unit1.pas и Pr1.dpr.
Запустить программу, затем закрыть окно проекта кнопкой Выход.
Выделить форму, в Object Inspector в свойстве Caption заменить слово Form1 на Проект-1. Это и будет заголовком основного окна программы. 
Выделить кнопку Button1, найти в Object Inspector свойство Caption и заменить слово Button1 на название копки Приветствие. При необходимости увеличить длину кнопки.
Перейти на страницу Events (события) Object Inspector и найти OnClick, справа от него дважды щелкнуть мышкой. Попав в код программы, но теперь в процедуру кнопки Button1, надо написать следующий код:
Label1.Caption:=Первые успехи!’;
Сохранить проект окончательно, запустить и протестировать его.
Задания для лабораторной работы:
1. Открыть новый проект. 2. Разместить в форме следующие компоненты: метку Label и две кнопки Button.
[ Cкачайте файл, чтобы посмотреть картинку ]
3. Выполнить следующие действия: 
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Button2
Properties
Caption
 Выход

 
Events
OnClick
Close;

4. Сохранить проект под именем, например, Unit1.pas и Pr1.dpr. 5. Запустить программу, затем закрыть окно проекта кнопкой Выход. 6. Выполнить следующие действия:
Выделенный объект
Вкладка окна Object Inspector
Имя свойства/ Имя события
Значение/Действие

Form1
Properties
Caption
Проект-1

Button1
Properties
Caption
Приветствие

 
Events
OnClick 
Label1.Caption:=Первые успехи!’;

Сохранить проект, запустить и протестировать его.
 
Задание
Подсказка

1
Сделать шрифт выводимой реплики "Первые успехи!" отличным от стандартного по виду, цвету и размеру.
В Object Inspector дважды щелкнуть справа от названия свойства Font.

2
Заменить вид кнопки Выход на более привлекательный.
Для замены кнопки надо удалить существующую, а другую найти в палитре компонентов на вкладке Additional. Она самая левая, называется BitBtn. Затем изменить ее вид с помощью свойства Kind.

3
Сделать так, чтобы после нажатия кнопки Приветствие на экране  появлялось сообщение "Первые и не последние!". 
Изменить значение свойств Caption метки Label1 при реакции кнопки Button1 на событие OnClick.

4
Запустить исполняемый файл Pr1.exe не в среде Delphi, а в Windows.
Запустить исполняемый файл Pr1.exe не в среде Delphi, а в Windows.

Пример:
Для самоконтроля приводится базовый текст программы.
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Label1: TLabel; Button1: TButton; BitBtn1: TBitBtn; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:='Первые и не последние!'; end; end.


Контрольные вопросы:
1.Как запустить программу? 2.Из каких компонентов состоит окно программы? 3.В чем отличие невизуальных от визуальных компонентов? 4.С помощью какого свойства меняется заголовок у компонента? 5.Что такое свойства и реакции на события? 6.Проекты сохраняются в одном файле или нет?



Лабораторная работа № 13

«Разработка приложений»

Образовательные результаты, заявленные во ФГОС третьего поколения:

Студент должен
уметь:
- работать в среде программирования;
- реализовывать построенные алгоритмы в виде программ на конкретном языке программирования
знать:
- этапы решения задачи на компьютере;
- типы данных;
- базовые конструкции изучаемых языков программирования
- принципы объектно-ориентированного программирования

Краткие теоретические и учебно-методические материалы по теме лабораторной работы
Процесс создания программы в Delphi состоит из двух шагов: сначала нужно создать форму программы (диалоговое окно), затем написать процедуры обработки событий. Форма приложения (так принято называть прикладные программы, работающие в Windows) создается путем добавления на форму компонентов и последующей их настройки.
На форме практически любого приложения есть компоненты, которые обеспечивают интерфейс (взаимодействие) между программой и пользователем. Такие компоненты называют базовыми. К базовым компонентам можно отнести:
Label поле вывода текста;
Edit поле ввода/редактирования текста;
Button командную кнопку;
CheckBox независимую кнопку выбора;
RadioButton зависимую кнопку выбора;
ListBox список выбора;
ComboВох комбинированный список выбора.

Вид компонента, его размер и поведение определяются значениями свойств (характеристик) компонента.
Исходную информацию программа может получить из полей ввода/редактирования (компонент Edit), списка выбора (компонент ListBox) или комбинированного списка (компонент ComboBox). Для ввода значений логического типа можно использовать компоненты CheckBox и RadioButton.
Результат программа может вывести в поле вывода текста (компонент Label) или в окно сообщения (функция MessageDlg).
Для преобразования текста, например находящегося в поле ввода/редактирования, в целое число нужно использовать функцию StrToInt, а в дробное функцию StrToFloat. Для преобразования целого, например значения переменной, в строку нужно использовать функцию IntToStr, а для преобразования дробного функцию FloatToStr или FloatToStrF.

Пример: Написать программу Мили-километры, которая пересчитывает расстояние из миль в километры (1 миля равна 1 км 609,34 м). Рекомендуемый вид формы приведен на рисунке.

// щелчок на кнопке Пересчет
procedure TForm1.Button1Click(Sender: TObject);
var
mile: real; // расстояние в милях
km: real; // расстояние в километрах
begin
// ввести исходные данные
mile := StrToFloat(Edit1.Text);
// пересчитать
km := mile * 1.609344; // 1 миля 1,609344 км
// вывести результат
Label2.Caption := FloatToStr(mile) + ' миль это ' +
FloatToStr(km) + ' км.';
end;

Задания для лабораторной работы:

Разработать и реализовать в среде программирования Delphi программу, выполняющую следующие действия согласно варианту.

1. Усовершенствуйте программу Мили-километры так, чтобы пользователь мог ввести в поле Расстояние в милях только число.

2.Написать программу Конвертор, которая пересчитывает цену из долларов в рубли.
Программа должна быть спроектирована таким образом, чтобы пользователь мог ввести в поля редактирования только правильные данные (дробные числа). При нажатии клавиши в поле Курс курсор должен переходить в поле Цена, а при нажатии этой же клавиши в поле Цена на кнопку Пересчет.




3.Усовершенствуйте программу Конвертор так, чтобы событие KeyPress обоих полей редактирования обрабатывала одна процедура, а также чтобы кнопка Пересчет становилась доступной только после ввода данных в оба поля редактирования.

4.Написать программу, которая пересчитывает вес из фунтов в килограммы (1 фунт = 0,4536 кг). Программа должна быть спроектирована таким образом, чтобы пользователь мог ввести в поле Вес в фунтах только положительное число (целое или дробное).


5.Написать программу, вычисляющую скорость (км/час), с которой бегун пробежал дистанцию.. Программа должна быть спроектирована таким образом, чтобы в поля Дистанция и Минут можно было ввести только цело число, а в поле Секунд дробное.



6.Написать программу, которая вычисляет силу тока в электрической цепи. Программа должна быть спроектирована таким образом, чтобы кнопка Вычислить была доступна только в том случае, если пользователь ввел величину напряжения и сопротивления.


7.Написать программу, которая вычисляет сопротивление электрической цепи, состоящей из двух параллельно соединенных резисторов.

8. Написать программу, которая вычисляет доход по вкладу методом простых процентов (Доход = Сумма * (Процент / 12) * Срок). В результате щелчка на кнопке Вычислить в окне программы должна отображаться величина дохода и сумма в конце срока вклада. Программа должна быть спроектирована таким образом, чтобы в поля Сумма и Проц. ставка можно было ввести дробные числа, а в поле Срок только целое.


9.Написать программу, которая вычисляет сопротивление электрической цепи, состоящей из двух сопротивлений. Сопротивления могут быть соединены последовательно или параллельно. Если величина сопротивления цепи превышает 1 000 Ом, то результат должен быть выведен в килоомах.


10. Напишите программу, которая вычисляет доход по вкладу. Программа должна обеспечивать расчет простых и сложных процентов. Простые проценты начисляются в конце срока вклада, сложные ежемесячно и прибавляются к текущей (накопленной) сумме вклада и в следующем месяце проценты начисляются на новую сумму.



11. Написать программу, которая вычисляет стоимость жалюзи.


12.Написать программу, которая позволяет пересчитать цену из долларов в рубли или из рублей в доллары. Во время работы программы, в результате выбора вида конвертации, соответствующим образом должен меняться заголовок окна и текст, поясняющий назначение полей ввода.


13.Написать программу, которая вычисляет доход по вкладу сроком на 1, 2, 3, 6 месяцев или на один год (предполагается, что процентная ставка зависит от срока вклада).


14.Написать программу, которая вычисляет стоимость автомобиля с учетом дополнительных опций.

15.Написать программу, вычисляющую стоимость жалюзи в зависимости от размера и материала (пластик, алюминий, текстиль, бамбук, соломка), из которого они изготовлены.



16. Напишите программу, которая позволяет рассчитать тариф ОСАГО (обязательное страхование гражданской ответственности владельца транспортного средства).


17.Напишите программу-калькулятор, выполняющую сложение и вычитание.



18.Напишите программу Время, в окне которой отображается текущее время.


19.Усовершенствуйте программу Время так, чтобы в ее окне отображалось не только время, но и дата



20.Измените программу Время так, чтобы в ее окне секунды не отображались. Вместе с тем, чтобы пользователь видел, что часы идут, двоеточие, разделяющее часы и минуты, должно мигать. В окне программы также должна отображаться дата и день недели.



21.Напишите программу Таймер.

Форма программы Таймер


Окно программы Таймер во время установки интервала


Окно программы Таймер в процессе отсчета времени

22.Усовершенствуйте программу Таймер так, чтобы по истечении установленного интервала программа привлекала внимание пользователя звуковым сигналом, например одним из звуков Windows.

23. Напишите программу Таймер. Для ввода интервала используйте компоненты UpDown.



Контрольные вопросы:
1.Из каких шагов состоит процесс создания программы в Delphi?
2.Какие компоненты можно отнести к базовым?
3.Чем определяются вид компонента, его размер и поведение?









HYPER13PAGE HYPER15


HYPER13PAGE HYPER146HYPER15


HYPER13PAGE HYPER1445HYPER15



















ТИП

of

file



Главное окноОкно проектировщика формыОкно инспектора объетов Заголовок 1 Заголовок 2 Заголовок 3 Заголовок 7HYPER15Основной шрифт абзаца

Приложенные файлы

  • doc file1
    Размер файла: 999 kB Загрузок: 8