Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТPascal Сборник конспектов.doc
Скачиваний:
24
Добавлен:
10.11.2018
Размер:
924.67 Кб
Скачать

16. Использование генератора случайных чисел.

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

Randomize;

Далее можно получать целые случайные числа из диапазона [0..N-1] с помощью функции Random(N), где N – целое положительное число.

Примеры:

Random(4) – даст случайное целое число из набора 0, 1, 2, 3

Random(10) – даст случайное целое число из набора 0, 1, 2, 3….9

Random(4)+2 – даст случайное целое число из набора 2, 3, 4, 5

Random(640) – даст случайное целое число из набора 0, 1, 2, 3….639

Random(480) – даст случайное целое число из набора 0, 1, 2, 3….479

Задача 1. «Случайные круги». Заполнить экран сотней случайных закрашенных кругов.

Схема решения:

Для каждой окружности от 1 до 100й делать блок:

(x=Random(640); y=Random(480); r=50+Random(100); Изо круга)

Программа:

Program Krugi;

Uses Graph;

Var gd,gm,n,x,y,r,c: Integer;

Begin

Randomize;

gd:=Detect; InitGraph(gd,gm,’’);

For n:=1 To 100 Do Begin

c:=Random(15);Setcolor(c);SetFillStyle(1,c);

x=Random(640); y=Random(480); r=50+Random(100);

PieSlice(x,y,0,360,r); End;

ReadLn;

CloseGraph;

End.

Выбираем случайный цвет

Находим случайные координаты

Рисуем круг

Задача 2. «Случайные прямоугольники». Заполнить экран сотней случайных закрашенных прямоугольников (Bar).

17. Операции над строками.

Строка – это набор любых символов заключенный в кавычки.

Пример: ‘Сегодня 1 декабря 2007 года.’

Строковые переменные имеют тип String.

Пример объявления строковых переменных:

Var a,b,c: String;

n,m: String[10];

s: String[25];

a,b,c – строки произвольной длины

n,m – строки ровно из 10 символов

s – строка ровно из 25 символов

Основные операции над строками:

+ Сцепление строк (объединение)

S1:=’ПАР’;

S2:=’ВОЗ’;

S3:=S1+’O’+S2;

WriteLn(S3);

S4:=S2+’O’+S1;

WriteLn(S4);

Строке S1 присвоить значение ‘ПАР’

Строке S2 присвоить значение ‘ВОЗ’

Строка S3 – это сумма трех строк

Получим ответ ‘ПАРОВОЗ’

S4 – это сумма строк в другом порядке

Получим ответ ‘ВОЗОПАР’

Length(строка) длина строки

S1:=’мир’;S2:=’1 декабря.’;S3:=’’;

n1:=Length(S1); WriteLn(n1);

n2:=Length(S2); WriteLn(n2);

n3:=Length(S3); WriteLn(n3);

S1,S2,S3 – различные строки

Длина строки S1 будет равна 3

Длина строки S2 будет равна 10

Длина строки S3 будет равна 0

Copy(строка, позиция, число символов)  выделение фрагмента из строки

S:=’ИНФОРМАТИКА’;

S1:=Copy(S,3,5); WriteLn(S1);

S2:=Copy(S,8,3); WriteLn(S2);

S3:=Copy(S,2,1); WriteLn(S3);

S – это ‘ИНФОРМАТИКА’

S1 – это часть S, начиная с 3го символа и число символов равно 5 ’ФОРМА

S2 – это часть S, начиная с 8го символа и число символов равно 3 ’ТИК

S3 – это часть S, начиная с 2го символа и число символов равно 1 ’Н

Pos(подстрока, строка)  находит местонахождения подстроки в строке

S:=’КАРАБАС БАРАБАС’;

n1:=Pos(‘БАР’,S);WriteLn(n1);

n2:=Pos(‘РАБ’,S);WriteLn(n2);

n3:=Pos(‘РОБ’,S);WriteLn(n2);

Получим 9 (‘БАР’ стоит на 9й позиции)

Получим 3 (‘РАБ’ стоит на 3й позиции)

Получим 0 (‘РОБ’ не встречается)

Delete(строка, позиция, число символов)  удаление части строки

S:=’КАРТИНА’;

Delete(S,5,2);

WriteLn(S);

S1:=’МАРИНА’;

Delete(S,2,2);

WriteLn(S1);

Удаляем 2 буквы начиная с пятой

Получим ‘КАРТА’

Удаляем 2 буквы начиная со второй

Получим ‘МИНА’

Insert(подстрока, строка, позиция)  вставка подстроки в строку

S:=’КОРА’;

Insert(‘ОВ’,S,4);

WriteLn(S);

S1:=’РОЗА’;

Insert(‘Г’,S1,1);

WriteLn(S1);

Получим ‘КОРОВА’

Получим ‘ГРОЗА’

Str(число:формат, строка) преобразование числа в строку

x:=12.7843;

Str(x:8:2,s);

WriteLn(s);

y:=567.7;

Str(y:8:4,s1);

WriteLn(s1);

S  ‘_ _ _12.78’

S1  ‘567.7000’

Val(строка, число, код завершения) преобразует строку в число (если после завершения операции код=0, то преобразована вся строка, если код>0 , то преобразование было прервано на символе с номером равным коду)

S:=’12.78’;

Val(S, x, cod);

WriteLn(x, cod);

S:=’12.78 рублей’;

Val(S, x, cod);

WriteLn(x, cod);

S:=’С вас 12.78 рублей’;

Val(S, x, cod);

WriteLn(x, cod);

Даст: x=12.78 и cod=0

Даст: x=0 и cod=6

Даст: x=0 и cod=1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]