pos_praktikum_Delphi


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.















П
рограммы линейной структуры


Задача.
Вычислить и вывести значение функции
y
. Исходные да
н
ные
x
,
a

и

b

должны быть введены пользователем
.

Случаи не
допустимой обл
а
сти определения функции пока можно не рассматривать.




x
b
a
b
a
y
cos
1








Ф
орма будет иметь следующий вид рис. 1:


Рис.
1

С
войства компонентов

формы

меняются
в соответствии со знач
е
ниями из
таблицы
:

Компонент

Свойство

Значение

Form

Na
m

Cation

frm
_
Z1

Задача 1

Labl


Nam

Cation

Font


Шрифт


Размер


Начертание


lbl_X

Введите х


Courir

1

жирный

для остальных меток изменения аналогичны

Eit

Nam

Txt

t_X


Пустая

строка


для остальных полей ввода
Eit

изменения аналогичны

Bu
tton

Nam

Cation

btn
_
Y

Вычислить значение функции

Ф
рагмент


кода
:

{
}

rocur Tfrm_Z1.btn_YClickSnr: TObjct;


var a,b,x,y,r : xtn;

bgin


a : StrToFloatt_A.Txt;



b : StrToFloatt_B.Txt;


x : StrToFloatt_X.Txt;



r:ab;


y:rsqrtr/cosx;



lbl_Y.Cation : FloatToStry;

n;

{
}


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

1

Зада
ние
.
В
ычислить и вывести значение функции
y
. Исходные да
н
ные
x
,
a

и
b


должны быть введены пользователем
.

Случаи недопустимой обл
а
с
ти определения функции пока

можно не рассматривать.

Замечание
:
Напомним, что
при выполнении арифметических операций с
о
блюдается

следующая иерархия приоритет выполнения:



стандартные функции;



iv, mo;



,

/



,



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

Формула в
озведения числа в любую степень:







ln
xln
xa
x
axa



1.

1
/
sin
b
yaab
x





.





tg/ln
b
yaxba



.

1
/
sin
a
yaab
x





.

11
ln/
sin
b
yba
x








5









5.



1
/tg
b
yabax



.



tg/ln
ab
yxax
b



7.





1
/ln
cos
yabab
x


8.



1
/ln
sin
b
yab
x



9.



1
tg/ln
b
yxaab



10.

/
cos
b
a
ybab
x






11.



1
/ln
sin
yabb
x


1.





1/tg
b
yabx


1.






ctg/ln
b
yaxba


1.



1
/
cos
yabba
x


15.



1
/tg
a
yabx




1.



sin
/ln
x
yax
axb




17.


/sin
a
ybx




18.



0,5
/1cos
a
ybx




19.



/1sincos
ab
yxx




0.

0,5
/cos
b
yax




1.

sin
/ln
1
b
x
ybx
a




.





tg/ln
b
yaxba



.

1
/
sin
a
ybab
x





.



1
/ln
sin
b
yab
x



5.



/
ctg
aba
yx
b



.






1/ctg
b
yabx


7.



1
/lntg
b
yaabx



8.





1
/ln
cos
yabab
x


9.



1
/tg
b
yabax



0.



1/cos
ab
ybx





Ветвления

Задача.

Определить, принадлежит ли точка с координатами, введенными
пользователем
,

изображенн
ым

на рисунке
заштрихованным
област
ям
.

Изображение области поместить на форму

рис. :
.


Рис.


Для размещения на форме изображения, созданного в данном случае в
р
е
дакторе
Paint
, используется компонент
Imag

с закладки
Aitional

п
а
литры компонентов. Чтобы
загрузить содержимое графического файла,
необход
и
мо воспользоваться свойством
Pictur


инспектор объектов, з
а
кладка
Pro

rtis




в раскрывшемся диалоговом окне нажать на кнопку
Loa

и указать необходимое имя файла.

Фрагмент

кода:

{

}

rocur Tfrm_Z.btnRsultClickSnr: TObjct;

var x,y : xtn;

bgin


x:StrToFloattX.Txt;


y:StrToFloattY.Txt;



if x1 an x

1 an y1 an y

1


thn



lblRsult.Cation:
 Точка с введенными координатами принадлежит


фигуре


ls


lblRsult.Cation: Точка с введенными координатами не

принадл
е
жит фигуре;

n;

{
}



7







8

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




Зада
ние
.

Определить, принадлежит ли точка с координатами, введенными
пользователем
,

изображенн
ым

на рисунке
заштрихованным
област
ям
.

Изображение области поместить на форму.




1.



.



.




.



5.



.




7.



8.



9.




10.



11.



1.




1.



1.



15.




1.



17.



18.




19.



0.



1.




.



.



.





9







10

5.



.



7.




8.



9.



0.



11







1

Циклы

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



Простейшие циклы

Зада
ние
.

Вычислить:

1.




1
1
i
N
i
i




.



1

1
1
i
N
i
i





.





1


1

i
N
i
i





.



1

N
i
i
ii




5.


1

N
i
i
i





.




1
1
1
N
i
i




7.





1
1
1
1
i
N
i
ii






8.



1
5
1
1
i
N
i
i





9.

0
1

N
i
i




10.


1

N
i
i
i





11.




1

i
N
i
i





1.



1
1
N
i
i




1.







1
1
1
1
i
N
i
iii






1.





1


1
1
i
N
i
i






15.





1


1

i
N
i
ii






1.





1


1
1
i
N
i
i






17.



1

N
i
i
ii




18.



1

1
1

i
N
i
ii






19.



1
1
N
i
i
i




0.





1

1
1
1
i
N
i
ii






1.





1
5

1
1
i
N
i
i






.



1
0
1

i
N
i
i






.




1
ln
i
N
i
i




.

1
cos

N
i
ii




5.

1
sin

N
i
ii




.

1
sin
1
N
i
i
i
i








7.

1
cos
1
N
i
i
i
i








8.

1
1sin
1
N
i
i
i








9.



1
1
1
N
i
i
i




0.

1
1tg
1
N
i
i
i









Задача.

Для заданных значений


и
x
вычислить сумму ряда

579
sin
!5!7!9!
xxxx
xx


,

где
1
x

.

с точностью

. Суммирование ряда заверш
ить
, если модуль оч
ередного
члена ряда не превосходит

. Предусмотр
еть

ограничение количества сл
а
гаемых ряда.


Форма будет иметь следующий вид рис.

:


Рис.


Замечание
: При решении задач, связанных с нахождением сумм
_
_
êîç
i
iàç
a




или произведений
, бывает полезно рассмотреть следу
ю
щее с
о
отношение элементов
1
i
i
a
a

. В рассматриваемой задаче


1
1
1!
ii
i
x
a
i





для
0
i

, соответственно








1
11
1
1
111!
1!1
ii
i
i
i
i
xi
a
a
ix













ii
x


. О
т
сюда





1

ii
x
aa
ii



. Далее важно определиться с начальным зн
а
чением
0
a

в нашем случае
0
ax



и проследить, чтобы порядок
накопления суммы и значения счетчика ряда менялись в нужной посл
ед
о
в
а
тельн
о
сти. Чтобы осознать значимость следования операторов, попробу
й
те поменять в теле цикла местоположение оператора
i
:
i
1




поднимите


его в начало тела цикла, сразу после слова
bgin
. Выполнив фрагмент пр
о
граммы пошагово лучше сделать это на б
умаге, вы убед
и
тесь, что общий

1







1

член ряда будет видоизменен


уже при
1
i


вы получите

5
x
a



вместо
необходимого



x
a


.

Фрагмент


кода
:

{

}

rocur

Tfrm
_
Z
.
btnOKClick

Snr
:
TObjct;

var sum, x, s, a, mnog : xtn;


i, m_o: Wor;

bgin


x:StrToFloatt_X.Txt;


s:StrToFloatt_s.Txt;


m_o:StrToIntt_m_o.Txt;



i: 0;

оличество членов ряда}


a: x;
{ a


первый член ряда }


Sum: a;
{ Sum


первая частичная сумма ряда }


whil absa  s an im_o o


bgin


mnog:

xx/i/i;


a: amnog;


Sum:
 Suma;


i: i1;



n;



mm_Rsult.Visibl:tru;


mm_Rsult.Clar;


if im_o


thn


bgin mm_Rsult.Lins.A
Контрольное

значение

функции

sinx



FloatToStrFsinx,ffGnral,1,8;



mm_Rsult.Lins.A
Приближенное

значение

функции

 

FloatToStrFSum,ffGnral,1,8;


mm_Rsult.Lins.Aпри количестве членов ряда
IntToStri;


n


ls


bgin mm_Rsult.Lins.AКоличе
ство членов ряда превосходит

максимально допустимое;


mm_Rsult.Lins.AТребуемая точность вычислений не

достигнута;


n;

n;

{
}


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




Вы
числение суммы ряда

Зада
ние
.

Для заданных значений
0



