- •1. Структура программы.
- •2. Раздел объявлений.
- •3. Раздел исполняемых операторов.
- •4. Решение вычислительных задач.
- •5. Структура графической программы.
- •6. Графические операторы.
- •7. Решение графических задач.
- •8. Блок операторов.
- •9. Оператор ветвления.
- •10. Решение задач на ветвления.
- •11. Оператор цикла с параметром.
- •12. Решение задач на цикл с параметром.
- •13. Двойные и тройные циклы.
- •14. Решение задач на двойные циклы.
- •15. Решение задач на циклы по окружности.
- •16. Использование генератора случайных чисел.
- •17. Операции над строками.
- •18. Решение задач на обработку строк.
- •19. Функции пользователя.
- •20. Построение графиков функций.
- •21. Решение задач на построение графиков функций.
- •22. Подпрограммы.
- •23. Решение задач на подпрограммы.
- •1. Написать программу для построения изображения:
- •2. Добавьте в вашу программу следующие элементы:
- •3. Дополнительно добавьте следующие элементы.
- •24. Задача «Звездный коврик».
- •25. Понятие массива.
- •26. Объявление массивов в программе.
- •27. Заполнение одномерных массивов данными.
- •28. Решение простых задач на массивы.
- •29. Решение задач средней сложности.
- •30. Сортировка элементов массива.
- •31. Решение задач на сортировку.
- •32. Заполнение двухмерных массивов данными
- •33. Решение задач на двухмерные массивы.
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 |