Содержание
- 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. Быстрая сортировка (QuickSort) Идея: выгоднее переставлять элементы, который находятся дальше друг от друга.
- 47. Быстрая сортировка Шаг 2: переставить элементы так: при сортировке элементы не покидают « свою область»! Шаг
- 48. Быстрая сортировка Разделение: выбрать средний элемент массива (X=67) установить L:=1, R:=N увеличивая L, найти первый элемент
- 49. Быстрая сортировка
- 50. Быстрая сортировка program QuickSort; const N = 7; var A: array[1..N] of integer; ... begin {
- 51. Быстрая сортировка procedure qSort(nStart, nEnd: integer); var L, R, c, X: integer; begin if nStart >=
- 52. Быстрая сортировка Сортировка массива случайных значений:
- 53. Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных чисел в нем. Используйте алгоритм
- 54. Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком», методом выбора и
- 55. Программирование на языке Паскаль § 65. Двоичный поиск
- 56. Двоичный поиск X = 7 X 8 4 X > 4 6 X > 6 Выбрать
- 57. Двоичный поиск X = 44
- 58. Двоичный поиск var L, R, c: integer; ... L:= 1; R:= N + 1; { начальный
- 59. Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:
- 60. Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 61. Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число X. Используя двоичный поиск, определить,
- 62. Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать его. Ввести число X. Используя
- 63. Программирование на языке Паскаль § 66. Символьные строки
- 64. Зачем нужны символьные строки? var s: array[1..80] of char; { массив символов } элементы массива –
- 65. Символьные строки Присваивание: s:= 'Вася пошёл гулять'; Ввод с клавиатуры: readln(s); Вывод на экран: writeln(s); Отдельный
- 66. Символьные строки program ReplaceAB; var s: string; i: integer; begin writeln('Введите строку'); readln(s); for i:=1 to
- 67. Задачи «A»: Ввести с клавиатуры символьную строку и заменить в ней все буквы «а» на «б»
- 68. Задачи «B»: Ввести с клавиатуры символьную строку и определить, сколько в ней слов. Словом считается последовательности
- 69. Задачи «C»: Ввести с клавиатуры символьную строку и найдите самое длинное слово и его длину. Словом
- 70. Операции со строками Объединение (конкатенация) : s1:= 'Привет'; s2:= 'Вася'; s := s1 + ', '
- 71. Операции со строками Вставка: s:= '123456789'; Insert('ABC', s, 3); { '12ABC3456789' } что куда с какого
- 72. Поиск в строках s:= 'Здесь был Вася.'; n:= Pos('с', s) if n > 0 then write('Номер
- 73. Пример обработки строк Задача: Ввести имя, отчество и фамилию. Преобразовать их к формату «фамилия-инициалы». Пример: Введите
- 74. Пример обработки строк program FIO; var s, name, name2: string; n: integer; begin write('Введите имя, отчество
- 75. Задачи «A»: Ввести с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Вывести
- 76. Задачи «B»: Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести
- 77. Задачи «C»: Напишите программу, которая заменяет во всей строке одну последовательность символов на другую. Пример: Введите
- 78. Преобразования «строка» – «число» Из строки в число: s:= '123'; Val(s, N, r); { N =
- 79. Задачи «A»: Напишите программу, которая вычисляет сумму трех чисел, введенную в форме символьной строки. Все числа
- 80. Задачи «C»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 81. Задачи «D»: Напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки
- 82. Строки в процедурах и функциях Задача: построить процедуру, которая заменяет в строке s все вхождения слова-образца
- 83. Замена всех экземпляров подстроки
- 84. Замена всех экземпляров подстроки program Replace; var s: string; ... { здесь будет процедура } begin
- 85. Замена всех экземпляров подстроки procedure replaceAll(var s: string; wOld, wNew: string); var res: string; p, len:
- 86. Замена: из процедуры в функцию program Replace; var s: string; begin s:= '12.12.12'; s:= replaceAll(s, '12',
- 87. Задачи «A»: Напишите функцию, которая возвращает первое слово переданной ей символьной строки. Пример: Введите строку: Однажды
- 88. Задачи «B»: Напишите функцию, которая заменяет расширение файла на заданное новое расширение. Пример: Введите имя файла:
- 89. Задачи «C»: Напишите функцию, которая заменяет во всей строке все римские числа на соответствующие десятичные числа.
- 90. Рекурсивный перебор Задача. В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно
- 91. Рекурсивный перебор Перебор К символов var w: string; begin w[1]:='Ы'; { перебор последних K-1 символов }
- 92. Рекурсивный перебор program YSCHO; var word: string; begin word:= '...'; TumbaWords('ЫШЧО', word, 0); end. procedure TumbaWords(A,
- 93. Задачи «A»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 94. Задачи «C»: В алфавите языке племени «тумба-юмба» четыре буквы: «Ы», «Ш», «Ч» и «О». Нужно вывести
- 95. Сравнение строк Сравнение по кодам символов:
- 96. Сравнение строк 5STEAM steam
- 97. Сортировка строк const N = 10; var i,j: integer; s1: string; S: array[1..N] of string; begin
- 98. Задачи «A»: Вводится 5 строк, в которых сначала записан порядковый номер строки с точкой, а затем
- 99. Задачи «B»: Вводится несколько строк (не более 20), в которых сначала записан порядковый номер строки с
- 100. Задачи «C»: Вводится несколько строк (не более 20), в которых сначала записаны инициалы и фамилии работников
- 101. Программирование на языке Паскаль § 67. Матрицы
- 102. Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и
- 103. Объявление матриц const N = 3; M = 4; var A: array[1..N, 1..M] of integer; X:
- 104. Простые алгоритмы Заполнение случайными числами: for i:=1 to N do begin for j:=1 to M do
- 105. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], и находит максимальный
- 106. Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде матрицы. Преобразовать рисунок
- 107. Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами по спирали и змейкой,
- 108. Перебор элементов матрицы Главная диагональ: for i:= 1 to N do begin { работаем с A[i,i]
- 109. Перестановка строк 2-я и 4-я строки: for j:= 1 to M do c:= A[2,j]; A[2,j]:= A[4,j];
- 110. Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99], а затем записывает
- 111. Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M
- 112. Программирование на языке Паскаль § 68. Работа с файлами
- 113. Как работать с файлами? файлы текстовые двоичные «plain text»: текст, разбитый на строки; из специальных символов
- 114. Принцип сэндвича var Fin, Fout: Text; Assign(Fin, 'input.txt'); Assign(Fout, 'output.txt'); Reset(Fin); { открыть на чтение }
- 115. Ввод данных var a, b: integer; Fin: Text; ... Assign(Fin, 'input.txt'); Reset(Fin); Close(Fin); Close(Fin); Reset(Fin); readln(Fin,
- 116. Вывод данных в файл var a, b: integer; Fout: Text; ... a:= 1; b:= 2; Assign(Fout,'output.txt');
- 117. Чтение неизвестного количества данных while { не конец файла } do begin { прочитать число из
- 118. Задачи «A»: Напишите программу, которая находит среднее арифметическое всех чисел, записанных в файле в столбик, и
- 119. Обработка массивов Задача. В файле записано не более 100 целых чисел. Вывести в другой текстовый файл
- 120. Обработка массивов Ввод массива: var N: integer; Fin: Text; ... Assign(Fin,'input.txt'); Reset(Fin); N:= 0; while (not
- 121. Обработка массивов Вывод результата: var Fout: Text; ... Assign(Fout, 'output.txt'); Rewrite(Fout); for i:= 1 to do
- 122. Задачи «A»: В файле записано не более 100 чисел. Отсортировать их по возрастанию последней цифры и
- 123. Обработка строк Задача. В файле записано данные о собаках: в каждой строчке кличка собаки, ее возраст
- 124. Обработка строк { найти в строке пробел } { удалить из строки кличку с первым пробелом
- 125. Обработка строк var s, s0: string; ... while not Eof(Fin) do begin readln(Fin, s0); s:= s0;
- 126. Задачи «A»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 127. Задачи «C»: В файле записаны данные о результатах сдачи экзамена. Каждая строка содержит фамилию, имя и
- 128. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru ЕРЕМИН
- 130. Скачать презентацию