и
x
вычислить сумму ряда с точн
о
стью

. Суммирование ряда завершить, если модуль очередн
о
го члена
ряда не превосходит

. Предусмотреть ограничение количества слагаемых
р
я
да.
Значение параметра
m
, входящего в некоторые варианты,
предост
а
вить
вводит
ь

пользователю
.

Приложением должен быть также предусмотрен ввод
значений

только из
ук
азанного диап
о
зона.

1.


8
cos1...
!!!8!
xxxx
x

,
||1
x

.

.

5
ln1...
5
xxxx
xx

,
||1
x

.

.

579
11
ln...
1579
xxxxx
x
x



,
||1
x

.

.


11
11...
!!
m
mmmmm
xmxxx


,
||1
x

,
0
m

.

5.


11
11...
!!
m
mmmmm
xmxxx


,
||1
x

,
0
m

.

.


11
11...
!!
m
mmmmm
xmxxx



,

||1
x

,
0
m

.

7.


11
11...
!!
m
mmmmm
xmxxx



,

||1
x

,
0
m

.


15







1

8.

579
arctg...
579
xxxx
xx

,
||1
x

.

9.

579
arcctg...
579
xxxx
xx


,
||1
x

.

10.



1111
ln...

xxxx
x
x
xxx


,
1

x

.

11.

5
ln1...
5
xxxx
xx

,
||1
x

.

1.


1
1...
1
xxxx
x


,
||1
x

.

1.


1
1...
1
xxx
x


,
||1
x

.

1.



1
1...
1
xxx
x


,
||1
x

.

15.


1111
ln...
1
xxxx
x


,
0
x

.

1.


1...
1!!!!
x
xxxx


,
01
x

.

17.

8
1...
!!!8!
xx
xxxx



,
01
x

.

18.

579
...
579
xx
xxxx
x



,
01
x

.

19.



lnlnln
1...
1!!!
x
xxx

,
01
x

.

0.




1...
1!!!!
x
xxxx


,
01
x

.

1.

8
ch1...
!!!8!
xxxx
x

,
||
x

.

.

5
sh...
1!!5!
xxx
x

,
||
x

.

.



lnlnln
1...
1!!!
x
xxx

,
||
x

.



Целочисленная арифметика

Задача
. Даны натуральные числа

n

и
k
. Проверить, есть ли в записи чи
с
ла
k
n
цифра

m
.

Форма имеет следующий вид рис. :


Рис
.

Фрагмент


кода
:

{
}

rocur Tfrm_Z.bBtn_OKClickSnr: TObjct;

var N,k,m,i,z:Byt;


,_ish:Longwor;


f:Boolan ;

bgin


N:StrToIntt_N.Txt;


k:StrToIntt_k.Txt;


m:StrToIntt_m.Txt;


:N;


for i: to k o :N;

{
накопление

степени
}



_
ish
:

;

{
дублируем
полученное
N

в степени
k
}


f
:
f
als
;

{
f



флажок», его значение
изначально
ложн
о в предполож
е
нии, что
цифр
а

m

не входит в запись
N

в степени
k

}


whil 0 o


bgin


z: mo 10;


if

z

m

{если цифра
z

совпала с
m
}


thn bgin



f
:
tru
;

{флажок» получает значение истина»}



:0

{обнуляем р, чтобы не продолжать цикл}


n;


: iv 10;


n;


if f


17







18


thn lbl_Rsult.Cation:
Цифра

t_m.Txt
вс
тречается

в


записи

числа


IntToStr


_
ish



ls lbl_Rsult.Cation:
Цифра

t_m.Txt
не

встречается

в


записи

числа


IntToStr


_
ish
;

n;

{
}

Замечание
: При решении задач по те
ме

распаковка целых ч
и
сел


также
можно ра
бот
ать

с

числа
ми, представленными

как строки символов. Но при
выполнении лабораторной работы №5 необходимо использовать
вышеи
з
ложенный
п
одход
.


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

5

1.

Дано натуральное число. Найти сумму первой и
последней цифры
этого числа.

.

Дано натуральное число п. Переставить местами первую и после
д
нюю цифры этого числа.

.

Даны два натуральных числа

n

и
m

n

 9999,
m

 9999. Про

верить, есть ли в записи числа
n

цифры, совпадающие с цифра
ми
в записи числа
m
.

.

Дано натуральное число
n
. Проверить, есть ли в записи числа три
одинак
о
вых циф
ры 
n

 9999.

5.

Дано натуральное число
n

 99. Дописать к нему цифру
k

в конец
и в нач
а
ло.

.

Среди всех
n

значных чисел указать те, сумма цифр которых ра
в
н
а да
н
ному числу
k
.

7.

Найти наибольшую и наименьшую цифры в записи данного нат
у
рального числа.

8.

Найти на отрезке 
n
,
m


натуральное число, имеющее наи
большее
количество делителей.

9.

Да
но натуральное число
N.
Найти и вывести все числа в интерв
а
ле
от 1 до
N

1
, у которых сумма всех цифр совпадает с суммой цифр
данного числа.
Пример. N
 . Числа: 17, , 5
.

10.

Дано натуральное число
N.
Найти и вывести все числа в интерв
а
ле
от 1 до
N

1
, у ко
торых произведение всех цифр со
впадает с суммой
цифр данного числа.
Пример. N  .
Числа: 18, 

11.

Дано натуральное число
N.
Найти и вывести все числа в интерв
а
ле
от 1 до
N

1
, у которых произведение всех цифр со
впадает с суммой
цифр данного числа.
Пример.

N  .
Числа: 18, .

1.

Дано натуральное число
N.
Найти наибольшее число
М М
1, на
которое сумма цифр в цифровой записи числа
N

делит
ся без оста
т
ка.
При
мер. N1
5,
М
5. Сумма цифр числа
N
,
равная 15, д
е
лится на 5.

1.

Дано натуральное число
N.
Найти н
аименьшее число
М 
N

M


N
,
которое делится на сумму цифр числа
N

без остат
ка.
Пример.
N 
1 5,
М 
1 0. Число 1 0 делится на число 15


сумму
цифр числа
N.

1.

Дано натуральное число
N


N

9. Определить количество нулей,
идущих подряд в младших

разрядах данного числа.
Пример. N
 1
00 000. Количество нулей равно четырем.

15.

Дано натуральное число
N 
N

9. Определить количество н
у
лей в
цифровой записи числа, кроме нулей в младших разрядах.
Пример.
N10
05 000. Количество нулей равно двум.

1.

Дано на
туральное число
N


N

 9. Определить сумму цифр в пе
р
вой половине числа старшие разряды. Если число содержит н
е
четное количество цифр, “среднюю” цифру отнести к старшим
разрядам.
Пример. N
 1  57. Сумма составляет 1     
10.

17.

Дано натуральное

число
N

N


9. Определить сумму цифр во вт
о
рой половине числа младшие разряды. Если число содержит н
е
четное количество цифр, “среднюю” цифру отнести к старшим
разрядам.
Пример. N
1  57. Сумма составляет 5    7  18.

18.

Дано натуральное число
N.
Есл
и число содержит  цифры, то пол
у
чить новое число
М,
которое образуется путем переста
новки пе
р
вой

и последней цифр данного числа. Если количество цифр не , то
М N. Пр
и
мер.
N



1,
М
1.

19.

Дано натуральное число
N.
Если число содержит 5 цифр, то пол
у
чит
ь новое число
М,
которое образуется путем исключения средней
цифры исходного числа. Если количество цифр не 5, то
М

N.
Пример.
N

15,
М
15.

0.

Дано натуральное число
п.
Проверить, будут ли все цифры числа
различными.

1.

Дано натуральное число
п п99

999
.
Поменять порядок следов
а
ния цифр в этом числе на обратный.

.

Найти все делители натурального числа
п.

.

Натуральное число
М
называется совершенным, если оно равно
сумме всех своих делителей, включая 1, но исключая себя. Напеч
а
тать все совершенные числа меньш
ие заданного числа
N.


19







0

.

Даны натуральные числа
п, т.
Найти все натуральные числа мен
ь
шие
п
, квадрат суммы цифр которых равен
т.

5.

На отрезке ,
п
 определить число с максимальной суммой делит
е
лей.

.

Дано натуральное число
N.
Определить количество цифр в цифр
о
во
й записи данного числа, которые имеют наименьшее зна
чение.
Пример.
N

58. Количество цифр с наименьшим значени
ем ра
в
но двум две цифры .

7.

Дано натуральное число
N.
Определить количество цифр в цифр
о
вой записи данного числа, которые имеют наибольшее зн
а
чение.
Пример.
N

1808. Количество цифр с наибольшим значени
ем ра
в
но двум две цифры 8.

8.

Дано натуральное число
N.
Получить новое число
М,
кото
рое обр
а
зуется из числа
N

путем замены последней цифры на значение
наименьшей цифры в записи числа
N. Пример.

N

18 5,
М
19

51.

9.

