Содержание
- 2. Программирование на языке Паскаль Часть II Тема 1. Массивы
- 3. Массивы Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом. Особенности:
- 4. Массивы A массив 3 15 НОМЕР элемента массива (ИНДЕКС) A[1] A[2] A[3] A[4] A[5] ЗНАЧЕНИЕ элемента
- 5. Объявление массивов Зачем объявлять? определить имя массива определить тип массива определить число элементов выделить место в
- 6. Объявление массивов Массивы других типов: Другой диапазон индексов: Индексы других типов: var X, Y: array [1..10]
- 7. Что неправильно? var a: array[10..1] of integer; ... A[5] := 4.5; [1..10] var a: array ['z'..'a']
- 8. Массивы Объявление: Ввод с клавиатуры: Поэлементные операции: Вывод на экран: const N = 5; var a:
- 9. Задания «3»: Ввести c клавиатуры массив из 5 элементов, умножить их на 2 и вывести на
- 10. Задания «5»: Ввести c клавиатуры массив из 5 элементов, найти минимальный из них. Пример: Введите пять
- 11. Практикум: заполнение массива «3»: 1. Заполните массив A нулями. 2. Заполните массив A первыми N натуральными
- 12. Практикум: изменение элементов массива «3»: 1. Увеличить все элементы массива A на 1. 2. Умножить все
- 13. Программирование на языке Паскаль Часть II Тема 2. Максимальный элемент массива
- 14. Максимальный элемент Задача: найти в массиве максимальный элемент. Алгоритм: Псевдокод: { считаем, что первый элемент –
- 15. Максимальный элемент max := a[1]; { считаем, что первый – максимальный } iMax := 1; for
- 16. Программа program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer;
- 17. Задания «3»: Ввести с клавиатуры массив из 5 элементов, найти в нем минимальный элемент и его
- 18. Задания «5»: Ввести с клавиатуры массив из 5 элементов, найти в нем два максимальных элемента и
- 19. Практикум: максимум/минимум «3»: 1. Найти максимальное значение среди всех элементов массива. 2. Найти минимальное значение среди
- 20. Программирование на языке Паскаль Часть II Тема 3. Обработка массивов
- 21. Случайные процессы Случайно… встретить друга на улице разбить тарелку найти 10 рублей выиграть в лотерею Случайный
- 22. Случайные числа на компьютере Электронный генератор нужно специальное устройство нельзя воспроизвести результаты 318458191041 564321 209938992481 458191
- 23. Распределение случайных чисел Модель: снежинки падают на отрезок [a,b] распределение равномерное неравномерное
- 24. Распределение случайных чисел Особенности: распределение – это характеристика всей последовательности, а не одного числа равномерное распределение
- 25. Генератор случайных чисел в Паскале Целые числа в интервале [0,N): var x: integer; ... x :=
- 26. Заполнение массива случайными числами const N = 5; var A: array [1..N] of integer; i: integer;
- 27. Подсчет элементов Задача: заполнить массив случайными числами в интервале [-1,1] и подсчитать количество нулевых элементов. Идея:
- 28. Подсчет элементов начало конец нет да нет да count:= 0 i:= 1 count:= count + 1
- 29. Подсчет элементов program qq; const N = 5; var A: array [1..N] of integer; i, count:
- 30. Задания «3»: Заполнить массив случайными числами в интервале [-2,2] и подсчитать количество положительных элементов. «4»: Заполнить
- 31. Практикум: подсчёт элементов массива «3»: 1. Определите, сколько элементов массива A равны 1. 2. Определите, сколько
- 32. Сумма выбранных элементов Задача: заполнить массив случайными числами в интервале [-10,10] и подсчитать сумму положительных элементов.
- 33. Сумма выбранных элементов начало конец нет да нет да S:= 0 i:= 1 S:= S +
- 34. Сумма выбранных элементов program qq; const N = 5; var A: array [1..N] of integer; i,
- 35. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [-10,10] и подсчитать сумму всех
- 36. Практикум: суммы, прозведения… «3»: 1. Вычислить сумму всех элементов массива A. 2. Вычислить сумму отрицательных элементов
- 37. Поиск в массиве Задача – найти в массиве элемент, равный X, или установить, что его нет.
- 38. Поиск элемента, равного X начало конец нет да нет да i:= 1 i:= i + 1
- 39. Поиск элемента в массиве program qq; const N=5; var a:array[1..N] of integer; i, X: integer; begin
- 40. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [10..20] и найти элемент, равный
- 41. Задания «5»: Заполнить массив из 10 элементов случайными числами в интервале [0..4]и определить, есть ли в
- 42. Практикум: суммы, прозведения… «3»: 1. Определите в массиве A номер первого элемента, равного X. 2. Определите
- 43. Реверс массива Задача: переставить элементы массива в обратном порядке. Алгоритм: поменять местами A[1] и A[N], A[2]
- 44. Как переставить элементы? 2 3 1 Задача: поменять местами содержимое двух чашек. Задача: поменять местами содержимое
- 45. Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin
- 46. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и сделать реверс всех
- 47. Задания «5»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и сделать реверс отдельно
- 48. Циклический сдвиг Задача: сдвинуть элементы массива влево на 1 ячейку, первый элемент становится на место последнего.
- 49. Программа program qq; const N = 10; var A: array[1..N] of integer; i, c: integer; begin
- 50. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить циклический сдвиг
- 51. Задания «5»: Заполнить массив из 12 элементов случайными числами в интервале [-12..12] и выполнить циклический сдвиг
- 52. Выбор нужных элементов Задача – найти в массиве элементы, удовлетворяющие некоторому условию (например, отрицательные), и скопировать
- 53. Выбор нужных элементов Решение: ввести счетчик найденных элементов count, очередной элемент ставится на место B[count]. count:=0;
- 54. Как вывести массив B? Примитивное решение: writeln('Выбранные элементы:'); for i:=1 to N do write(B[i], ' ');
- 55. Задания «3»: Заполнить массив случайными числами в интервале [-10,10] и записать в другой массив все положительные
- 56. Задания «5»: Заполнить массив случайными числами и выделить в другой массив все числа, которые встречаются более
- 57. Программирование на языке Паскаль Часть II Тема 4. Сортировка массивов
- 58. Сортировка Сортировка – это расстановка элементов массива в заданном порядке (по возрастанию, убыванию, последней цифре, сумме
- 59. Метод пузырька Идея – пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов –
- 60. Программа 1-ый проход: сравниваются пары A[N-1] и A[N], A[N-2] и A[N-1] … A[1] и A[2] A[j]
- 61. Программа program qq; const N = 10; var A: array[1..N] of integer; i, j, c: integer;
- 62. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и отсортировать его по
- 63. Задания «5»: Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать первую половину
- 64. Метод пузырька с флажком Идея – если при выполнении метода пузырька не было обменов, массив уже
- 65. Метод пузырька с флажком i := 0; repeat i := i + 1; flag := False;
- 66. Метод выбора Идея: найти минимальный элемент и поставить на первое место (поменять местами с A[1]) из
- 67. Метод выбора for i := 1 to N-1 do begin nMin:= i ; for j:= i+1
- 68. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [0..99] и отсортировать его по
- 69. Задания «5»: Заполнить массив из 10 элементов случайными числами в интервале [0..100] и отсортировать первую половину
- 70. «Быстрая сортировка» (Quick Sort) Идея – более эффективно переставлять элементы, расположенные дальше друг от друга. N
- 71. «Быстрая сортировка» (Quick Sort) Медиана – такое значение X, что слева и справа от него в
- 72. «Быстрая сортировка» (Quick Sort)
- 73. «Быстрая сортировка» (Quick Sort) procedure QSort ( first, last: integer); var L, R, c, X: integer;
- 74. «Быстрая сортировка» (Quick Sort) program qq; const N = 10; var A: array[1..N] of integer; begin
- 75. Количество перестановок (случайные данные)
- 76. Задания «3»: Заполнить массив из 10 элементов случайными числами в интервале [-50..50] и отсортировать его с
- 77. Программирование на языке Паскаль Часть II Тема 5. Двоичный поиск
- 78. Поиск в массиве Задача – найти в массиве элемент, равный X, или установить, что его нет.
- 79. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 80. Двоичный поиск nX := 0; L := 1; R := N; {границы: ищем от A[1] до
- 81. Сравнение методов поиска
- 82. Задания «3»: Написать программу, которая сортирует массив по возрастанию и ищет в нем элемент, равный X
- 83. Программирование на языке Паскаль Часть II Тема 6. Символьные строки
- 84. Чем плох массив символов? var B: array[1..N] of char; Это массив символов: каждый символ – отдельный
- 85. Символьные строки длина строки рабочая часть s[1] s[2] s[3] s[4] var s: string; var s: string[20];
- 86. Символьные строки Задача: ввести строку с клавиатуры и заменить все буквы «а» на буквы «б». program
- 87. Задания «3»: Ввести символьную строку и заменить все буквы «а» на буквы «б», как заглавные, так
- 88. Задания «5»: Ввести символьную строку и проверить, является ли она палиндромом (палиндром читается одинаково в обоих
- 89. Операции со строками Объединение: добавить одну строку в конец другой. Запись нового значения: var s, s1,
- 90. Удаление и вставка Удаление части строки: Вставка в строку: s := '123456789'; Delete ( s, 3,
- 91. Поиск в строке Поиск в строке: s := 'Здесь был Вася.'; n := Pos ( 'е',
- 92. Примеры s := 'Вася Петя Митя'; n := Pos ( 'Петя', s ); Delete ( s,
- 93. Пример решения задачи Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 94. Программа program qq; var s, name, otch: string; n: integer; begin writeln('Введите имя, отчество и фамилию');
- 95. Задания «3»: Ввести в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести инициалы и
- 96. Задания «5»: Ввести путь к файлу и «разобрать» его, выводя каждую вложенную папку с новой строки
- 97. Задачи на обработку строк Задача: с клавиатуры вводится символьная строка, представляющая собой сумму двух целых чисел,
- 98. Преобразования «строка»-«число» Из строки в число: s := '123'; Val ( s, N, r ); {
- 99. Программа program qq; var s, s1, s2: string; r, n, n1, n2, sum: integer; begin writeln('Введите
- 100. Задания «3»: Ввести арифметическое выражение: разность двух чисел. Вычислить эту разность. Пример: 25-12 Ответ: 13 «4»:
- 101. Задания «5»: Ввести арифметическое выражение c тремя числами, в котором можно использовать сложение и вычитание. Вычислить
- 102. Задания «6»: Ввести арифметическое выражение c тремя числами, в котором можно использовать сложение, вычитание и умножение.
- 103. Посимвольный ввод Задача: с клавиатуры вводится число N, обозначающее количество футболистов команды «Шайба», а затем –
- 104. Посимвольный ввод Пропуск фамилии: repeat read(c); until c = ' '; { пока не встретим пробел
- 105. Программа program qq; var c: char; i, N, count, Year, Gol: integer; begin writeln('Количество футболистов'); readln(N);
- 106. Посимвольный ввод Если фамилия нужна: fam := ''; { пустая строка } repeat read(c); { прочитать
- 107. Посимвольный ввод Если нужно хранить все фамилии: const MAX = 100; var fam: array[1..MAX] of string;
- 108. Задания «3»: Вывести фамилии и имена всех футболистов, которые забили больше двух голов. Пример: Иванов Василий
- 109. Задания «5»: Вывести в алфавитном порядке фамилии и имена всех футболистов, которые забили хотя бы один
- 110. Программирование на языке Паскаль Часть II Тема 7. Рекурсивный перебор
- 111. Рекурсивный перебор Задача: Алфавит языка племени «тумба-юмба» состоит из букв Ы, Ц, Щ и О. Вывести
- 112. Рекурсивный перебор 1 K Рекурсия: Решения задачи для слов из К букв сводится к 4-м задачам
- 113. Процедура procedure Rec(p: integer); begin if p > K then begin writeln(s); count := count+1; end
- 114. Процедура procedure Rec(p: integer); const letters = 'ЫЦЩО'; var i: integer; begin if p > k
- 115. Программа program qq; var s: string; K, i, count: integer; begin writeln('Введите длину слов:'); read (
- 116. Задания Алфавит языка племени «тумба-юмба» состоит из букв Ы, Ц, Щ и О. Число K вводится
- 117. Программирование на языке Паскаль Часть II Тема 8. Матрицы
- 118. Матрицы Задача: запомнить положение фигур на шахматной доске. 1 2 3 4 5 6 c6 A[6,3]
- 119. Матрицы Матрица – это прямоугольная таблица чисел (или других элементов одного типа). Матрица – это массив,
- 120. Матрицы Объявление: const N = 3; M = 4; var A: array[1..N,1..M] of integer; B: array[-3..0,-8..M]
- 121. Матрицы Заполнение случайными числами for i:=1 to N do for j:=1 to M do A[i,j] :=
- 122. Обработка всех элементов матрицы Задача: заполнить матрицу из 3 строк и 4 столбцов случайными числами и
- 123. Задания Заполнить матрицу из 8 строк и 5 столбцов случайными числами в интервале [-10,10] и вывести
- 124. Операции с матрицами Задача 1. Вывести на экран главную диагональ квадратной матрицы из N строк и
- 125. Операции с матрицами Задача 3. Найти сумму элементов, стоящих на главной диагонали и ниже ее. строка
- 126. Операции с матрицами Задача 4. Перестановка строк или столбцов. В матрице из N строк и M
- 127. Задания Заполнить матрицу из 7 строк и 7 столбцов случайными числами в интервале [10,90] и вывести
- 128. Программирование на языке Паскаль Часть II Тема 9. Файлы
- 129. Файлы Файл – это область на диске, имеющая имя. Файлы только текст без оформления, не содержат
- 130. Принцип сэндвича I этап. открыть файл : связать переменную f с файлом открыть файл (сделать его
- 131. Работа с файлами Особенности: имя файла упоминается только в команде assign, обращение к файлу идет через
- 132. Последовательный доступ при открытии файла курсор устанавливается в начало чтение выполняется с той позиции, где стоит
- 133. Последовательный доступ чтение до конца строки как вернуться назад? close ( f ); reset ( f
- 134. Пример Задача: в файле input.txt записаны числа (в столбик), сколько их – неизвестно. Записать в файл
- 135. Программа program qq; var s, x: integer; f: text; begin assign(f, 'input.txt'); reset(f); s := 0;
- 136. Задания В файле data.txt записаны числа, сколько их – неизвестно. «3»: Найти сумму чётных чисел и
- 137. Обработка массивов Задача: в файле input.txt записаны числа (в столбик), сколько их – неизвестно, но не
- 138. Чтение данных в массив var A: array[1..100] of integer; f: text; function ReadArray: integer; var i:
- 139. Программа program qq; var A: array[1..100] of integer; f: text; N, i: integer; Begin N :=
- 140. Задания В файле input.txt записаны числа (в столбик), известно, что их не более 100. «3»: Отсортировать
- 141. Обработка текстовых данных Задача: в файле input.txt записаны строки, в которых есть слово-паразит «короче». Очистить текст
- 142. Обработка текстовых данных Алгоритм: Прочитать строку из файла (readln). Удалить все сочетания ", короче," (Pos, Delete).
- 143. Работа с двумя файлами одновременно program qq; var s: string; i: integer; fIn, fOut: text; begin
- 144. Полный цикл обработки файла while not eof(fIn) do begin readln(fIn, s); writeln(fOut, s); end; repeat i
- 145. Задания В файле input.txt записаны строки, сколько их – неизвестно. «3»: Заменить все слова «короче» на
- 146. Сортировка списков Задача: в файле list.txt записаны фамилии и имена пользователей сайта (не более 100). Вывести
- 147. Сортировка списков Алгоритм: прочитать строки из файла в массив строк, подсчитать их в переменной N отсортировать
- 148. Сортировка списков Ввод массива строк из файла: assign(f, 'list.txt'); reset(f); N:= 0; while not eof(f) do
- 149. Сортировка списков Сортировка первых N элементов массива: for i:=1 to N-1 do begin nMin:= i; for
- 150. Сортировка списков Вывод первых N строк массива в файл: assign(f, 'sort.txt'); rewrite(f); for i:=1 to N
- 151. Сортировка списков Как сравниваются строки: || || || || ? s1 s2 Кодовая таблица: Win UNICODE
- 152. Сортировка списков Как сравниваются строки: || || || ? s1 s2 'х' > ¤ 'Пароход' >
- 153. Сортировка списков Работа с отдельной строкой массива: var s: array[1..MAX] of string; c: string; {вспомогательная строка}
- 154. Задания «3»: Добавить к списку нумерацию: 1) Анисимов Никита 2) Иванов Федор «4»: Выполнить задачу на
- 155. Списки с числовыми данными Задача: в файле marks.txt записаны фамилии и имена школьников и баллы, полученные
- 156. Работа с двумя файлами одновременно var fIn, fOut: Text; ... assign(fIn, 'marks.txt'); reset(fIn); assign(fOut, 'best.txt'); rewrite(fOut);
- 157. Цикл обработки файла var ball: integer; ... while not eof(fIn) do begin readln(fIn, s); { обработка
- 158. Преобразования «строка»-«число» Из строки в число: s := '123'; Val ( s, N, r ); {
- 159. Обработка строки n:= Pos(' ', s); { n:= 7; } fam:= Copy(s,1,n-1); { fam:= 'Пупкин'; }
- 160. Задания «3»: Добавить к списку нумерацию: 1) Федоров Иван 78 2) Анисимов Никита 90 «4»: Выполнить
- 162. Скачать презентацию