Лабораторная работа №1
Тема: Составление алгоритмов
Цель работы: Научиться составлять алгоритмы с линейными и разветвляющимися видами. Ознакомление с циклическим алгоритмом.
Теория: Алгоритмом называется точное описание, определяющее последовательность действий исполнителя, направленных на решение поставленной задачи.
Виды блоков:
Линейный Разветвляющийся Циклический
![]()


![]()
![]()
![]()
Действие условие условие
![]()
Действие Действие Действие Действие
Свойства алгоритма:
Однозначность алгоритма, т. е. единственность толкования исполнителем правил выполнения действий и порядка их выполнений.
Конечность алгоритма – обязательность завершения каждого из действий, составленных алгоритмов и завершимость выполнения алгоритма в целом.
Результативность алгоритма, предполагающая, что выполнение алгоритма должно завершиться получением определенных результатов.
Массивность, т. е. возможность применения данного алгоритма для решения целого класса задач.
Правильность алгоритма, под которым понимается способность алгоритма давать правильный результат решения поставленной задачи.
Задание1: Построить блок-схему алгоритма для вычисления. Результат вывести на экран.
1. Дана функция
Вычислить значение у при заданном a, b и x.
2. Построить блок-схему алгоритма для вычисления
, при условии, что в x¹0. Результат вывести на экран.
3. Построить блок-схему алгоритма для вывода длины двух катетов прямоугольного треугольника и нахождения длины гипотенузы и площади треугольника (использовать теорему Пифагора).
4. Построить блок-схему алгоритма для вычисления
. Результат вывести на экран.
5. Построить блок-схему алгоритма для вычисления
. При условии, что
. Результат вывести на экран.
6. Построить блок-схему алгоритма для вычисления длины окружностей с радиусами
и
и одним центром, а также площади кольца, образованного этими окружностями.
7. Построить блок-схему алгоритма для вычисления:
Результат вывести на экран.
8. Построить блок-схему алгоритма для вычисления:
при условии, что
. Результат вывести на экран.
9. Построить блок-схему алгоритма для нахождения объема куба и площади его сторон по произвольному ребру куба
.
10. Построить блок-схему алгоритма для вычисления:
результат вывести на экран.
11. Построить блок-схему алгоритма для вычисления:
, при условии, что а¹0. Результат вывести на экран.
12. Построить блок-схему алгоритма для вычисления объема куба и общей площади его граней, если длина ребра куба равна а.
13. Построить блок-схему алгоритма для вычисления.
F=
14. Ввести два числа, и найти какое из них минимальное, какое максимальное.
15. Вычислить: REZ=
![]()
16. Задача 4. Вывести три числа и удвоить значение тех из них, которые положительные.
17. Ввести четыре числа. Найти среди них минимальное и максимальное.
18. Построить блок-схему алгоритма для вычисления
.
19. Построить блок-схему алгоритма для вычисления