Дано натуральное число
N.
Получить новое число
М,
кото
рое обр
а
зуется из числа
N

путем замены последней цифры на значение
на
и
большей цифры в записи числа
N. Пример.
N

18 5,
М
18

58.

0.


Определить количество
М

значных натуральн
ых чисел, у которых
сумма цифр, стоящих в нечетных разрядах, равна
N

1

N


0,
0
M
5.


Одномерные массивы

Задача.

Из вещественного массива


,

,...


,


1
N
c
c
c
C


удалить все числа,
превыщающие среднее арифметическое элементов
ма
с
сива.

Форма будет иметь следующий вид рис.
5
:

Рис
.
5

Фрагмент

кода
:

{
}

rocur Tfrm_ZX.btn_ZXClickSnr: TObjct;

const


N  10;

var


C : array 1..N of singl;


S : singl;



, i, j : intgr;


str : string;

bgin




ranomiz;



str : ;



S : 0.0;



for i : 1 to N o





bgin




Ci : ranom  5


ranom51;




S : S  Ci;




str : str  FloatToStrFCi, ffFix, 7,    ;




n;




S :
S / N;



lbl_Mas.Cation : str;



lbl_M.Cation : FloatToStrFS, ffFix, 7, ;



 : 0;



i : 1;



whil i  N


 o





bgin





if Ci  S






thn

bgin





 :   1;





for j : i to N


 o






C

j
 :
C

j

 1;

{
сдвиг элементов массива на

о
д
ну позицию вправо}





n

{
thn

}





ls

i : i  1;




n;

{ whil }



str : ;



for i : 1 to N


 o




str : str  FloatToStrFCi, ffFix, 7,    ;



lbl_Rz.Cati
on : str;

n;

{
}



1









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



1.

В массив


N
A

занесены натуральные числа. Найти сумму тех
эл
е
ментов, которые кратны данному
K
.

.

В целочисле
нной последовательности есть нулевые элементы. С
о
з
дать ма
с
сив из номеров этих элементов.

.

Дана последовательность целых чисел
N

1

...,

,

,
a
a
a
. Выяснить, к
а
кое число встречается раньше


положительное или отрицател
ь
ное.

.

Дана последовательность дейст
вительных чисел
N

1

...,

,

,
a
a
a
. В
ы
яснить, будет ли она возрастающей.

5.

Дана последовательность натуральных чисел
N

1

...,

,

,
a
a
a
. Создать
массив из четных чисел этой последовательности. Если таких ч
и
сел нет, то вывести сообщение об этом факте
.

.

Дана последовательность чисел
N

1

...,

,

,
a
a
a
. Указать наимен
ь
шую
длину числовой оси, содержащую все эти числа.

7.

Дана последовательность действительных чисел
N

1

...,

,

,
a
a
a
. Зам
е
нить все ее члены, большие данного
Z
,
этим числом. Подсчитать
количество замен.

8.

Последовательность действительных чисел оканчивается нулем.
Найти к
о
личество членов этой последовательности.

9.

Дан массив действительных чисел, размерность которого
N
. По
д
считать, сколько в нем
отрицательных, положительных и нулевых
элементов.

10.

Даны действительные числа
N

1

...,

,

,
a
a
a
. Поменять местами
на
и
больший и наименьший элементы.

11.

Даны целые числа
N

1

...,

,

,
a
a
a
. Вывести на печать только те числа,
для к
о
торых
i
a
i

.

1.

Даны натуральные числа
N

1

...,

,

,
a
a
a
. Указать те из них, у кот
о
рых
остаток от деления на
M

равен


1
0




M
L
L
.

1.

В заданном одномерном массиве поменять местами соседние эл
е
менты, стоящие на четных местах, с

элементами, стоящими на н
е
четных местах.

1.

При поступлении в вуз абитуриенты, получившие двойку на пе
р
вом
экзамене, ко второму не допускаются. В массиве


N
A

запис
а
ны
оценки экзаменующихся, полученные на первом экзамене. Подсч
и
тать, сколь
ко человек не допущено ко второму экзамену.

15.

Дана последовательность чисел, среди которых имеется один нуль.
Вывести на печать все числа до нуля включительно.

1.

В одномерном массиве размещены: в первых элементах


знач
е
ния аргумента, в следующих


соответству
ющие им значения
функции. Напечатать элементы этого массива в виде двух пара
л
лельных столбцов арг
у
мент и значения функции.

17.

Пригодность детали оценивается по размеру
B
, который должен
соотве
т
ствовать интервалу






A
A

,
. Определить, имеются ли
в партии из
N

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

18.

У вас есть доллары. Вы хотите обменять их на рубли. Есть инфо
р
мация о стоимости купли

про
дажи в банках города. В городе
N

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

19.

Дан целочисленный массив с количеством элементов
N
. Напеч
а
тать те его элеме
нты, индексы которых являются степенями дво
й
ки



...

,
1

,
8

,


,


,
1
.

0.

Задана последовательность из
N

вещественных чисел. Опред
е
лить, скол
ь
ко среди них чисел меньших
K
, равных
K

и больших
K
.

1.

Задана последовательность
N

вещественных чисел. В
ы
числить



1




N
M
X
S
i
i
, где
M



среднее арифметическое данной п
о
следов
а
тельности.

.

Задан

массив


var a: array 
1. .
N
 of  0  .
.
 9
;


.

Определить, вх
о
дит ли в него последовательность символов 1, если да, то скол
ь
ко раз и с каких позиций




N
.

.

Задан массив действительных чисел. Определить, сколько раз м
е
няется знак в данной последовательности чисел, запомни
ть номера
позиций, в которых происходит смена знака.

.

Задана последовательность
N

вещественных чисел. Вычислить
сумму чисел, порядковые номера которых являются простыми чи
с
лами.

5.

Задана последовательность
N

веществ
енных чисел. Вычислить
сумму чисел, порядковые номера которых являются числами
Ф
и
боначчи.












.

Задана последовательность
N

вещественных чисел. Вычислить
значение выражения
N
N
x
x
x

...


1

.

7.

Задана последовательность
N

целых чисел. Вычислить сумму
элементов массива, порядковые номера которых совпадают со зн
а
чением этого эл
е
мента.

8.

Заполнить массив из
N

элементов с начальным значением зада
н
ным


0
0

A
, по принципу






1


iv




i
A
i
A
i
A
.

9.

Определить количество элементов последовательности натурал
ь
ных чисел, кратных числу
M

и заключенных в промежутке от
L
до
N
.

0.

Определить, сколько процентов от всего количества элеме
нтов п
о
следов
а
тельности целых чисел составляют нечетные элементы.



5









Двум
ерные массивы

Задача.

Получить квадратную матрицу
nn

:

1 00
1 00
00 1











Форма будет иметь следующий вид рис. :

Рис
.


Фрагмент

кода
:

{

}


rocur Tfrm_Z.bBtnOKClickSnr: TObjct;


var i,j,n:byt;

bgin


sgrRsult.Visibl:Tru;


n:StrToInttDim.Txt;


sgrRsult.ColCount:n;


sgrRsult.RowCount:n;


fo
r i:0 to n

1 o


for j:0 to n

1 o


sgrRsult.Cllsi,j:0;


for i:0 to n

1 o


sgrRsult.Cllsi,i:1;


for i:0 to n

1 o


bgin


sgrRsult.Cllsi1,i:;

{
над

главной

диагональю
}


sgrRsult.Cllsi,i1:;

{
под

главной

диагональю

}


n;

n;

{
}


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

Пре
о
бразо
вание
и построение
ма
с
сивов

Зада
ние
.

Сформирова
ть квадратную матрицу

nn



по заданному обра
з
цу

в пунктах 1

1

:

1.

1
11
1
11
11
n
nnn
n
nnn
nnn




















.

0001
000
0100
000
n
n















.

000
0100
000
0001
n
n















.






1000
000
0010
0001
nn
nn


















5.

1111
1001
1001
11111













.

1111
0
1100
000
nn
n















7.

1111
0110
0110
11111













8.

100001
110010
110011
100001















7







8

9.

00 0
10 0
0
11
n
nn
n
nn
















10.

11
0
100
000
nn
n
nn
n
















11.

100
010
010
100
n
n
n
n
















1.

11
11
1
11
11
nn
nn
nn
nnn
nnn






















1.














11!1!1!
11!1!1!
11!1!1!
nnn
n
n
n












1.

100
010
100
n
n
n












15.

1
1
1
n
nnnn
nnnn
nnnn
















1.

1001
0110
0110
10001













17.

Построить квадратную матрицу порядка

n


111
111
111



n
n
n
n







































Зада
ние
.

Дана
действительная квадратная матрица порядка
n

заполнить
случайным образом из диапазона


5;5


.

Найти наибольшее из знач
е
ний элементов, расположенных в з
аштрихованной ча
с
ти матрицы
в пун
к
тах 18

7:

18.

19.

0.

1.

