Содержание
- 2. Программирование на языке Паскаль § 62. Массивы
- 3. Что такое массив? Массив – это группа переменных одного типа, расположенных в памяти рядом (в соседних
- 4. Выделение памяти (объявление) var A: array[1..5] of integer; V: array[0..5] of real; L: array[-5..5] of boolean;
- 5. Что неправильно? var A: array[10..1] of integer; ... A[5] := 4.5; [1..10] var A: array[1..10] of
- 6. Обращение к элементу массива A массив 3 15 НОМЕР элемента массива (ИНДЕКС) A[1] A[2] A[3] A[4]
- 7. Как обработать все элементы массива? Объявление: Обработка: const N = 5; var A: array[1..N] of integer;
- 8. Как обработать все элементы массива? Обработка с переменной: i:= 1; { обработать A[i] } i:= i
- 9. Заполнение массива program Arr; const N = 10; var A: array[1..N] of integer; i: integer; begin
- 10. Ввод с клавиатуры и вывод на экран Объявление: Ввод с клавиатуры: Вывод на экран: const N
- 11. Заполнение случайными числами for i:=1 to N do begin A[i]:= 20 + random(81); write(A[i],' ') end;
- 12. Перебор элементов Общая схема: for i:=1 to N do begin ... { сделать что-то с A[i]
- 13. Перебор элементов Среднее арифметическое: count:= 0; sum:= 0; for i:=1 to N do if (180 then
- 14. Задачи «A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее арифметическое его значений. Пример:
- 15. Задачи «C»: Заполните массив из N элементов случайными числами в интервале [1,N] так, чтобы в массив
- 16. Программирование на языке Паскаль § 63. Алгоритмы обработки массивов
- 17. Поиск в массиве Найти элемент, равный X: i:= 1; while A[i] X do i:= i +
- 18. Поиск в массиве nX:= 0; for i:=1 to N do if A[i] = X then begin
- 19. Задачи «A»: Заполните массив случайными числами в интервале [0,5]. Введите число X и найдите все значения,
- 20. Задачи «B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли в нем элементы с
- 21. Задачи «C»: Заполните массив случайными числами. Определить, есть ли в нем элементы с одинаковыми значениями, не
- 22. Максимальный элемент M:= A[1]; for i:= 2 to N do if A[i] > M then M:=
- 23. Максимальный элемент и его номер
- 24. Задачи «A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы массива и их номера.
- 25. Задачи «C»: Введите массив с клавиатуры и найдите (за один проход) количество элементов, имеющих максимальное значение.
- 26. Реверс массива «Простое» решение: for i:= 1 to N do поменять местами A[i] и A[N+1-i] N
- 27. Реверс массива for i:= 1 to N div 2 do begin c:= A[i]; A[i]:= A[N+1-i]; A[N+1-i]:=
- 28. Циклический сдвиг элементов «Простое» решение: c:= A[1]; for i:= 1 to N-1 do A[i]:= A[i+1] A[N]:=
- 29. Задачи «A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива вправо на 1 элемент.
- 30. Задачи «C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные
- 31. Отбор нужных элементов «Простое» решение: Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию, в массив B.
- 32. Отбор нужных элементов A B выбрать чётные элементы count:= 0; { счётчик } for i:= 1
- 33. Задачи «A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в другой массив все чётные
- 34. Задачи «C»: Заполнить массив случайными числами и отобрать в другой массив все числа Фибоначчи. Используйте логическую
- 35. Программирование на языке Паскаль § 64. Сортировка
- 36. Что такое сортировка? Сортировка – это расстановка элементов массива в заданном порядке. …по возрастанию, убыванию, последней
- 37. Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается со дна вверх. Для массивов
- 38. Метод пузырька 2-й проход: 3-й проход: 4-й проход:
- 39. Метод пузырька 1-й проход: for j:= N-1 downto 1 do if A[j+1] { поменять местами A[j]
- 40. Метод пузырька for i:= 1 to N-1 do for j:= N-1 downto do if A[j+1] {
- 41. Задачи «A»: Напишите программу, в которой сортировка выполняется «методом камня» – самый «тяжёлый» элемент опускается в
- 42. Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его на первое место. for i:=
- 43. Метод выбора (минимального элемента) for i:= 1 to N-1 do begin if i nMin then begin
- 44. Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует первую половину массива по возрастанию,
- 45. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Пример: Массив:
- 46. Сортировка слиянием Слияние отсортированных массивов: A B С type TIntArray = array of integer; var iA,
- 47. Процедура слияния (I) iA:= 0; iB:= 0; { позиции в A и B } j:= 0;
- 48. Процедура слияния (II) while iA C[j]:= A[iA]; Inc(iA); Inc(j) end; while iB C[j]:= B[iB]; Inc(iB); Inc(j)
- 49. Процедура слияния (III) function merge(A, B: TIntArray): TIntArray; var iA, iB, nA, nB, j: integer; C:
- 50. Сортировка слиянием function mergeSort(A: TIntArray): TIntArray; var L, R: TIntArray; i, mid: integer; begin if Length(A)
- 51. Сортировка слиянием function mergeSort(A: TIntArray): TIntArray; var L, R: TIntArray; i, mid: integer; begin { выход
- 52. Сортировка слиянием function mergeSort(A: TIntArray): TIntArray; var L, R: TIntArray; i, mid: integer; begin { выход
- 53. Сортировка слиянием задача разбивается на несколько подзадач меньшего размера; эти подзадачи решаются с помощью рекурсивных вызовов
- 54. Быстрая сортировка (QuickSort) Идея: выгоднее переставлять элементы, который находятся дальше друг от друга.
- 55. Быстрая сортировка Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою область»! Шаг
- 56. Быстрая сортировка Разделение: выбрать любой элемент массива (X=67) установить L = 1, R = N увеличивая
- 57. Быстрая сортировка
- 58. Быстрая сортировка program QuickSort; const N = 7; var A: array[1..N] of integer; ... begin {
- 59. Быстрая сортировка procedure qSort(nStart, nEnd: integer); var L, R, c, X: integer; begin if nStart >=
- 60. Быстрая сортировка Сортировка массива случайных значений:
- 61. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм
- 62. Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и
- 63. Программирование на языке Паскаль § 65. Двоичный поиск
- 64. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 65. Двоичный поиск X = 44
- 66. Двоичный поиск var L, R, c: integer; ... L:= 1; R:= N + 1; { начальный
- 67. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 68. Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 69. Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 70. Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя
- 71. Программирование на языке Паскаль § 66. Символьные строки
- 72. Зачем нужны символьные строки? var s: array[1..80] of char; { массив символов } элементы массива –
- 73. Символьные строки Присваивание: s:= 'Вася пошёл гулять'; Ввод с клавиатуры: readln(s); Вывод на экран: writeln(s); Отдельный
- 74. Символьные строки program ReplaceAB; var s: string; i: integer; begin writeln('Введите строку'); readln(s); for i:=1 to
- 75. Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б»
- 76. Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов. Словом считается последовательности
- 77. Задачи «C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и его длину. Словом
- 78. Операции со строками Объединение (конкатенация) : s1:= 'Привет'; s2:= 'Вася'; s := s1 + ', '
- 79. Удаление и вставка символов Вставка: s:= '123456789'; Insert('ABC', s, 3); { '12ABC3456789' } что куда с
- 80. Поиск в строках s:= 'Здесь был Вася.'; n:= Pos('с', s) if n > 0 then write('Номер
- 81. Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 82. Пример обработки строк program FIO; var s, name, name2: string; n: integer; begin write('Введите имя, отчество
- 83. Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести
- 84. Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести
- 85. Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую. Пример: Введите
- 86. Преобразования «строка» – «число» Из строки в число: s:= '123'; Val(s, N, r); { N =
- 87. Задачи «A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа
- 88. Задачи «C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 89. Задачи «D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 90. Строки в процедурах и функциях Задача: построить процедуру, которая заменяет в строке s все вхождения слова-образца
- 91. Замена всех экземпляров подстроки
- 92. Замена всех экземпляров подстроки program Replace; var s: string; ... { здесь будет процедура } begin
- 93. Замена всех экземпляров подстроки procedure replaceAll(var s: string; wOld, wNew: string); var res: string; p, len:
- 94. Замена: из процедуры в функцию program Replace; var s: string; begin s:= '12.12.12'; s:= replaceAll(s, '12',
- 95. Задачи «A»: Напишите функцию, которая возвращает первое слово переданной ей символьной строки. Пример: Введите строку: Однажды
- 96. Задачи «B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример: Введите имя файла:
- 97. Задачи «C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа.
- 98. Рекурсивный перебор Задача. В алфавите языка племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно
- 99. Рекурсивный перебор Перебор К символов var w: string; begin w[1]:='Ы'; { перебор последних K-1 символов }
- 100. Рекурсивный перебор program YSCHO; var word: string; begin word:= '...'; TumbaWords('ЫШЧО', word, 0); end. procedure TumbaWords(A,
- 101. Задачи «A»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 102. Задачи «C»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 103. Сравнение строк Сравнение по кодам символов:
- 104. Сравнение строк 5STEAM steam
- 105. Сортировка строк const N = 10; var i,j: integer; s1: string; S: array[1..N] of string; begin
- 106. Задачи «A»: Вводится 5 строк, в которых сначала записан порядковый номер строки с точкой, а затем
- 107. Задачи «B»: Вводится несколько строк (не более 20), в которых сначала записан порядковый номер строки с
- 108. Задачи «C»: Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников
- 109. Программирование на языке Паскаль § 67. Матрицы
- 110. Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и
- 111. Объявление матриц const N = 3; M = 4; var A: array[1..N, 1..M] of integer; X:
- 112. Простые алгоритмы Заполнение случайными числами: for i:=1 to N do begin for j:=1 to M do
- 113. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный
- 114. Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок
- 115. Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой,
- 116. Перебор элементов матрицы Главная диагональ: for i:= 1 to N do begin { работаем с A[i,i]
- 117. Перестановка строк 2-я и 4-я строки: for j:= 1 to M do c:= A[2,j]; A[2,j]:= A[4,j];
- 118. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает
- 119. Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M
- 120. Программирование на языке Паскаль § 68. Работа с файлами
- 121. Как работать с файлами? файлы текстовые двоичные «plain text»: текст, разбитый на строки; из специальных символов
- 122. Принцип сэндвича var Fin, Fout: Text; Assign(Fin, 'input.txt'); Assign(Fout, 'output.txt'); Reset(Fin); { открыть на чтение }
- 123. Ввод данных var a, b: integer; Fin: Text; ... Assign(Fin, 'input.txt'); Reset(Fin); Close(Fin); Close(Fin); Reset(Fin); readln(Fin,
- 124. Вывод данных в файл var a, b: integer; Fout: Text; ... a:= 1; b:= 2; Assign(Fout,'output.txt');
- 125. Чтение неизвестного количества данных while { не конец файла } do begin { прочитать число из
- 126. Задачи «A»: Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и
- 127. Обработка массивов Задача. В файле записано не более 100 целых чисел. Вывести в другой текстовый файл
- 128. Обработка массивов Ввод массива: var N: integer; Fin: Text; ... Assign(Fin,'input.txt'); Reset(Fin); N:= 0; while (not
- 129. Обработка массивов Вывод результата: var Fout: Text; ... Assign(Fout, 'output.txt'); Rewrite(Fout); for i:= 1 to do
- 130. Задачи «A»: В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и
- 131. Обработка строк Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст
- 132. Обработка строк { найти в строке пробел } { удалить из строки кличку с первым пробелом
- 133. Обработка строк var s, s0: string; ... while not Eof(Fin) do begin readln(Fin, s0); s:= s0;
- 134. Задачи «A»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 135. Задачи «C»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 136. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург [email protected] ЕРЕМИН
- 138. Скачать презентацию