Задачки

Простейший задачник по программированию для начинающих. Сложность задач — самая разная (начиная c «нулевой»). К каждой задаче могут быть приложены рекомендации, подсказки и указания, на каком языке программирования ожидается решение. Оценивается как работоспособность решения (программы), так и её качество — эффективность алгоритма (алгоритмов), лаконичность и культура оформления кода и пр. Время от времени к задачам будут появляться решения.

Задачи:

  1. Программа «Элементарный калькулятор».
  2. Программа «Массив чисел».
  3. Программа «Поток чисел».
  4. Программа «Записная книжка».
  5. Программа «Степень числа».
  6. Программа «Развернуть строку».
  7. Программа «Из строки в число».
  8. Программа «Перевод из системы в систему».
  9. Программа «Лишние пробелы».
  10. Программа «Подсчитать слова».

1. Программа «Элементарный калькулятор»

Задание: ввести два числа с клавиатуры и символ арифметической операции между ними («+», «-», «*», «/»). В зависимости от выбранной операции выполнить требуемое арифметическое действие, результат вывести на экран.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.

Решения на Pascal, решения на языке C, решения на языке C++.


2. Программа «Массив чисел»

Задание: ввести с клавиатуры N чисел. Найти среди этих чисел максимальное значение, минимальное значение, посчитать сумму и среднее арифметическое.

Примечание: N не менее 5; N известно заранее (до начала работы программы); для решения задачи использовать массивы (массив) и циклы.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.

Решения на языке C.


3. Программа «Поток чисел»

Задание: ввести с клавиатуры N чисел. Найти среди этих чисел максимальное значение, минимальное значение, посчитать сумму и среднее арифметическое.

Примечание: N не менее 5; N заранее не известно (может быть каким угодно и определяется в процессе работы программы — ввод чисел с клавиатуры останавливается в произвольный момент времени, тогда и становится ясно, сколько чисел введено); для решения задачи НЕ ИСПОЛЬЗОВАТЬ массивы. Циклы использовать можно. Основной смысл задачи: память для хранения данных ОГРАНИЧЕНА.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


4. Программа «Записная книжка»

Задание: организовать «записную книжку», способную хранить N однотипных элементов (например строк). Для заполнения «записной книжки» значения элементов вводятся с клавиатуры. В момент «переполнения записной книжки» (все N элементов уже заполнены — «ячейки заняты» — но надо ввести еще один элемент) самый старый элемент заменяется новым («перезаписывается»), то же самое для еще одного нового элемента и так далее сколько угодно раз. Программа должна позволять пользователю в любой момент как ввести новый элемент, так и просмотреть все содержимое «записной книжки».

Примечание: N не менее 5; N известно заранее (до начала работы программы) и фиксировано; для решения задачи можно использовать массивы (массив) и циклы. Подсказка: удобно использовать механизм «циклической записи». Основной смысл задачи: память для хранения данных ОГРАНИЧЕНА.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


5. Программа «Степень числа»

Задание: реализовать в программе функцию возведения целого числа в целую неотрицательную степень двумя способами — с помощью цикла и с помощью рекурсии. Значения числа и степени вводить с клавиатуры.

Примечание: у функции будет два параметра (аргумента) — число, которое возводим в степень, и число, которое эту степень определяет; так как нужно реализовать два способа, необходимо описать две разные функции (с циклом и рекурсией соответственно), возвращающие идентичный результат для одного и того же набора параметров.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


6. Программа «Развернуть строку»

Задание: ввести с клавиатуры строку-предложение (набор слов, разделенных пробелами). Из этой строки получить новую строку с обратным следованием всех символов (задом наперед) и еще одну строку — с обратным следованием слов (порядок следования символов в словах сохранить в первоначальном виде). Результат вывести на экран.

Примечание: как минимум одно из решений должно быть максимально алгоритмическим — без использования специальных функций работы со строками (использовать возможность работы с символами строки как с элементами массива).

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


7. Программа «Из строки в число»

Задание: ввести с клавиатуры строку — строковое представление некоторого неотрицательного целого числа в десятичной системе счисления. Алгоритмически (без использования специальных функций) преобразовать эту строку в соответствующее число и вывести его на экран.

Примечание: преобразование строки в число удобнее оформить в виде функции. Подсказка: искать соответствие между символом и числом, которому этот символ соответствует, можно как с помощью таблицы символов ASCII, так и с помощью собственного словаря символов, описанного в программе.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


8. Программа «Перевод из системы в систему»

Задание: реализовать программу, которая алгоритмически (без использования специальных функций) переводит строковое представление числа из одной позиционной системы счисления в строковое представление этого же числа в другой позиционной системе счисления. Исходную строку и основания систем счисления вводить с клавиатуры. Результат преобразования выводить на экран.

Примечание: программа преобразует строку в строку; переводить только целые неотрицательные числа; основания систем счисления выбирать из ряда 2, 8, 10, 16 (двоичная, восьмеричная, десятичная и шестнадцатеричная система счисления соответственно). Подсказка: преобразование удобно выполнить по схеме «строка → число → строка» и оформить в виде двух функций, из которых первая переводит строку в число (см. программу «Из строки в число»), вторая — число в строку.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.

Решение на языке C++.


9. Программа «Лишние пробелы»

Задание: ввести с клавиатуры строку-предложение (слова, разделенные пробелами). Среди разделяющих пробелов должны быть лишние (более одного подряд). Алгоритмически (без использования специальных функций) реализовать преобразование исходной строки в новую, в ходе которого все лишние пробелы удаляются — и слова в предложении разделяются лишь одним пробелом (то есть удаляются дублирующие пробелы). Исходную и новую строки вывести на экран для сравнения.

Примечание: в ключевых местах текста программы добавить комментарии, поясняющие её работу.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.


10. Программа «Подсчитать слова»

Задание: ввести с клавиатуры строку-предложение (слова, разделенные пробелами). Среди разделяющих пробелов могут быть лишние (более одного подряд). Алгоритмически (без использования специальных функций) реализовать подсчет количества слов в строке-предложении (то есть наборов символов, разделенных одним или несколькими пробелами).

Примечание: программа должна корректно работать вне зависимости от наличия или отсутствия лишних (дублирующих) пробелов между словами. В ключевых местах текста программы добавить комментарии, поясняющие её работу.

Решение принимается на следующих языках программирования: Pascal, C. Вариантов решения может быть несколько.