.

.

.

5.

.

7.


8.
Составить программу, которая заполняет квадратную мат
рицу п
о
рядка
n

натуральными числами


1, , ,,
n

, записывая их в нее по
спир
али. Н
а
пример, для
n

  получаем:

1
89
75






9.
Дана действительная квадратная матрица порядка л. Полу
чить н
о
вую матрицу, переставляя ее блоки размера лхл крест

накрест.


0.
Магическим
квадратом порядка
п
называется квадратная матрица

размера
пхп,
составленная из чисел

1, , ,,
n


так, что суммы по
каждому столбцу, каждой строке и каждой из двух боль
ших диагон
а
лей равны между собой. Построить такой квадрат. Пример магич
е
ского квадрата п
о
рядка :

18
75
9








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

Операции с элементами масс
и
вов

1.

Вычислить сумму и число положительных элементов матри
цы
A

порядка

n
,
находящихся над главной ди
а
гональю.


9







0

.

Дана матрица
А
размером

nm

. Определить
k



количество ос
о
бых эл
ементов массива
А,
считая его элемент особым, если он
больше суммы остальных элеме
н
тов его столбца.

.

Задана квадратная матрица. Поменять местами строку с мак

симальным элементом на главной диагонали со строкой с задан

ным ном
е
ром
т.

.

Дана матрица
B

размером

nm

.
Найти в каждой строке матрицы
мак
симальный и минимальный элементы и поменять их местами с
пе
р
вым и последним элементом строки соответственно.

5.

Дана целая квадратная матрица порядка

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

.

Элемент матрицы назовем
седловой точкой,
если он является
на
и
меньшим в своей строке и одновременно наибольшим в своем
столбце или, наоборот, является наибольшим в своей стр
оке и
на
и
меньшим в своем столбце. Для заданной целой матрицы раз

мером
nm

напечатать индексы всех ее седловых точек.

7.

Дана матрица размером
nm

.
Переставляя ее строки и столб
цы,
добиться того, чтобы наибольши
й элемент или один из них ок
а
зался в верхнем левом углу.

8.

Определить, является ли заданная целая квадратная матрица
n

го
порядка симметричной относительно главной диагонали.

9.

Дана целочисленная квадратная матрица

порядка

n
. Найти в ка
ж
дой стро
ке наиболь
ший элемент и поменять его местами с элеме
н
том глав
ной диагон
а
ли.

10.

Задана матрица размером
nm

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

на пересечении
k


й
строки и
k


го столбца.

11.

Дана квадратная матрица
A

порядка

n
.
Записать на м
е
сто отри

цательных элементов матрицы нули, а на место положительных


единицы.

1.

Дана действительная матрица размером
nm

,
все элементы кот
о
рой различны. В каждой строке выбирае
т
ся элемент с наи
меньшим
значением, затем среди этих чисел выбирается наиболь
шее. Ук
а
зать индексы элемента с найденным значением.

1.

Дана действительная квадратная матрица порядка
N

N



нече
т
ное, все э
лементы которой различны. На
й
ти наибольший элемент
среди стоящих на главной и побочной диагоналях и по
менять его
местами с эл
е
ментом, стоящим на пересечении этих диагоналей.

1.

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

15.

Задана квадратная матрица. Получить транспонированную матр
и
цу.

1.

Заданы матрица порядка
п
и число
k
.
Разделить элементы
k

й
стр
о
ки на диагональный элемент, распол
о
женный в этой строке.

17.

Для целочисленной квадратной матрицы найти число эле
ментов,
кратных
k
,
и наибольший из них.

18.

Найти наибольший и наименьший элементы
прямоуголь
ной ма
т
рицы и поменять их местами.

19.

Дана прямоугольная матрица. Найти строку с наибольшей и
на
и
меньшей суммой элементов. Вывести найденные стро
ки и су
м
мы их элементов.

0.

В данной действительной квадратной матрице порядка
п
найти
сумму элементов ст
роки, в которой расп
о
ложен элемент с наи

меньшим значением. Предполагается, что такой элемент един

ствен
ен
.

1.

В данной действительной квадратной матрице порядка
п
найти
наибольший по модулю элемент. Получить квадратную матрицу
порядка

п

1


путем отбрасывани
я в исходной матрице строки и
столбца, на пересечении которых расположен элемент с найден
ным
значением.

.

Дана действительная квадратная матрица порядка
п.
Преоб

разовать матрицу по следующему правилу: строку с номером
п

сделать столбцом с номером
п,
а стол
бец с номером
п



строкой с
номером
п.

.

Пусть дана действительная матрица размером
nm

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

.

Определить номера тех с
трок целочисленной матрицы
A

N
,
K

,
к
о
торые совпадают с массивом
D

K

.
Если таких строк нет, выдать
соответс
т
вующее сообщение.

5.

Определить наименьший элемент каждой четной строки матрицы
АМ,
N
.


1









.

Определить номера строк матрицы
R

M
,
N
,
хотя бы один эл
е
мент

которых равен
C
, и элементы этих строк умножить на

.

7.

Матрица
A

N
,
M

М
кратно  разделена по вертикали на две п
о
ловины. Определить сумму элементов каждого столбца ле
вой п
о
ловины и сумму элементов каждого четного столбца пра
вой пол
о
пол
о
вины матрицы
А.

8.

Опр
еделить, является ли заданная матрица орт
о
нормированной, т.
е. равно ли скалярное произведение каждой пары раз
личных строк
стол
б
цов нулю.

9.

Определить среднее арифметическое элементов, лежащих на пер
е
сечении строк, номера которых кратны
R
,
и столбцов, ном
ера к
о
т
о
рых кратны
S
.

0.

Определить номера строк матрицы, в которых знаки эле
ментов ч
е
редуются.


Строки символов


Задача.

Выделить слова, содержащиеся в тексте, введенном пользоват
е
лем.

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


это последовательн
о
сти
букв языка
,
"
разделители
"


любые символы, не являющиеся буквами.
Т
екст в о
б
щем
случае имеет вид :


X

X
...
X



где
X



слово,




"
разделитель
".

Можно предложить следующий алгоритм расп
а
ковки:

1 уд
алим завершающие пробелы, после чего текст примет
регуля
р
ный
вид

X

X
...
X
;




удалим лидирующие пробелы;

текст примет вид
X

X
...
X
;



выделим первое слово и удалим его из текста.

После выполнения пунктов  и  мы получили одно слово и текст стал к
о
ро
че на одно слово, сохранив при этом свою структуру. Очевидно, что
пункты  и  следует выполнять до тех пор, пока текст
не пуст
.

В качестве букв языка будем рассматривать буквы русского и ан
г
лийского
алфавитов. Любой другой символ будет являться разделител
ем.

Форма будет иметь следующий вид рис. 7:


Рис
.
7

Фрагмент

кода
:

{
}

rocur Tfrm_Z8.BBtn_OKClickSnr: TObjct;


const Lttrs : st of Char  
a..z,A..Z,А..Я,а..я
;

var s : string;


i : Byt;


bgin


s: tInut.Txt;


if s


thn


bgin


ShowMssag
текст

не

введен
;


Exit;


n;



whil notsLngths in Lttrs o


D
lt

s
,
Lngth

s
,1;

{ удалим завершающие пробелы }



mmRsult.Lins.A
Слова

текста

:;


whil s o
{цикл выделения отдельных слов}


bgin




whil nots1 in Lttrs o




Dlt

s
,1,1;

{
удалим

лидиру
ю
щие

п
робелы

}




{ найдем границу первого слова }




i
:1;




whil si in Lttrs an iLngths o
















inc

i
;

{
i



номер

первого

разделителя }



Dci;



mmRsult.Lins.ACoys,1,i;

{
выведем

слово

}



Dlts,1,i;


{ удалим слово из текста }


n;

n;

{
}

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

fun
ction

Lngth

S
:
String
:
Intgr
;


возвращает

длину

строки
.

function

Pos

Substr
:
String
;
S
:
String
:
Byt
;


возвращает номер
первого слева символа строки
S
, начиная с которого строка
Substr

вх
о
дит в
S
, если
Substr

не входит в
S
, то значение функции равно

0.

function

Coy

S
:
String
;
Inx
:
Intgr
;
Count
:
Intgr
:
String
;


воз

вращает подстроку строки
S
, которая начинается с символа с номером
Inx

и имеет длину
Count
.


rocur

Dlt

VAR

S
:
String
;
Inx
:
Intgr
;
Count
:
Intgr
;


удаляет из строки
S

подстроку, начинающуюся с символа с номером
Inx

и
име
ю
щую длину
Count
.

rocur

Insrt

Substr
:
String
;
VAR

S
:
String
;
Inx
:
Intgr
;

вставляет в строку
S

подстроку
Substr

начиная с символа с номером
Inx
.

rocur

Val

S
:
STRING
;
VAR

V
;
VAR

Co
:
In
tg
r
;


преобр
а
з
у
ет строку
S

