Программы для начинающих: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Строка 61: Строка 61:
=== [[ Циклы. Возможные ошибки|Возможные ошибки]] ===
=== [[ Циклы. Возможные ошибки|Возможные ошибки]] ===
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9D.D0.B5.D0.B2.D0.B5.D1.80.D0.BD.D1.8B.D0.B9_.D1.82.D0.B8.D0.BF_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0 | Неверный тип переменной цикла]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9D.D0.B5.D0.B2.D0.B5.D1.80.D0.BD.D1.8B.D0.B9_.D1.82.D0.B8.D0.BF_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0 | Неверный тип переменной цикла]]
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0_.D0.B2_.D1.82.D0.B5.D0.BB.D0.B5_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0|Изменение переменной цикла в теле цикла]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.98.D0.B7.D0.BC.D0.B5.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0_.D0.B2_.D1.82.D0.B5.D0.BB.D0.B5_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0|Изменение переменной цикла в теле цикла]]
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BE.D0.B4.D0.B8.D0.BD.D0.B0.D0.BA.D0.BE.D0.B2.D0.BE.D0.B9_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0_.D0.B2_.D0.B7.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BA.D0.B0.D1.85_.D0.B2.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D1.86.D0.B8.D0.BA.D0.BB.D0.BE.D0.B2|Использование одинаковой переменной цикла в заголовках вложенных циклов]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BE.D0.B4.D0.B8.D0.BD.D0.B0.D0.BA.D0.BE.D0.B2.D0.BE.D0.B9_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.BE.D0.B9_.D1.86.D0.B8.D0.BA.D0.BB.D0.B0_.D0.B2_.D0.B7.D0.B0.D0.B3.D0.BE.D0.BB.D0.BE.D0.B2.D0.BA.D0.B0.D1.85_.D0.B2.D0.BB.D0.BE.D0.B6.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D1.86.D0.B8.D0.BA.D0.BB.D0.BE.D0.B2|Использование одинаковой переменной цикла в заголовках вложенных циклов]]
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9D.D0.B5.D0.B8.D0.BD.D0.B8.D1.86.D0.B8.D0.B0.D0.BB.D0.B8.D0.B7.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D0.B0.D1.8F_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.B0.D1.8F|Неинициализированная переменная]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9D.D0.B5.D0.B8.D0.BD.D0.B8.D1.86.D0.B8.D0.B0.D0.BB.D0.B8.D0.B7.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.BD.D0.B0.D1.8F_.D0.BF.D0.B5.D1.80.D0.B5.D0.BC.D0.B5.D0.BD.D0.BD.D0.B0.D1.8F|Неинициализированная переменная]]
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.97.D0.B0.D1.86.D0.B8.D0.BA.D0.BB.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5|Зацикливание]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.97.D0.B0.D1.86.D0.B8.D0.BA.D0.BB.D0.B8.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5|Зацикливание]]
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9F.D0.B5.D1.80.D0.B5.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.9F.D0.B5.D1.80.D0.B5.D0.BF.D0.BE.D0.BB.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5
* [[http://pascalabc.net/wiki/index.php/%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.A1.D1.80.D0.B0.D0.B2.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B5.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D1.87.D0.B8.D1.81.D0.B5.D0.BB_.D0.BD.D0.B0_.D1.80.D0.B0.D0.B2.D0.B5.D0.BD.D1.81.D1.82.D0.B2.D0.BE|Сравнение вещественных чисел на равенство]]
* [[%D0%A6%D0%B8%D0%BA%D0%BB%D1%8B._%D0%92%D0%BE%D0%B7%D0%BC%D0%BE%D0%B6%D0%BD%D1%8B%D0%B5_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8#.D0.A1.D1.80.D0.B0.D0.B2.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5_.D0.B2.D0.B5.D1.89.D0.B5.D1.81.D1.82.D0.B2.D0.B5.D0.BD.D0.BD.D1.8B.D1.85_.D1.87.D0.B8.D1.81.D0.B5.D0.BB_.D0.BD.D0.B0_.D1.80.D0.B0.D0.B2.D0.B5.D0.BD.D1.81.D1.82.D0.B2.D0.BE|Сравнение вещественных чисел на равенство]]


== Процедуры и функции ==
== Процедуры и функции ==

Версия от 00:26, 18 января 2010

Основные идеи набора программ для начинающих

Начало

Программы

  1. HelloWorld
  2. Вычисление площади круга (использование констант)
  3. Вычисление A8 (промежуточные переменные)
  4. Вычисление расстояния между двумя точками на прямой (стандартные функции, abs)
  5. Вычисление гипотенузы по катетам (стандартные функции, sqrt)
  6. Бросание кубиков (стандартные функции, random)
  7. Перемена местами двух значений (базовые алгоритмы)
  8. Выделение цифр из двузначного числа (div mod)

Возможные ошибки

Условный оператор и оператор выбора

Программы

  1. Минимум из двух значений (базовые алгоритмы)
  2. Определение четности числа (повторение div mod, стандартная функция odd)
  3. Состоит ли двузначное число из одинаковых цифр (выделение цифр из числа)
  4. Упорядочение двух значений по возрастанию (составной оператор, неполная форма условного)
  5. Проверка числа на двузначность (and)
  6. Наименование сезона по номеру месяца (вложенные if, цепочечные if, or)
  7. Определение четверти, в которой находится точка (вложенные if, математика)
  8. Нахождение корней квадратного уравнения (математика)
  9. Словесное наименование дня недели (case)
  10. Определение того, является ли символ цифрой или буквой (case)

Возможные ошибки

Циклы

Программы

  1. Вывод последовательностей 1 2 3 4 5 и 5 4 3 2 1 с помощью разных циклов (арифметическая прогрессия)
  2. Вывод последовательности 1 3 5 7 9 с помощью разных циклов (арифметическая прогрессия)
  3. Сумма и произведение введенных чисел (суммы)
  4. Вычисление n! (базовые алгоритмы)
  5. Вычисление an (базовые алгоритмы)
  6. Вывод цифр числа (div mod)
  7. Вывод букв английского алфавита (for)
  8. Числа Фибоначчи (рекуррентные последовательности)
  9. Минимум из введенных (минимумы-максимумы, базовые алгоритмы, обработка последовательностей)
  10. Алгоритм Евклида поиска НОД (математика, классические алгоритмы)
  11. Вывод таблицы умножения (вложенные циклы)
  12. Определение простоты числа (математика)

Возможные ошибки

Процедуры и функции

Основная часть задач - создание оберток над известными алгоритмами

Программы

  1. Вычисление площади и периметра прямоугольника (параметры-значения и параметры-переменные)
  2. Табулирование функции
  3. Функция вычисления an
  4. Функция вычисления n!
  5. Функция, преобразующая цифру к ее словесному наименованию (case, функция)
  6. Функция проверки числа на четность
  7. Функция определения простоты числа (флаги)
  8. Функция вычисления n-того числа Фибоначчи
  9. Функция определения НОД числа (математика)
  10. Процедура вывода таблицы умножения (вложенные циклы)

Возможные ошибки

Массивы

Программы

  1. Ввод, заполнение случайными и вывод
  2. Заполнение арифметической прогрессией (рекуррентные соотношения)
  3. Заполнение степенями двойки (рекуррентные соотношения)
  4. Заполнение числами Фибоначчи (рекуррентные соотношения)
  5. Инвертирование массива
  6. Максимальный элемент в массиве и его индекс (базовые алгоритмы, минимумы-максимумы)
  7. Минимальный четный элемент и его индекс (минимумы-максимумы, условный минимум)
  8. Запись в новый массив элементов другого массива, удовлетворяющих определенному условию (базовые алгоритмы, добавление элемента в конец)
  9. Слияние отсортированных массивов в отсортированный (барьерный элемент, классические алгоритмы)
  10. Сдвиг элементов влево (базовые алгоритмы)
  11. Сдвиг элементов вправо (базовые алгоритмы)
  12. Удаление элемента
  13. Вставка элемента
  14. Подсчет количества элементов, удовлетворяющих условию (базовые алгоритмы, счетчики)
  15. Есть ли элемент, удовлетворяющий условию (базовые алгоритмы, флаги)
  16. Сортировка пузырьком (сортировка, классические алгоритмы)
  17. Сортировка выбором (сортировка, классические алгоритмы)

Возможные ошибки

Матрицы

Программы

  1. Заполнение матрицы случайными числами и вывод (заполнение)
  2. Перемена местами двух строк
  3. Поиск минимумов в строках (минимумы-максимумы)
  4. Поиск максимумов в столбцах (минимумы-максимумы)
  5. Поиск сумм в строках (сумма)
  6. Поиск произведений в столбцах (произведение)
  7. Поиск элемента в матрице (поиск)
  8. Сумма чисел на главной диагонали (сумма)
  9. Сумма чисел на побочной диагонали (сумма)
  10. Заполнение нулями ниже/выше главной диагонали (диагонали матрицы)
  11. Заполнение нулями ниже/выше побочной диагонали (диагонали матрицы)
  12. Наличие нулей в матрице

Возможные ошибки

Записи

Программы

  1. Ввод и вывод данных о персонах (привыкание к синтаксису)
  2. Поиск в массиве персон по фамилии, возрасту (поиск)
  3. Подсчет количества в массиве персон по возрасту (счетчики)
  4. Подсчет в массиве точек количества точек, находящихся от начала координат на расстоянии не более R (минимумы-максимумы)
  5. Выбор из массива точек точки, наиболее близкой к началу координат (минимумы-максимумы)
  6. Сортировка массива персон по фамилии, возрасту (сортировка)

Строки и символы

Программы

  1. Определение кода по символу и символа по коду
  2. Вывод кодовой таблицы
  3. Преобразование цифрового символа в соответствующее однозначное число и обратно
  4. Преобразование числа в строку и обратно
  5. Формирование строки из n одинаковых символов (конкатенация строк)
  6. Заменить все маленькие английские буквы в строке соответствующими большими (цикл по символам строки)
  7. Подсчет количества цифр в строке (цикл по символам строки)
  8. Есть ли в строке английские буквы (цикл по символам строки, флаги)
  9. Просуммировать записанные в строке числа (преобразование строки в число)
  10. Перестановка слов в строке из двух слов (вырезание подстроки, конкатенация)
  11. Количество вхождений подстроки в строку

Возможные ошибки

Файлы

Программы

  1. Создать текстовый файл с указанным текстом
  2. Вывести на экран текст файла текущей программы
  3. Записать в текстовый файл таблицу умножения n на n
  4. Скопировать один текстовый файл в другой построчно
  5. Просуммировать числа, записанные в файле
  6. Создать типизированный файл, содержащий данные числа
  7. Считать числа, содержащиеся в типизированном файле, и вывести их на экран
  8. Есть ли данное число в данном типизированном файле
  9. Возвести все числа в типизированном файле в квадрат

Возможные ошибки

Ссылки

Алгоритмы средней сложности