20. Ввести два числа
и
, являющихся радиусом концентрических окружностей и выяснить, какая из окружностей больше.
21. Ввести три числа и найти площади квадратов с такими сторонами, вывести площади квадратов в порядке возрастания.
22. Ввести четыре числа и найти сумму и произведение двух из них, не являющихся ни минимальным, ни максимальным.
23. Построить блок-схему алгоритма для вычисления: 
24. Построить блок-схему алгоритма для ввода двух чисел
и
. Если
<
, оба числа возвести в квадрат, если
- оставить их без изменения. Если
, возвести эти числа в куб.
25. Построить блок-схему алгоритма для вычисления
- если
,
- в противном случае
26. Ввести три числа, возвести в квадрат те из них, значения которых отрицательны.
27. Ввести 4 числа
,
,
,
. Найти среди них минимальное и вывести его на экран.
28. Построить блок-схему алгоритма для вычисления. 
29.Ввести два числа а1 и а2 если ни одно из них не равно 0 (а1¹а2¹0), то найти их произведение, противном случае вывести то число, которое ¹0.
30.Ввести три числа и если среди них есть хотя бы одно неотрицательное – найти их алгебраическую сумму.
Контрольные вопросы:
1. Что такое алгоритм?
2. Какие Виды блоков вы знаете?
3. Свойства алгоритма
Лабораторная работа №2
Тема: Ввод-вывод различных типов данных.
Цель работы: Ознакомление с процедурами ввода-вывода данных и с различными типами данных
Теория:
Числа, не имеющие дробной части в Паскале представляются целым типом. Целый тип описывается служебным словом INTEGER. Целые числа задаются в диапазоне от -32768 до +32767 и занимают два байта памяти.
Формат описания:
VAR <имя переменной>: INTEGER;
Числа, имеющие десятичную точку в записи в Паскале представляются вещественным типом, который описывается служебным словом REAL. Вещественные числа задаются в диапазоне от 2.9*10'39 до 1.7*1038 и занимают шесть байтов памяти. Формат описания:
VAR <имя переменной>: REAL;
Логические (булевые) переменные могут принимать одно из двух значений: TRUE, FALSE. Логические переменные применяются для проверки каких-то условий в ходе программы.
Логический тип описывается служебным словом BOOLEAN. Значения логического типа занимают один байт памяти. Формат описания:
VAR <имя переменной>: BOOLEAN;
Символьный тип данных предназначен для хранения одного символа и описывается служебным словом CHAR. Значения символьного типа занимают один байт памяти. Формат описания:
VAR <имя переменной>: CHAR;
Задание1:
1.Вычислить значения выражений:
а)20 div 4; д)20 mod 4;
б)20 div 3; е)20 mod 3;
в)24 div 7; ж)24 mod 7;
г)56 div 8; з)56 mod 8;
2.Указать порядок выполнения операций в
выражении:
а) -а mod b + a div b*c;
б) а mod b - a div b/c;
3.Записать на Паскале следующие формулы:
а)(1+х)
; д)sin 8;
б)
; е)arctg 7;
в)tgx; ж)
;
г)
; з)
;
4.Вычислить значения выражений:
а)trunc(20.4); д)round(243.6);
б)trunc(320.64); е)round(502.8);
в)trunc(780.56); ж)round(314.60);
г)trunc(900.784); з)round(521.16);
5.Определить тип(целый или вещественный)
выражения:
а)1+0.0; д)20/5;
б)sqr(5.0); е)sqrt(36);
в)succ(-2); ж)round(314.60);
г)trunc(-900.7); з)sin(0);
6.Если у - вещественная переменная, а n – целая,
то какие из следующих операторов присваивания правильные, а какие нет?
а)у:=n+1; д)n:=sqr(sqr(n));
б)n:=y-1; е)y:=trunc(y);
в)n:=6.0; ж)n:=n/6;
г)n:=y div 4; з)n:=n*sqrt(9);
7.Вычислить значения выражений:
а)3*7 div 2 mod 7/3-trunc(1);
б)succ(round(5/2)-pred(3))+1;
8.Присвоит целой переменной h первую цифру из
дробной части числа х(если х=32.675,то h=6)
9.Дано вещественное число х
а) выделить его целую часть;
б) округлить данное число до n значащих цифр после запятой.
10.Найти остаток деления целого числа а на целое
число в.
Задание2:
1.Записать на Паскале отношение, истинное при выполнении указанного условия и ложные в противном случае:
а)целое k делится на 7 ;
б)уравнение ах2 + bx+с = 0 ( а*0 ) не имеет вещественных корней;
в)точка ( х, у) лежит вне круга радиуса г с центром в точке (1 , 0 );
г)натуральное число п является полным квадратом.
2.Вычислить значение выражений :
а)not odd(n) при n = 0;
б)t and (p mod 3 = 0) при t = true, p = 20;
B)(x*y<>0)and(y>x) при х = 2, у = 1;
г)(х = у) or ( у > х ) при х = 2, у = 1;
д)a or (not b ) при а = false, b = true.
3.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:
а) 0<х<1;
б) х = max (х, у, z);
в) х = max (х, у, z) (операцию not не использовать );
г) хотя бы одна из логических переменных а и b имеет значение true;
д) обе логические переменные а и b имеют значение true;
4.Вычислить значение выражения:
a)true or (1/10>0);
б)(1/10<0) or true
5.Объяснить ошибки в следующих записях:
а) 1 and 0; б) true + false; в) true<0;
г) not 2 = 5; д) х>0 or у = 4;
е) not not b or or d
6.Указать порядок выполнения операций при вычислении выражения:
а) a not b or not c and d;
б) (x > = 0) or t and odd (x)or(y*y<>4)
7. Вычислить следующие выражения при
а = true и b - false:
a) a or b and not a;
б) (a or b) and not a;
в) not a and b ;
r) not ( a and b);
8.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:
а)х принадлежит отрезку [0,1];
б)х лежит вне отрезка [0,1];
в)х принадлежит отрезку [2,5] или [-1,1];
г)х лежит вне отрезков [2,5] и [-1,1 ];
д)каждое из чисел х, у, и z положительно;
е)хотя бы одно из чисел х, у и z положительно;
ж) ни одно из чисел х, у и z не является положительным;
9. Вычислить значения выражений:
a) false<true; 6)ord(false)=l;
в) pred(true); г) ord(succ(false))>0 »
10. Вычислить значения выражений: ,
а)not (pred(c) or (ord( с) =1)) при c=true;
б)(p<true)=(q=false) при p =q=true;
в)a and b>a or b при a=false, b=true.
Контрольные вопросы:
Каким служебным словом описывается целый тип данных? Каким служебным словом описывается вещественный тип данных? sqrt(36)=? Формат описания логического типа? Формат описания символьного типа?3.Какие переменные могут принимать логические типы данных?
Лабораторная работа №3-4
Тема: Оператор присваивания.
Цель работы: Ознакомление с процедурами ввода-вывода данных и с различными типами данных
Теория:
Оператор присваивания является одним из основных операторов языка программирования. Имеет следующий формат записи:
<имя переменной>:=<выражение>;
Оператор присваивания помещает значение <выражение> в <имя переменной>. Выражение задает правило вычисления значения переменной. Тип переменной должен совпадать с типом результата вычислений.
Процедуры ввода производят ввод данных с клавиатуры. Можно ввести любое количество знаний переменных, идентификаторы которых перечислены в круглых скобках через запятую. Имеются две процедуры ввода:
Read (список переменных);
Readln (список переменных);
Read производит ввод данных, не переводя при этом курсор на следующую строку. Readln производит ввод данных, и переводит при этом курсор на следующую строку.
Для вывода данных используются процедуры вывода:
Write(список выражений);
Writeln(список выражений);
Write производит вывод данных, не переводя курсор на следующую строку, а Writeln переводит курсор
Задание1:
1.Вывести на экран текст «Моя первая программа
на Турбо Паскале», используя 2 операторы ввода
–вывода (Write, Read).
2. Даны 2 действительных числа а и в. Получить их сумму, разность и произведение.
3.Даны 2 действительных, положительных числа. Найти среднее арифметическое и среднее геометрическое этих чисел.
4.Вычислить значение функции:
А) f=(x+1)2+3(x+1) при x=3;
В) f=(6x2+3(x3+1)2) при x=4;
C) f=x2(6x2+1)+5(x2+1)2 при x=2;
D) f=x3+3x2+1 при x=4;
E) f=(x+1)2/3+(x3+1)2 при x=5;
F) f=x2/2+(x2/2)2+3 при x=5;
G) f=4x2+2(x4+1)2 при x=4.
5.Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.
6.Вычислить периметр и площадь прямоугольного треугольника по длинам двух катетов.
9.Дано действительное число а. Не пользуясь ни какими другими арифметическими операциями, кроме умножить получить
1. а4 за 2 операции;
2. а6 за 3 операции;
3. а7 за 4 операции;
4. а8 за 3 операции;
5. а9 за 4 операции;
6. а10 за 4 операции;
7. а13 за 5 операции;
8. а15 за 5 операции;
9. а21 за 6 операции;
10. а28 за 6 операции;
Контрольные вопросы:
Оператор присваивания? Операторы ввода-вывода?3. Отличие между операторами Read и Readln, Write и Writeln?
Лабораторная работа №5-6
Тема: Запись выражений. Работа с основными типами данных
Цель работы: Научиться записывать сложные выражения в программах.
Теория:
Язык Turbo Pascal, названный в честь французского математика и философа Блеза Паскаля, был создан как учебный язык программирования в годом Никлаусом Виртом.
Вызов Turbo Pascal осуществляется с помощью файла Turbo. exe. Для этого необходимо ввести в командную строку DOS команду Turbo. Основной экран Turbo Pascal состоит из трех различных по функциональному назначению частей:
1. строка меню;
2. рабочая зона;
3. строка состояния.
CTRL-F9-запуск программы
ALT-F5-просмотр результата
Сохранить созданную программу:
1)F2
2)FILE
SAVE
3)FILE
SAVE FILE AS
Числа, не имеющие дробной части в Паскале представляются целым типом. Целый тип описывается служебным словом INTEGER. Целые числа задаются в диапазоне от -32768 до +32767 и занимают два байта памяти.
Формат описания:
VAR <имя переменной>: INTEGER;
Числа, имеющие десятичную точку в записи в Паскале представляются вещественным типом, который описывается служебным словом REAL. Вещественные числа задаются в диапазоне от 2.9*10'39 до 1.7*1038 и занимают шесть байтов памяти. Формат описания:
VAR <имя переменной>: REAL;
Логические (булевые) переменные могут принимать одно из двух значений: TRUE, FALSE. Логические переменные применяются для проверки каких-то условий в ходе программы.
Логический тип описывается служебным словом BOOLEAN. Значения логического типа занимают один байт памяти. Формат описания:
VAR <имя переменной>: BOOLEAN;
Символьный тип данных предназначен для хранения одного символа и описывается служебным словом CHAR. Значения символьного типа занимают один байт памяти. Формат описания:
VAR <имя переменной>: CHAR;
Задание2:
Построить программу для подсчета общего осадков в мм за 7 дней месяца. Вычислить все значения функции F=Контрольные вопросы:
Оператор присваивания? Запись сложных выражений. Запись возведения в квадрат. Запись возведения в степень. Модуль числа?Лабораторная работа №7
Тема: Условный оператор, вложенные проверки
Цель работы: Ознакомление с условным оператором, вложенные проверки, построение блок-схем
Теория:
В разветвляющихся процессах в зависимости от некоторых условий, проверяемых по ходу вычислений, нужно выполнить либо одно, либо другое действие. Для задания таких действий используется условный оператор:
IF <логическое выражение> THEN <оператор1> ELSE <оператор2>;
Условный оператор работает по следующему алгоритму. Вначале вычисляется <логическое выражение>. Если результат True (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат False (ложь), то выполняется <оператор2>, а <оператор1> пропускается;
Задание:
1. Даны действительные числа х, у. Получить:
а) Max(x, y);
b) Min(x, y);
c) Max(x, y), Min(x, y);
2. Даны действительные числа x, y, z. Получить:
а) Max(x+y+z, xyz);
b) Min2(x+y+z/2, xyz+1).
3. Даны действительные числа a, b, c. Проверить выполняются ли неравенства a< b<c.
4. Перераспределить значения переменных х и у так, чтобы в х оказалось большее из этих значений, а у – меньшее.
5. Записать последовательность операторов для решения указанной задачи:
5.1. по номеру у некоторого года определить с – номер его столетия(учесть, что, к примеру началом ХХ столетия был 1901 год);
5.2. если уравнение ax2+bx+c=0 имеет вещественные корни, то логической переменной присвоить значение true, а переменным х1 и х2 – сами корни, иначе же переменной t присвоить false, а значение переменных х1 и х2 не менять.
5.3. считая, что стандартные функции sin и cos применим только к аргументам из отрезка [0, п/2], вычислить y=sin x для произвольного числа х.
6. Значение переменных а, b, с поменять местами так, чтобы оказалось а>=b>=с.
7. Даны числа x1, y1, x2, y2, x3, y3 – координаты трех каких-то вершин прямоугольника вычислить и напечатать координаты четвертой вершины.
8. Упорядочить три числа a, b, c по возрастанию.
9. Дано натуральное число а. Выяснить, является ли данное число четным.
10. Даны три действительных числа. Выбрать из них те, которые принадлежать интервалу (1.0; 3.5)
11. Дана действительные числа x, y. Меньшее из этих двух чисел, заменить их полусуммой а, большее их удвоенным произведением.
Контрольные вопросы:
Условный оператор, полный и краткий формат По какому алгоритму работает условный оператор?Лабораторная работа №8-9
Тема: Оператор выбора. Сложные логические условия (предикаты)
Цель работы: Работа с оператором выбора
Теория:
Оператор CASE работает следующим образом. Сначала вычисляется значение выражение селектора, затем это значение сравнивается последовательно с метками. Если значение селектора совпадает с одной из меток, то выполняется оператор этой метки и управление передается оператору, следующему за оператором CASE. Если значение селектора не совпадает ни с одной меткой, то выполняется оператор следующий за ELSE.
CASE <селектор> OF
Список меток1: оператор1;
Список меток2: оператор2;
……………………………..
Список меток n: операторn;
ELSE оператор n +1;
END;
<селектор>-выражение простого типа, кроме вещественного;
список меток – список значений выражения селектора или одно его значение. Метки являются константами и должны быть такого же типа, что и селектор.
Задание:
1. По введенному дню недели определить, рабочий или выходной день.
2. По введенному номеру месяца определить, название месяца.
3. Для целого числа k от 1 до 9 напечатать значение переменной k римскими цифрами.
4. Для целого числа k от 1 до 99 напечатать фразу " мне k лет ", учитывая при этом, что при некоторых значениях k слово " лет " надо заменить на слово " год " или " года ".
5. Для натурального числа k напечатать фразу " мы нашли k грибов в лесу ", согласовав окончание слова " гриб " с числом k.
6. По введенному номеру месяца определить количество дней в месяце (год считать невисокосным).
7. В старояпонском календаре был принять 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год-год зеленой крысы - был началом очередного цикла). Написать программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.
8.Пусть значения функции f(n) равно количеству букв в записи числа п русскими словами: f(1)=4(один),f(3)=3(три), f(42)=42 (сорок два) и т. п. Напечатать все натуральные числа п, меньшие 100, для которых f(n)=n.
9. По введенному натуральному числу п (п
100), обозначающему количество ворон, вывести надпись «На дереве п ворон», где ворона склоняется соответственно п: «ворон», «ворона», «вороны». В случае и, превышающего 100, вывести надпись «Ветка обломилась».
10. Группу детей, приехавшую в пионерский лагерь, распределяют по отрядам следующим образом:
6-7 лет - 5-й отряд,
7-9 лет - 4-й отряд,
9-11 лет - 3-й отряд,
11-13 лет - 2-й отряд,
13-15 (включительно) - 1-й отряд.
Составить программу, которая по вводимому возрасту определяет приезжающего ребёнка в отряд.
11. Написать программу, которая по значению входного параметра (целое число) определяет значение выходного параметра (строка) по следующей зависимости:

12. Написать программу, которая по набранным баллам (1-100) в результате некоторого тестирования, сообщает полученную оценку:

13. Дано целое положительное число п в диапазоне от 1 до 99. Определить его текстовый эквивалент. Например, при n=124 необходимо вывести «сто двадцать четыре».
Контрольные вопросы:
Оператор выбора, формат оператора выбора Каким образом работает оператор выбора?Лабораторная работа №10-11
Тема: Оператор цикла с предусловием
Цель работы: Работа с оператором цикла с предусловием
Теория:
Если заранее неизвестно число повторений цикла, а задано условие окончания или продолжения цикла, то в программе используются циклы с предусловием и постусловием.
Цикл с предусловием записывается следующим образом:
WHILE <условие> DO <тело цикла>;
Условие-это выражение логического типа.
Задание:
1. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.
2. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность возрастающей.
3. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность закономерной.
4. Вводится последовательность ненулевых чисел, 0-конец последовательности. Подсчитать, сколько в ней отрицательных чисел, и сумму положительных чисел.
5. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли она неубывающей.
6. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, сохраняет ли она знак.
7. Вводится последовательность ненулевых чисел; 0-конец последовательности. Подсчитать, сколько в ней пар соседних равных элементов.
8. На выставке собак, где были представлены разные породы, отбор животных производился по возрасту и высоте холки. Определить, сколько было боксеров 2-3-летнего возраста с высотой холки не менее 55 сантиметров.
9. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины.
10. Вычислить:
а) у= cosx+cosx2+cosx3+ ... + cosx30;
б)у=1!+2!+3!+...n!(n>1);
в) у - первое из чисел sin x, sin sin x, sin sin sin x,., меньшее по модулю 10-4.
Числа Фибоначчи (fn) определяются формулами
f0=f1=1; fn=fn-1+fn-2 при n=3,4,... то есть два первых числа равны единице, а каждый последующий член является суммой двух предыдущих.
а) определить f-40-е число Фибоначчи;
б) найти f - первое число Фибоначчи, большее т(т>1);
в) вычислить s-сумму всех чисел Фибоначчи, которые не превосходят 1000.
11. Дано натуральное число п.
а) определить n-ое число Фибоначчи;
б) найти сумму всех чисел Фибоначчи, которая не превосходит п;
в) вычислить сумму п чисел Фибоначчи.
13. Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи.
14. Не используя стандартные функции (за исключением abs), вычислить с точностью eps>0:
а) у=ех=1+х/1 !+х2/2!+.. .+хn/n!+...;
б) y=sh x =x+x3/3!+x5/5!+...+x2n+1/(2n+l)!+...;
в) у= cosx = 1-х2/2!+х4/4!-.. .+(-1) nх2n /(2n)!+...;
г) у = ln (1+х)=х-х2/2+х3/3-...+(-1)n-1 хn/n +...(x<1);
д) у= arctg x =x-x3/3+x5/5-...+(-l)nx2n+1/(2n+l)+...(x<l).
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps,-вce последующие слагаемые можно уже не учитывать.
15. Напечатать таблицу значений функций sin x и cos x на отрезке [0,1] с шагом 0.1 в следующем виде (считать, что при печати на каждое вещественное число отводится по 6 позиций строки):
_х_____ sin(x)_____ cos(x)_
0.00
0.10
1.03
16. Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить три наибольших числа среди них.
17. Дана непустая последовательность ненулевых целых чисел, за которой следует 0. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 1, -34, 8,14, -5 знак меняется 3 раза.)
18. Дана последовательность из не менее чем двух натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - простые числа.
19. Дано натуральное число п найти количество цифр данного числа, больших а (а вводится с клавиатуры);
20. Найти сумму цифр заданного натурального числа п.
21. Определить число, получаемого выписыванием в обратном порядке цифр заданного натурального числа п.
22. Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу
![]()
23. Вычислить значения функции у=4х3-2х2+5 для значений х, изменяющихся от -3 до 1, с шагом 0.1.
24. Дано натуральное число п. Вычислить значения функции
для х= 1; 1.1; 1.2; ...;1+0.1n.
25. Даны натуральные число п, действительное числа а1, ... , ап. Получить b1, ... , bп, где
![]()
26. Вычислить: у= sin 1+ sin 1.1+sin 1.2+...+sin2.
Контрольные вопросы:
Формат оператора цикла с пред- и постусловием. Чем отличается оператор цикла с предусловием от оператора цикла с постусловием?Лабораторная работа №12,13.14
Тема: Оператор цикла с пост условием. Организация вложенных циклов
Цель работы: Работа с оператором цикла с постусловием
Теория:
Если заранее неизвестно число повторений цикла, а задано условие окончания или продолжения цикла, то в программе используются циклы с предусловием и постусловием.
REPEAT
Оператор1;
. . .
оператор N
UNTIL <условие>;
В цикле с постусловием проверка условия производится после тела цикла, поэтому его называют циклом с постусловием.
Задание:
12. Дана непустая последовательность различных натуральных чисел, за которой следует 0. Определить порядковый номер наименьшего из них.
13. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность возрастающей.
14. Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли последовательность закономерной.
15. Вводится последовательность ненулевых чисел, 0-конец последовательности. Подсчитать, сколько в ней отрицательных чисел, и сумму положительных чисел.
16. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, является ли она неубывающей.
17. Дана последовательность ненулевых чисел, 0-конец последовательности. Определить, сохраняет ли она знак.
18. Вводится последовательность ненулевых чисел; 0-конец последовательности. Подсчитать, сколько в ней пар соседних равных элементов.
19. На выставке собак, где были представлены разные породы, отбор животных производился по возрасту и высоте холки. Определить, сколько было боксеров 2-3-летнего возраста с высотой холки не менее 55 сантиметров.
20. В очереди за билетами стоят мужчины и женщины. Какое количество мужчин стоит в начале очереди до первой женщины.
21. Вычислить:
а) у= cosx+cosx2+cosx3+ ... + cosx30;
б)у=1!+2!+3!+...n!(n>1);
в) у - первое из чисел sin x, sin sin x, sin sin sin x,., меньшее по модулю 10-4.
Числа Фибоначчи (fn) определяются формулами
f0=f1=1; fn=fn-1+fn-2 при n=3,4,... то есть два первых числа равны единице, а каждый последующий член является суммой двух предыдущих.
а) определить f-40-е число Фибоначчи;
б) найти f - первое число Фибоначчи, большее т(т>1);
в) вычислить s-сумму всех чисел Фибоначчи, которые не превосходят 1000.
22. Дано натуральное число п.
а) определить n-ое число Фибоначчи;
б) найти сумму всех чисел Фибоначчи, которая не превосходит п;
в) вычислить сумму п чисел Фибоначчи.
13. Дана непустая последовательность натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - числа Фибоначчи.
14. Не используя стандартные функции (за исключением abs), вычислить с точностью eps>0:
а) у=ех=1+х/1 !+х2/2!+.. .+хn/n!+...;
б) y=sh x =x+x3/3!+x5/5!+...+x2n+1/(2n+l)!+...;
в) у= cosx = 1-х2/2!+х4/4!-.. .+(-1) nх2n /(2n)!+...;
г) у = ln (1+х)=х-х2/2+х3/3-...+(-1)n-1 хn/n +...(x<1);
д) у= arctg x =x-x3/3+x5/5-...+(-l)nx2n+1/(2n+l)+...(x<l).
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps,-вce последующие слагаемые можно уже не учитывать.
15. Напечатать таблицу значений функций sin x и cos x на отрезке [0,1] с шагом 0.1 в следующем виде (считать, что при печати на каждое вещественное число отводится по 6 позиций строки):
_х_____ sin(x)_____ cos(x)_
0.00
0.10
1.03
16. Дано не менее трех различных натуральных чисел, за которыми следует 0. Определить три наибольших числа среди них.
17. Дана непустая последовательность ненулевых целых чисел, за которой следует 0. Определить, сколько раз в этой последовательности меняется знак. (Например, в последовательности 1, -34, 8,14, -5 знак меняется 3 раза.)
18. Дана последовательность из не менее чем двух натуральных чисел, за которой следует 0. Вычислить сумму тех из них, порядковые номера которых - простые числа.
19. Дано натуральное число п найти количество цифр данного числа, больших а (а вводится с клавиатуры);
20. Найти сумму цифр заданного натурального числа п.
21. Определить число, получаемого выписыванием в обратном порядке цифр заданного натурального числа п.
22. Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу
![]()
23. Вычислить значения функции у=4х3-2х2+5 для значений х, изменяющихся от -3 до 1, с шагом 0.1.
24. Дано натуральное число п. Вычислить значения функции
для х= 1; 1.1; 1.2; ...;1+0.1n.
25. Даны натуральные число п, действительное числа а1, ... , ап. Получить b1, ... , bп, где
![]()
26. Вычислить: у= sin 1+ sin 1.1+sin 1.2+...+sin2.
Контрольные вопросы:
Формат оператора цикла с пред- и постусловием. Чем отличается оператор цикла с предусловием от оператора цикла с постусловием?Лабораторная работа №15
Тема: Цикл с параметром
Цель работы: Ознакомление с операторами цикла итерационного типа.
Теория:
Последовательность команд, выполняющихся несколько раз в зависимости от некоторого условия, называется циклом. Если заранее известно число повторений цикла, то в программе используются циклы с параметром. В общем виде цикл с параметром задается следующим образом:
FOR <переменная цикла>:=<выражение1> TO <выражение2>DO<тело цикла>;
<переменная цикла>-управляющая переменная, называется параметром цикла, должна быть любого скалярного типа кроме вещественного:
<выражение1>и <выражение2> определяют границу изменения параметра цикла.
Задание:
1. Если среди чисел sin xn (п=1, 2...,30) есть хотя бы одно отрицательное число, то логической переменной t присвоить значение true, а иначе - значение false.
2. Дано 100 вещественных чисел. Определить, образуют ли они возрастающую последовательность.
3. Дана последовательность из 70 целых чисел. Определить, со скольких отрицательных чисел она начинается.
4. Дано 100 целых чисел. Определить, сколько из них принимает наибольшее значение.
5. Даны целые числа x1,x2,...,x55 вычислить величину
x1(x2+x3)(x4+x5+x6)(x7+x8+x9+x10)...(x4б+x47+...+x55).
6. Дана последовательность из 100 целых чисел. Определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей.
7. Дано 200 вещественных чисел. Определить, сколько из них больше своих "соседей", т. е. предыдущего и последующего чисел.
8. Найти сумму десяти произвольных чисел. Результат отправить в переменную S.
9. Найти минимальное из п отрицательных чисел.
10. Найти максимальное из л отрицательных чисел.
11. Ввести п чисел. определить, сколько среди них положительных. Результат отправить в переменную к.
12..Ввести п чисел. определить сколько, среди них превосходит первое число. Результат отправить в переменную к,
13. Вычислить:

Контрольные вопросы:
Формат оператора цикла с параметром Каким образом работает оператор цикла с параметром?Лабораторная работа №16
Тема: Перечисляемый и ограниченный типы
Цель работы: Ознакомление с перечисляемым и ограниченным типами
Теория:
Перечисляемый тип – это тип, составленный из множества упорядоченных элементов. При определении перечисляемого типа перечисляются все значении, которые может принимать переменная этого типа.
Создаваемый перечисляемый тип определяется в разделе типов TYPE:
<имя типа>=(значение1, значение2, значениеn);
<имя типа>-имя типа, определяемого программистом;
(значение1, значение2, . . . значениеn) являются константами определенного.
Ограниченные типы данных могут принимать значения в заданном диапазоне значений. Ограничение диапазона задается указанием минимального и максимального диапазона
<мин. значение>. . .<макс. значение>;
Ограниченные типы определяются в разделе TYPE или VAR.
Задание:
1. Имеются следующие описания:
type месяц=(янв, фев, март, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var m, ml :месяц ;
k:l..maxint;n:1..12;
Присвоить переменной ml:
а)название месяца, следующего за месяцем т (с учетом того, что за декабрем идет январь);
б) название k-гo месяца после месяца m;
2. Имеются следующие описания:
type страна=(Австрия, Болгария, Греция, Италия, Норвегия, Франция, ФРГ);
столица=(Вена, София, Афины, Рим, Осло, Париж, Бон);
var st: страна; cap: столица;
По значению переменной st (названию страны ) присвоить переменной cap название столицы этой страны.
3. Имеются следующие описания:
var Р:(ада, бейсик, модула2, лисп ,паскаль, пл1, фортран);
A:(ada, basic, modula2,lisp, paskal, pll, fortran);
По Р - русскому названию языка программирования присвоить переменной А английское название.
4. Имеются следующие описания:
type название = (ноль, один, два, три, четыре, пять);
var :d:'0'..'5';
n:название;
По литере -цифре d присвоить переменной п название этой цифры.
5. Имеются следующие описания:
type нота = (до, ре, ми, фа, соль, ля, си);
интервал=(секунда, терция, кварта, квинта, секста, септима); var nl, n2: нота; i: интервал;
Определить i-интервал, образованный нотами n1 и n2(n1 n2):секунда-это интервал из двух соседних (по кругу) нот (например, ре и ми, си и до),терция-интервал через ноту (например, фа и ля, си и ре) и т. д. 7.11. Имеются следующие описания: type сезон = (зима, весна, лето, осень);
месяц = (янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек);
var m: месяц; s: сезон; Определить s - сезон, на который приходится месяц т.
6. Имеются следующие описания:
type страна = (ГДР, Куба, Лаос, Монако, Непал, Польша);
континент = (Азия, Америка, Европа);
var s: страна; с: континент;
По s - названию страны определить с - название ее континента.
7. Имеются следующие описания:
type единица = (дециметр, километр, метр, миллиметр, сантиметр);
длина = real;
var s: страна;
р: единица;
Значение переменной х, означающее некоторую длину в единицах p, заменить на величину этой же длины в метрах.
8. Имеются следующие описания:
type цвет = (черный, серый, белый);
var с: цвет;
Напечатать значение переменной с.
9. Имеются следующие описания:
type letter = (a, b, с, d);
var x: letter;
Ввести заданное во входном файле значение типа letter (т. е. а, b, с или d) и присвоить его переменной х.
10. Имеются следующие описания:
type падеж = (им, род, дат, вин, твор, предл);
слово = (степь, боль, тетрадь, дверь);
var w. слово;p: падеж;
Напечатать слово w в падеже р и единственном числе (например, при w=степь и р = твор надо напечатать слово степью).
11. Имеются следующие описания:
type курс = (С, В, Ю, 3,); { север, восток, юг, запад }
приказ = (вперед, вправо, назад, влево );
varKl, K2: курс; ПР: приказ;
Корабль сначала шел по курсу К1, а затем его курс был изменен согласно приказу ПР. Определить К2 - новый курс корабля.
12. Имеются следующие описания:
var d:28..31;
m: месяц;
Переменной d присвоить количество дней в месяце т ( год считать невисокосным).
13. Имеются следующие описания:
var у: 1901..2000;
m: месяц; d: 1..31;
t: boolean;
Переменной t присвоить значение true, если тройка у, т, d образует правильную дату, и значение false - иначе ( при 31 июня и т. п.).
14. Имеются следующие описания:
var d, dl: 1 ..31; m, ml: месяц;
у: 1901..2000;
yl: 1901..2001;
По дате d, т, у определить d1, m1, y1 - дату следующего дня.
15. Имеются следующее описание:
var k:; d: 1..31; m: месяц;
а) Определить k - порядковый номер того дня високосного года, который имеет дату d, т;
б) Определить d, т - дату k-гo по счету дня високосного года.
Контрольные вопросы:
Дайте определение перечисляемому и ограниченному типу? Где описываются эти типы? Какие операции определены над перечисляемым типом?Лабораторная работа №17,18,19
Тема: Написание процедур без параметров, с параметрами-значениями и с параметрами-переменными
Цель работы: Написание программ с использованием процедур без параметров, с параметрами значениями и с параметрами переменными.
Теория:
Процедура – это подпрограмма, которая решает некоторую частную задачу или объединяет группу часто встречающихся операторов. Процедура описывается в блоке описаний. Описание процедуры состоит из заголовка и тела. Общий вид процедуры выглядит следующим образом:
Procedure <имя процедуры>[<список параметров>];
<Блок описаний>
begin
<Блок операторов>
end;
<список формальных параметров> - это перечень идентификаторов входных и выходных данных процедур с указанием их типов. Параметры перечисленные в скобках называется формальными параметрами. Эти параметры фиктивно присутствуют в процедуре и определяют тип и действия, которые над ними производятся. Во время выполнения формальные параметры заменяются фактическими параметрами. Фактические параметры – это параметры, которые передаются процедуре при обращении к ней.
Формальные параметры делятся на параметры – значения и параметры переменные. Параметр – значение задается следующим образом
<Имя параметра>:< тип параметра>.
Параметр-переменная задается следующим образом
Var <имя параметра>:<тип параметра>
Вызов процедуры:
При вызове процедуры основная программа приостанавливает свою работу и передает управление в процедуру. При завершении процедуры передается управление на команду, следующую за вызовом процедуры.
Задание:
Написать процедуру, которая находит из двух целых чисел наибольшее число. Написать процедуру ввода и процедуру вывода элементов матрицы N–го порядка. Описать процедуру, результатом которой является true, если символ, заданный при обращении к процедуре, - буква, и false в противном случае. Описать процедуру, результатом которой является символ, заданный при обращении к процедуре, если этот символ не является буквой, и соответствующий символ в противном случае. Описать процедуру, определяющую позицию самого правого вхождения заданного символа в исходную строку. Если строка не содержит символ, то результатом должна быть -1. Описать процедуру, заменяющую в исходной строке все символы-единицы на символы – нули. Замена выполняется, начиная с заданной позиции строки. Описать процедуру, определяющую позицию самого правого вхождения заданного символа в исходную строку. Если строка не содержит символ, то результатом должна быть - i. Описать процедуру, заменяющую в исходной строке все символы-единицы на символы-нули. Замена выполняется, начиная с заданной позиции строки. Описать процедуру, которая получает на входе две символьные строки и из первой заданной строки удаляет каждый символ, принадлежащей и второй заданной строке. Написать процедуру COMPRESS, которая в качестве параметра принимает стринг. сжимает его путем удаления всех пробелов. Написать процедуру МАХ6, которая находит максимальное число из шести вещественных чисел. Написать процедуру, которая принимает на входе стринг, содержащий последовательность слов, разделенных пробелами и меняет порядок слов на обратный. Описать процедуру swap (А, В), меняющую местамимаксимальные элементы матриц А и В. (Считать, что б каждой
матрице только один максимальный элемент).
Контрольные вопросы:
Что такое формальные и фактические параметры? Вызов процедур?Лабораторная работа №20,21,22
Тема: Написание функции. Параметры функции и процедуры.
Цель работы: Написание программ с использованием функции.
Теория:
Функция отличается от процедуры тем, что результатом функции всегда является некоторое единственное значение.
Функция описывается в блоке описаний. Описание функции состоит из заголовка и тела. Общий вид функции выглядит следующим образом:
Function <имя функции>[<список формальных параметров>]:<имя типа результата>;
<Блок описаний>
begin
<Блок операторов>
end;
Вызов функции
При вызове функции основная программа приостанавливает свою работу и передает управление в функции. При завершении функции передается управление на команду, следующую за вызовом функции.
Задание:
Описать функцию STEP(x, n) от вещественного х и натурального п, вычисляющую величину х", и использовать ее для вычисления выражения Ь=2.75+(а+1)"5. Описать логическую функцию SWAP(x, y), проверяющую, можно ли, переставив символы слова х, получить слово у. Заданы две строки. Подсчитать количество цифр в первой и количество строчных латинских букв во второй строках. Оформить подсчет в виде процедуры. Заданы три массива целых чисел. В массиве, содержащем наибольшее количество отрицательных чисел, каждое отрицательное число заменить на противоположное. Описать функцию SIMVOL, аргументами которой являются строка S и символ t. Функция принимает значение true, если t входит в строку, и значение false - иначе. Написать функцию, которая перекодирует символ в новый символ, отстоящий от исходного символа на m позиций вниз по алфавиту. В программе использовать эту функцию для кодировки текста. Написать функцию, которая перекодирует символ в новый символ, отстоящий от исходного символа на m позиций вниз по алфавиту. В программе использовать эту функцию для кодировки текста. Даны координаты вершин двух треугольников. Выделить, какой из них имеет большую площадь. Даны координаты вершин треугольника и координаты второй точки внутри него. Найти расстояние от Даннойси до ближайшей стороны треугольника (При определении расстояний учесть, что площадь треугольника вычисляется и через три его стороны, и через основание и высоту). Даны три вещественные квадратные матрицы 4-го порядка. Напечатать ту из них, норма которой наименьшая (считать, что такая матрица одна). В качестве нормы матрицы взять максимум абсолютных величин ее элементов. Три прямые на плоскости заданы уравнениями Hbky=Ck (k=l,2,3). Если эти прямые попарно пересекаются образуют треугольник, тогда найти его площадь. Два простых числа называется «близнецами,», если отличаются друг от друга на 2 (таковы, например, числа 41 иНапечатать все пары «близнецов» из отрезка [n, 2n], n-заданное целое число, большее 2.Контрольные вопросы:
Чем отличается функция от процедуры? Как описываются функции? Вызов функции?Лабораторная работа №23,24
Тема: Написание рекурсивных функции
Цель работы: Написание программ с использованием рекурсивных функций
Теория:
Всякое математическое определение, вводящее какое-то новое понятие или термин, объясняет его значение с помощью других понятий, предполагающихся известными. Например, определение тангенса с помощью формулы
tg (х) = sin (х) / cos (x)
предполагает известными понятия синуса, косинуса и, если быть педантичными, операции деления. Двигаясь от определяемых понятий к используемым в определениях, мы в конце Концов приходим к первичным понятиям. Так, в геометрии понятие «точка», «прямая», «лежать на» являются неопределяемыми. Похожая ситуация возникает и в программировании. Каждую программу можно рассматривать как набор определений. Каждое из них определяет какую-нибудь команду через другие, предполагающиеся известными(создание процедур и функций и, в дальнейшем, обращение к ним). Двигаясь от определяемой команды к используемым, мы в
конце концов должны прийти к неопределяемым командам, т. е. к командам, входящим в систему команд исполнителя, для которого пишется наша программа (программирование «сверху - вниз»).
Задание:
1. Описать рекурсивную функцию root(f, a,b, eps), которая методом деления отрезка пополам находит с точностью eps корень уравнения f(x)=0 на отрезке [a, b] (Считать, что eps>0, a<b, f(a)*f(b)<0 и Г(х)-непрерывная и монотонная функция на отрезке [а, Ь].)
2. Описать функцию min(x) для определения минимального элемента массива х, введя вспомогательную рекурсивную функцию min\(k), находящую минимум среди последних элементов массива х, начиная с k-ro.
3. Описать рекурсивную логическую функцию cnMM(s,ij), проверяющую, является ли симметричной часть строки s, начинающаяся /-м и кончающаяся j-м ее элементами.
4. Во входном файле задана непустая последовательность вещественных чисел, за которой следует отрицательное число. Описать рекурсивную функцию sum без параметров для нахождения суммы этих положительных чисел.
Описать рекурсивную функцию digits без параметров, которая подсчитывает количество цифр в тексте, заданном во входном файле (за текстом следует точка). Напечатать в обратном порядке заданный во входном файле текст (за текстом следует точка). Дана последовательность ненулевых целых чисел, за которой следует 0. Напечатать сначала все отрицательные числа этой последовательности, а затем - все положительные (в любом порядке). Заданный вещественный массив из п различных элементов (п = 100) упорядочить по возрастанию следующим методом быстрой сортировки: выбрать какой-нибудь (например, средний) элемент массива и переставить элементы массива так, чтобы слева от выбранного элемента оказались только меньшие элементы, а справа - только большие (тем самым выбранный элемент окажется на своем окончательном месте), после чего рекурсивно применить этот же метод к левой и правой частям массива.Контрольный пример:
Какие функции называются рекурсивными? Как они вызываются?Лабораторная работа №25
Тема: Работа с одномерными массивами
Цель работы: Научиться работать с одномерными массивами
Теория:
Массивы относятся к структурированным (сложным) типам. Сложные типы представляют множество значений, имеющих одно общее имя и рассматриваемых как единое целое. Наиболее часто применяемым сложным типом является массив. Массив - это упорядоченная совокупность элементов одинакового типа. Каждый элемент массива имеет свой номер, который называется индексом. По индексу можно организовать прямой доступ к любому элементу массива. Массив задается следующим образом:
ARRAY [тип индексов] OF <тип элементов>
Тип индексов определяет границы (диапазон) изменения индекса. Он должен быть любого простого типа, кроме вещественного. Тип элемента может быть любым, кроме файлового. Массив можно определить в разделе типов TYPE или в разделе описаний переменных VAR.
Массив может быть одномерным, двумерным и многомерным. Одномерный массив можно представить как вектор или линейную таблицу. Для получения доступа к его элементам используется один индекс. Например:
VAR MAS: ARRAY[1..10] OF INTEGER; - задается массив из 10 элементов целого типа.
Организация доступа. Массивы не могут обрабатываться целиком, но можно получить доступ к каждому элементу массива. Организация такого доступа называется индексированием, при котором надо указать идентификатор массива и в квадратных скобках индексы элемента.
Задание:
1. Даны действительные массивы А(n) и В(n) , подсчитать количество элементов, которые принадлежат условию: А(1)>В(1).
2. Дан действительный массив А(n). Найти максимальный и минимальный элементы массива.
3. Дан действительный массив А(n). Упорядочить массив по убыванию, по возрастанию.
4. Дан целочисленный массив А(n) , В(n). Создать новый массив С(n), элементами которого являются произведения соответствующих элементов массивов А и В.
5. Дан действительный массив А(n). Поменять порядок следования элементов в массиве на обратный.
6. Дан массив А(n). Поменять местами первые пять элементов с последними пятью элементами.
7. В массиве В(n), найти сумму всех положительных и произведение всех отрицательных элементов. Результат вывести на экран.
8. Дан массив С(n). Поменять знаки на противоположный у всех отрицательных элементов массива.
9. В массиве А(n) поменять местами максимальный и минимальный элементы.
10. В массиве В(n) найти количество нулей и единиц.
11. В массиве С(n) все четные элементы заменить на 0, а нечетные на 1.
12. Дан массив А(n) Создать новый массив, элементами которого являются произведение A(i) на максимальный элемент массива A.
13. Дан массив А(n) целого типа. Определить элементы, сумма цифр которых кратна
14. Дан массив А(n). Уменьшить все его элементы на минимальный элемент массива.
15. В массиве В(n) подсчитать количество элементов, равных 5-ти и количество элементов, больших 5-ти.
16. Задан массив А из n символьных элементов.
а) Определить сколько символов нулей в массиве;
б) Заменить символы ' ' на символы 'Z' и определить только было замен;
в) Вывести на печать те символы, которые являются цифрами.
17.Дан массив А(n), состоящий из целых чисел. Найти количество и сумму тех элементов, которые делятся на 5 и не 1елятся на 7.
18. Заданы следующие описания данных:
Туре
месяц=(янв, февр, мар, апр, май, июнь, июль, авг, сен, окт, ноя, дек.);
Var t:array[1..365] of real;
m:месяц
По массиву t, где указана температура каждого дня некоторого невисокосного года, определить m-название месяца с наибольшей среднемесячной температурой.
18. Заданы массив Х(n) целого типа.
а) переменной t присвоить значение true, если элементы массива X упорядочены строго по возрастанию, и значение false иначе;
б) переменной t присвоить значение true, если в массиве X нет нулевых элементов и при этом положительные элементы чередуются с отрицательными, и значение false иначе;
Контрольные вопросы:
1. Что такое массив?
2. Как получить доступ к элементам массива?
Лабораторная работа №26
Тема: Работа с многомерными массивами
Цель работы: Научиться работать с двумерными массивами
Теория:
Двумерный массив можно представить как таблицу или матрицу. Для получения доступа к его элементам используются два индекса: номер строки и номер столбца. При описании в типе индексов надо указать диапазон для двух индексов массива.
Например:
VAR MAS: ARRAY[1..10,1..5] OF INTEGER; - задается двумерный массив, состоящий из 10 строк и 5 столбцов, с элементами целого типа.
Организация доступа. Массивы не могут обрабатываться целиком, но можно получить доступ к каждому элементу массива, организация такого доступа называется индексированием, - надо указать идентификатор массива и в квадратных скобках индексы элемента.
Задание
1. Дан массив А(n, m). Требуется определить:
а) максимальное по величине число;
б) минимальное по величине число;
в) среднее арифметическое элементов столбцов, имеющих нечётные номера;
2.Сформировать таблицу Пифагора и вывести ее на печать. Проверить Таблица Пифагора - квадратная таблица 10 х 10, элементы каждый элемент. Если он больше нуля, то умножить его на которой определяются формулой: A[IJJ=I*j.
3. Дан массив А(n, m) , состоящий из элементов целого типа, и массив В(п) из элементов типа BOOLEAN По массиву А получить массив В, присвоив его к-му элементу значение true если выполнено указанное ниже условие, и значение false иначе
а) все элементы k-й строки массива А нулевые;
б) элементы k-й строки массива А упорядочены по убыванию.
4. Даны две действительные квадратные матрицы порядка n. Получить новую
матрицу:
а) умножением элементов каждой строки первой матрицы на наибольшее из
значении элементов соответствующей строки второй матрицы;
б) прибавление к элементам каждого столбца первой матрицы произведение элементов соответствующих столбцов второй матрицы.
5. В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n-1 путем выбрасывания из исходной матрицы какой-нибудь строки и столбца, на пересечении которых расположен элемент с найденным значением.
6.Дана действительная квадратная матрица порядка n все, элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.
7. Дана (построчно) вещественная матрица размером 7x4. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент оказался в верхнем левом углу.
8.Дан целочисленный массив А(n, m). Найти наименьшее целое число k, обладающее таким свойством: хотя бы в одно строке массива все элементы не превосходят k.
9. Дана действительная квадратная матрица порядка n. Вычислить сумму тех её элементов, расположенных на главной диагонали и выше её, которые превосходят по величине все элементы, расположенные ниже главной диагонали. Если на главной диагонали и выше нет элементов с указанным свойством, то вывести соответствующее сообщение.
10. Дана матрица А(n, m). Определить количество «особых» элементов матрицы. Элемент считается «особым», если:
-он больше суммы остальных элементов своего столбца;
-в его строке слева от него находятся элементы, меньшие его, а справа - большие.
11. Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент ей не принадлежащий равен 3, 1 или 0 (числу очков, набранных в
игре: 3 - выигрыш, 1 - ничья, 0 - проигрыш). Требуется:
а) найти число команд, имеющих больше побед, чем поражений;
б) определить номера команд, прошедших чемпионат без поражений;
в) выяснить, имеется ли хотя бы одна команда, выигравшая более половины игр.
12. Таблица футбольного чемпионата, в котором участвовало n команд, задана своей верхней правой частью (треугольный вид) в виде последовательности чисел 0, 1 или 3: первые n-1 чисел последовательности относятся к первой строке таблицы, следующие n-2 чисел - ко второй и т. д. Построить таблицу целиком, т. е. получить соответствующую квадратную матрицу порядка n (элементы главной диагонали заполняются нулями).
13 Предположим, что ваш компьютер может работать с одномерными массивами и не может с многомерными. Напишите программу, моделирующую работу с n-мерными массивами (число n вводится с клавиатуры).
14 Дана матрица порядка n*n. Найти сумму элементов, расположенных в заштрихованной части матрицы.
|
Контрольные вопросы:
1. Как получить доступ к элементам массива?
2. Как описывается массив?
Лабораторная работа №27
Тема: Работа со строковыми данными
Цель работы: Написание программ с использованием строковых типов данных
Теория:
Строка - это последовательность любых символов. Строку можно представить как упакованный массив символов.
STR1: PACKED ARRAY [l..n] of CHAR;
Поскольку па практике при программировании очень часто приходится встречаться с обработкой последовательности символов, то такую последовательность вывели в стандартный тип - STRING, который задается следующим образом:
var <имя строки>: STRING [длина строки]; Длина строки - это количество символов, которые может принимать строка. В отличие от упакованного массива символов
строка может принимать значения различной длины.
Текущая длина - это число символов, которые принимает строка в данный момент. Максимальная длина строки – 255 символов. Если длина строки не указана, то по умолчанию кол-во символов принимает значение, равное 255 символам. Самый
первый байт стринга имеет индекс 0 и содержит текущую длину стринга.
Для ввода и вывода переменной типа STRING используются операторы READLN и WRITELN.
Операции над строками
1. Операции сравнения. Сравнение происходит посимвольно слева направо: сравниваются коды соответствующих символов, пока не нарушится равенство. Две строки считаются равными, если они равны по длине и совпадают посимвольно.
2. Стринги можно объединять с помощью операции сцепления или конкатенации. Знак операции - «+».
3. Индексирование. Так как с! ринг можно рассматривать как массив символов, то при помощи индексирования можно организовать доступ к его отдельным символам по их номерам.
Стандартные процедуры и функции
Для обработки строк в Паскале имеется целый ряд процедур и функций.
1. LENGTH(STRl) - функция определяет текущую длину строки. Возвращает целое число, равное длине строки STR1.
2. CONCAT( STR1,..., STRN) - функция сцепления строк.
3. POS(STR1, STR2) - функция определяет, входит ли первая строка STR1 во вторую STR2, если входит, то функция возвращаёт номер позиции, с которой начинается вхождение. Если нет, то функция вырабатывает значение 0.
4. COPY(STRl, i,j) - функция выделяет подстроку, аргументами выделяются строка STR1, i - позиция, с которой начинается (подстрока, / - количество символов подстроки. Результатом функции является подстрока, которая выделяется из строки. при этом исходная строка не меняется.
5. DELETE(STRl, ij) - процедура удаляет из строки STR1, начиная с позиции /, j - символов.
6. INSERT(STRl, STR2,i) - вставляет строку STR1 внутрь другой строки STR2, начиная с i-ой позиции. При этом исходная строка STR2 меняется.
7. STR(X[:m[:n]],STRl) - процедура, которая преобразует целочисленное или вещественное число X в строковое и присваивает строке STR1. X - аргумент целый или вещественный; m-общая ширина поля строки; п-количество символов в дробной части; STR1 - стринг.
8. VAL(STR1,X, PR) - процедура преобразует строку символов STR1 в целочисленное или вещественное представление переменной X.
Задание:
1. Даны символьная строка и натуральные числа k, п. Удалить в заданной строке п символов, начиная с позиции k,
2. Даны строки А, В а натуральное число k. Вставить символы строки А в строку В, начиная с к-ой позиции.
3. Дана строка символов s. Подсчитать, сколько раз среди данных символов встречается буква х.
4. Дана символьная строка. Подсчитать в ней наибольшее количество идущих подряд:
а) пробелов;
б) цифр.
5. Дана строка символов. Преобразовать её, удалив из неё повторные вхождения каждой литеры.
6. Дана символьная строка. Найти символ, встречающийся в этой строке максимальное количество раз.
7. Дана строка символов. Удалить первый знак препинания.
8. Дана строка символов. Удалить из неё все знаки препинания
9. Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих букв «а».
10. Дана символьная строка. Определить, сколько в ней слов, начинающихся на одну и ту же букву.
11. Дана строка символов Преобразовать строку, заменив в ней:
а) все восклицательные знаки точками;
б) каждую точку многоточием (т. е. тремя точками);
в) каждую из групп стоящих рядом точек одной точкой.
12. Дана строка символов. Выяснить имеются ли в данной строке рядом стоящие запятая и тире.
Контрольные вопросы:
Какой тип данных называют строковым? Что такое текущая длина и длина строки? Какие стандартные процедуры и функции применяются?Лабораторная работа №28, 29,30
Тема: Операции над множествами. Обработка множеств. Оператор IN
Цель работы: Написание программ с использованием множественного типа данных
Теория:
Множества относятся к структурированным типам. Множество- совокупность различных элементов одинакового типа. В отличие от массива порядок перечисления элементов во множестве не имеет значения, и количество элементов заранее
не определено. Количество элементов, входящих во множество, может меняться от 0 до 256. Значения множества задаются в квадратных скобках перечислением элементов через запятую.
Например:
[ ]- пустое множество;
[2, 3, 7,11] - множество из целых чисел;
['а', 'с', Т]; - множество из символов;
[1..10] - множество из элемента ограниченного типа;
[k,.2*k] - элемент множества задастся текущим значением переменной k.
Множество описывается следующим образом:
<имя>:8ЕТ OF <тип компонент>;
<тип компонент>- является базовым типом, может быть простым типом, кроме вещественного.
Множество можно задавать 2-мя способами.
1) сначала определить в разделе TYPE, затем в разделе
VAR
2) сразу определить в разделе VAR.
Значениями множества может быть только значения базового типа.
Операции над множествами
Для получения новых множественных значений используется 3 операции: объединение, пересечение и разность множеств.
1) Объединение: обозначается знаком «+». Объединением двух множеств является множество, составленное из элементов обоих множеств.
[2,7,3]+[1.7,4,5,2]=[2,7,3,1,4,5]
2) Пересечением двух множеств является множество, состоящее из элементов, одновременно входящих в оба множества. Обозначается знаком «*».
3) Разностью двух множеств является множество, состоящее из элементов 1-го множества, которые не являются элементами второго множества. Обозначается знаком « -.». [2,7,3] -[1,7,4,5,2] =[3]
Задание:
1. Даны следующие описания переменных:
type строка= pasked array [1..100]of char; Описать функцию счет(в), подсчитывающую общее количество цифр и знаков '+','-' и '*', входящих в строку s.
Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значащая цифра в десятичной записи которых-1 или 2.3. Даны следующие описания переменных: type месяц = 1..12; Описать функцию числодней (гп), определяющую количество дней в месяце m (не високосного года). Даны следующие описания переменных: type letters= set of 'a'., 'z';
Описать процедуру printfa), печатающую в алфавитном порядке все элементы множества Л, имеющего тип letters. Даны следующие описания переменных:const n =10;
type номер= 1 ..п;
матрица = array [номер, номер] of real;
ном - set of номер;
Описать функцию sum(A, si, s2), вычисляющую сумму тех элементов матрицы А, номера строк и столбцов которых принадлежат соответственно непустым множествам si и s2 типа ном.
Даны следующие описания переменных:type деньнедели = (пн, вт, ср, чт, пт, сб, вс);
рабочийдень = пн..пт;
var wd: деньнедели;
t:boolean;
Требуется переменной е присвоить значение true, если wd-рабочий день, и значение false иначе. Какими из следующих операторов правильно решается эта задача?a) t:= wd in рабочийдень;
b) t:= wd in [рабочийдень];
c) t:= wd = рабочийдень;
d) t:= wdin [пн..пт];
e) t:= [wd]<=[nH..nr];
f) t:= [wd] - [пн..пт].
He используя дополнительные переменные, поменять местами значения переменных-множеств А и В. Описать:а) функцию digits(n), подсчитывающую количество различных (значащих) цифр в десятичной записи натурального числа п;
б) процедуру print (п). печатающую в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа п.
10. Дан текст из строчных латинских букв, за которым следует точка. Напечатать:
а) первые вхождения букв в текст, сохраняя их исходный взаимный порядок;
б) все буквы, входящие в текст не менее двух раз;
в) все буквы, входящие в текст по одному разу.
Контрольные вопросы:
Что такое множество? Как описываются множества? Операции над множествами?Лабораторная работа №31,32,33
Тема: Работа с комбинированными типами. Оператор присоединения и иерархические записи. Ввод – вывод записей в форме таблиц.
Цель работы: Написание программ с использованием записи
Теория:
При работе с массивами основные ограничения заключаются в том, что каждый элемент имеет один и тот же тип. Для решения некоторых задач требуется хранить и обрабатывал совокупность данных различного типа, для этого используются комбинированные типы данных - записи.
Запись - совокупность логически связанных компонент различного типа. Комбинированные типы данных позволяют объединить в одну структуру различные по типу и смыслу элементы.
Записи можно определить как в разделе TYPE, так и в разделе VAR следующим образом:
1) TYPE
<имя записи>=КЕСОКП
<имя компонента- 1>:<тип>;
<имя компонента-п>:<трп>;
END;
2) VAR <имя 3aimcn>:RECORD
END;
Каждая компонента записи называется полем. Никаких ограничений на тип полей записи нет, т. е. типом поля может быть любой тип, включая и сложные типы. Для получения доступа к компоненте записи используется составное имя, в котором за именем записи указывается точка и имя соответствующего поля: <имя записи>.<имя поля>.
Иерархические записи.
Записи, компоненты которых в свою очередь являются записями, называется иерархическими (вложенными).
Оператор присоединения.
При обращении к полям записи для сокращения составного имени компоненты используется оператор присоединения: WITH <имя записи> DO <оператор S> В <операторе S> при ссылке на поля записи имя запрей не указывается. Достаточно имя записи указать однократно перед служебным словом DO. Если после DO используется Группа операторов, то их объединяют в один составной оператор.
Задание:
1. Даны описания для переменных:
type масть = (пики, трефы, бубны, червы);
достоинство = (шесть, семь, восемь, девять, десять, валет, дама, король, туз);
карта = record
m : масть;
д : достоинство
end;
Описать логическую функцию бьет (К.1, k2, KM), проверяющую, « бьет » ли карта К1 карту К2, с учетом того, что масть КМ является козырной.
2. Даны описания для переменных:
вершина= record
название: string;
высота: 100
end;
список = array [1..30] of вершина;
Описать процедуру СлмАяВысокля( С ). печатающую название самой высокой вершины из списка С.
3. Описать следующие понятия в виде массива или в виде записи, а если возможно, то в том и другом виде:
а) обозначения поля шахматной доски(а5, h8 и т. п.);
б) комплексное число;
в) точка в 50-мерном пространстве.
4. Определить комбинированный тип для представления анкеты школьника, включающий его ФИО, возраст, номер щколы, класс и оценки по каким-то пяти предметам. Описать некоторую переменную данного типа и присвоить ей значение, соответствующее следующей анкете: , 16 лет, 194-я школа, класс 96, оценки 5, 3, 4, 5,2.
5. Даны описания для переменных:
type поле=гесоrd
верт(a, b,c, d,e, f,q, h);
горизонт:1..8;
end;
Описать логическую функцию ходферзя ( nl, n2), проверяющую может ли ферзь за один ход перейти с поля nl шахматной доски на поле п2.
6. Даны описания для переменных:
type время =record
час:0..23;
минут:0..59;
сек:0..59;
end;
Описать :
а) логическую функцию раньше (tl,t2) для проверки предшествует ли время tl времени t2 в рамках суток;
б) процедуру интервал (d, t2, tl ) которая вычисляет время d, прошедшее от времени tl до времени t2: d=t2-tl (считать, что t2 > tl).
в) процедуру следсек(11, t2), присваивающую параметру t2 время, на 1 секунду большее времени tl (учесть смену суток).
7. Даны описания переменных:
type рац =record
число:т1е§ег;
знам.1..тахт1
end;
массив = array [1..20] of рац;
Описать:
а) логическую функцию равно(а, Ь), сравнивающую два рациональных числа а и Ь\
б) процедуру слож(с, а,Ь), которая складывает рациональные числа а и b и присваивает их сумму рациональному параметру с;
в) процедуру сокр(г), приводящую рациональное число г к несократимому виду;
г) процедуру тах(х, т), присваивающую параметру т наибольшее из рациональных чисел массива х.
8. Даны описания для переменных:
type костьдомино=record
лев, прав:0..6
end;
ряд=аггау [1..28] of костьдомино;
Описать логическую функцию правильный ряд (г), которая проверяет, правильно ли выставлены кости домино в ряду г (равна ли правая цифра очередной кости левой цифре следующей кости).
Контрольные вопросы:
Что такое записи? Где описываются записи? Иерархические записи, записи с вариантами?Лабораторная работа №34,35,36
Тема: Ввод-вывод файлов. Дополнение, корректировка, удаление файлов. Использование текстовых файлов.
Цель работы: Написание программ с использованием файлов
Теория:
1. EOLN(f) - логическая функция определяет признак конца строки. Возвращает TRUE если достигнут конец строки.
2. READLN(f, x) - процедура считывает из файла f строки и числа в переменную X. Файловый указатель устанавливается на 1-й символ следующей строки, т. е. признак конца строки пропускается.
3. READ(f) - пропускает все символы от текущей позиции до конца строки вместе с EOLN и файловый указатель устанавливается на 1-й символ следующей строки. WRITELN(f, x) - записывает в файл f значение переменной X (строки и числа) и маркер конца строки EOLN.
4. WRITELN(f) - записывает маркер конца строки EOLN. READ(f, x) - считывает один символ, если X типа символьного типа, одно число если X переменная типа целого или вещественного и строку если X строкового типа. Признак конца строки EOLN не пропускается. Его нужно пропустить процедурой RADLN(i).
5. WRITE(f, x) - записывает значение переменной X в файл f. Маркер конца строки EOLN не записывается.
6. APPEND (F)- служит для добавления записей в существующий файл Процедура открывает файл и устанавливает файловый указатель
Задание
1. Дан файл f, элементы которого являются действительными числами. Найти:
а) сумму элементов файла f;
б) произведение элементов файла f;
в) сумму квадратов элементов файла f;
г) модуль суммы и квадрат произведения элементов файла f;
д) последний элемент файла.
2. Дан файл f, элементы которого являются действительными числами. Найти:
а) наибольшее из значений элементов;
б) наименьшее из значений элементов с четными номерами;
в) наибольшее из значений модулей элементов с нечетными номерами;
г) сумму наибольшего и наименьшего из значений элементов;
д) разность первого и последнего элементов файла.
3. Дан файл f, элементы которого являются целыми числами. Найти:
а) количество четных чисел среди элементов;
б) количество удвоенных нечетных чисел среди элементов;
в) количество квадратов нечетных чисел среди элементов.
4. Дан файл f. Получить копию файла f в файле g.
5. Дан файл f, элементы которого являются целыми числами. Получить в файле g все элементы файла f:
а) являющиеся четными числами:
б) делящиеся на 3 и не делящиеся на 7;
в) являющиеся точными квадратами.
6. Дан файл f, элементы которого являются целыми числами. Записать в файл g все четные числа файла f, а в файл h - все нечетные. Порядок следования чисел сохраняется.
7. Дан файл f, элементы которого являются целыми числами. Получить файл g, образованный из файла f исключением повторных вхождений одного и того же числа.
8. Дан файл f, элементы которого являются целыми числами. Никакой из элементов файла не равен нулю. Файл f содержит столько же отрицательных чисел, сколько и положительных. Используя вспомогательный файл h, переписать элементы файла f в файл g так, чтобы в файле g:
а) не было двух соседних чисел с одним знаком;
б) сначала шли положительные, потом отрицательные числа;
9. Дан файл f, элементы которого являются целыми числами. Число элементов файла делится на 10. Записать в файл g наибольшее значение первых десяти элементов файла f, затем - слелуших десяти элементов и т. д.
10. Дан файл f, элементы которого являются целыми числами. Описать функцию отриц(£), подсчитывающую сумму отрицательных элементов в файле f.
11. Даны следующие описания переменных:
type время = record час:0..23; мин, сек:0..59 end;
ФВ = file of время;
Описать логическую функцию eq(f, g), проверяющую на равенство файлы/ и g типа ФВ.
12. Даны следующие описания переменных:
type FB = file of real;
Описать функцию предпосл(/). значением которой является предпоследний элемент файла / имеющего тип FR и содержащего не менее двух элементов.
13. Даны следующие описания переменных:
vype ietters=file of 'а'..У;
Описать процедуру append(f, g, h) от трех файлов типа letters, которая записывает в файл f сначала все элементы файла g, a затем - все элементы файла h.
14. Дан текстовый файл f Получить самую длинную строку файла. Если в файле имеется несколько строк с наибольшей длиной, то получить одну из них.
15. Дан текстовый файл f Переписать элементы файла f в файл g, вставляя в начало каждой строки по одному пробелу. Порядок элементов должен быть сохранен.
16. Дан текстовый файл f Исключить пробелы, стоящие в концах его строк. Результат поместить в файл fl.
17. Даны два текстовых файла f и g. Определить, совпадают ли элементы файла f с элементами файла g. Если нет, то получить номер первой строки и позицию первого символа в этой строке, в которых файлы f и g отличаются между собой.
Контрольные вопросы:
Ввод-вывод файлов? Дополнение, корректировка, удаление файлов? Использование текстовых файлов?Лабораторная работа №37,38,39
Тема: Процедуры и функции над типизированными файлами. Обработка типизированных файлов. Файлы и записи.
Цель работы: Написание программ с использованием типизированных и текстовых файлов
Теория:
Файл – поименованная область на внешнем носителе для хранения информации. Переменные файлового типа могут быть описаны в программе в разделе описаний VAR или TYPE. В зависимости от способа объявления можно выделить три вида файлов.
- Типизированные файлы; Текстовые файлы; Нетипизированные файлы.
В типизированных файлах для элементов файла указывается их тип. Типизированные файлы объявляются следующим образом:
Type
<имя файла>=File of <тип элементов>;
Var <имя файла>: File of <тип элементов>;
< тип элементов >-может быть любым, кроме файлового типа.
Текстовые файлы предназначены для хранения текстовой информации и содержат символы, разделенные на строки. Текстовый файл – это совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой, т. е. прямой доступ к текстовым файлам невозможно организовать.
Текстовый файл объявляется с помощью стандартного типа TEXT:
VAR<имя файла>:TEXT;
Обработка текстовых файлов.
EOLN(f) – логическая функция определяет признак конца строки. Возвращает TRUE если достигнут конец строки. READLN(f, x) – процедура считывает из файла f строки и числа в переменную x. Файловый указатель устанавливается на 1-й символ следующей строки, т. е. признак конца строки пропускается. READ(f) – пропускает все символы от текущей позиции до конца строки вместе с EOLN и файловый указатель устанавливается на 1-й символ следующей строки. WRITELN(f, x) – Записывает в файл f значение переменной x (строки и числа) и маркер конца строки EOLN. WRITELN(f) – записывает маркер конца строки EOLN. READ(f, x) – считывает один символ, если Х символьного типа, одно число, если Х переменная типа целого или вещественного и строку, если Х строкового типа. Признак конца строки EOLN не пропускается. Его нужно пропустить процедурой READLN(f). WRITE(f, x) – записывает значение переменной Х в файл f. Маркер конца строки EOLN не записывается. APPEND(f) – служит для добавления записей в существующий файл. Процедура открывает файл и устанавливает файловый указатель сазу на конец файла.Задание
1. Описать процедуру traingle(t), формирующую текстовый файл t из 9 строк, в первой из которых - одна литера '1, во второй - две литеры '2 ..., в девятой - девять литер '9'.
2. Описать процедуру Hne40(t), которая считывает из входного файла литеры до первой точки и записывает их (без точки) в текстовый файл t, формируя в нем строки по 20 литер (в последней строке литер может быть и меньше).
3. Описать функцию, которая:
а) подсчитывает количество пустых строк в текстовом файле t;
б) находит максимальную длину строк текстового файла t;
4. Описать процедуру printlines(t), печатающую построчно содержимое текстового файла t.
5. Пусть текстовой файл t разбит на непустые строки. Описать функцию count(t) для подсчета числа строк, которые:
а) начинаются с буквы d;
б) оканчиваются буквы z;
в) начинаются и оканчиваются одной и той же литерой;
г) состоят из одинаковых литер.
6. Описать процедуру npuceftl, t2), переписывающую содержимое текстового файла t2 в текстовый файл tl (с сохранением деления на строки).
7. Описать процедуру npuceftl, (2), переписывающую в текстовый файл tl содержимое текстового файла t2, но без
пустых строк.
8. Считая, что непустой текстовый файл f разбит на строки, длина каждой из которых не превосходит 80, описать процедуру npeo6p(f, f80), которая, дополняя короткие строки файла f пробелами справа, формирует текстовый файл ЙЮ, все строки в
котором имеют длину 80.
9. В текстовом файле t записана непустая последовательность вещественных чисел, разделённых пробелами. Описать функцию max(t) для нахождения наибольшего из этих чисел.
10. В текстовом файле tl записана последовательность целых чисел, разделённых пробелами. Описать процедуру positive (tl, t2), записывающую в текстовый файл t2 все положительные числа из tl.
11. Описать процедуру lines ft), которая построчно печатает содержимое непустого текстового файла t, вставляя в начало каждой печатаемой строки её порядковый номер (он должен занимать 4 позиции) и пробел.
12. Имеется текстовый файл BOOK. Написать программу, которая, игнорируя исходное деление этого файла на строки, переформатирует его, разбивая на строки так, чтобы каждая строка оканчивалась точкой, либо содержала ровно 60 литер,
если среди них нет точки.
13. Имеется текстовый файл Т. Напечатать первую из самых коротких его строк.
14. Дан текстовый файл f, содержащий программу на языке Паскаль. Проверить эту программу на несоответствие числа открывающих и закрывающих круглых скобок. Считать, что каждый оператор программы
а) занимает не более одной строки файла f;
б) может занимать произвольное число строк файла f.
15. Дан текстовый файл f. Получить все его строки, содержащие более 60 символов.
Контрольные вопросы:
Типизированные файлы? Процедуры и функции для обработки? Файлы и записи?Лабораторная работа №40-41
Тема: Обработка текстовой информации в графическом режиме. Построение линий и фигур
Цель работы:
Теория:
Процедура IniteGraph. Инициализирует графический режим работы адаптера. Заголовок процедуры:
Procedure IniteGraph(var Driver, Mode: Integer; Path: string );
Здесь Driver – перемення типа Integer, определяет тип графического драйвера; Mode – переменная того же типа, задающая режим работы графического адаптера; Path – выржение типа String, содержащее имя файла драйвера и, возможно маршрут его поиска.
Функция GraphResult. Возвращает значение типа Integer, в котором закодирован результат последнего обращения к графическим процедурам. Если ошибка не обнаружена, значением функции будет ноль, в противном случае – отрицательное число.
Функция GraphErrorMsg. Возвращает значение типа String. В котором по указанному коду ошибки дается соответствующее текстовое сообщение. Заголовок функции:
Function GraphErrorMsg(Code: Integer): String;
Здесь Code – код ошибки, возвращаемый функции GraphResult.
Процедура Closegraph. Завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана.
Функция GetGraphMode. Возвращает значение типа Integer, в котором содержится код установленного режима работы графического адаптера.
Процедура SetGraphMode. Устанавливает новый графический режим работы адаптера.
Процедура DetectGraph. Возвращает тип драйвера и режим его работы.
Функция GetDriverName. Возвращает значение типа String, содержащее имя загруженного графического драйвера.
Функция GetMaxMode. Возвращает значение типа Integer, содержащее количество возможных режимов работы адаптера по его номеру.
Функция GetModeName. Возвращает значение типа String, содержащее разрешение экрана и имя режима работы адаптера по его номеру.
Функции GetMaxX и GetMaxY. Возвращает значение Word, содержащее максимальные координаты экрана в текущем режиме работы соответственно по горизонтали и вертикали.
Функции GetX и GetY. Возвращает значения типа Integer, содержащие текущие координаты указателя соответственно по горизонтали и вертикали. Координаты определяются относительно левого верхнего угла окна или, окно не установлено, экрана.
Процедура SetViewPort. Устанавливает прямоугольное окно на графическом экране.
Процедура GetViewSettings. Возвращает координаты и признак отсечки текущего графического окна.
Процедура MoveTo. Устанавливает новое текущее положение указателя.
Процедура MoveRel. Устанавливает новое положение указателя в остальных координатах.
Процедура ClearDevice. Очищает графический экран.
Задание:
![]()
![]()
![]()
![]()
![]()
![]()


![]()


![]()
![]()

![]()
![]()
![]() | ![]() |
![]() | |
![]() |
![]() |
![]() |
![]() |
![]() |

![]()
![]()


![]()

![]() |
Контрольные вопросы:
Использование библиотеки Graph? Понятие драйвера?