в число
V
если это возможно;
V


любая переменная арифм
е
тического типа, переменная
Co

возвращает 0, если преобразование
прошло успешно, или номер первого неправильного символа строки.


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

9

Обработка по
следовательностей символов

1.

Дана строка, содержащая текст. Найти длину самого корот
кого и
самого длинного слова.

.

Дана строка символов, среди которых есть двоеточие :. Оп

ределить, сколько символов ему предшествует.

.

Дана строка. Преобразовать ее, удалив к
аждый символ  и повт
о
рив каждый символ, отличный от .

.

Дана строка. Подсчитать количество букв
к в
последнем ее слове.

5.

Дана строка. Подсчитать, сколько различных символов встре
чается
в ней. Вывести их на экран.

.

Дана строка. Подсчитать самую длинную после
довательность по
д
ряд идущих букв
а.

7.

Дана строка символов, среди которых есть одна откр
ы
ваю
щаяся и
одна закрывающаяся скобка. Вывести на экран все сим
волы, ра
с
положенные внутри этих скобок.

8.

Имеется строка, содержащая буквы латинского алфавита и цифры.
Выв
ести на экран длину наибольшей последовательности цифр,
идущих подряд.

9.

Дан набор слов, разделенных точкой с запятой ;. Набор заканч
и
вается двоеточием :. Определить, сколько в нем слов, заканч
и
в
а
ющихся буквой
а.

10.

Дана строка. Найти в ней те слова, которы
е начинаются и оканч
и
ваются одной и той же буквой.

11.

Дана строка. Преобразовать ее, заменив точками все двоето
чия :,
встречающиеся среди первых
n
/

символов, и зам
е
нив точками все
восклицательные знаки, встречающиеся среди сим
волов, стоящих
после
n
/

сим
волов.

1.

Строка содержит одно слово. Проверить, будет ли оно чи
таться
одинаково справа налево и слева направо т.е. является ли оно п
а
линдромом.

1.

В записке слова зашифрованы


каждое из них записано наоб
о
рот. Расшифровать сообщение.

1.

Проверить, одинаковое ли

число открывающихся и з
а
кры

вающихся скобок в данной строке.

15.

Строка, содержащая произвольный русский текст, состоит не более
чем из 00 символов. Написать, какие буквы и сколько раз встр
е
чаются в этом тексте. Ответ должен прив
о
диться в грамма
тически
прав
ильной форме, например
а


5 раз,
к


 раза и т.д.

1.

Даны две строки
А и В.
Составьте программу, проверяю
щую, мо
ж
но ли из букв, входящих в
А,
составить
В
буквы можно использ
о
вать не более одного раза и можно переставлять.

Например,
А

ИНТЕГРАЛ;
В


АГЕНТ



составить можно;
В


ГРАФ


составить нельзя.

17.

Двумерный

массив
пхт
содержит некоторые буквы рус
ского алф
а
вита, расположенные в произвольном порядке. На
писать програ
м
му, проверяющую, можно ли из этих букв со
ставить данное слово
S
.
Каждая буква массива
используе
т
ся не более одного раза.

18.

Результаты вступительных экзаменов представлены в виде списка
из
N

строк, в каждой строке которого записаны ф
а
милия студента и
отметки по каждому из
М

экзаменов

через пробел
. Определить к
о
ли
чество абитуриентов, сдавших в
ступительные экзамены только
на отли
ч
но».


5









19.

Составить программу преобразования натуральных чисел, за

писанных в римской нумерации, в десятичную систему счи
с
ления.

0.

Из заданной символьной строки выбрать те символы, кото
рые
встречаются в ней только один раз,
в том порядке, в котором они
встречаются в тексте.

1.

В символьном массиве хранятся фамилии и инициалы уче
ников
класса. Требуется напечатать список класса с указанием для ка
ж
д
о
го ученика количества его однофамильцев.

.

Для заданного текста определить длину сод
ержащейся в нем ма
к
симальной серии символов, отличных от букв.

.

Расстояние между двумя словами равной длины


это к
о
личе
ство
позиций, в которых различаются эти слова. В з
а
данном пред

ложении найти пару слов заданной длины с максимальным рас

стоянием.

.

Напеч
атать те слова, которые встречаются в каждом из двух зада
н
ных предложений.

5.

Отредактировать заданное предложение, удаляя из него все слова с
нечетными номерами и переворачивая слова с четными н
о
мерами.

.

Шифрация.
Один из методов шифрации называется наложе
ни
ем
гаммы. Делается это следующим образом: берется некоторое сл
у
чайное число в диапазоне от
17

до 55


гамма, и код каждо
го
символа строки заменяется кодом, получающимся в результате
операции:
новый кодстарый код
XOR

гамма
.

Написать программу, реализую
щую:

а данный метод шифрации;

б дешифрацию строки при заданной гамме.

Входные да
н
ные: шифруемая строка. Выходные данные:

• гамма;

• зашифрованная строка.

7.

Тэг курсива.
Дан текст, в котором встречаются структуры 
i
 и
/
i
. Заменить каждое вхождение 
i
 на курсив, а каждое вхо
ж
дение /
i
 на конец курсива.
Замечание.
В про
грамме следует
учесть, что буква
i

может быть как строчной, так и пропи
с
ной.

8.

Форматирование текста.
Дан текст, состоящий из пред
ложений,
разделяемых точками. Напишите программу, п
роиз
водящую сл
е
дующее форматирование: после каждой точки в конце предлож
е
ния должен стоять хотя бы один пробел; первое слово в
предложении должно начинаться с прописной буквы.

9.

Частота появления букв в словах.
Дан текст, содержащий слова,
разделенные проб
елами. Определить, ка
кие буквы в словах совп
а
дают чаще: первые, последние или средние. Позиция средней бу
к
вы в слове определяется по фор
муле:

поз_средн_буквыдлина_слова
iv

1

0.

Лишние пробелы.
Дана строка, состоящая из слов, разделен
ных
пробелами. Н
апишите программу, удаляющую лишние про
белы.
Пробел считается лишним, если он:

• стоит в начале строки;

• стоит в конце строки;

• следует за пробелом.


Подпрограммы


Занимаясь разработкой учебных проектов в среде программипрв
а
ния
D
l
hi
, мы привыкли к авт
оматическому созданию средой подпр
о
грамм

обработчиков событий. Например, создание
процедуры

обработчика по
нажатию на кнопку 
Button

, расположенн
ую

на форм
е


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

Подпрограммы


процедуры и функции


можно определить как замкнутые
программные единицы, реализующие некоторый алгоритм. Ра
з
работка
функций и процедур необходима при многократном использовании в ра
з
ных местах программы

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

Для иллюстрации возможностей работы с подпрограммами ра
с
смотрим
задачу, разобранную при рассмотр
ении темы

Строки символов


Выд
е
лить слова, содержащиеся в тексте, введенном пользоватлем.. Реал
и
зуем
решение, используя функции и процедуры:


{
}

rocur

Tfrm
_
Z
8.
BBtn
_
OKClick

Snr
:
TObj
ct
;


const Lttrs : st of Char  
a..z,A..Z,А..Я,а..я
;

var s : string;


i : Byt;



{процедура удаления завершающих пробелов}

rocur

l
_
tail

var

s
:
string
;

bgin


7







8


whil notslngths in lttrsans o


lts,ln
gths,1;

n; {l_tail}


{процедура удаления лидирующих пробелов}

rocur l_havar s:string;

bgin


whil nots1 in lttrs o


lts,1,1;

n; {l_ha}


{
функция

выделения

отдельного

слова
}

function makwors:string; var boun:
byt:string;

bgin boun:1;


whil sboun in lttrsanbounlngths o


incboun;


cboun;


makwor:coys,1,i;

n; {makwor}


rocur Tfrm_Z8.BBtn_OKClickSnr: TObjct;


const Lttrs : st of Char  

a..z,A..Z,А..Я,а..я
;

var s : string;


i : Byt;


bgin


s: tInut.Txt;


if s


thn


bgin


ShowMssag
текст

не

введен
;


Exit;


n;



l_tails;



whil

s

o

{ организуем цикл по словам }


bgin


l_has;


mmRsult.Lins.A

makwors,i;


lt

s
,1,
i
;{ удаление слова из текста }


n
;

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

10

Использование подпрограмм

1.

Даны де
йствительные числа
s
,
t
. Получить

,,1.17.,,
ftsftst

,

где

sin
,,,
5||
abc
fabc
c



.

.

Даны действительные числа

s
,
t
. Получить

1.,,1,
gsgtsgsst

,

где



,

ab
gab
aabb




.

Даны действительные числа
a
,
b
,
c
. Получить

max,max,
1max,1,15
aababc
abc


.

.

Даны действительные числа

a
,
b
. Получить

max,
uab

,
min,
vabab

,

min,.1
uv

.

5.

Даны действительные числа
s
,
t
. Получить


,max,,,1,1
hsthststhststh

,

где



,
11
ab
habab
ba


.

.

Даны действительные числа
0
,...,
aa
. Получить дл
я


зн
а
чения
1
xx

, где

5
50
...
yayaya

.

7.

Даны действительные числа
s
,
t
,
01
,...,
aa
. Получить

11
tst

, где

111
1110
...
yaxaxa

.

8.

Даны действительные числа

1
x
,
1
y
,

x
,

y
, …,
10
x
,
10
y
. Найти п
е
риметр десятиугольника, вершины которого соответственно коо
р

9







0

динаты
11
,
xy
,

,
xy
, …,
1010
,
xy
. Определить процедуру в
ы
числения расстояния между двумя точками, заданными своими к
о
ординатами.

9.

Дано натуральное число
n
, действительные числа
1
x
,
1
y
,

x
,

y
,
…,
n
x
,
n
y
. Найти площадь
n

угольника, вершины которого при
некотором посл
едовательном обходе имеют координаты
11
,
xy
,

,
xy
, …,
,
nn
xy
. Определить процедуру вычисления площади
треугольника по координатам его вершин.

10.

Дано четное число

n

; пр
оверить для этого числа гипотезу
Гольдбаха. Эта гипотеза по сегодняшний день не опровергнута и
полностью не доказана заключается в том, что каждое четное
n
,
большее двух, представляется в виде суммы двух простых чисел.
Определить пр
оцедуру, позволяющую распознавать простые числа.

11.

Дано натуральное число
n
. Выяснить, имеются ли среди чисел
n
,
1
n

, …,

n

близнецы, т.е. простые числа, разность ме
жду кот
о
рыми равна двум. Определить процедуру, позволяющую распозн
а
вать простые числа.

1.

Дано натуральное число
n
. Среди чисел 1, , …,
n

найти все те,
которые можно представить в виде суммы квадратов двух нат
у
раль
ных числе. Определить процедуру, позволяющую распознавать
полные квадраты.

1.

Даны натуральные числа
n
,
m
; найти
,
ÍÎÄnm
. Используя пр
о
грамму, включающую рекурсивную процедуру вычисления
ÍÎÄ
,
основанную на соотношении
,,
ÍÎÄnmÍÎÄmr

, где
r



о
с
таток от деления
n

на
m
. Чем эта программа хуже нерекурси
в
ной программы вычисления
,
ÍÎÄnm
?

1.

Даны натуральные числа
a
,
c
,
m
. Получить

fm
, где

,åëè 09,

1, â ïðîèâî ëóàå.
nn
fn
gnfngnn







Использовать программу, включающую рекурсивную процедуру

вычисления

fn
.

15.

Даны неотрицательные целые числа
n
,
m
; вычислить
,
Anm
, где

1,åëè 0,
,1,1åëè 0,0,
1,,1åëè 0, 0
mn
AnmAnnm
AnAnmnm









Э
то функция Аккермана.

Использовать программу, включающую

рекурсивную пр
о
цедуру.

1.

Два натуральных числа называются дружественными», если ка
ж
дое из них равно сумме всех делителей другого, за исключением
его самого таковы, например, числа 0 и 8. Напечатать все
п
а
ры

дружественных


чисел, не превосходящих зад
анного нат
у
рального числа.

17.

Даны координаты вершин двух треугольников. Определить, какой
из них имеет большую площадь.

18.

Даны координаты вершин треугольника и координаты некоторой
точки внутри него. Найти расстояние от данной точки до ближа
й
шей стороны треуго
льника. При определении расстояний учесть,
что площадь треугольника может вычисляться разными способами


через три его стороны или через основание и высоту.

19.

Три прямые на плоскости заданы уравнениями
kkk
axbyc



1,,
k

. Если эти прямые попарно пересекаются и образуют
треугольник, найти его площадь.

0.

Даны коэффициенты многочленов

Px

и

Qx

15

й степени и д
а
но вещественное число
a
. Вычислить величи
ну
1.
PaQaPa





Текстовые файлы


Текстовые файлы являются последовательными файлами доступ к их эл
е
ментам может быть получен лишь последовательно от начала до ко
н
ца
файла.

Для работы с текстовым файлом в программе следует описать
файл
о
в
ую
переменную
типа
txtfil
:

var

f

:
txtfil
;

которая называется
дескриптором
файла. В дескрипторе хранится
указ
а
тель файла
, который похож на курсор в текстовом редакторе. Как и курсор,
указатель файла обозначает текущую позицию в открытом текстовом фа
й
л
е. В режиме чтения информации из файла указатель файла определяет
следующий элемент данных, который будет считан из файла. В реж
и
ме
записи указатель файла определяет позицию, в которую будет записан сл
е
дующий элемент данных.


1









Описав дескриптор файла, необх
одимо связать или
инициализировать
файл, т.е. установить связь файловой переменной с файлом на диске проц
е
дурой

1.
AssignFil

var

f

:
txtfil
;
Nam
:
String


,
где
Nam



правильно п
о
строенное имя файла, существующего или вновь создаваемого. Если файл
находи
тся не в текущей папке


в той, где хранится ваша программа, в
Nam

должено быть указано полное имя файла, включая имя диска и всех
папок.

После этого для доступа к файлу выполняется
открытие файла
одной из
трех процедур:

.
Rst

var

f
:
txt



открывает
файл для чтения.

.
Rwrit

var

f
:
txt



открывает файл для записи.

.
An

var

f
:
txt



открывает файл для записи в конец файла.
Процедуры
r
st

и
a
n

выполняются только для существующих фа
й
лов,
процедура
r
writ



для любых файлов, но если файл су
ществует, он будет
уничтожен и создан заново. Чтение из файла и запись в файл выпо
л
няются
процедурами
raln
и
writln
, но перед списком ввода или вывода зад
а
ется файловая переменная:

5.
Ra
lnvar
f
:txt
;
список

ввода

.

.
Writ
lnvar
f
:txt
;
списо
к

вывода

.

Для те
к
стовых файлов определены четыре логические функции:

7.

Eoln

var

f
:
txt

:
b
oolan



возвращает
tru
, если при чтении дости
г
нут конец строки.

8.
E
of

var

f
:
txt

:
b
oolan



возвращает
tru
, если при чтении дости
г
нут конец файла.

9.
S
koln

va
r

f
:
txt
:
b
oolan



возвращает
tru
, если в строке бол
ь
ше нет ничего, кроме пробелов.

10.
S
kof

var

f
:
txt
:
b
oolan



возвращает
tru
, если в фа
й
ле нет
больше ничего, кроме пробелов.

Функция
oln

пригодится вам, если вы читаете из текстового файла
симв
о
л
ы
; функция
of



если вы ч
и
таете
символы
или
строки
, а функции
skoln

и
skof

необходимы при вводе
чисел
из текстового файла.


Задача.

Р
азработать приложение, имитирующее работу простейшего реда
к
тора. Предоставить возможность создавать, открывать, с
о
хр
анять файлы
через главное меню, а также выводить информацию о программе.

Форма будет иметь вид:

Рис.
8

Разместим на форме и изменим некоторые свойства следующих компоне
н
тов:


Компонент

Свойс
т
во

Значение

Form

Nam

Cation

frmSimlEitor

Простой редактор

OnDialog 
комп
о
нент

закладки
Di
a
logs

Nam

lgOnFil

SavDialog 

комп
о
нент

закладки
Di
a
logs

Nam

lg
Sav
Fil

Labl

Nam

Cation

lblCommnt


Введите текст и затем выбер
и
те

Fil

Sav

Mmo

Nam

Lins

Scro
l
l
Bars

mmOutut


Пустая строка


ssBoth

MainMnu

Nam

Itms

MMnuEitor



см ниже


При р
абот
е

с компонентом
MainMnu


MMnuEitor

н
еобходимо активиз
и
ровать свойство
Itms
; с
оздать пункт главного меню
Fil
, изменив для него
свойства
Nam

muiFil

и
Cation

Fil
, затем в расположенных ниже ко
н
турных окошках п
о
очередно ввести подпункты главного меню:

Nam

Cation

mu1Nw

Nw

mu1On

On

mu1Lin1



mu1Sav

Sav

mu1Lin




mu1Exit

Exit












Далее создать пункт главного меню
Hl
, изменив для него свойс
т
ва
Nam


muiHl

и
Cation


Hl
. У него будет лишь один подпункт
About...


Nam


muAbout

и
Cation


About...



С
озда
дим

обработчики событий по выбору определенного пункта меню.

rocur TfrmSimlEitor.mu1OnClickSnr: TObjct;

var


f: T
xtFil;


fNam, buf: String;


bgin


lblCommnt.Visibl:Fals;


MmOutPut.Clar;


MmOutPut.Visibl:Tru;


if not lgOnFil.Excut //
если выбор файла в диалоговом



//
окне не произведен


thn


xit
;//
завершает выполне
ние процедуры и передает


// управление в точку вызова



fNam

:
lgOnFil
.
FilNam
;
// имя файла


frmSimlEitor.Cation : fNam;


AssignFilf, fNam;
// инициализация файла


try

//
try
...
xct

служит для обработки исключений


Rstf;


xct


on EInOutError o
// в случае ошибки ввода

вывода


bgin


ShowMssag
Ошибка доступа к файлу 


fNam;


xit;


n;


n;


whil not EOFf o


bg
in


ralnf, buf;


MmOutPut.Lins.Abuf;


n;


ClosFilf;

n;


rocur TfrmSimlEitor.mu1SavClickSnr: TObjct;

var


f: TxtFil;


fNam: String;


i: intgr;

bgin


lblCommnt.Visibl:Fals;


if not lg
SavFil.Excut
//
если

выбор

файла

в

диалоговом



// окне не произведен


thn


xit
;



fNam : lgSavFil.FilNam;


AssignFilf, fNam;



Rwritf;


for i:0 to mmOutut.Lins.Count o


writlnf, mmOutut.Lins
i;



ClosFilf;



MssagDlgДанные ЗАПИСАНЫ в файл ,mtInformation,mbOk,0;

n;


rocur TfrmSimlEitor.muAboutClickSnr: TObjct;

bgin


lblCommnt.Visibl:Fals;


Alication.MssagBoxЭто простой редактор, версия 0.01,


О программе...,
MB
_
OK
;

n;


rocur TfrmSimlEitor.mu1NwClickSnr: TObjct;

bgin


MmOutPut.Visibl:Tru;


lblCommnt.Visibl:Tru;

n;


rocur TfrmSimlEitor.mu1ExitClickSnr: TObjct;

bgin



Halt
;

// завершение работы приложения


5









n
;


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

1
1

Работа с текстовыми файлами

Разработать приложение, решающее поставленную задачу. Предоставить
в
зависимости от задания
возможность создавать, открывать, сохранять
фа
й
лы через главн
ое меню, а также выводить инфо
р
мацию о программе:

1.


Дан файл, содержащий текст, записанный строчными рус
скими
буквами. Получить в другом файле тот же текст, записан
ный з
а
главными буквами.

.

Дан файл, содержащий произвольный текст. Выяснить, чего в нем
больш
е: русских букв или цифр.

.

Дан файл, содержащий текст на русском языке. Выяснить, вхо
дит
ли данное слово в указанный текст, и если да, то сколько раз.

.

Дан файл, содержащий текст на русском языке. В предложе
ниях
некоторые из слов записаны подряд несколько
раз предло
жение
заканчивается точкой или восклицательным знаком. По
лучить в
новом файле отредактированный текст, в котором удале
ны повто
р
ные вхождения слов в предложение.

5.


Дан файл, содержащий текст, набранный заглавными рус
скими
буквами. Провести ча
стотный анализ текста, т. е. указать в пр
о
центах, сколько раз встречается та или иная буква.

.

Дан файл, содержащий текст на русском языке. Определить, скол
ь
ко раз встречается в нем самое длинное слово.

7.

Дан файл, содержащий произвольный текст. Проверить, п
ра
вильно
ли в нем расставлены круглые скобки т. е. находится ли правее
каждой открывающейся скобки закрывающаяся и левее закрыв
а
ю
щейся


открывающаяся.

8.

Дан файл, содержащий текст на русском языке. Составить в ал

фавитном порядке список всех слов, встреч
ающихся в этом те
к
сте.

9.

Дан файл, содержащий текст на русском языке. Определить, скол
ь
ко раз встречается в нем самое короткое слово.

10.

Дан файл, содержащий текст на русском языке и некоторые два
слова. Определить, сколько раз они встречаются в тексте и скольк
о
из них


непосредственно друг за другом.

11.

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

1.


Дан файл, содержащий текст и арифметические в
ыражения вида
ab

, где



один из знаков ,

, , /. Выписать все арифметич
е
ские выражения и вычислить их значения.

1.


Даны файл, содержащий текст на русском языке, и неко
торые бу
к
вы. Найти слово, содержащее

наибольшее количество указанных
букв.

1.


Даны файл, содержащий текст на русском языке, и неко
торая бу
к
ва. Подсчитать, сколько слов начинается с указанной буквы.

15.


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

1.

Дан файл, содержащий текст, включающий русские и ан
глийские
слова. Подсчитать, каких букв в тексте больше


рус
ских или л
а
тинских.

17.

Дан файл, содержащий текст, включающий в себя рус
ские и а
н
г
лийские слова. Получить нов
ый файл, заменив в ис
ходном все з
а
главные буквы строчными и наоборот.

18.

Дан файл, содержащий зашифрованный русский текст. Каждая
б
у
ква заменяется на следующую за ней буква
я

заме
няется на
а
.
П
о
лучить в новом файле расшифровку данного текста.

19.

Даны два тек
стовых файла
1
f

и

f
. Файл
1
f

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

f

содержит не более 0 слов, ко
то
рые разделены
запятыми. Эти слова образуют пары: каждое второе является син
о
нимом первого. Заменить в файле

1
f

те слова, которые можно, их
синоним
а
ми. Результат поместить в новый файл.

0.

Дан текстовый файл. Удалить из него все лишние

пробелы, о
с
т
а
вив между словами не более одного пробела. Результат поме
стить в
новый файл.

1.

Даны текстовый файл и некоторое слово. Напечатать те строки
файла, которые содержат данное слово.

.

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

.

Текстовый файл содержит запись многочлена некоторой сте
пени с
одной переменной
x
, коэффициенты многочлена


целые. Напр
и
мер,
5^^15^
xxx

. Указать ст
епень многочлена, его
коэффициенты. Дописать в указанный файл таблицу значений эт
о
го многочлена на данном отрезке


,
ab
.


7







8

.

Дан файл, содержащий текст на русском языке. Подсчи
тать кол
и
чество слов, начинающихся и заканчивающихся на одну
и ту же
букву.


Записи

Задача.

Разработать приложение, о
пределяющую дату за
в
трашнего дня.

Чтобы определить дату завтрашнего дня, надо знать не только дату сег
о
дняшнего дня, но и число дней данного месяца так как если это п
о
следний
день месяца, то завтра б
удет первый день следующего, кроме т
о
го, надо
знать, високосный

год или нет от этого зависит число дней фе
в
раля.

Заметим, что
если это не последний день месяца, то завтра будет тот же
год, тот же месяц, а число увеличится на 1
. Е
сли это последний день
мес
я
ца, то

если это не декабрь, то завтра будет тот же год, но первое число сл
е
дую
щего месяца;

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

Форма будет иметь вид:

Рис.9

Фрагмент

кода
:

{

}

ty yar1500..000;


month1..1;


ay1..1;


ataRcor


y: yar;


m: month;


: ay;


En; {ata}


function

La

yy
:
yar
:
boolan
;
{функция, определяющая, високосный

год

или нет}

bgin

{год называется високосным, если его номер делится на , но если
это год столетия, то номер столетия не делится на , то есть не д
е
ли
т
ся на 00}

La:yy mo 0 an yy mo 00  0;

n;
{La}


function

Dmonth

mm
:
month
;
yy
:
ya
r
:
ay
;

{функция определения колич
е
с
т
ва дней данного месяца в данном году}

bgin

cas mm of


1,,5,7,8,10,1: Dmonth:1;


,,9,11: Dmonth:0;


: if Layy thn Dmonth:9 ls Dmonth:8;

n;

n;
{Dmonth}


rocur Tomorrowt: ata; var n:
ata;
{процедура определения
завтрашней даты}

bgin
{если это не последний день месяца}

if t.Dmontht.m, t.y


thn


with n o


bgin


:t.1;


m:t.m;


y:t.y;


n


ls
{если это п
оследний день месяца}


if t.m1


thn {если это декабрь}


with n o bgin :1; m:1; y:t.y1; n


ls {если это не декабрь}


with n o bgin :1; m:t.m1; y:t.y; n;

n;
{Tomorrow}


rocur T
Form1.BitBtn1ClickSnr: TObjct;

var

at, nxt: ata;

bgin


9







50


lblRsult.Cation:;


at.:StrToIntt_Day.Txt;


at.m:StrToIntt_Month.Txt;


at.y:StrToIntt_Yar.Txt;


Tomorrowat,nxt;


lblRsult.Catio
n:Завтра будет IntToStrnxt..


IntToStrnxt.m.IntToStrnxt.y;

n;

{
}

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

1



Записи

1.

Распечатать список
студентов
, фамилии которых начинаю
тся на

указанную пользователем

букву, с указанием даты их рождения.

.

Из данного списка спортсменов
предоставить

сведения о тех из
них, кто занимается плаванием. Указать возраст, сколько лет они
занимаю
т
ся спортом.

.

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

и
ин
о
странному языку
.
Вывести

список
студентов
, имеющих средний
балл выше среднего в
групп
е.

.

Распечатать фамилии
сотрудников фирмы
, начинающиеся с букв
ы,
указанной пользователем. Пред
оставить сведения об
их месячной
зарплат
е
.

5.

Из ассортимента конфет, выпускаемых кондитерс
кой фабрикой,
выбрать те, стоимость которых
находится в диапазоне, указанном
пользователем например, от 50 до 100р за 1 кг
. Указать срок
хр
а
нения
.

.

Распечатать список

учеников музыкальной школы,
занимающихся
по классу скрипки
. Указать также, сколько лет они занима
ются м
у
зыкой и принимали ли участие в каких

либо конку
р
сах.

7.

Среди работников данного предприятия найти тех, чья заработ
ная
плата за месяц ниже средней по пр
едприятию, а также
вывести

сп
и
сок тех, кто проработал на предприятии более 10 лет, с ука

занием их фам
и
лии, зарплаты, стажа работы и должности.

8.

Распечатать фамилии
студентов группы
, которые не получили ни
одной тройки за последнюю
сессию
. Каков их средний
балл?

9.

Распечатать фамилии детей данного детского сада, которые род
и
лись в определенном месяце; указать их возраст и группу.

10.

Распечатать список тех учителей школы, которые препода
ют мат
е
матику и информатику, указать стаж их работы и недель
ную
н
а
грузку.

11.

Ра
спечатать анкетные данные
студентов
, участвовавших в оли
м
пиаде по
мате
матике и
набр
авших не менее
50%
.

1.

Распечатать фамилии тех
студентов

группы
, которые являют
ся х
о
рошистами и отличниками. Также указать, насколько их средний
балл отличается от среднего ба
лла
группы
.

1.

По данным сведениям об
студентах

группы

определить сред
нюю
массу
юношей

и средний рост дев
уш
ек. Кто из
студентов

группы

самый высокий?

1.

Дан

фрагмент

результат
ов

переписи населения. Напечатать фам
и
лии, имена и подсчитать общее число жителей, род
ившихся после
1990 г.

15.

До момента принема в ВУЗы по результатам ЕГЭ, при

поступл
е
нии в
институты

лица, получившие оценку неудовлетворительно»
на первом экзамене, ко второму экзамену не допуска
лись
. Считая
ф
а
милии абитуриентов и их оценки после первого экза
мена исхо
д
н
ы
ми данными, составить список абиту
риентов, допущенных ко
второму э
к
замену.

1.

Составить программу назначения стипендии студентам по резул
ь
татам сессии, используя следующие правила:

1 если все оценки 5, назначается повышенная стипендия;

 если

все оценки  и 5, назначается обычная стипендия;

 если есть оценка , стипендия не назначается.

В результате работы программы должен быть напечатан список
группы с оценками и средним баллом каждого студента и два сп
и
с
ка фамилий назначенных на повышенн
ую и обычную стипе
н
дию.

17.

В таблице хранятся следующие данные об
студен
ах: фами
лия, имя,
отчество, рост. Вычислить средний рост
студентов
, рост самого в
ы
сокого и самого низкого
студент
а. Сколько
студентов

могут з
а
н
и
маться в баскетбольной секции, если рост
баскетболиста до
л
жен
быть больше 170 см?

18.

На аптечном складе хранятся лекарства. Сведения о лекар
ствах с
о
держатся в специальной ведомости: наименование лекар
ственного
препарата; количество; цена;
дата производства;
срок хранения в
меся
цах. Выяснить, ск
олько стоит самый дорогой и самый деш
е
вый препарат; сколько препаратов хранится на складе; какие пр
е
параты имеют срок хранения более  месяцев; сколько стоят все
пре
параты, хранящиеся на складе.


51







5

19.

В столовой предлагается
N

комплексных обедов, состоящих из
Q

блюд. Известна стоимость и калорийность каждого блюда. Сколько
стоит самый дешевый и самый дорогой обед? Сколько к
а
лорий
включает в себя самое калорийное блюдо?

0.

Торговый склад производит уценку хранящейся продукции. Если
продукция хранится на складе дольш
е
n

месяцев, то она уце

нивается в  раза, а если срок хранения превысил
m


m


n


меся

цев, но не достиг
n
, то


в 1,5 раза. Ведомость уценки товаров
должна содержать следующую информацию: наименование това
ра,
количество товара, цена товара до уценки, ср
ок хранения това
ра,
цена товара после уценки, общая стоимость товара до уценки, о
б
щая стоимость товаров после уценки. Выяснить максимальный и
мин
и
мальный сроки хранения товаров на складе; максимальную и
м
и
нимальную цену товаров до уценки и после уценки.

1.

N

спортсменов

многоборцев принимают участие в соревно
ваниях
по
М

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

.

N

студентов

проходили тестирование, выполнив
М

тестов по как
о
му

либо предмету. Сколько очков набрал каждый
студент

по всем
темам? Вычислить средний балл, полученный
студент
ами, и ра
з
н
и
цу между л
учшим результатом и средним баллом.

.

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

.

Описать переменную
круг
, в которой содержатся все дан
ные для
построения круга в декартовой системе координат.

а Определить координаты центра, радиус, площадь и длину
окружн
о
сти круга минимального радиуса, который будет содер

жа
ть внутри себя все заданные круги.

б Рассматривая окружности попарно, определить координа
ты
точек пересечения или точки касания для каждой пары, либо
вывести соо
б
щение об отсутствии общих точек.

5.

Описать переменную
экзаменационная ведомость

пред
мет, н
о
мер группы, номер зачетной книжки, фамилия, имя, от
чество ст
у
дента, его оценки по итогам текущей сессии. Опреде
лить отличн
и
ков, хорошистов, троечников и двоечников.

.

Создать записи, определяющие положение точки в декарто
вой и в
полярной системах координ
ат. Считая, что задан массив коорд
и
нат
точек в декартовой системе координат, получить соответс
т
вующий
массив координат заданных точек в полярной сис
теме координат.

7.

Задан массив квадратных трехчленов, где каждый трехчлен имеет
комплексные коэффициенты. Сфо
рмировать массив кор
ней тре
х
членов. Сформировать массив значений трехчленов в точке

õi

.

8.

Дан массив записей, содержащих дату число, месяц, год и время
час, минута, секунда. Упорядочить этот массив в поряд
ке во
з
растания», т.е.

от более ранних значений к более поздним.

9.

Описать переменную
расписание
, содержащую

день недели
,
кол
и
чество пар в этот день, время начала и конца пары,
название пре
д
мета,
фамилию преподавателя.

Вывести полную информацию о
занятиях, относящихся к пред
метн
ой области 
Математический
анализ
».

0.

В библиотеке имеются книги, газеты, журналы. Для каждого п
е
чатного изда
ния указать название,
год выпуска для книги

или

д
а
ту выпуска для газет и журналов
,
автора для книги

или

состав

редколле
гии

для газет

и
журна
л
ов,
объем.

Вывести информацию
об изданиях, вышедших в заданном году.


5







5

Список литературы:


1.

Коробчинская О.Г., Файрузов М.Э. Программирование в
Dlhi
.

Разработка ко
н
сольных приложений учебное пособие.


РИО

БашГУ
, 00
8.


108с.

.

Коробчинская О.Г., Файруз
ов М.Э., Коробчи
н
ский А.В., Манапова
А.Р. Программирование в
Dlhi
. Разработка приложений
Wi
n
ows

учебное пособие.


РИО

БашГУ, 0
10.


98с.

.

Культин Н.Б.
Dlhi

в задачах и примерах.


СПб.: БХВ

Петербург, 00.


88с.:ил.

.

Митчелл К. Керман Программир
ование и отладка в
Dlhi
.
Уче
б
ный курс. : Пер. с англ.


М. : Издательский дом Вильямс», 00,
7с.

5.

Могилев

А.В.
, Пак

Н.И.
, Хеннер
Е.К.
Практикум по информат
и
ке:

Учеб.

пособие для студ. высш.

учеб.

заведений.


М.: Издательский
центр Академия», 005.


08с.

.

Семакин И.Г., Шестаков А.П. Основы программирования. Уче
б
ник.


М.: Мастерство, 00.


с.


Оглавление


Лабораторная работа №1. Программы линейной структуры




Лабораторная работа №. Ветвления






Лабораторная работа №. Простейшие циклы



9

Ла
бораторная работа №. Вычисление суммы ряда



1

Лабораторная работа №5. Целочисленная арифметика


15

Лабораторная работа №. Одномерные массивы



18

Лабораторная работа №7. Преобразование и построение массивов



Лабораторная работа №8. Операции с элемент
ами массивов




Лабораторная работа №9. Обработка последовательностей символов
9

Лабораторная работа №10. Использование подпрограмм




Лабораторная работа №11. Работа с текстовыми файлами


0

Лабораторная работа №1. Записи







Список литературы






8


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

  • pdf 8812610
    Размер файла: 901 kB Загрузок: 0

Добавить комментарий